UNPKG

75.6 kBJavaScriptView Raw
1ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),TextHighlightRules=require("./text_highlight_rules").TextHighlightRules,DocCommentHighlightRules=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},DocCommentHighlightRules.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};oop.inherits(DocCommentHighlightRules,TextHighlightRules),DocCommentHighlightRules.getTagRule=function(start){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},DocCommentHighlightRules.getStartRule=function(start){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:start}},DocCommentHighlightRules.getEndRule=function(start){return{token:"comment.doc",regex:"\\*\\/",next:start}},exports.DocCommentHighlightRules=DocCommentHighlightRules})),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),DocCommentHighlightRules=require("./doc_comment_highlight_rules").DocCommentHighlightRules,TextHighlightRules=require("./text_highlight_rules").TextHighlightRules,identifierRe="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",JavaScriptHighlightRules=function(options){var keywordMapper=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),escapedRe="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[DocCommentHighlightRules.getStartRule("doc-start"),comments("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+identifierRe+")(\\.)(prototype)(\\.)("+identifierRe+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+identifierRe+")(\\.)("+identifierRe+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+identifierRe+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+identifierRe+")(\\.)("+identifierRe+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+identifierRe+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+identifierRe+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:keywordMapper,regex:identifierRe},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+identifierRe+")(\\.)("+identifierRe+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:identifierRe},{regex:"",token:"empty",next:"no_regex"}],start:[DocCommentHighlightRules.getStartRule("doc-start"),comments("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:identifierRe},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:escapedRe},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:escapedRe},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},options&&options.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(val,state,stack){if(this.next="{"==val?this.nextState:"","{"==val&&stack.length)stack.unshift("start",state);else if("}"==val&&stack.length&&(stack.shift(),this.next=stack.shift(),-1!=this.next.indexOf("string")||-1!=this.next.indexOf("jsx")))return"paren.quasi.end";return"{"==val?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:escapedRe},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),options&&0==options.jsx||JSX.call(this)),this.embedRules(DocCommentHighlightRules,"doc-",[DocCommentHighlightRules.getEndRule("no_regex")]),this.normalizeRules()};function JSX(){var tagRegex=identifierRe.replace("\\d","\\d\\-"),jsxTag={onMatch:function(val,state,stack){var offset="/"==val.charAt(1)?2:1;return 1==offset?(state!=this.nextState?stack.unshift(this.next,this.nextState,0):stack.unshift(this.next),stack[2]++):2==offset&&state==this.nextState&&(stack[1]--,(!stack[1]||stack[1]<0)&&(stack.shift(),stack.shift())),[{type:"meta.tag.punctuation."+(1==offset?"":"end-")+"tag-open.xml",value:val.slice(0,offset)},{type:"meta.tag.tag-name.xml",value:val.substr(offset)}]},regex:"</?"+tagRegex,next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(jsxTag);var jsxJsRule={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[jsxJsRule,jsxTag,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(value,currentState,stack){return currentState==stack[0]&&stack.shift(),2==value.length&&(stack[0]==this.nextState&&stack[1]--,(!stack[1]||stack[1]<0)&&stack.splice(0,2)),this.next=stack[0]||"start",[{type:this.token,value}]},nextState:"jsx"},jsxJsRule,comments("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:tagRegex},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},jsxTag],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function comments(next){return[{token:"comment",regex:/\/\*/,next:[DocCommentHighlightRules.getTagRule(),{token:"comment",regex:"\\*\\/",next:next||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[DocCommentHighlightRules.getTagRule(),{token:"comment",regex:"$|^",next:next||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}oop.inherits(JavaScriptHighlightRules,TextHighlightRules),exports.JavaScriptHighlightRules=JavaScriptHighlightRules})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(require,exports,module){"use strict";var Range=require("../range").Range,MatchingBraceOutdent=function(){};(function(){this.checkOutdent=function(line,input){return!!/^\s+$/.test(line)&&/^\s*\}/.test(input)},this.autoOutdent=function(doc,row){var match=doc.getLine(row).match(/^(\s*\})/);if(!match)return 0;var column=match[1].length,openBracePos=doc.findMatchingBracket({row,column});if(!openBracePos||openBracePos.row==row)return 0;var indent=this.$getIndent(doc.getLine(openBracePos.row));doc.replace(new Range(row,0,row,column-1),indent)},this.$getIndent=function(line){return line.match(/^\s*/)[0]}}).call(MatchingBraceOutdent.prototype),exports.MatchingBraceOutdent=MatchingBraceOutdent})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(require,exports,module){"use strict";var oop=require("../../lib/oop"),Range=require("../../range").Range,BaseFoldMode=require("./fold_mode").FoldMode,FoldMode=exports.FoldMode=function(commentRegex){commentRegex&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+commentRegex.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+commentRegex.end)))};oop.inherits(FoldMode,BaseFoldMode),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(session,foldStyle,row){var line=session.getLine(row);if(this.singleLineBlockCommentRe.test(line)&&!this.startRegionRe.test(line)&&!this.tripleStarBlockCommentRe.test(line))return"";var fw=this._getFoldWidgetBase(session,foldStyle,row);return!fw&&this.startRegionRe.test(line)?"start":fw},this.getFoldWidgetRange=function(session,foldStyle,row,forceMultiline){var match,line=session.getLine(row);if(this.startRegionRe.test(line))return this.getCommentRegionBlock(session,line,row);if(match=line.match(this.foldingStartMarker)){var i=match.index;if(match[1])return this.openingBracketBlock(session,match[1],row,i);var range=session.getCommentFoldRange(row,i+match[0].length,1);return range&&!range.isMultiLine()&&(forceMultiline?range=this.getSectionRange(session,row):"all"!=foldStyle&&(range=null)),range}if("markbegin"!==foldStyle&&(match=line.match(this.foldingStopMarker))){i=match.index+match[0].length;return match[1]?this.closingBracketBlock(session,match[1],row,i):session.getCommentFoldRange(row,i,-1)}},this.getSectionRange=function(session,row){for(var line=session.getLine(row),startIndent=line.search(/\S/),startRow=row,startColumn=line.length,endRow=row+=1,maxRow=session.getLength();++row<maxRow;){var indent=(line=session.getLine(row)).search(/\S/);if(-1!==indent){if(startIndent>indent)break;var subRange=this.getFoldWidgetRange(session,"all",row);if(subRange){if(subRange.start.row<=startRow)break;if(subRange.isMultiLine())row=subRange.end.row;else if(startIndent==indent)break}endRow=row}}return new Range(startRow,startColumn,endRow,session.getLine(endRow).length)},this.getCommentRegionBlock=function(session,line,row){for(var startColumn=line.search(/\s*$/),maxRow=session.getLength(),startRow=row,re=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,depth=1;++row<maxRow;){line=session.getLine(row);var m=re.exec(line);if(m&&(m[1]?depth--:depth++,!depth))break}if(row>startRow)return new Range(startRow,startColumn,row,line.length)}}.call(FoldMode.prototype)})),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),TextMode=require("./text").Mode,JavaScriptHighlightRules=require("./javascript_highlight_rules").JavaScriptHighlightRules,MatchingBraceOutdent=require("./matching_brace_outdent").MatchingBraceOutdent,WorkerClient=require("../worker/worker_client").WorkerClient,CstyleBehaviour=require("./behaviour/cstyle").CstyleBehaviour,CStyleFoldMode=require("./folding/cstyle").FoldMode,Mode=function(){this.HighlightRules=JavaScriptHighlightRules,this.$outdent=new MatchingBraceOutdent,this.$behaviour=new CstyleBehaviour,this.foldingRules=new CStyleFoldMode};oop.inherits(Mode,TextMode),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(state,line,tab){var indent=this.$getIndent(line),tokenizedLine=this.getTokenizer().getLineTokens(line,state),tokens=tokenizedLine.tokens,endState=tokenizedLine.state;if(tokens.length&&"comment"==tokens[tokens.length-1].type)return indent;if("start"==state||"no_regex"==state)(match=line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/))&&(indent+=tab);else if("doc-start"==state){if("start"==endState||"no_regex"==endState)return"";var match;(match=line.match(/^\s*(\/?)\*/))&&(match[1]&&(indent+=" "),indent+="* ")}return indent},this.checkOutdent=function(state,line,input){return this.$outdent.checkOutdent(line,input)},this.autoOutdent=function(state,doc,row){this.$outdent.autoOutdent(doc,row)},this.createWorker=function(session){var worker=new WorkerClient(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return worker.attachToDocument(session.getDocument()),worker.on("annotate",(function(results){session.setAnnotations(results.data)})),worker.on("terminate",(function(){session.clearAnnotations()})),worker},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(Mode.prototype),exports.Mode=Mode})),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),TextHighlightRules=(require("../lib/lang"),require("./text_highlight_rules").TextHighlightRules),supportType=exports.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",supportFunction=exports.supportFunction="rgb|rgba|url|attr|counter|counters",supportConstant=exports.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",supportConstantColor=exports.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|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|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",supportConstantFonts=exports.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",numRe=exports.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",pseudoElements=exports.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",pseudoClasses=exports.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",CssHighlightRules=function(){var keywordMapper=this.createKeywordMapper({"support.function":supportFunction,"support.constant":supportConstant,"support.type":supportType,"support.constant.color":supportConstantColor,"support.constant.fonts":supportConstantFonts},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:numRe},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+numRe+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:numRe},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:pseudoElements},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:pseudoClasses},{include:"url"},{token:keywordMapper,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};oop.inherits(CssHighlightRules,TextHighlightRules),exports.CssHighlightRules=CssHighlightRules})),ace.define("ace/mode/css_completions",["require","exports","module"],(function(require,exports,module){"use strict";var propertyMap={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},CssCompletions=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var style=document.createElement("c").style;for(var i in style)if("string"==typeof style[i]){var name=i.replace(/[A-Z]/g,(function(x){return"-"+x.toLowerCase()}));propertyMap.hasOwnProperty(name)||(propertyMap[name]=1)}}this.completionsDefined=!0},this.getCompletions=function(state,session,pos,prefix){if(this.completionsDefined||this.defineCompletions(),"ruleset"===state||"ace/mode/scss"==session.$mode.$id){var line=session.getLine(pos.row).substr(0,pos.column);return/:[^;]+$/.test(line)?(/([\w\-]+):[^:]*$/.test(line),this.getPropertyValueCompletions(state,session,pos,prefix)):this.getPropertyCompletions(state,session,pos,prefix)}return[]},this.getPropertyCompletions=function(state,session,pos,prefix){return Object.keys(propertyMap).map((function(property){return{caption:property,snippet:property+": $0;",meta:"property",score:1e6}}))},this.getPropertyValueCompletions=function(state,session,pos,prefix){var line=session.getLine(pos.row).substr(0,pos.column),property=(/([\w\-]+):[^:]*$/.exec(line)||{})[1];if(!property)return[];var values=[];return property in propertyMap&&"object"==typeof propertyMap[property]&&(values=Object.keys(propertyMap[property])),values.map((function(value){return{caption:value,snippet:value,meta:"property value",score:1e6}}))}}).call(CssCompletions.prototype),exports.CssCompletions=CssCompletions})),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],(function(require,exports,module){"use strict";var oop=require("../../lib/oop"),CstyleBehaviour=(require("../behaviour").Behaviour,require("./cstyle").CstyleBehaviour),TokenIterator=require("../../token_iterator").TokenIterator,CssBehaviour=function(){this.inherit(CstyleBehaviour),this.add("colon","insertion",(function(state,action,editor,session,text){if(":"===text&&editor.selection.isEmpty()){var cursor=editor.getCursorPosition(),iterator=new TokenIterator(session,cursor.row,cursor.column),token=iterator.getCurrentToken();if(token&&token.value.match(/\s+/)&&(token=iterator.stepBackward()),token&&"support.type"===token.type){var line=session.doc.getLine(cursor.row);if(":"===line.substring(cursor.column,cursor.column+1))return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(line.substring(cursor.column)))return{text:":;",selection:[1,1]}}}})),this.add("colon","deletion",(function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&":"===selected){var cursor=editor.getCursorPosition(),iterator=new TokenIterator(session,cursor.row,cursor.column),token=iterator.getCurrentToken();if(token&&token.value.match(/\s+/)&&(token=iterator.stepBackward()),token&&"support.type"===token.type)if(";"===session.doc.getLine(range.start.row).substring(range.end.column,range.end.column+1))return range.end.column++,range}})),this.add("semicolon","insertion",(function(state,action,editor,session,text){if(";"===text&&editor.selection.isEmpty()){var cursor=editor.getCursorPosition();if(";"===session.doc.getLine(cursor.row).substring(cursor.column,cursor.column+1))return{text:"",selection:[1,1]}}})),this.add("!important","insertion",(function(state,action,editor,session,text){if("!"===text&&editor.selection.isEmpty()){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row);if(/^\s*(;|}|$)/.test(line.substring(cursor.column)))return{text:"!important",selection:[10,10]}}}))};oop.inherits(CssBehaviour,CstyleBehaviour),exports.CssBehaviour=CssBehaviour})),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),TextMode=require("./text").Mode,CssHighlightRules=require("./css_highlight_rules").CssHighlightRules,MatchingBraceOutdent=require("./matching_brace_outdent").MatchingBraceOutdent,WorkerClient=require("../worker/worker_client").WorkerClient,CssCompletions=require("./css_completions").CssCompletions,CssBehaviour=require("./behaviour/css").CssBehaviour,CStyleFoldMode=require("./folding/cstyle").FoldMode,Mode=function(){this.HighlightRules=CssHighlightRules,this.$outdent=new MatchingBraceOutdent,this.$behaviour=new CssBehaviour,this.$completer=new CssCompletions,this.foldingRules=new CStyleFoldMode};oop.inherits(Mode,TextMode),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(state,line,tab){var indent=this.$getIndent(line),tokens=this.getTokenizer().getLineTokens(line,state).tokens;return tokens.length&&"comment"==tokens[tokens.length-1].type||line.match(/^.*\{\s*$/)&&(indent+=tab),indent},this.checkOutdent=function(state,line,input){return this.$outdent.checkOutdent(line,input)},this.autoOutdent=function(state,doc,row){this.$outdent.autoOutdent(doc,row)},this.getCompletions=function(state,session,pos,prefix){return this.$completer.getCompletions(state,session,pos,prefix)},this.createWorker=function(session){var worker=new WorkerClient(["ace"],"ace/mode/css_worker","Worker");return worker.attachToDocument(session.getDocument()),worker.on("annotate",(function(e){session.setAnnotations(e.data)})),worker.on("terminate",(function(){session.clearAnnotations()})),worker},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(Mode.prototype),exports.Mode=Mode})),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),TextHighlightRules=require("./text_highlight_rules").TextHighlightRules,XmlHighlightRules=function(normalize){var tagRegex="[_:a-zA-ZÀ-￿][-_:.a-zA-Z0-9À-￿]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+tagRegex+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],processing_instruction:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:tagRegex},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+tagRegex+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"--\x3e",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+tagRegex+":)?"+tagRegex+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:tagRegex},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===XmlHighlightRules&&this.normalizeRules()};(function(){this.embedTagRules=function(HighlightRules,prefix,tag){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+tag+".tag-name.xml"],regex:"(<)("+tag+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:prefix+"start"}]}),this.$rules[tag+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(value,currentState,stack){return stack.splice(0),this.token}}],this.embedRules(HighlightRules,prefix,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+tag+".tag-name.xml"],regex:"(</)("+tag+"(?=\\s|>|$))",next:tag+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(TextHighlightRules.prototype),oop.inherits(XmlHighlightRules,TextHighlightRules),exports.XmlHighlightRules=XmlHighlightRules})),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),lang=require("../lib/lang"),CssHighlightRules=require("./css_highlight_rules").CssHighlightRules,JavaScriptHighlightRules=require("./javascript_highlight_rules").JavaScriptHighlightRules,XmlHighlightRules=require("./xml_highlight_rules").XmlHighlightRules,tagMap=lang.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),HtmlHighlightRules=function(){XmlHighlightRules.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(start,tag){var group=tagMap[tag];return["meta.tag.punctuation."+("<"==start?"":"end-")+"tag-open.xml","meta.tag"+(group?"."+group:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:.]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(CssHighlightRules,"css-","style"),this.embedTagRules(new JavaScriptHighlightRules({jsx:!1}).getRules(),"js-","script"),this.constructor===HtmlHighlightRules&&this.normalizeRules()};oop.inherits(HtmlHighlightRules,XmlHighlightRules),exports.HtmlHighlightRules=HtmlHighlightRules})),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(require,exports,module){"use strict";var oop=require("../../lib/oop"),Behaviour=require("../behaviour").Behaviour,TokenIterator=require("../../token_iterator").TokenIterator;require("../../lib/lang");function is(token,type){return token&&token.type.lastIndexOf(type+".xml")>-1}var XmlBehaviour=function(){this.add("string_dquotes","insertion",(function(state,action,editor,session,text){if('"'==text||"'"==text){var quote=text,selected=session.doc.getTextRange(editor.getSelectionRange());if(""!==selected&&"'"!==selected&&'"'!=selected&&editor.getWrapBehavioursEnabled())return{text:quote+selected+quote,selection:!1};var cursor=editor.getCursorPosition(),rightChar=session.doc.getLine(cursor.row).substring(cursor.column,cursor.column+1),iterator=new TokenIterator(session,cursor.row,cursor.column),token=iterator.getCurrentToken();if(rightChar==quote&&(is(token,"attribute-value")||is(token,"string")))return{text:"",selection:[1,1]};if(token||(token=iterator.stepBackward()),!token)return;for(;is(token,"tag-whitespace")||is(token,"whitespace");)token=iterator.stepBackward();var rightSpace=!rightChar||rightChar.match(/\s/);if(is(token,"attribute-equals")&&(rightSpace||">"==rightChar)||is(token,"decl-attribute-equals")&&(rightSpace||"?"==rightChar))return{text:quote+quote,selection:[1,1]}}})),this.add("string_dquotes","deletion",(function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&('"'==selected||"'"==selected)&&session.doc.getLine(range.start.row).substring(range.start.column+1,range.start.column+2)==selected)return range.end.column++,range})),this.add("autoclosing","insertion",(function(state,action,editor,session,text){if(">"==text){var position=editor.getSelectionRange().start,iterator=new TokenIterator(session,position.row,position.column),token=iterator.getCurrentToken()||iterator.stepBackward();if(!token||!(is(token,"tag-name")||is(token,"tag-whitespace")||is(token,"attribute-name")||is(token,"attribute-equals")||is(token,"attribute-value")))return;if(is(token,"reference.attribute-value"))return;if(is(token,"attribute-value")){var tokenEndColumn=iterator.getCurrentTokenColumn()+token.value.length;if(position.column<tokenEndColumn)return;if(position.column==tokenEndColumn){var nextToken=iterator.stepForward();if(nextToken&&is(nextToken,"attribute-value"))return;iterator.stepBackward()}}if(/^\s*>/.test(session.getLine(position.row).slice(position.column)))return;for(;!is(token,"tag-name");)if("<"==(token=iterator.stepBackward()).value){token=iterator.stepForward();break}var tokenRow=iterator.getCurrentTokenRow(),tokenColumn=iterator.getCurrentTokenColumn();if(is(iterator.stepBackward(),"end-tag-open"))return;var element=token.value;if(tokenRow==position.row&&(element=element.substring(0,position.column-tokenColumn)),this.voidElements.hasOwnProperty(element.toLowerCase()))return;return{text:"></"+element+">",selection:[1,1]}}})),this.add("autoindent","insertion",(function(state,action,editor,session,text){if("\n"==text){var cursor=editor.getCursorPosition(),line=session.getLine(cursor.row),iterator=new TokenIterator(session,cursor.row,cursor.column),token=iterator.getCurrentToken();if(token&&-1!==token.type.indexOf("tag-close")){if("/>"==token.value)return;for(;token&&-1===token.type.indexOf("tag-name");)token=iterator.stepBackward();if(!token)return;var tag=token.value,row=iterator.getCurrentTokenRow();if(!(token=iterator.stepBackward())||-1!==token.type.indexOf("end-tag"))return;if(this.voidElements&&!this.voidElements[tag]){var nextToken=session.getTokenAt(cursor.row,cursor.column+1),nextIndent=(line=session.getLine(row),this.$getIndent(line)),indent=nextIndent+session.getTabString();return nextToken&&"</"===nextToken.value?{text:"\n"+indent+"\n"+nextIndent,selection:[1,indent.length,1,indent.length]}:{text:"\n"+indent}}}}}))};oop.inherits(XmlBehaviour,Behaviour),exports.XmlBehaviour=XmlBehaviour})),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],(function(require,exports,module){"use strict";var oop=require("../../lib/oop"),BaseFoldMode=require("./fold_mode").FoldMode,FoldMode=exports.FoldMode=function(defaultMode,subModes){this.defaultMode=defaultMode,this.subModes=subModes};oop.inherits(FoldMode,BaseFoldMode),function(){this.$getMode=function(state){for(var key in"string"!=typeof state&&(state=state[0]),this.subModes)if(0===state.indexOf(key))return this.subModes[key];return null},this.$tryMode=function(state,session,foldStyle,row){var mode=this.$getMode(state);return mode?mode.getFoldWidget(session,foldStyle,row):""},this.getFoldWidget=function(session,foldStyle,row){return this.$tryMode(session.getState(row-1),session,foldStyle,row)||this.$tryMode(session.getState(row),session,foldStyle,row)||this.defaultMode.getFoldWidget(session,foldStyle,row)},this.getFoldWidgetRange=function(session,foldStyle,row){var mode=this.$getMode(session.getState(row-1));return mode&&mode.getFoldWidget(session,foldStyle,row)||(mode=this.$getMode(session.getState(row))),mode&&mode.getFoldWidget(session,foldStyle,row)||(mode=this.defaultMode),mode.getFoldWidgetRange(session,foldStyle,row)}}.call(FoldMode.prototype)})),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],(function(require,exports,module){"use strict";var oop=require("../../lib/oop"),Range=(require("../../lib/lang"),require("../../range").Range),BaseFoldMode=require("./fold_mode").FoldMode,TokenIterator=require("../../token_iterator").TokenIterator,FoldMode=exports.FoldMode=function(voidElements,optionalEndTags){BaseFoldMode.call(this),this.voidElements=voidElements||{},this.optionalEndTags=oop.mixin({},this.voidElements),optionalEndTags&&oop.mixin(this.optionalEndTags,optionalEndTags)};oop.inherits(FoldMode,BaseFoldMode);var Tag=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};function is(token,type){return token.type.lastIndexOf(type+".xml")>-1}(function(){this.getFoldWidget=function(session,foldStyle,row){var tag=this._getFirstTagInLine(session,row);return tag?tag.closing||!tag.tagName&&tag.selfClosing?"markbeginend"==foldStyle?"end":"":!tag.tagName||tag.selfClosing||this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())||this._findEndTagInLine(session,row,tag.tagName,tag.end.column)?"":"start":this.getCommentFoldWidget(session,row)},this.getCommentFoldWidget=function(session,row){return/comment/.test(session.getState(row))&&/<!-/.test(session.getLine(row))?"start":""},this._getFirstTagInLine=function(session,row){for(var tokens=session.getTokens(row),tag=new Tag,i=0;i<tokens.length;i++){var token=tokens[i];if(is(token,"tag-open")){if(tag.end.column=tag.start.column+token.value.length,tag.closing=is(token,"end-tag-open"),!(token=tokens[++i]))return null;for(tag.tagName=token.value,tag.end.column+=token.value.length,i++;i<tokens.length;i++)if(token=tokens[i],tag.end.column+=token.value.length,is(token,"tag-close")){tag.selfClosing="/>"==token.value;break}return tag}if(is(token,"tag-close"))return tag.selfClosing="/>"==token.value,tag;tag.start.column+=token.value.length}return null},this._findEndTagInLine=function(session,row,tagName,startColumn){for(var tokens=session.getTokens(row),column=0,i=0;i<tokens.length;i++){var token=tokens[i];if(!((column+=token.value.length)<startColumn)&&is(token,"end-tag-open")&&(token=tokens[i+1])&&token.value==tagName)return!0}return!1},this._readTagForward=function(iterator){var token=iterator.getCurrentToken();if(!token)return null;var tag=new Tag;do{if(is(token,"tag-open"))tag.closing=is(token,"end-tag-open"),tag.start.row=iterator.getCurrentTokenRow(),tag.start.column=iterator.getCurrentTokenColumn();else if(is(token,"tag-name"))tag.tagName=token.value;else if(is(token,"tag-close"))return tag.selfClosing="/>"==token.value,tag.end.row=iterator.getCurrentTokenRow(),tag.end.column=iterator.getCurrentTokenColumn()+token.value.length,iterator.stepForward(),tag}while(token=iterator.stepForward());return null},this._readTagBackward=function(iterator){var token=iterator.getCurrentToken();if(!token)return null;var tag=new Tag;do{if(is(token,"tag-open"))return tag.closing=is(token,"end-tag-open"),tag.start.row=iterator.getCurrentTokenRow(),tag.start.column=iterator.getCurrentTokenColumn(),iterator.stepBackward(),tag;is(token,"tag-name")?tag.tagName=token.value:is(token,"tag-close")&&(tag.selfClosing="/>"==token.value,tag.end.row=iterator.getCurrentTokenRow(),tag.end.column=iterator.getCurrentTokenColumn()+token.value.length)}while(token=iterator.stepBackward());return null},this._pop=function(stack,tag){for(;stack.length;){var top=stack[stack.length-1];if(tag&&top.tagName!=tag.tagName){if(this.optionalEndTags.hasOwnProperty(top.tagName)){stack.pop();continue}return null}return stack.pop()}},this.getFoldWidgetRange=function(session,foldStyle,row){var firstTag=this._getFirstTagInLine(session,row);if(!firstTag)return this.getCommentFoldWidget(session,row)&&session.getCommentFoldRange(row,session.getLine(row).length);var tag,stack=[];if(firstTag.closing||firstTag.selfClosing){iterator=new TokenIterator(session,row,firstTag.end.column);for(var end={row,column:firstTag.start.column};tag=this._readTagBackward(iterator);){if(tag.selfClosing){if(stack.length)continue;return tag.start.column+=tag.tagName.length+2,tag.end.column-=2,Range.fromPoints(tag.start,tag.end)}if(tag.closing)stack.push(tag);else if(this._pop(stack,tag),0==stack.length)return tag.start.column+=tag.tagName.length+2,tag.start.row==tag.end.row&&tag.start.column<tag.end.column&&(tag.start.column=tag.end.column),Range.fromPoints(tag.start,end)}}else{var iterator=new TokenIterator(session,row,firstTag.start.column),start={row,column:firstTag.start.column+firstTag.tagName.length+2};for(firstTag.start.row==firstTag.end.row&&(start.column=firstTag.end.column);tag=this._readTagForward(iterator);){if(tag.selfClosing){if(stack.length)continue;return tag.start.column+=tag.tagName.length+2,tag.end.column-=2,Range.fromPoints(tag.start,tag.end)}if(tag.closing){if(this._pop(stack,tag),0==stack.length)return Range.fromPoints(start,tag.start)}else stack.push(tag)}}}}).call(FoldMode.prototype)})),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],(function(require,exports,module){"use strict";var oop=require("../../lib/oop"),MixedFoldMode=require("./mixed").FoldMode,XmlFoldMode=require("./xml").FoldMode,CStyleFoldMode=require("./cstyle").FoldMode,FoldMode=exports.FoldMode=function(voidElements,optionalTags){MixedFoldMode.call(this,new XmlFoldMode(voidElements,optionalTags),{"js-":new CStyleFoldMode,"css-":new CStyleFoldMode})};oop.inherits(FoldMode,MixedFoldMode)})),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],(function(require,exports,module){"use strict";var TokenIterator=require("../token_iterator").TokenIterator,globalAttributes=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"].concat(["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"]),attributeMap={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,for:1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{for:1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,default:1},section:{},summary:{},u:{},ul:{},var:{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},elements=Object.keys(attributeMap);function is(token,type){return token.type.lastIndexOf(type+".xml")>-1}function findTagName(session,pos){for(var iterator=new TokenIterator(session,pos.row,pos.column),token=iterator.getCurrentToken();token&&!is(token,"tag-name");)token=iterator.stepBackward();if(token)return token.value}var HtmlCompletions=function(){};(function(){this.getCompletions=function(state,session,pos,prefix){var token=session.getTokenAt(pos.row,pos.column);if(!token)return[];if(is(token,"tag-name")||is(token,"tag-open")||is(token,"end-tag-open"))return this.getTagCompletions(state,session,pos,prefix);if(is(token,"tag-whitespace")||is(token,"attribute-name"))return this.getAttributeCompletions(state,session,pos,prefix);if(is(token,"attribute-value"))return this.getAttributeValueCompletions(state,session,pos,prefix);var line=session.getLine(pos.row).substr(0,pos.column);return/&[a-z]*$/i.test(line)?this.getHTMLEntityCompletions(state,session,pos,prefix):[]},this.getTagCompletions=function(state,session,pos,prefix){return elements.map((function(element){return{value:element,meta:"tag",score:1e6}}))},this.getAttributeCompletions=function(state,session,pos,prefix){var tagName=findTagName(session,pos);if(!tagName)return[];var attributes=globalAttributes;return tagName in attributeMap&&(attributes=attributes.concat(Object.keys(attributeMap[tagName]))),attributes.map((function(attribute){return{caption:attribute,snippet:attribute+'="$0"',meta:"attribute",score:1e6}}))},this.getAttributeValueCompletions=function(state,session,pos,prefix){var tagName=findTagName(session,pos),attributeName=function(session,pos){for(var iterator=new TokenIterator(session,pos.row,pos.column),token=iterator.getCurrentToken();token&&!is(token,"attribute-name");)token=iterator.stepBackward();if(token)return token.value}(session,pos);if(!tagName)return[];var values=[];return tagName in attributeMap&&attributeName in attributeMap[tagName]&&"object"==typeof attributeMap[tagName][attributeName]&&(values=Object.keys(attributeMap[tagName][attributeName])),values.map((function(value){return{caption:value,snippet:value,meta:"attribute value",score:1e6}}))},this.getHTMLEntityCompletions=function(state,session,pos,prefix){return["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"].map((function(value){return{caption:value,snippet:value,meta:"html entity",score:1e6}}))}}).call(HtmlCompletions.prototype),exports.HtmlCompletions=HtmlCompletions})),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),lang=require("../lib/lang"),TextMode=require("./text").Mode,JavaScriptMode=require("./javascript").Mode,CssMode=require("./css").Mode,HtmlHighlightRules=require("./html_highlight_rules").HtmlHighlightRules,XmlBehaviour=require("./behaviour/xml").XmlBehaviour,HtmlFoldMode=require("./folding/html").FoldMode,HtmlCompletions=require("./html_completions").HtmlCompletions,WorkerClient=require("../worker/worker_client").WorkerClient,voidElements=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],optionalEndTags=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],Mode=function(options){this.fragmentContext=options&&options.fragmentContext,this.HighlightRules=HtmlHighlightRules,this.$behaviour=new XmlBehaviour,this.$completer=new HtmlCompletions,this.createModeDelegates({"js-":JavaScriptMode,"css-":CssMode}),this.foldingRules=new HtmlFoldMode(this.voidElements,lang.arrayToMap(optionalEndTags))};oop.inherits(Mode,TextMode),function(){this.blockComment={start:"\x3c!--",end:"--\x3e"},this.voidElements=lang.arrayToMap(voidElements),this.getNextLineIndent=function(state,line,tab){return this.$getIndent(line)},this.checkOutdent=function(state,line,input){return!1},this.getCompletions=function(state,session,pos,prefix){return this.$completer.getCompletions(state,session,pos,prefix)},this.createWorker=function(session){if(this.constructor==Mode){var worker=new WorkerClient(["ace"],"ace/mode/html_worker","Worker");return worker.attachToDocument(session.getDocument()),this.fragmentContext&&worker.call("setOptions",[{context:this.fragmentContext}]),worker.on("error",(function(e){session.setAnnotations(e.data)})),worker.on("terminate",(function(){session.clearAnnotations()})),worker}},this.$id="ace/mode/html",this.snippetFileId="ace/snippets/html"}.call(Mode.prototype),exports.Mode=Mode})),ace.define("ace/mode/tex_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),TextHighlightRules=(require("../lib/lang"),require("./text_highlight_rules").TextHighlightRules),TexHighlightRules=function(textClass){textClass||(textClass="text"),this.$rules={start:[{token:"comment",regex:"%.*$"},{token:textClass,regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b",next:"nospell"},{token:"keyword",regex:"\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:textClass,regex:"\\s+"}],nospell:[{token:"comment",regex:"%.*$",next:"start"},{token:"nospell."+textClass,regex:"\\\\[$&%#\\{\\}]"},{token:"keyword",regex:"\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b"},{token:"keyword",regex:"\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])",next:"start"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])]"},{token:"paren.keyword.operator",regex:"}",next:"start"},{token:"nospell."+textClass,regex:"\\s+"},{token:"nospell."+textClass,regex:"\\w+"}]}};oop.inherits(TexHighlightRules,TextHighlightRules),exports.TexHighlightRules=TexHighlightRules})),ace.define("ace/mode/r_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/tex_highlight_rules"],(function(require,exports,module){var oop=require("../lib/oop"),lang=require("../lib/lang"),TextHighlightRules=require("./text_highlight_rules").TextHighlightRules,TexHighlightRules=require("./tex_highlight_rules").TexHighlightRules,RHighlightRules=function(){var keywords=lang.arrayToMap("function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass".split("|")),buildinConstants=lang.arrayToMap("NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_".split("|"));this.$rules={start:[{token:"comment.sectionhead",regex:"#+(?!').*(?:----|====|####)\\s*$"},{token:"comment",regex:"#+'",next:"rd-start"},{token:"comment",regex:"#.*$"},{token:"string",regex:'["]',next:"qqstring"},{token:"string",regex:"[']",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+[Li]?\\b"},{token:"constant.numeric",regex:"\\d+L\\b"},{token:"constant.numeric",regex:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b"},{token:"constant.numeric",regex:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b"},{token:"constant.language.boolean",regex:"(?:TRUE|FALSE|T|F)\\b"},{token:"identifier",regex:"`.*?`"},{onMatch:function(value){return keywords[value]?"keyword":buildinConstants[value]?"constant.language":"..."==value||value.match(/^\.\.\d+$/)?"variable.language":"identifier"},regex:"[a-zA-Z.][a-zA-Z0-9._]*\\b"},{token:"keyword.operator",regex:"%%|>=|<=|==|!=|\\->|<\\-|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||~|\\$|:"},{token:"keyword.operator",regex:"%.*?%"},{token:"paren.keyword.operator",regex:"[[({]"},{token:"paren.keyword.operator",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]};for(var rdRules=new TexHighlightRules("comment").getRules(),i=0;i<rdRules.start.length;i++)rdRules.start[i].token+=".virtual-comment";this.addRules(rdRules,"rd-"),this.$rules["rd-start"].unshift({token:"text",regex:"^",next:"start"}),this.$rules["rd-start"].unshift({token:"keyword",regex:"@(?!@)[^ ]*"}),this.$rules["rd-start"].unshift({token:"comment",regex:"@@"}),this.$rules["rd-start"].push({token:"comment",regex:"[^%\\\\[({\\])}]+"})};oop.inherits(RHighlightRules,TextHighlightRules),exports.RHighlightRules=RHighlightRules})),ace.define("ace/mode/rhtml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/r_highlight_rules","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),RHighlightRules=require("./r_highlight_rules").RHighlightRules,HtmlHighlightRules=require("./html_highlight_rules").HtmlHighlightRules,TextHighlightRules=require("./text_highlight_rules").TextHighlightRules,RHtmlHighlightRules=function(){HtmlHighlightRules.call(this),this.$rules.start.unshift({token:"support.function.codebegin",regex:"^\x3c!--\\s*begin.rcode\\s*(?:.*)",next:"r-start"}),this.embedRules(RHighlightRules,"r-",[{token:"support.function.codeend",regex:"^\\s*end.rcode\\s*--\x3e",next:"start"}],["start"]),this.normalizeRules()};oop.inherits(RHtmlHighlightRules,TextHighlightRules),exports.RHtmlHighlightRules=RHtmlHighlightRules})),ace.define("ace/mode/rhtml",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/rhtml_highlight_rules"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),HtmlMode=require("./html").Mode,RHtmlHighlightRules=require("./rhtml_highlight_rules").RHtmlHighlightRules,Mode=function(doc,session){HtmlMode.call(this),this.$session=session,this.HighlightRules=RHtmlHighlightRules};oop.inherits(Mode,HtmlMode),function(){this.insertChunkInfo={value:"\x3c!--begin.rcode\n\nend.rcode--\x3e\n",position:{row:0,column:15}},this.getLanguageMode=function(position){return this.$session.getState(position.row).match(/^r-/)?"R":"HTML"},this.$id="ace/mode/rhtml"}.call(Mode.prototype),exports.Mode=Mode})),ace.require(["ace/mode/rhtml"],(function(m){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=m)}));
\No newline at end of file