2023-08-27 18:05:38 -05:00
/ * P r i s m J S 1 . 2 9 . 0
2023-12-06 11:44:14 -06:00
https : //prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript+arduino+bash+c+csharp+cpp+css-extras+csv+docker+excel-formula+git+java+javadoc+javadoclike+javastacktrace+json+json5+log+markdown+nginx+nix+python+rust+vim+wiki&plugins=line-numbers+toolbar+copy-to-clipboard */
2023-08-27 18:05:38 -05:00
var _self = "undefined" != typeof window ? window : "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope ? self : { } , Prism = function ( e ) { var n = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i , t = 0 , r = { } , a = { manual : e . Prism && e . Prism . manual , disableWorkerMessageHandler : e . Prism && e . Prism . disableWorkerMessageHandler , util : { encode : function e ( n ) { return n instanceof i ? new i ( n . type , e ( n . content ) , n . alias ) : Array . isArray ( n ) ? n . map ( e ) : n . replace ( /&/g , "&" ) . replace ( /</g , "<" ) . replace ( /\u00a0/g , " " ) } , type : function ( e ) { return Object . prototype . toString . call ( e ) . slice ( 8 , - 1 ) } , objId : function ( e ) { return e . _ _id || Object . defineProperty ( e , "__id" , { value : ++ t } ) , e . _ _id } , clone : function e ( n , t ) { var r , i ; switch ( t = t || { } , a . util . type ( n ) ) { case "Object" : if ( i = a . util . objId ( n ) , t [ i ] ) return t [ i ] ; for ( var l in r = { } , t [ i ] = r , n ) n . hasOwnProperty ( l ) && ( r [ l ] = e ( n [ l ] , t ) ) ; return r ; case "Array" : return i = a . util . objId ( n ) , t [ i ] ? t [ i ] : ( r = [ ] , t [ i ] = r , n . forEach ( ( function ( n , a ) { r [ a ] = e ( n , t ) } ) ) , r ) ; default : return n } } , getLanguage : function ( e ) { for ( ; e ; ) { var t = n . exec ( e . className ) ; if ( t ) return t [ 1 ] . toLowerCase ( ) ; e = e . parentElement } return "none" } , setLanguage : function ( e , t ) { e . className = e . className . replace ( RegExp ( n , "gi" ) , "" ) , e . classList . add ( "language-" + t ) } , currentScript : function ( ) { if ( "undefined" == typeof document ) return null ; if ( "currentScript" in document ) return document . currentScript ; try { throw new Error } catch ( r ) { var e = ( /at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i . exec ( r . stack ) || [ ] ) [ 1 ] ; if ( e ) { var n = document . getElementsByTagName ( "script" ) ; for ( var t in n ) if ( n [ t ] . src == e ) return n [ t ] } return null } } , isActive : function ( e , n , t ) { for ( var r = "no-" + n ; e ; ) { var a = e . classList ; if ( a . contains ( n ) ) return ! 0 ; if ( a . contains ( r ) ) return ! 1 ; e = e . parentElement } return ! ! t } } , languages : { plain : r , plaintext : r , text : r , txt : r , extend : function ( e , n ) { var t = a . util . clone ( a . languages [ e ] ) ; for ( var r in n ) t [ r ] = n [ r ] ; return t } , insertBefore : function ( e , n , t , r ) { var i = ( r = r || a . languages ) [ e ] , l = { } ; for ( var o in i ) if ( i . hasOwnProperty ( o ) ) { if ( o == n ) for ( var s in t ) t . hasOwnProperty ( s ) && ( l [ s ] = t [ s ] ) ; t . hasOwnProperty ( o ) || ( l [ o ] = i [ o ] ) } var u = r [ e ] ; return r [ e ] = l , a . languages . DFS ( a . languages , ( function ( n , t ) { t === u && n != e && ( this [ n ] = l ) } ) ) , l } , DFS : function e ( n , t , r , i ) { i = i || { } ; var l = a . util . objId ; for ( var o in n ) if ( n . hasOwnProperty ( o ) ) { t . call ( n , o , n [ o ] , r || o ) ; var s = n [ o ] , u = a . util . type ( s ) ; "Object" !== u || i [ l ( s ) ] ? "Array" !== u || i [ l ( s ) ] || ( i [ l ( s ) ] = ! 0 , e ( s , t , o , i ) ) : ( i [ l ( s ) ] = ! 0 , e ( s , t , null , i ) ) } } } , plugins : { } , highlightAll : function ( e , n ) { a . highlightAllUnder ( document , e , n ) } , highlightAllUnder : function ( e , n , t ) { var r = { callback : t , container : e , selector : 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code' } ; a . hooks . run ( "before-highlightall" , r ) , r . elements = Array . prototype . slice . apply ( r . container . querySelectorAll ( r . selector ) ) , a . hooks . run ( "before-all-elements-highlight" , r ) ; for ( var i , l = 0 ; i = r . elements [ l ++ ] ; ) a . highlightElement ( i , ! 0 === n , r . callback ) } , highlightElement : function ( n , t , r ) { var i = a . util . getLanguage ( n ) , l = a . languages [ i ] ; a . util . setLanguage ( n , i ) ; var o = n . parentElement ; o && "pre" === o . nodeName . toLowerCase ( ) && a . util . setLanguage ( o , i ) ; var s = { element : n , language : i , grammar : l , code : n . textContent } ; function u ( e ) { s . highlightedCode = e , a . hooks . run ( "before-insert" , s ) , s . element . innerHTML = s . highlightedCode , a . hooks . run ( "after-highlight" , s ) , a . hooks . run ( "complete" , s ) , r && r . call ( s . element ) } if ( a . hooks . run ( "before-sanity-check" , s ) , ( o = s . element . parentElement ) && "pre" === o . nodeName . toLowerCase ( ) && ! o . hasAttribute ( "tabindex" ) && o . setAttribute ( "tabindex" , "0" ) , ! s . code ) return a . hooks . run ( "complete" , s ) , void ( r && r . call ( s . element ) ) ; if ( a . hooks . run ( "before-highlight" , s ) , s . grammar ) if ( t && e . Worker ) { var c = new Worker ( a . filename ) ; c . onmessage = function ( e ) { u ( e . data ) } , c . postMessage ( JSON . stringify ( { language : s . language , code : s . code , immediateClose : ! 0 } ) ) } else u ( a . highlight ( s . code , s . grammar , s . language ) ) ; else u ( a . util . encode ( s . code ) ) } , highlight : function ( e , n , t ) { var r = { code : e , grammar : n , language : t } ; if ( a . hooks . run ( "before-tokenize" , r ) , ! r . grammar ) throw new Error ( 'The language "' + r . language + '" has no grammar.' ) ; return r . tokens = a . tokenize ( r . code , r . grammar ) , a . hooks . run ( "after-tokenize" , r ) , i . stringify ( a . util . encode ( r . tokens ) , r . language ) } , tokenize : function ( e , n ) { var t = n . rest ; if (
Prism . languages . markup = { comment : { pattern : /<!--(?:(?!<!--)[\s\S])*?-->/ , greedy : ! 0 } , prolog : { pattern : /<\?[\s\S]+?\?>/ , greedy : ! 0 } , doctype : { pattern : /<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i , greedy : ! 0 , inside : { "internal-subset" : { pattern : /(^[^\[]*\[)[\s\S]+(?=\]>$)/ , lookbehind : ! 0 , greedy : ! 0 , inside : null } , string : { pattern : /"[^"]*"|'[^']*'/ , greedy : ! 0 } , punctuation : /^<!|>$|[[\]]/ , "doctype-tag" : /^DOCTYPE/i , name : /[^\s<>'"]+/ } } , cdata : { pattern : /<!\[CDATA\[[\s\S]*?\]\]>/i , greedy : ! 0 } , tag : { pattern : /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/ , greedy : ! 0 , inside : { tag : { pattern : /^<\/?[^\s>\/]+/ , inside : { punctuation : /^<\/?/ , namespace : /^[^\s>\/:]+:/ } } , "special-attr" : [ ] , "attr-value" : { pattern : /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/ , inside : { punctuation : [ { pattern : /^=/ , alias : "attr-equals" } , { pattern : /^(\s*)["']|["']$/ , lookbehind : ! 0 } ] } } , punctuation : /\/?>/ , "attr-name" : { pattern : /[^\s>\/]+/ , inside : { namespace : /^[^\s>\/:]+:/ } } } } , entity : [ { pattern : /&[\da-z]{1,8};/i , alias : "named-entity" } , /&#x?[\da-f]{1,8};/i ] } , Prism . languages . markup . tag . inside [ "attr-value" ] . inside . entity = Prism . languages . markup . entity , Prism . languages . markup . doctype . inside [ "internal-subset" ] . inside = Prism . languages . markup , Prism . hooks . add ( "wrap" , ( function ( a ) { "entity" === a . type && ( a . attributes . title = a . content . replace ( /&/ , "&" ) ) } ) ) , Object . defineProperty ( Prism . languages . markup . tag , "addInlined" , { value : function ( a , e ) { var s = { } ; s [ "language-" + e ] = { pattern : /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i , lookbehind : ! 0 , inside : Prism . languages [ e ] } , s . cdata = /^<!\[CDATA\[|\]\]>$/i ; var t = { "included-cdata" : { pattern : /<!\[CDATA\[[\s\S]*?\]\]>/i , inside : s } } ; t [ "language-" + e ] = { pattern : /[\s\S]+/ , inside : Prism . languages [ e ] } ; var n = { } ; n [ a ] = { pattern : RegExp ( "(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)" . replace ( /__/g , ( function ( ) { return a } ) ) , "i" ) , lookbehind : ! 0 , greedy : ! 0 , inside : t } , Prism . languages . insertBefore ( "markup" , "cdata" , n ) } } ) , Object . defineProperty ( Prism . languages . markup . tag , "addAttribute" , { value : function ( a , e ) { Prism . languages . markup . tag . inside [ "special-attr" ] . push ( { pattern : RegExp ( "(^|[\"'\\s])(?:" + a + ")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))" , "i" ) , lookbehind : ! 0 , inside : { "attr-name" : /^[^\s=]+/ , "attr-value" : { pattern : /=[\s\S]+/ , inside : { value : { pattern : /(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/ , lookbehind : ! 0 , alias : [ e , "language-" + e ] , inside : Prism . languages [ e ] } , punctuation : [ { pattern : /^=/ , alias : "attr-equals" } , /"|'/ ] } } } } ) } } ) , Prism . languages . html = Prism . languages . markup , Prism . languages . mathml = Prism . languages . markup , Prism . languages . svg = Prism . languages . markup , Prism . languages . xml = Prism . languages . extend ( "markup" , { } ) , Prism . languages . ssml = Prism . languages . xml , Prism . languages . atom = Prism . languages . xml , Prism . languages . rss = Prism . languages . xml ;
! function ( s ) { var e = /(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/ ; s . languages . css = { comment : /\/\*[\s\S]*?\*\// , atrule : { pattern : RegExp ( "@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|" + e . source + ")*?(?:;|(?=\\s*\\{))" ) , inside : { rule : /^@[\w-]+/ , "selector-function-argument" : { pattern : /(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/ , lookbehind : ! 0 , alias : "selector" } , keyword : { pattern : /(^|[^\w-])(?:and|not|only|or)(?![\w-])/ , lookbehind : ! 0 } } } , url : { pattern : RegExp ( "\\burl\\((?:" + e . source + "|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)" , "i" ) , greedy : ! 0 , inside : { function : /^url/i , punctuation : /^\(|\)$/ , string : { pattern : RegExp ( "^" + e . source + "$" ) , alias : "url" } } } , selector : { pattern : RegExp ( "(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|" + e . source + ")*(?=\\s*\\{)" ) , lookbehind : ! 0 } , string : { pattern : e , greedy : ! 0 } , property : { pattern : /(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i , lookbehind : ! 0 } , important : /!important\b/i , function : { pattern : /(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i , lookbehind : ! 0 } , punctuation : /[(){};:,]/ } , s . languages . css . atrule . inside . rest = s . languages . css ; var t = s . languages . markup ; t && ( t . tag . addInlined ( "style" , "css" ) , t . tag . addAttribute ( "style" , "css" ) ) } ( Prism ) ;
Prism . languages . clike = { comment : [ { pattern : /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/ , lookbehind : ! 0 , greedy : ! 0 } , { pattern : /(^|[^\\:])\/\/.*/ , lookbehind : ! 0 , greedy : ! 0 } ] , string : { pattern : /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/ , greedy : ! 0 } , "class-name" : { pattern : /(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i , lookbehind : ! 0 , inside : { punctuation : /[.\\]/ } } , keyword : /\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/ , boolean : /\b(?:false|true)\b/ , function : /\b\w+(?=\()/ , number : /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i , operator : /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/ , punctuation : /[{}[\];(),.:]/ } ;
Prism . languages . javascript = Prism . languages . extend ( "clike" , { "class-name" : [ Prism . languages . clike [ "class-name" ] , { pattern : /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/ , lookbehind : ! 0 } ] , keyword : [ { pattern : /((?:^|\})\s*)catch\b/ , lookbehind : ! 0 } , { pattern : /(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/ , lookbehind : ! 0 } ] , function : /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/ , number : { pattern : RegExp ( "(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])" ) , lookbehind : ! 0 } , operator : /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/ } ) , Prism . languages . javascript [ "class-name" ] [ 0 ] . pattern = /(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/ , Prism . languages . insertBefore ( "javascript" , "keyword" , { regex : { pattern : RegExp ( "((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))" ) , lookbehind : ! 0 , greedy : ! 0 , inside : { "regex-source" : { pattern : /^(\/)[\s\S]+(?=\/[a-z]*$)/ , lookbehind : ! 0 , alias : "language-regex" , inside : Prism . languages . regex } , "regex-delimiter" : /^\/|\/$/ , "regex-flags" : /^[a-z]+$/ } } , "function-variable" : { pattern : /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/ , alias : "function" } , parameter : [ { pattern : /(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/ , lookbehind : ! 0 , inside : Prism . languages . javascript } , { pattern : /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i , lookbehind : ! 0 , inside : Prism . languages . javascript } , { pattern : /(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/ , lookbehind : ! 0 , inside : Prism . languages . javascript } , { pattern : /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/ , lookbehind : ! 0 , inside : Prism . languages . javascript } ] , constant : /\b[A-Z](?:[A-Z_]|\dx?)*\b/ } ) , Prism . languages . insertBefore ( "javascript" , "string" , { hashbang : { pattern : /^#!.*/ , greedy : ! 0 , alias : "comment" } , "template-string" : { pattern : /`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/ , greedy : ! 0 , inside : { "template-punctuation" : { pattern : /^`|`$/ , alias : "string" } , interpolation : { pattern : /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/ , lookbehind : ! 0 , inside : { "interpolation-punctuation" : { pattern : /^\$\{|\}$/ , alias : "punctuation" } , rest : Prism . languages . javascript } } , string : /[\s\S]+/ } } , "string-property" : { pattern : /((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m , lookbehind : ! 0 , greedy : ! 0 , alias : "property" } } ) , Prism . languages . insertBefore ( "javascript" , "operator" , { "literal-property" : { pattern : / ( ( ? : ^
Prism . languages . c = Prism . languages . extend ( "clike" , { comment : { pattern : /\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/ , greedy : ! 0 } , string : { pattern : /"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/ , greedy : ! 0 } , "class-name" : { pattern : /(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/ , lookbehind : ! 0 } , keyword : /\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/ , function : /\b[a-z_]\w*(?=\s*\()/i , number : /(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i , operator : />>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/ } ) , Prism . languages . insertBefore ( "c" , "string" , { char : { pattern : /'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/ , greedy : ! 0 } } ) , Prism . languages . insertBefore ( "c" , "string" , { macro : { pattern : /(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im , lookbehind : ! 0 , greedy : ! 0 , alias : "property" , inside : { string : [ { pattern : /^(#\s*include\s*)<[^>]+>/ , lookbehind : ! 0 } , Prism . languages . c . string ] , char : Prism . languages . c . char , comment : Prism . languages . c . comment , "macro-name" : [ { pattern : /(^#\s*define\s+)\w+\b(?!\()/i , lookbehind : ! 0 } , { pattern : /(^#\s*define\s+)\w+\b(?=\()/i , lookbehind : ! 0 , alias : "function" } ] , directive : { pattern : /^(#\s*)[a-z]+/ , lookbehind : ! 0 , alias : "keyword" } , "directive-hash" : /^#/ , punctuation : /##|\\(?=[\r\n])/ , expression : { pattern : /\S[\s\S]*/ , inside : Prism . languages . c } } } } ) , Prism . languages . insertBefore ( "c" , "function" , { constant : /\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/ } ) , delete Prism . languages . c . boolean ;
! function ( e ) { var t = /\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/ , n = "\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b" . replace ( /<keyword>/g , ( function ( ) { return t . source } ) ) ; e . languages . cpp = e . languages . extend ( "c" , { "class-name" : [ { pattern : RegExp ( "(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+" . replace ( /<keyword>/g , ( function ( ) { return t . source } ) ) ) , lookbehind : ! 0 } , /\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/ , /\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i , /\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/ ] , keyword : t , number : { pattern : /(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i , greedy : ! 0 } , operator : />>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/ , boolean : /\b(?:false|true)\b/ } ) , e . languages . insertBefore ( "cpp" , "string" , { module : { pattern : RegExp ( '(\\b(?:import|module)\\s+)(?:"(?:\\\\(?:\r\n|[^])|[^"\\\\\r\n])*"|<[^<>\r\n]*>|' + "<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>" . replace ( /<mod-name>/g , ( function ( ) { return n } ) ) + ")" ) , lookbehind : ! 0 , greedy : ! 0 , inside : { string : /^[<"][\s\S]+/ , operator : /:/ , punctuation : /\./ } } , "raw-string" : { pattern : /R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/ , alias : "string" , greedy : ! 0 } } ) , e . languages . insertBefore ( "cpp" , "keyword" , { "generic-function" : { pattern : /\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i , inside : { function : /^\w+/ , generic : { pattern : /<[\s\S]+/ , alias : "class-name" , inside : e . languages . cpp } } } } ) , e . languages . insertBefore ( "cpp" , "operator" , { "double-colon" : { pattern : /::/ , alias : "punctuation" } } ) , e . languages . insertBefore ( "cpp" , "class-name" , { "base-clause" : { pattern : /(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/ , lookbehind : ! 0 , greedy : ! 0 , inside : e . languages . extend ( "cpp" , { } ) } } ) , e . languages . insertBefore ( "inside" , "double-colon" , { "class-name" : /\b[a-z_]\w*\b(?!\s*::)/i } , e . languages . cpp [ "base-clause" ] ) } ( Prism ) ;
Prism . languages . arduino = Prism . languages . extend ( "cpp" , { keyword : /\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\b/ , constant : /\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\b/ , builtin : /\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\b/ } ) , Prism . languages . ino = Prism . languages . arduino ;
! function ( e ) { var t = "\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b" , a = { pattern : /(^(["']?)\w+\2)[ \t]+\S.*/ , lookbehind : ! 0 , alias : "punctuation" , inside : null } , n = { bash : a , environment : { pattern : RegExp ( "\\$" + t ) , alias : "constant" } , variable : [ { pattern : /\$?\(\([\s\S]+?\)\)/ , greedy : ! 0 , inside : { variable : [ { pattern : /(^\$\(\([\s\S]+)\)\)/ , lookbehind : ! 0 } , /^\$\(\(/ ] , number : /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/ , operator : /--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/ , punctuation : /\(\(?|\)\)?|,|;/ } } , { pattern : /\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/ , greedy : ! 0 , inside : { variable : /^\$\(|^`|\)$|`$/ } } , { pattern : /\$\{[^}]+\}/ , greedy : ! 0 , inside : { operator : /:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/ , punctuation : /[\[\]]/ , environment : { pattern : RegExp ( "(\\{)" + t ) , lookbehind : ! 0 , alias : "constant" } } } , /\$(?:\w+|[#?*!@$])/ ] , entity : /\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/ } ; e . languages . bash = { shebang : { pattern : /^#!\s*\/.*/ , alias : "important" } , comment : { pattern : /(^|[^"{\\$])#.*/ , lookbehind : ! 0 } , "function-name" : [ { pattern : /(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/ , lookbehind : ! 0 , alias : "function" } , { pattern : /\b[\w-]+(?=\s*\(\s*\)\s*\{)/ , alias : "function" } ] , "for-or-select" : { pattern : /(\b(?:for|select)\s+)\w+(?=\s+in\s)/ , alias : "variable" , lookbehind : ! 0 } , "assign-left" : { pattern : /(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/ , inside : { environment : { pattern : RegExp ( "(^|[\\s;|&]|[<>]\\()" + t ) , lookbehind : ! 0 , alias : "constant" } } , alias : "variable" , lookbehind : ! 0 } , parameter : { pattern : /(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/ , alias : "variable" , lookbehind : ! 0 } , string : [ { pattern : /((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/ , lookbehind : ! 0 , greedy : ! 0 , inside : n } , { pattern : /((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/ , lookbehind : ! 0 , greedy : ! 0 , inside : { bash : a } } , { pattern : /(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/ , lookbehind : ! 0 , greedy : ! 0 , inside : n } , { pattern : /(^|[^$\\])'[^']*'/ , lookbehind : ! 0 , greedy : ! 0 } , { pattern : /\$'(?:[^'\\]|\\[\s\S])*'/ , greedy : ! 0 , inside : { entity : n . entity } } ] , environment : { pattern : RegExp ( "\\$?" + t ) , alias : "constant" } , variable : n . variable , function : { pattern : / ( ^ | [ \ s ; | & ] | [ < > ] \ ( ) ( ? : a d d | a p r o p o s | a p t | a p t - c a c h e | a p t - g e t | a p t i t u d e | a s p e l l | a u t o m y s q l b a c k u p | a w k | b a s e n a m e | b a s h | b c | b c o n s o l e | b g | b z i p 2 | c a l | c a r g o | c a t | c f d i s k | c h g r p | c h k c o n f i g | c h m o d | c h o w n | c h r o o t | c k s u m | c l e a r | c m p | c o l u m n | c o m m | c o m p o s e r | c p | c r o n | c r o n t a b | c s p l i t | c u r l | c u t | d a t e | d c | d d | d d r e s c u e | d e b o o t s t r a p | d f | d i f f | d i f f 3 | d i g | d i r | d i r c o l o r s | d i r n a m e | d i r s | d m e s g | d o c k e r | d o c k e r - c o m p o s e | d u | e g r e p | e j e c t | e n v | e t h t o o l | e x p a n d | e x p e c t | e x p r | f d f o r m a t | f d i s k | f g | f g r e p | f i l e | f i n d | f m t | f o l d | f o r m a t | f r e e | f s c k | f t p | f u s e r | g a w k | g i t | g p a r t e d | g r e p | g r o u p a d d | g r o u p d e l | g r o u p m o d | g r o u p s | g r u b - m k c o n f i g | g z i p | h a l t | h e a d | h g | h i s t o r y | h o s t | h o s t n a m e | h t o p | i c o n v | i d | i f c o n f i g | i f d o w n | i f u p | i m p o r t | i n s t a l l | i p | j a v a | j o b s | j o i n | k i l l | k i l l a l l | l e s s | l i n k | l n | l o c a t e | l o g n a m e | l o g r o t a t e | l o o k | l p c | l p r | l p r i n t | l p r i n t d | l p r i n t q | l p r m | l s | l s o f | l y n x | m a k e | m a n | m c | m d a d m | m k c o n f i g | m k d i r | m k e 2 f s | m k f i f o | m k f s | m k i s o f s | m k n o d | m k s w a p | m m v | m o r e | m o s t | m o u n t | m t o o l s
! function ( e ) { function n ( e , n ) { return e . replace ( /<<(\d+)>>/g , ( function ( e , s ) { return "(?:" + n [ + s ] + ")" } ) ) } function s ( e , s , a ) { return RegExp ( n ( e , s ) , a || "" ) } function a ( e , n ) { for ( var s = 0 ; s < n ; s ++ ) e = e . replace ( /<<self>>/g , ( function ( ) { return "(?:" + e + ")" } ) ) ; return e . replace ( /<<self>>/g , "[^\\s\\S]" ) } var t = "bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void" , r = "class enum interface record struct" , i = "add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)" , o = "abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield" ; function l ( e ) { return "\\b(?:" + e . trim ( ) . replace ( / /g , "|" ) + ")\\b" } var d = l ( r ) , p = RegExp ( l ( t + " " + r + " " + i + " " + o ) ) , c = l ( r + " " + i + " " + o ) , u = l ( t + " " + r + " " + o ) , g = a ( "<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>" , 2 ) , b = a ( "\\((?:[^()]|<<self>>)*\\)" , 2 ) , h = "@?\\b[A-Za-z_]\\w*\\b" , f = n ( "<<0>>(?:\\s*<<1>>)?" , [ h , g ] ) , m = n ( "(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*" , [ c , f ] ) , k = "\\[\\s*(?:,\\s*)*\\]" , y = n ( "<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?" , [ m , k ] ) , w = n ( "[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>" , [ g , b , k ] ) , v = n ( "\\(<<0>>+(?:,<<0>>+)+\\)" , [ w ] ) , x = n ( "(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?" , [ v , m , k ] ) , $ = { keyword : p , punctuation : /[<>()?,.:[\]]/ } , _ = "'(?:[^\r\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'" , B = '"(?:\\\\.|[^\\\\"\r\n])*"' ; e . languages . csharp = e . languages . extend ( "clike" , { string : [ { pattern : s ( "(^|[^$\\\\])<<0>>" , [ '@"(?:""|\\\\[^]|[^\\\\"])*"(?!")' ] ) , lookbehind : ! 0 , greedy : ! 0 } , { pattern : s ( "(^|[^@$\\\\])<<0>>" , [ B ] ) , lookbehind : ! 0 , greedy : ! 0 } ] , "class-name" : [ { pattern : s ( "(\\busing\\s+static\\s+)<<0>>(?=\\s*;)" , [ m ] ) , lookbehind : ! 0 , inside : $ } , { pattern : s ( "(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)" , [ h , x ] ) , lookbehind : ! 0 , inside : $ } , { pattern : s ( "(\\busing\\s+)<<0>>(?=\\s*=)" , [ h ] ) , lookbehind : ! 0 } , { pattern : s ( "(\\b<<0>>\\s+)<<1>>" , [ d , f ] ) , lookbehind : ! 0 , inside : $ } , { pattern : s ( "(\\bcatch\\s*\\(\\s*)<<0>>" , [ m ] ) , lookbehind : ! 0 , inside : $ } , { pattern : s ( "(\\bwhere\\s+)<<0>>" , [ h ] ) , lookbehind : ! 0 } , { pattern : s ( "(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>" , [ y ] ) , lookbehind : ! 0 , inside : $ } , { pattern : s ( "\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))" , [ x , u , h ] ) , inside : $ } ] , keyword : p , number : /(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i , operator : />>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/ , punctuation : /\?\.?|::|[{}[\];(),.:]/ } ) , e . languages . insertBefore ( "csharp" , "number" , { range : { pattern : /\.\./ , alias : "operator" } } ) , e . languages . insertBefore ( "csharp" , "punctuation" , { "named-parameter" : { pattern : s ( "([(,]\\s*)<<0>>(?=\\s*:)" , [ h ] ) , lookbehind : ! 0 , alias : "punctuation" } } ) , e . languages . insertBefore ( "csharp" , "class-name" , { namespace : { pattern : s ( "(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])" , [ h ] ) , lookbehind : ! 0 , inside : { punctuation : /\./ } } , "type-expression" : { pattern : s ( "(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))" , [ b ] ) , lookbehind : ! 0 , alias : "class-name" , inside : $ } , "return-type" : { pattern : s ( "<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))" , [ x , m ] ) , inside : $ , alias : "class-name" } , "constructor-invocation" : { pattern : s ( "(\\bnew\\s+)<<0>>(?=\\s*[[({])" , [ x ] ) , lookbehind : ! 0 , inside : $ , alias : "class-name" } , "generic-method" : { pattern : s ( "<<0>>\\s*<<1>>(?=\\s*\\()" , [ h , g ] ) , inside : { function : s ( "^<<0>>" , [ h ] ) , generic : { pattern : RegExp ( g ) , alias : "class-name" , inside : $ } } } , "type-list" : { pattern : s ( "\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))" , [ d , f , h , x , p . source , b , "\\bnew\\s*\\(\\s*\\)" ] ) , lookbehind : ! 0 , inside : { " record - a
! function ( e ) { var a , n = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/ ; e . languages . css . selector = { pattern : e . languages . css . selector . pattern , lookbehind : ! 0 , inside : a = { "pseudo-element" : /:(?:after|before|first-letter|first-line|selection)|::[-\w]+/ , "pseudo-class" : /:[-\w]+/ , class : /\.[-\w]+/ , id : /#[-\w]+/ , attribute : { pattern : RegExp ( "\\[(?:[^[\\]\"']|" + n . source + ")*\\]" ) , greedy : ! 0 , inside : { punctuation : /^\[|\]$/ , "case-sensitivity" : { pattern : /(\s)[si]$/i , lookbehind : ! 0 , alias : "keyword" } , namespace : { pattern : /^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/ , lookbehind : ! 0 , inside : { punctuation : /\|$/ } } , "attr-name" : { pattern : /^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/ , lookbehind : ! 0 } , "attr-value" : [ n , { pattern : /(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/ , lookbehind : ! 0 } ] , operator : /[|~*^$]?=/ } } , "n-th" : [ { pattern : /(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/ , lookbehind : ! 0 , inside : { number : /[\dn]+/ , operator : /[+-]/ } } , { pattern : /(\(\s*)(?:even|odd)(?=\s*\))/i , lookbehind : ! 0 } ] , combinator : />|\+|~|\|\|/ , punctuation : /[(),]/ } } , e . languages . css . atrule . inside [ "selector-function-argument" ] . inside = a , e . languages . insertBefore ( "css" , "property" , { variable : { pattern : /(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i , lookbehind : ! 0 } } ) ; var r = { pattern : /(\b\d+)(?:%|[a-z]+(?![\w-]))/ , lookbehind : ! 0 } , i = { pattern : /(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/ , lookbehind : ! 0 } ; e . languages . insertBefore ( "css" , "function" , { operator : { pattern : /(\s)[+\-*\/](?=\s)/ , lookbehind : ! 0 } , hexcode : { pattern : /\B#[\da-f]{3,8}\b/i , alias : "color" } , color : [ { pattern : /(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i , lookbehind : ! 0 } , { pattern : /\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i , inside : { unit : r , number : i , function : /[\w-]+(?=\()/ , punctuation : /[(),]/ } } ] , entity : /\\[\da-f]{1,8}/i , unit : r , number : i } ) } ( Prism ) ;
Prism . languages . csv = { value : /[^\r\n,"]+|"(?:[^"]|"")*"(?!")/ , punctuation : /,/ } ;
! function ( e ) { var n = "(?:[ \t]+(?![ \t])(?:<SP_BS>)?|<SP_BS>)" . replace ( /<SP_BS>/g , ( function ( ) { return "\\\\[\r\n](?:\\s|\\\\[\r\n]|#.*(?!.))*(?![\\s#]|\\\\[\r\n])" } ) ) , r = "\"(?:[^\"\\\\\r\n]|\\\\(?:\r\n|[^]))*\"|'(?:[^'\\\\\r\n]|\\\\(?:\r\n|[^]))*'" , t = "--[\\w-]+=(?:<STR>|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)" . replace ( /<STR>/g , ( function ( ) { return r } ) ) , o = { pattern : RegExp ( r ) , greedy : ! 0 } , i = { pattern : /(^[ \t]*)#.*/m , lookbehind : ! 0 , greedy : ! 0 } ; function a ( e , r ) { return e = e . replace ( /<OPT>/g , ( function ( ) { return t } ) ) . replace ( /<SP>/g , ( function ( ) { return n } ) ) , RegExp ( e , r ) } e . languages . docker = { instruction : { pattern : /(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im , lookbehind : ! 0 , greedy : ! 0 , inside : { options : { pattern : a ( "(^(?:ONBUILD<SP>)?\\w+<SP>)<OPT>(?:<SP><OPT>)*" , "i" ) , lookbehind : ! 0 , greedy : ! 0 , inside : { property : { pattern : /(^|\s)--[\w-]+/ , lookbehind : ! 0 } , string : [ o , { pattern : /(=)(?!["'])(?:[^\s\\]|\\.)+/ , lookbehind : ! 0 } ] , operator : /\\$/m , punctuation : /=/ } } , keyword : [ { pattern : a ( "(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\\b" , "i" ) , lookbehind : ! 0 , greedy : ! 0 } , { pattern : a ( "(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \t\\\\]+<SP>)AS" , "i" ) , lookbehind : ! 0 , greedy : ! 0 } , { pattern : a ( "(^ONBUILD<SP>)\\w+" , "i" ) , lookbehind : ! 0 , greedy : ! 0 } , { pattern : /^\w+/ , greedy : ! 0 } ] , comment : i , string : o , variable : /\$(?:\w+|\{[^{}"'\\]*\})/ , operator : /\\$/m } } , comment : i } , e . languages . dockerfile = e . languages . docker } ( Prism ) ;
Prism . languages [ "excel-formula" ] = { comment : { pattern : /(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i , lookbehind : ! 0 , greedy : ! 0 } , string : { pattern : /"(?:[^"]|"")*"(?!")/ , greedy : ! 0 } , reference : { pattern : /(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/ , greedy : ! 0 , alias : "string" , inside : { operator : /!$/ , punctuation : /'/ , sheet : { pattern : /[^[\]]+$/ , alias : "function" } , file : { pattern : /\[[^[\]]+\]$/ , inside : { punctuation : /[[\]]/ } } , path : /[\s\S]+/ } } , "function-name" : { pattern : /\b[A-Z]\w*(?=\()/i , alias : "builtin" } , range : { pattern : /\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i , alias : "selector" , inside : { operator : /:/ , cell : /\$?[A-Z]+\$?\d+/i , column : /\$?[A-Z]+/i , row : /\$?\d+/ } } , cell : { pattern : /\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/ , alias : "selector" } , number : /(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i , boolean : /\b(?:FALSE|TRUE)\b/i , operator : /[-+*/^%=&,]|<[=>]?|>=?/ , punctuation : /[[\]();{}|]/ } , Prism . languages . xlsx = Prism . languages . xls = Prism . languages [ "excel-formula" ] ;
Prism . languages . git = { comment : /^#.*/m , deleted : /^[-– ].*/m , inserted : /^\+.*/m , string : /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/ , command : { pattern : /^.*\$ git .*$/m , inside : { parameter : /\s--?\w+/ } } , coord : /^@@.*@@$/m , "commit-sha1" : /^commit \w{40}$/m } ;
! function ( e ) { var n = /\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/ , t = "(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*" , s = { pattern : RegExp ( "(^|[^\\w.])" + t + "[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b" ) , lookbehind : ! 0 , inside : { namespace : { pattern : /^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/ , inside : { punctuation : /\./ } } , punctuation : /\./ } } ; e . languages . java = e . languages . extend ( "clike" , { string : { pattern : /(^|[^\\])"(?:\\.|[^"\\\r\n])*"/ , lookbehind : ! 0 , greedy : ! 0 } , "class-name" : [ s , { pattern : RegExp ( "(^|[^\\w.])" + t + "[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)" ) , lookbehind : ! 0 , inside : s . inside } , { pattern : RegExp ( "(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)" + t + "[A-Z]\\w*\\b" ) , lookbehind : ! 0 , inside : s . inside } ] , keyword : n , function : [ e . languages . clike . function , { pattern : /(::\s*)[a-z_]\w*/ , lookbehind : ! 0 } ] , number : /\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i , operator : { pattern : /(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m , lookbehind : ! 0 } , constant : /\b[A-Z][A-Z_\d]+\b/ } ) , e . languages . insertBefore ( "java" , "string" , { "triple-quoted-string" : { pattern : /"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/ , greedy : ! 0 , alias : "string" } , char : { pattern : /'(?:\\.|[^'\\\r\n]){1,6}'/ , greedy : ! 0 } } ) , e . languages . insertBefore ( "java" , "class-name" , { annotation : { pattern : /(^|[^.])@\w+(?:\s*\.\s*\w+)*/ , lookbehind : ! 0 , alias : "punctuation" } , generics : { pattern : /<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/ , inside : { "class-name" : s , keyword : n , punctuation : /[<>(),.:]/ , operator : /[?&|]/ } } , import : [ { pattern : RegExp ( "(\\bimport\\s+)" + t + "(?:[A-Z]\\w*|\\*)(?=\\s*;)" ) , lookbehind : ! 0 , inside : { namespace : s . inside . namespace , punctuation : /\./ , operator : /\*/ , "class-name" : /\w+/ } } , { pattern : RegExp ( "(\\bimport\\s+static\\s+)" + t + "(?:\\w+|\\*)(?=\\s*;)" ) , lookbehind : ! 0 , alias : "static" , inside : { namespace : s . inside . namespace , static : /\b\w+$/ , punctuation : /\./ , operator : /\*/ , "class-name" : /\w+/ } } ] , namespace : { pattern : RegExp ( "(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?" . replace ( /<keyword>/g , ( function ( ) { return n . source } ) ) ) , lookbehind : ! 0 , inside : { punctuation : /\./ } } } ) } ( Prism ) ;
! function ( a ) { var e = a . languages . javadoclike = { parameter : { pattern : /(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m , lookbehind : ! 0 } , keyword : { pattern : /(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m , lookbehind : ! 0 } , punctuation : /[{}]/ } ; Object . defineProperty ( e , "addSupport" , { value : function ( e , n ) { "string" == typeof e && ( e = [ e ] ) , e . forEach ( ( function ( e ) { ! function ( e , n ) { var t = "doc-comment" , r = a . languages [ e ] ; if ( r ) { var o = r [ t ] ; if ( o || ( o = ( r = a . languages . insertBefore ( e , "comment" , { "doc-comment" : { pattern : /(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/ , lookbehind : ! 0 , alias : "comment" } } ) ) [ t ] ) , o instanceof RegExp && ( o = r [ t ] = { pattern : o } ) , Array . isArray ( o ) ) for ( var i = 0 , s = o . length ; i < s ; i ++ ) o [ i ] instanceof RegExp && ( o [ i ] = { pattern : o [ i ] } ) , n ( o [ i ] ) ; else n ( o ) } } ( e , ( function ( a ) { a . inside || ( a . inside = { } ) , a . inside . rest = n } ) ) } ) ) } } ) , e . addSupport ( [ "java" , "javascript" , "php" ] , e ) } ( Prism ) ;
! function ( a ) { var e = /(^(?:[\t ]*(?:\*\s*)*))[^*\s].*$/m , n = "(?:\\b[a-zA-Z]\\w+\\s*\\.\\s*)*\\b[A-Z]\\w*(?:\\s*<mem>)?|<mem>" . replace ( /<mem>/g , ( function ( ) { return "#\\s*\\w+(?:\\s*\\([^()]*\\))?" } ) ) ; a . languages . javadoc = a . languages . extend ( "javadoclike" , { } ) , a . languages . insertBefore ( "javadoc" , "keyword" , { reference : { pattern : RegExp ( "(@(?:exception|link|linkplain|see|throws|value)\\s+(?:\\*\\s*)?)(?:" + n + ")" ) , lookbehind : ! 0 , inside : { function : { pattern : /(#\s*)\w+(?=\s*\()/ , lookbehind : ! 0 } , field : { pattern : /(#\s*)\w+/ , lookbehind : ! 0 } , namespace : { pattern : /\b(?:[a-z]\w*\s*\.\s*)+/ , inside : { punctuation : /\./ } } , "class-name" : /\b[A-Z]\w*/ , keyword : a . languages . java . keyword , punctuation : /[#()[\],.]/ } } , "class-name" : { pattern : /(@param\s+)<[A-Z]\w*>/ , lookbehind : ! 0 , inside : { punctuation : /[.<>]/ } } , "code-section" : [ { pattern : /(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/ , lookbehind : ! 0 , inside : { code : { pattern : e , lookbehind : ! 0 , inside : a . languages . java , alias : "language-java" } } } , { pattern : /(<(code|pre|tt)>(?!<code>)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/ , lookbehind : ! 0 , inside : { line : { pattern : e , lookbehind : ! 0 , inside : { tag : a . languages . markup . tag , entity : a . languages . markup . entity , code : { pattern : /.+/ , inside : a . languages . java , alias : "language-java" } } } } } ] , tag : a . languages . markup . tag , entity : a . languages . markup . entity } ) , a . languages . javadoclike . addSupport ( "java" , a . languages . javadoc ) } ( Prism ) ;
Prism . languages . javastacktrace = { summary : { pattern : /^([\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?::.*)?$/m , lookbehind : ! 0 , inside : { keyword : { pattern : /^([\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m , lookbehind : ! 0 } , string : { pattern : /^(\s*)"[^"]*"/ , lookbehind : ! 0 } , exceptions : { pattern : /^(:?\s*)[\w$.]+(?=:|$)/ , lookbehind : ! 0 , inside : { "class-name" : /[\w$]+$/ , namespace : /\b[a-z]\w*\b/ , punctuation : /\./ } } , message : { pattern : /(:\s*)\S.*/ , lookbehind : ! 0 , alias : "string" } , punctuation : /:/ } } , "stack-frame" : { pattern : /^([\t ]*)at (?:[\w$./]|@[\w$.+-]*\/)+(?:<init>)?\([^()]*\)/m , lookbehind : ! 0 , inside : { keyword : { pattern : /^(\s*)at(?= )/ , lookbehind : ! 0 } , source : [ { pattern : /(\()\w+\.\w+:\d+(?=\))/ , lookbehind : ! 0 , inside : { file : /^\w+\.\w+/ , punctuation : /:/ , "line-number" : { pattern : /\b\d+\b/ , alias : "number" } } } , { pattern : /(\()[^()]*(?=\))/ , lookbehind : ! 0 , inside : { keyword : /^(?:Native Method|Unknown Source)$/ } } ] , "class-name" : /[\w$]+(?=\.(?:<init>|[\w$]+)\()/ , function : /(?:<init>|[\w$]+)(?=\()/ , "class-loader" : { pattern : /(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/ , lookbehind : ! 0 , alias : "namespace" , inside : { punctuation : /\./ } } , module : { pattern : /([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/ , lookbehind : ! 0 , inside : { version : { pattern : /(@)[\s\S]+/ , lookbehind : ! 0 , alias : "number" } , punctuation : /[@.]/ } } , namespace : { pattern : /(?:\b[a-z]\w*\.)+/ , inside : { punctuation : /\./ } } , punctuation : /[()/.]/ } } , more : { pattern : /^([\t ]*)\.{3} \d+ [a-z]+(?: [a-z]+)*/m , lookbehind : ! 0 , inside : { punctuation : /\.{3}/ , number : /\d+/ , keyword : /\b[a-z]+(?: [a-z]+)*\b/ } } } ;
Prism . languages . json = { property : { pattern : /(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/ , lookbehind : ! 0 , greedy : ! 0 } , string : { pattern : /(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/ , lookbehind : ! 0 , greedy : ! 0 } , comment : { pattern : /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/ , greedy : ! 0 } , number : /-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i , punctuation : /[{}[\],]/ , operator : /:/ , boolean : /\b(?:false|true)\b/ , null : { pattern : /\bnull\b/ , alias : "keyword" } } , Prism . languages . webmanifest = Prism . languages . json ;
! function ( n ) { var e = /("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/ ; n . languages . json5 = n . languages . extend ( "json" , { property : [ { pattern : RegExp ( e . source + "(?=\\s*:)" ) , greedy : ! 0 } , { pattern : /(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/ , alias : "unquoted" } ] , string : { pattern : e , greedy : ! 0 } , number : /[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/ } ) } ( Prism ) ;
Prism . languages . log = { string : { pattern : /"(?:[^"\\\r\n]|\\.)*"|'(?![st] | \w)(?:[^'\\\r\n]|\\.)*'/ , greedy : ! 0 } , exception : { pattern : /(^|[^\w.])[a-z][\w.]*(?:Error|Exception):.*(?:(?:\r\n?|\n)[ \t]*(?:at[ \t].+|\.{3}.*|Caused by:.*))+(?:(?:\r\n?|\n)[ \t]*\.\.\. .*)?/ , lookbehind : ! 0 , greedy : ! 0 , alias : [ "javastacktrace" , "language-javastacktrace" ] , inside : Prism . languages . javastacktrace || { keyword : /\bat\b/ , function : /[a-z_][\w$]*(?=\()/ , punctuation : /[.:()]/ } } , level : [ { pattern : /\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\b/ , alias : [ "error" , "important" ] } , { pattern : /\b(?:WARN|WARNING|WRN)\b/ , alias : [ "warning" , "important" ] } , { pattern : /\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\b/ , alias : [ "info" , "keyword" ] } , { pattern : /\b(?:DBG|DEBUG|FINE)\b/ , alias : [ "debug" , "keyword" ] } , { pattern : /\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\b/ , alias : [ "trace" , "comment" ] } ] , property : { pattern : /((?:^|[\]|])[ \t]*)[a-z_](?:[\w-]|\b\/\b)*(?:[. ]\(?\w(?:[\w-]|\b\/\b)*\)?)*:(?=\s)/im , lookbehind : ! 0 } , separator : { pattern : /(^|[^-+])-{3,}|={3,}|\*{3,}|- - /m , lookbehind : ! 0 , alias : "comment" } , url : /\b(?:file|ftp|https?):\/\/[^\s|,;'"]*[^\s|,;'">.]/ , email : { pattern : /(^|\s)[-\w+.]+@[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)+(?=\s)/ , lookbehind : ! 0 , alias : "url" } , "ip-address" : { pattern : /\b(?:\d{1,3}(?:\.\d{1,3}){3})\b/ , alias : "constant" } , "mac-address" : { pattern : /\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\b/i , alias : "constant" } , domain : { pattern : /(^|\s)[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*\.[a-z][a-z0-9-]+(?=\s)/ , lookbehind : ! 0 , alias : "constant" } , uuid : { pattern : /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/i , alias : "constant" } , hash : { pattern : /\b(?:[a-f0-9]{32}){1,2}\b/i , alias : "constant" } , "file-path" : { pattern : /\b[a-z]:[\\/][^\s|,;:(){}\[\]"']+|(^|[\s:\[\](>|])\.{0,2}\/\w[^\s|,;:(){}\[\]"']*/i , lookbehind : ! 0 , greedy : ! 0 , alias : "string" } , date : { pattern : RegExp ( "\\b\\d{4}[-/]\\d{2}[-/]\\d{2}(?:T(?=\\d{1,2}:)|(?=\\s\\d{1,2}:))|\\b\\d{1,4}[-/ ](?:\\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\\d{2,4}T?\\b|\\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\\s{1,2}\\d{1,2}\\b" , "i" ) , alias : "number" } , time : { pattern : /\b\d{1,2}:\d{1,2}:\d{1,2}(?:[.,:]\d+)?(?:\s?[+-]\d{2}:?\d{2}|Z)?\b/ , alias : "number" } , boolean : /\b(?:false|null|true)\b/i , number : { pattern : /(^|[^.\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\d[\da-f]*(?:\.\d+)*(?:e[+-]?\d+)?[a-z]{0,3}\b)\b(?!\.\w)/i , lookbehind : ! 0 } , operator : /[;:?<=>~/@!$%&+\-|^(){}*#]/ , punctuation : /[\[\].,]/ } ;
! function ( n ) { function e ( n ) { return n = n . replace ( /<inner>/g , ( function ( ) { return "(?:\\\\.|[^\\\\\n\r]|(?:\n|\r\n?)(?![\r\n]))" } ) ) , RegExp ( "((?:^|[^\\\\])(?:\\\\{2})*)(?:" + n + ")" ) } var t = "(?:\\\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\\\|\r\n`])+" , a = "\\|?__(?:\\|__)+\\|?(?:(?:\n|\r\n?)|(?![^]))" . replace ( /__/g , ( function ( ) { return t } ) ) , i = "\\|?[ \t]*:?-{3,}:?[ \t]*(?:\\|[ \t]*:?-{3,}:?[ \t]*)+\\|?(?:\n|\r\n?)" ; n . languages . markdown = n . languages . extend ( "markup" , { } ) , n . languages . insertBefore ( "markdown" , "prolog" , { "front-matter-block" : { pattern : /(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/ , lookbehind : ! 0 , greedy : ! 0 , inside : { punctuation : /^---|---$/ , "front-matter" : { pattern : /\S+(?:\s+\S+)*/ , alias : [ "yaml" , "language-yaml" ] , inside : n . languages . yaml } } } , blockquote : { pattern : /^>(?:[\t ]*>)*/m , alias : "punctuation" } , table : { pattern : RegExp ( "^" + a + i + "(?:" + a + ")*" , "m" ) , inside : { "table-data-rows" : { pattern : RegExp ( "^(" + a + i + ")(?:" + a + ")*$" ) , lookbehind : ! 0 , inside : { "table-data" : { pattern : RegExp ( t ) , inside : n . languages . markdown } , punctuation : /\|/ } } , "table-line" : { pattern : RegExp ( "^(" + a + ")" + i + "$" ) , lookbehind : ! 0 , inside : { punctuation : /\||:?-{3,}:?/ } } , "table-header-row" : { pattern : RegExp ( "^" + a + "$" ) , inside : { "table-header" : { pattern : RegExp ( t ) , alias : "important" , inside : n . languages . markdown } , punctuation : /\|/ } } } } , code : [ { pattern : /((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/ , lookbehind : ! 0 , alias : "keyword" } , { pattern : /^```[\s\S]*?^```$/m , greedy : ! 0 , inside : { "code-block" : { pattern : /^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m , lookbehind : ! 0 } , "code-language" : { pattern : /^(```).+/ , lookbehind : ! 0 } , punctuation : /```/ } } ] , title : [ { pattern : /\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m , alias : "important" , inside : { punctuation : /==+$|--+$/ } } , { pattern : /(^\s*)#.+/m , lookbehind : ! 0 , alias : "important" , inside : { punctuation : /^#+|#+$/ } } ] , hr : { pattern : /(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m , lookbehind : ! 0 , alias : "punctuation" } , list : { pattern : /(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m , lookbehind : ! 0 , alias : "punctuation" } , "url-reference" : { pattern : /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/ , inside : { variable : { pattern : /^(!?\[)[^\]]+/ , lookbehind : ! 0 } , string : /(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/ , punctuation : /^[\[\]!:]|[<>]/ } , alias : "url" } , bold : { pattern : e ( "\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*" ) , lookbehind : ! 0 , greedy : ! 0 , inside : { content : { pattern : /(^..)[\s\S]+(?=..$)/ , lookbehind : ! 0 , inside : { } } , punctuation : /\*\*|__/ } } , italic : { pattern : e ( "\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*" ) , lookbehind : ! 0 , greedy : ! 0 , inside : { content : { pattern : /(^.)[\s\S]+(?=.$)/ , lookbehind : ! 0 , inside : { } } , punctuation : /[*_]/ } } , strike : { pattern : e ( "(~~?)(?:(?!~)<inner>)+\\2" ) , lookbehind : ! 0 , greedy : ! 0 , inside : { content : { pattern : /(^~~?)[\s\S]+(?=\1$)/ , lookbehind : ! 0 , inside : { } } , punctuation : /~~?/ } } , "code-snippet" : { pattern : /(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/ , lookbehind : ! 0 , greedy : ! 0 , alias : [ "code" , "keyword" ] } , url : { pattern : e ( '!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \t]?\\[(?:(?!\\])<inner>)+\\])' ) , lookbehind : ! 0 , greedy : ! 0 , inside : { operator : /^!/ , content : { pattern : /(^\[)[^\]]+(?=\])/ , lookbehind : ! 0 , inside : { } } , variable : { pattern : /(^\][ \t]?\[)[^\]]+(?=\]$)/ , lookbehind : ! 0 } , url : { pattern : /(^\]\()[^\s)]+/ , lookbehind : ! 0 } , string : { pattern : /(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/ , lookbehind : ! 0 } } } } ) , [ "url" , "bold" , "italic" , "strike" ] . forEach ( ( function ( e ) { [ "url" , "bold" , "italic" , "strike" , "code-snippet" ] . forEach ( ( function ( t ) { e !== t && ( n . languages . markdown [ e ] . inside . content . inside [ t ] = n . languages . markdown [ t ] ) } ) ) } ) ) , n . hooks . add ( "after-tokenize" , ( function ( n ) { "markdown" !== n . language && "md" !== n . language || function n ( e ) { if ( e && "string" != typeof e ) for ( var t = 0 , a = e . length ; t < a ; t ++ ) { var i = e [ t ] ; if ( "code" === i . type ) { var r = i . content [ 1 ] , o = i . content [ 3 ] ; if ( r && o && "code-language" === r . type && "code-block" === o . type && "string" == typeof r . content ) { var l = r . content . replace ( /\b#/g , "sharp" ) . replace ( /\b\+\+/g , "pp" ) , s = "language-" + (
2023-12-06 11:44:14 -06:00
! function ( e ) { var n = /\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i ; e . languages . nginx = { comment : { pattern : /(^|[\s{};])#.*/ , lookbehind : ! 0 , greedy : ! 0 } , directive : { pattern : /(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/ , lookbehind : ! 0 , greedy : ! 0 , inside : { string : { pattern : /((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/ , lookbehind : ! 0 , greedy : ! 0 , inside : { escape : { pattern : /\\["'\\nrt]/ , alias : "entity" } , variable : n } } , comment : { pattern : /(\s)#.*/ , lookbehind : ! 0 , greedy : ! 0 } , keyword : { pattern : /^\S+/ , greedy : ! 0 } , boolean : { pattern : /(\s)(?:off|on)(?!\S)/ , lookbehind : ! 0 } , number : { pattern : /(\s)\d+[a-z]*(?!\S)/i , lookbehind : ! 0 } , variable : n } } , punctuation : /[{};]/ } } ( Prism ) ;
2023-08-27 18:05:38 -05:00
Prism . languages . nix = { comment : { pattern : /\/\*[\s\S]*?\*\/|#.*/ , greedy : ! 0 } , string : { pattern : /"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/ , greedy : ! 0 , inside : { interpolation : { pattern : /(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/ , lookbehind : ! 0 , inside : null } } } , url : [ /\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/ , { pattern : /([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/ , lookbehind : ! 0 } ] , antiquotation : { pattern : /\$(?=\{)/ , alias : "important" } , number : /\b\d+\b/ , keyword : /\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/ , function : /\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/ , boolean : /\b(?:false|true)\b/ , operator : /[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/ , punctuation : /[{}()[\].,:;]/ } , Prism . languages . nix . string . inside . interpolation . inside = Prism . languages . nix ;
Prism . languages . python = { comment : { pattern : /(^|[^\\])#.*/ , lookbehind : ! 0 , greedy : ! 0 } , "string-interpolation" : { pattern : /(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i , greedy : ! 0 , inside : { interpolation : { pattern : /((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/ , lookbehind : ! 0 , inside : { "format-spec" : { pattern : /(:)[^:(){}]+(?=\}$)/ , lookbehind : ! 0 } , "conversion-option" : { pattern : /![sra](?=[:}]$)/ , alias : "punctuation" } , rest : null } } , string : /[\s\S]+/ } } , "triple-quoted-string" : { pattern : /(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i , greedy : ! 0 , alias : "string" } , string : { pattern : /(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i , greedy : ! 0 } , function : { pattern : /((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g , lookbehind : ! 0 } , "class-name" : { pattern : /(\bclass\s+)\w+/i , lookbehind : ! 0 } , decorator : { pattern : /(^[\t ]*)@\w+(?:\.\w+)*/m , lookbehind : ! 0 , alias : [ "annotation" , "punctuation" ] , inside : { punctuation : /\./ } } , keyword : /\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/ , builtin : /\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/ , boolean : /\b(?:False|None|True)\b/ , number : /\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i , operator : /[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/ , punctuation : /[{}[\];(),.:]/ } , Prism . languages . python [ "string-interpolation" ] . inside . interpolation . inside . rest = Prism . languages . python , Prism . languages . py = Prism . languages . python ;
! function ( e ) { for ( var a = "/\\*(?:[^*/]|\\*(?!/)|/(?!\\*)|<self>)*\\*/" , t = 0 ; t < 2 ; t ++ ) a = a . replace ( /<self>/g , ( function ( ) { return a } ) ) ; a = a . replace ( /<self>/g , ( function ( ) { return "[^\\s\\S]" } ) ) , e . languages . rust = { comment : [ { pattern : RegExp ( "(^|[^\\\\])" + a ) , lookbehind : ! 0 , greedy : ! 0 } , { pattern : /(^|[^\\:])\/\/.*/ , lookbehind : ! 0 , greedy : ! 0 } ] , string : { pattern : /b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/ , greedy : ! 0 } , char : { pattern : /b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/ , greedy : ! 0 } , attribute : { pattern : /#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/ , greedy : ! 0 , alias : "attr-name" , inside : { string : null } } , "closure-params" : { pattern : /([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/ , lookbehind : ! 0 , greedy : ! 0 , inside : { "closure-punctuation" : { pattern : /^\||\|$/ , alias : "punctuation" } , rest : null } } , "lifetime-annotation" : { pattern : /'\w+/ , alias : "symbol" } , "fragment-specifier" : { pattern : /(\$\w+:)[a-z]+/ , lookbehind : ! 0 , alias : "punctuation" } , variable : /\$\w+/ , "function-definition" : { pattern : /(\bfn\s+)\w+/ , lookbehind : ! 0 , alias : "function" } , "type-definition" : { pattern : /(\b(?:enum|struct|trait|type|union)\s+)\w+/ , lookbehind : ! 0 , alias : "class-name" } , "module-declaration" : [ { pattern : /(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/ , lookbehind : ! 0 , alias : "namespace" } , { pattern : /(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/ , lookbehind : ! 0 , alias : "namespace" , inside : { punctuation : /::/ } } ] , keyword : [ /\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/ , /\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/ ] , function : /\b[a-z_]\w*(?=\s*(?:::\s*<|\())/ , macro : { pattern : /\b\w+!/ , alias : "property" } , constant : /\b[A-Z_][A-Z_\d]+\b/ , "class-name" : /\b[A-Z]\w*\b/ , namespace : { pattern : /(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/ , inside : { punctuation : /::/ } } , number : /\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/ , boolean : /\b(?:false|true)\b/ , punctuation : /->|\.\.=|\.{1,3}|::|[{}[\];(),:]/ , operator : /[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/ } , e . languages . rust [ "closure-params" ] . inside . rest = e . languages . rust , e . languages . rust . attribute . inside . string = e . languages . rust . string } ( Prism ) ;
Prism . languages . vim = { string : /"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/ , comment : /".*/ , function : /\b\w+(?=\()/ , keyword : / \ b ( ? : N | N e x t | P | P r i n t | X | X M L e n t | X M L n s | a b | a b b r e v i a t e | a b c | a b c l e a r | a b o | a b o v e l e f t | a l | a l l | a r | a r g a | a r g a d d | a r g d | a r g d e l e t e | a r g d o | a r g e | a r g e d i t | a r g g | a r g g l o b a l | a r g l | a r g l o c a l | a r g s | a r g u | a r g u m e n t | a s | a s c i i | b | b N | b N e x t | b a | b a d | b a d d | b a l l | b d | b d e l e t e | b e | b e l | b e l o w r i g h t | b f | b f i r s t | b l | b l a s t | b m | b m o d i f i e d | b n | b n e x t | b o | b o t r i g h t | b p | b p r e v i o u s | b r | b r e a | b r e a k | b r e a k a | b r e a k a d d | b r e a k d | b r e a k d e l | b r e a k l | b r e a k l i s t | b r e w i n d | b r o | b r o w s e | b u f d o | b u f f e r | b u f f e r s | b u n | b u n l o a d | b w | b w i p e o u t | c | c N | c N e x t | c N f c N f i l e | c a | c a b b r e v | c a b c | c a b c l e a r | c a d | c a d d b | c a d d b u f f e r | c a d d e x p r | c a d d f | c a d d f i l e | c a l | c a l l | c a t | c a t c h | c b | c b u f f e r | c c | c c l | c c l o s e | c d | c e | c e n t e r | c e x | c e x p r | c f | c f i l e | c f i r | c f i r s t | c g | c g e t b | c g e t b u f f e r | c g e t e | c g e t e x p r | c g e t f i l e | c h a n g e | c h a n g e s | c h d | c h d i r | c h e | c h e c k p a t h | c h e c k t | c h e c k t i m e | c l | c l a | c l a s t | c l i s t | c l o | c l o s e | c m a p c | c m a p c l e a r | c n | c n e w | c n e w e r | c n e x t | c n f | c n f i l e | c n o r e a | c n o r e a b b r e v | c o | c o l | c o l d e r | c o l o | c o l o r s c h e m e | c o m c | c o m c l e a r | c o m p | c o m p i l e r | c o n | c o n f | c o n f i r m | c o n t i n u e | c o p e | c o p e n | c o p y | c p | c p f | c p f i l e | c p r e v i o u s | c q | c q u i t | c r | c r e w i n d | c u | c u n a | c u n a b b r e v | c u n m a p | c w | c w i n d o w | d | d e b u g g | d e b u g g r e e d y | d e l c | d e l c o m m a n d | d e l e t e | d e l f | d e l f u n c t i o n | d e l m | d e l m a r k s | d i | d i f f g | d i f f g e t | d i f f o f f | d i f f p a t c h | d i f f p u | d i f f p u t | d i f f s p l i t | d i f f t h i s | d i f f u | d i f f u p d a t e | d i g | d i g r a p h s | d i s p l a y | d j | d j u m p | d l | d l i s t | d r | d r o p | d s | d s e a r c h | d s p | d s p l i t | e | e a r l i e r | e c h o e | e c h o e r r | e c h o m | e c h o m s g | e c h o n | e d i t | e l | e l s e | e l s e i | e l s e i f | e m | e m e n u | e n | e n d f | e n d f o | e n d f o r | e n d f u n | e n d f u n c t i o n | e n d i f | e n d t | e n d t r y | e n d w | e n d w h i l e | e n e | e n e w | e x | e x i | e x i t | e x u | e x u s a g e | f | f i l e | f i l e s | f i l e t y p e | f i n | f i n a | f i n a l l y | f i n d | f i n i | f i n i s h | f i r | f i r s t | f i x | f i x d e l | f o | f o l d | f o l d c | f o l d c l o s e | f o l d d | f o l d d o c | f o l d d o c l o s e d | f o l d d o o p e n | f o l d o | f o l d o p e n | f o r | f u | f u n | f u n c t i o n | g o | g o t o | g r | g r e p | g r e p a | g r e p a d d | h | h a | h a r d c o p y | h e l p | h e l p f | h e l p f i n d | h e l p g | h e l p g r e p | h e l p t | h e l p t a g s | h i d | h i d e | h i s | h i s t o r y | i a | i a b b r e v | i a b c | i a b c l e a r | i f | i j | i j u m p | i l | i l i s t | i m a p c | i m a p c l e a r | i n | i n o r e a | i n o r e a b b r e v | i s e a r c h | i s p | i s p l i t | i u | i u n a | i u n a b b r e v | i u n m a p | j | j o i n | j u | j u m p s | k | k e e | k e e p a l t | k e e p j | k e e p j u m p s | k e e p m a r k s | l | l N | l N e x t | l N f | l N f i l e | l a | l a d | l a d d b | l a d d b u f f e r | l a d d e x p r | l a d d f | l a d d f i l e | l a n | l a n g u a g e | l a s t | l a t e r | l b | l b u f f e r | l c | l c d | l c h | l c h d i r | l c l | l c l o s e | l e f t | l e f t a | l e f t a b o v e | l e t | l e x | l e x p r | l f | l f i l e | l f i r | l f i r s t | l g | l g e t b | l g e t b u f f e r | l g e t e | l g e t e x p r | l g e t f i l e | l g r | l g r e p | l g r e p a | l g r e p a d d | l h | l h e l p g r e p | l i s t | l l | l l a | l l a s t | l l i | l l i s t | l m | l m a k | l m a k e | l m a p | l m a p c | l m a p c l e a r | l n | l n e | l n e w | l n e w e r | l n e x t | l n f | l n f i l e | l n o r e m a p | l o | l o a d v i e w | l o c | l o c k m a r k s | l o c k v | l o c k v a r | l o l | l o l d e r | l o p | l o p e n | l p | l p f | l p f i l e | l p r e v i o u s | l r | l r e w i n d | l s | l t | l t a g | l u | l u n m a p | l v | l v i m g r e p | l v i m g r e p a | l v i m g r e p a d d | l w | l w i n d o w | m | m a | m a k | m a k e | m a r k | m a r k s | m a t | m a t c h | m e n u t | m e n u t r a n s l a t e | m k | m k e x r c | m k s | m k s e s s i o n | m k s p | m k s p e l l | m k v | m k v i e | m k v i e w | m k v i m r c | m o d | m o d e | m o v e | m z | m z f | m z f i l e | m z s c h e m e | n | n b k e y | n e w | n e x t | n m a p c | n m a p c l e a r | n o h | n o h l s e a r c h | n o r e a | n o r e a b b r e v | n u | n u m b e r | n u n | n u n m a p | o | o m a p c | o m a p c l e a r | o n | o n l y | o p e n | o p t | o p t i o n s | o u | o u n m a p | p | p c | p c l o s e | p e | p e d | p e d i t | p e r l | p e r l d | p e r l d o | p o | p o p | p o p u | p o p u p | p p | p p o p | p r e | p r e s e r v e | p r e v | p r e v i o u s | p r i n t | p r o f | p r o f d | p r o f d e l | p r o f i l e | p r o m p t f | p r o m p t f i n d | p r o m p t r | p r o m p t r e p l | p s | p s e a r c h | p t N | p t N e x t | p t a | p t a g | p t f | p t f i r s t | p t j | p t j u m p | p t l | p t l a s t | p t n | p t n e x t | p t p | p t p r e v i o u s | p t r | p t r e w i n d | p t s | p t s e l e c t | p u | p u t | p w | p w d | p y | p y f | p y f i l e | p y t h o n | q | q a | q a l l | q u i t | q u i t a | q u i t a l l | r | r e a d | r e c | r e c o v e r | r e d | r e d i | r e d i r | r e d o | r e d r | r e d r a w | r e d r a w s | r e d r a w s t a t u s | r e g | r e g i s t e r s | r e s | r e s i z e | r e t | r e t a b | r e t u | r e t u r n | r e w | r e w i n d | r i | r i g h t | r i g h t b | r i g h t b e l o w | r u | r u b | r u b y | r u b y d | r u b y d o | r u b y f | r u b y f i l e | r u n t i m e | r v | r v i m i n f o | s N | s N e x t | s a | s a l | s a l l | s a n | s a n d b o x | s a r g u m e n t | s a v | s a v e a s | s b | s b N | s b N e x t | s b a | s b a l l | s b f | s b f i r s t | s b l | s b l a s t | s b m | s b m o d i f i e d | s b n | s b n e x t | s b p | s b p r e v i o u s | s b r | s b r e w i n d | s b u f f e r | s c r i p | s c r i p t e | s c r i p t e n c o d i n g | s c r i p t n a m e s | s e | s e t | s e t f | s e t f i l e t y p e | s e t g | s e t g l o b a l | s e t l | s e t l o c a l | s f | s f i n d | s f i r | s f i r s t | s h | s h e l l | s i g n | s i l | s i l e n t | s i m | s i m a l t | s l | s l a | s l a s t | s l e e p | s m | s m a g i c | s m a p | s m a p c | s m a p c l e a r | s m e | s m e n u | s n | s n e x t | s n i | s n i f f | s n o | s n o m a g i c | s n o r | s n o r e m a p | s n o r e m e | s n o r e m e n u | s o | s o r | s o r t | s o u r c e | s p | s p e | s p e l l d | s p e l l d u m p | s p e l l g o o d | s p e l l i | s p e l l i n f o | s p e l l r | s p e l l r e p a l l | s p e l l u | s p e l l u n d o | s p e l l w | s p e l l w r o n g | s p l i t | s p r | s p r e v i o u s | s r e | s r e w i n d | s t | s t a | s t a g | s t a r | s t a r t g | s t a r t g r e p l a c e | s t a r t i n s e r t | s t a r t r | s t a r t r e p l a c e | s t j | s t j u m p | s t o p | s t o p i | s t o p i n s e r t
Prism . languages . wiki = Prism . languages . extend ( "markup" , { "block-comment" : { pattern : /(^|[^\\])\/\*[\s\S]*?\*\// , lookbehind : ! 0 , alias : "comment" } , heading : { pattern : /^(=+)[^=\r\n].*?\1/m , inside : { punctuation : /^=+|=+$/ , important : /.+/ } } , emphasis : { pattern : /('{2,5}).+?\1/ , inside : { "bold-italic" : { pattern : /(''''').+?(?=\1)/ , lookbehind : ! 0 , alias : [ "bold" , "italic" ] } , bold : { pattern : /(''')[^'](?:.*?[^'])?(?=\1)/ , lookbehind : ! 0 } , italic : { pattern : /('')[^'](?:.*?[^'])?(?=\1)/ , lookbehind : ! 0 } , punctuation : /^''+|''+$/ } } , hr : { pattern : /^-{4,}/m , alias : "punctuation" } , url : [ /ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i , /\[\[.+?\]\]|\[.+?\]/ ] , variable : [ /__[A-Z]+__/ , /\{{3}.+?\}{3}/ , /\{\{.+?\}\}/ ] , symbol : [ /^#redirect/im , /~{3,5}/ ] , "table-tag" : { pattern : /((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m , lookbehind : ! 0 , inside : { "table-bar" : { pattern : /\|$/ , alias : "punctuation" } , rest : Prism . languages . markup . tag . inside } } , punctuation : /^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m } ) , Prism . languages . insertBefore ( "wiki" , "tag" , { nowiki : { pattern : /<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i , inside : { tag : { pattern : /<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i , inside : Prism . languages . markup . tag . inside } } } } ) ;
! function ( ) { if ( "undefined" != typeof Prism && "undefined" != typeof document ) { var e = "line-numbers" , n = /\n(?!$)/g , t = Prism . plugins . lineNumbers = { getLine : function ( n , t ) { if ( "PRE" === n . tagName && n . classList . contains ( e ) ) { var i = n . querySelector ( ".line-numbers-rows" ) ; if ( i ) { var r = parseInt ( n . getAttribute ( "data-start" ) , 10 ) || 1 , s = r + ( i . children . length - 1 ) ; t < r && ( t = r ) , t > s && ( t = s ) ; var l = t - r ; return i . children [ l ] } } } , resize : function ( e ) { r ( [ e ] ) } , assumeViewportIndependence : ! 0 } , i = void 0 ; window . addEventListener ( "resize" , ( function ( ) { t . assumeViewportIndependence && i === window . innerWidth || ( i = window . innerWidth , r ( Array . prototype . slice . call ( document . querySelectorAll ( "pre.line-numbers" ) ) ) ) } ) ) , Prism . hooks . add ( "complete" , ( function ( t ) { if ( t . code ) { var i = t . element , s = i . parentNode ; if ( s && /pre/i . test ( s . nodeName ) && ! i . querySelector ( ".line-numbers-rows" ) && Prism . util . isActive ( i , e ) ) { i . classList . remove ( e ) , s . classList . add ( e ) ; var l , o = t . code . match ( n ) , a = o ? o . length + 1 : 1 , u = new Array ( a + 1 ) . join ( "<span></span>" ) ; ( l = document . createElement ( "span" ) ) . setAttribute ( "aria-hidden" , "true" ) , l . className = "line-numbers-rows" , l . innerHTML = u , s . hasAttribute ( "data-start" ) && ( s . style . counterReset = "linenumber " + ( parseInt ( s . getAttribute ( "data-start" ) , 10 ) - 1 ) ) , t . element . appendChild ( l ) , r ( [ s ] ) , Prism . hooks . run ( "line-numbers" , t ) } } } ) ) , Prism . hooks . add ( "line-numbers" , ( function ( e ) { e . plugins = e . plugins || { } , e . plugins . lineNumbers = ! 0 } ) ) } function r ( e ) { if ( 0 != ( e = e . filter ( ( function ( e ) { var n , t = ( n = e , n ? window . getComputedStyle ? getComputedStyle ( n ) : n . currentStyle || null : null ) [ "white-space" ] ; return "pre-wrap" === t || "pre-line" === t } ) ) ) . length ) { var t = e . map ( ( function ( e ) { var t = e . querySelector ( "code" ) , i = e . querySelector ( ".line-numbers-rows" ) ; if ( t && i ) { var r = e . querySelector ( ".line-numbers-sizer" ) , s = t . textContent . split ( n ) ; r || ( ( r = document . createElement ( "span" ) ) . className = "line-numbers-sizer" , t . appendChild ( r ) ) , r . innerHTML = "0" , r . style . display = "block" ; var l = r . getBoundingClientRect ( ) . height ; return r . innerHTML = "" , { element : e , lines : s , lineHeights : [ ] , oneLinerHeight : l , sizer : r } } } ) ) . filter ( Boolean ) ; t . forEach ( ( function ( e ) { var n = e . sizer , t = e . lines , i = e . lineHeights , r = e . oneLinerHeight ; i [ t . length - 1 ] = void 0 , t . forEach ( ( function ( e , t ) { if ( e && e . length > 1 ) { var s = n . appendChild ( document . createElement ( "span" ) ) ; s . style . display = "block" , s . textContent = e } else i [ t ] = r } ) ) } ) ) , t . forEach ( ( function ( e ) { for ( var n = e . sizer , t = e . lineHeights , i = 0 , r = 0 ; r < t . length ; r ++ ) void 0 === t [ r ] && ( t [ r ] = n . children [ i ++ ] . getBoundingClientRect ( ) . height ) } ) ) , t . forEach ( ( function ( e ) { var n = e . sizer , t = e . element . querySelector ( ".line-numbers-rows" ) ; n . style . display = "none" , n . innerHTML = "" , e . lineHeights . forEach ( ( function ( e , n ) { t . children [ n ] . style . height = e + "px" } ) ) } ) ) } } } ( ) ;
! function ( ) { if ( "undefined" != typeof Prism && "undefined" != typeof document ) { var e = [ ] , t = { } , n = function ( ) { } ; Prism . plugins . toolbar = { } ; var a = Prism . plugins . toolbar . registerButton = function ( n , a ) { var r ; r = "function" == typeof a ? a : function ( e ) { var t ; return "function" == typeof a . onClick ? ( ( t = document . createElement ( "button" ) ) . type = "button" , t . addEventListener ( "click" , ( function ( ) { a . onClick . call ( this , e ) } ) ) ) : "string" == typeof a . url ? ( t = document . createElement ( "a" ) ) . href = a . url : t = document . createElement ( "span" ) , a . className && t . classList . add ( a . className ) , t . textContent = a . text , t } , n in t ? console . warn ( 'There is a button with the key "' + n + '" registered already.' ) : e . push ( t [ n ] = r ) } , r = Prism . plugins . toolbar . hook = function ( a ) { var r = a . element . parentNode ; if ( r && /pre/i . test ( r . nodeName ) && ! r . parentNode . classList . contains ( "code-toolbar" ) ) { var o = document . createElement ( "div" ) ; o . classList . add ( "code-toolbar" ) , r . parentNode . insertBefore ( o , r ) , o . appendChild ( r ) ; var i = document . createElement ( "div" ) ; i . classList . add ( "toolbar" ) ; var l = e , d = function ( e ) { for ( ; e ; ) { var t = e . getAttribute ( "data-toolbar-order" ) ; if ( null != t ) return ( t = t . trim ( ) ) . length ? t . split ( /\s*,\s*/g ) : [ ] ; e = e . parentElement } } ( a . element ) ; d && ( l = d . map ( ( function ( e ) { return t [ e ] || n } ) ) ) , l . forEach ( ( function ( e ) { var t = e ( a ) ; if ( t ) { var n = document . createElement ( "div" ) ; n . classList . add ( "toolbar-item" ) , n . appendChild ( t ) , i . appendChild ( n ) } } ) ) , o . appendChild ( i ) } } ; a ( "label" , ( function ( e ) { var t = e . element . parentNode ; if ( t && /pre/i . test ( t . nodeName ) && t . hasAttribute ( "data-label" ) ) { var n , a , r = t . getAttribute ( "data-label" ) ; try { a = document . querySelector ( "template#" + r ) } catch ( e ) { } return a ? n = a . content : ( t . hasAttribute ( "data-url" ) ? ( n = document . createElement ( "a" ) ) . href = t . getAttribute ( "data-url" ) : n = document . createElement ( "span" ) , n . textContent = r ) , n } } ) ) , Prism . hooks . add ( "complete" , r ) } } ( ) ;
! function ( ) { function t ( t ) { var e = document . createElement ( "textarea" ) ; e . value = t . getText ( ) , e . style . top = "0" , e . style . left = "0" , e . style . position = "fixed" , document . body . appendChild ( e ) , e . focus ( ) , e . select ( ) ; try { var o = document . execCommand ( "copy" ) ; setTimeout ( ( function ( ) { o ? t . success ( ) : t . error ( ) } ) , 1 ) } catch ( e ) { setTimeout ( ( function ( ) { t . error ( e ) } ) , 1 ) } document . body . removeChild ( e ) } "undefined" != typeof Prism && "undefined" != typeof document && ( Prism . plugins . toolbar ? Prism . plugins . toolbar . registerButton ( "copy-to-clipboard" , ( function ( e ) { var o = e . element , n = function ( t ) { var e = { copy : "Copy" , "copy-error" : "Press Ctrl+C to copy" , "copy-success" : "Copied!" , "copy-timeout" : 5e3 } ; for ( var o in e ) { for ( var n = "data-prismjs-" + o , c = t ; c && ! c . hasAttribute ( n ) ; ) c = c . parentElement ; c && ( e [ o ] = c . getAttribute ( n ) ) } return e } ( o ) , c = document . createElement ( "button" ) ; c . className = "copy-to-clipboard-button" , c . setAttribute ( "type" , "button" ) ; var r = document . createElement ( "span" ) ; return c . appendChild ( r ) , u ( "copy" ) , function ( e , o ) { e . addEventListener ( "click" , ( function ( ) { ! function ( e ) { navigator . clipboard ? navigator . clipboard . writeText ( e . getText ( ) ) . then ( e . success , ( function ( ) { t ( e ) } ) ) : t ( e ) } ( o ) } ) ) } ( c , { getText : function ( ) { return o . textContent } , success : function ( ) { u ( "copy-success" ) , i ( ) } , error : function ( ) { u ( "copy-error" ) , setTimeout ( ( function ( ) { ! function ( t ) { window . getSelection ( ) . selectAllChildren ( t ) } ( o ) } ) , 1 ) , i ( ) } } ) , c ; function i ( ) { setTimeout ( ( function ( ) { u ( "copy" ) } ) , n [ "copy-timeout" ] ) } function u ( t ) { r . textContent = n [ t ] , c . setAttribute ( "data-copy-state" , t ) } } ) ) : console . warn ( "Copy to Clipboard plugin loaded before Toolbar plugin." ) ) } ( ) ;