Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/files_texteditor.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>2019-12-19 11:10:13 +0300
committerGitHub <noreply@github.com>2019-12-19 11:10:13 +0300
commit89dfb0ef6a61edfe9fa6420d4596a6618028df43 (patch)
tree8a0a8fea5a3ac2993708bd1c7869a66fe8df3c72
parentb6c624302960968a01c5506c95bc5d000c4a2df3 (diff)
parentafcf3969bbd223ef3e91785b432d2c4271c3c249 (diff)
Merge pull request #191 from nextcloud/dependabot/npm_and_yarn/marked-0.8.0v18.0.0beta3
-rw-r--r--build/bat-mode.bundle.js2
-rw-r--r--build/bat-mode.bundle.js.map2
-rw-r--r--build/clj-mode.bundle.js2
-rw-r--r--build/clj-mode.bundle.js.map1
-rw-r--r--build/editor.js4
-rw-r--r--build/editor.js.map2
-rw-r--r--build/h-mode.bundle.js2
-rw-r--r--build/h-mode.bundle.js.map2
-rw-r--r--build/public-share.js2
-rw-r--r--build/public-share.js.map2
-rw-r--r--package-lock.json6
-rw-r--r--package.json2
12 files changed, 16 insertions, 13 deletions
diff --git a/build/bat-mode.bundle.js b/build/bat-mode.bundle.js
index ee433fd..0427453 100644
--- a/build/bat-mode.bundle.js
+++ b/build/bat-mode.bundle.js
@@ -1,2 +1,2 @@
-webpackJsonpTexteditor([29],{"./node_modules/brace/mode/batchfile.js":function(e,t){ace.define("ace/mode/batchfile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,i){"use strict";var o=e("../lib/oop"),n=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"keyword.command.dosbatch",regex:"\\b(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\\b",caseInsensitive:!0},{token:"keyword.control.statement.dosbatch",regex:"\\b(?:goto|call|exit)\\b",caseInsensitive:!0},{token:"keyword.control.conditional.if.dosbatch",regex:"\\bif\\s+not\\s+(?:exist|defined|errorlevel|cmdextversion)\\b",caseInsensitive:!0},{token:"keyword.control.conditional.dosbatch",regex:"\\b(?:if|else)\\b",caseInsensitive:!0},{token:"keyword.control.repeat.dosbatch",regex:"\\bfor\\b",caseInsensitive:!0},{token:"keyword.operator.dosbatch",regex:"\\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\\b"},{token:["doc.comment","comment"],regex:"(?:^|\\b)(rem)($|\\s.*$)",caseInsensitive:!0},{token:"comment.line.colons.dosbatch",regex:"::.*$"},{include:"variable"},{token:"punctuation.definition.string.begin.shell",regex:'"',push:[{token:"punctuation.definition.string.end.shell",regex:'"',next:"pop"},{include:"variable"},{defaultToken:"string.quoted.double.dosbatch"}]},{token:"keyword.operator.pipe.dosbatch",regex:"[|]"},{token:"keyword.operator.redirect.shell",regex:"&>|\\d*>&\\d*|\\d*(?:>>|>|<)|\\d*<&|\\d*<>"}],variable:[{token:"constant.numeric",regex:"%%\\w+|%[*\\d]|%\\w+%"},{token:"constant.numeric",regex:"%~\\d+"},{token:["markup.list","constant.other","markup.list"],regex:"(%)(\\w+)(%?)"}]},this.normalizeRules()};r.metaData={name:"Batch File",scopeName:"source.dosbatch",fileTypes:["bat"]},o.inherits(r,n),t.BatchFileHighlightRules=r}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var o=e("../../lib/oop"),n=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),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(e,t,i){var o=e.getLine(i);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var n=this._getFoldWidgetBase(e,t,i);return!n&&this.startRegionRe.test(o)?"start":n},this.getFoldWidgetRange=function(e,t,i,o){var n,r=e.getLine(i);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,i);if(n=r.match(this.foldingStartMarker)){var s=n.index;if(n[1])return this.openingBracketBlock(e,n[1],i,s);var a=e.getCommentFoldRange(i,s+n[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t&&(n=r.match(this.foldingStopMarker))){s=n.index+n[0].length;return n[1]?this.closingBracketBlock(e,n[1],i,s):e.getCommentFoldRange(i,s,-1)}},this.getSectionRange=function(e,t){for(var i=e.getLine(t),o=i.search(/\S/),r=t,s=i.length,a=t+=1,l=e.getLength();++t<l;){var c=(i=e.getLine(t)).search(/\S/);if(-1!==c){if(o>c)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(o==c)break}a=t}}return new n(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var o=t.search(/\s*$/),r=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++i<r;){t=e.getLine(i);var c=a.exec(t);if(c&&(c[1]?l--:l++,!l))break}if(i>s)return new n(s,o,i,t.length)}}.call(s.prototype)}),ace.define("ace/mode/batchfile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/batchfile_highlight_rules","ace/mode/folding/cstyle"],function(e,t,i){"use strict";var o=e("../lib/oop"),n=e("./text").Mode,r=e("./batchfile_highlight_rules").BatchFileHighlightRules,s=e("./folding/cstyle").FoldMode,a=function(){this.HighlightRules=r,this.foldingRules=new s,this.$behaviour=this.$defaultBehaviour};o.inherits(a,n),function(){this.lineCommentStart="::",this.blockComment="",this.$id="ace/mode/batchfile"}.call(a.prototype),t.Mode=a})}});
+webpackJsonpTexteditor([30],{"./node_modules/brace/mode/batchfile.js":function(e,t){ace.define("ace/mode/batchfile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,i){"use strict";var o=e("../lib/oop"),n=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"keyword.command.dosbatch",regex:"\\b(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\\b",caseInsensitive:!0},{token:"keyword.control.statement.dosbatch",regex:"\\b(?:goto|call|exit)\\b",caseInsensitive:!0},{token:"keyword.control.conditional.if.dosbatch",regex:"\\bif\\s+not\\s+(?:exist|defined|errorlevel|cmdextversion)\\b",caseInsensitive:!0},{token:"keyword.control.conditional.dosbatch",regex:"\\b(?:if|else)\\b",caseInsensitive:!0},{token:"keyword.control.repeat.dosbatch",regex:"\\bfor\\b",caseInsensitive:!0},{token:"keyword.operator.dosbatch",regex:"\\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\\b"},{token:["doc.comment","comment"],regex:"(?:^|\\b)(rem)($|\\s.*$)",caseInsensitive:!0},{token:"comment.line.colons.dosbatch",regex:"::.*$"},{include:"variable"},{token:"punctuation.definition.string.begin.shell",regex:'"',push:[{token:"punctuation.definition.string.end.shell",regex:'"',next:"pop"},{include:"variable"},{defaultToken:"string.quoted.double.dosbatch"}]},{token:"keyword.operator.pipe.dosbatch",regex:"[|]"},{token:"keyword.operator.redirect.shell",regex:"&>|\\d*>&\\d*|\\d*(?:>>|>|<)|\\d*<&|\\d*<>"}],variable:[{token:"constant.numeric",regex:"%%\\w+|%[*\\d]|%\\w+%"},{token:"constant.numeric",regex:"%~\\d+"},{token:["markup.list","constant.other","markup.list"],regex:"(%)(\\w+)(%?)"}]},this.normalizeRules()};r.metaData={name:"Batch File",scopeName:"source.dosbatch",fileTypes:["bat"]},o.inherits(r,n),t.BatchFileHighlightRules=r}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var o=e("../../lib/oop"),n=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};o.inherits(s,r),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(e,t,i){var o=e.getLine(i);if(this.singleLineBlockCommentRe.test(o)&&!this.startRegionRe.test(o)&&!this.tripleStarBlockCommentRe.test(o))return"";var n=this._getFoldWidgetBase(e,t,i);return!n&&this.startRegionRe.test(o)?"start":n},this.getFoldWidgetRange=function(e,t,i,o){var n,r=e.getLine(i);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,i);if(n=r.match(this.foldingStartMarker)){var s=n.index;if(n[1])return this.openingBracketBlock(e,n[1],i,s);var a=e.getCommentFoldRange(i,s+n[0].length,1);return a&&!a.isMultiLine()&&(o?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t&&(n=r.match(this.foldingStopMarker))){s=n.index+n[0].length;return n[1]?this.closingBracketBlock(e,n[1],i,s):e.getCommentFoldRange(i,s,-1)}},this.getSectionRange=function(e,t){for(var i=e.getLine(t),o=i.search(/\S/),r=t,s=i.length,a=t+=1,l=e.getLength();++t<l;){var c=(i=e.getLine(t)).search(/\S/);if(-1!==c){if(o>c)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(o==c)break}a=t}}return new n(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var o=t.search(/\s*$/),r=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++i<r;){t=e.getLine(i);var c=a.exec(t);if(c&&(c[1]?l--:l++,!l))break}if(i>s)return new n(s,o,i,t.length)}}.call(s.prototype)}),ace.define("ace/mode/batchfile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/batchfile_highlight_rules","ace/mode/folding/cstyle"],function(e,t,i){"use strict";var o=e("../lib/oop"),n=e("./text").Mode,r=e("./batchfile_highlight_rules").BatchFileHighlightRules,s=e("./folding/cstyle").FoldMode,a=function(){this.HighlightRules=r,this.foldingRules=new s,this.$behaviour=this.$defaultBehaviour};o.inherits(a,n),function(){this.lineCommentStart="::",this.blockComment="",this.$id="ace/mode/batchfile"}.call(a.prototype),t.Mode=a})}});
//# sourceMappingURL=bat-mode.bundle.js.map \ No newline at end of file
diff --git a/build/bat-mode.bundle.js.map b/build/bat-mode.bundle.js.map
index f86f542..80abc1a 100644
--- a/build/bat-mode.bundle.js.map
+++ b/build/bat-mode.bundle.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///./node_modules/brace/mode/batchfile.js"],"names":["ace","define","acequire","exports","module","oop","TextHighlightRules","BatchFileHighlightRules","this","$rules","start","token","regex","caseInsensitive","include","push","next","defaultToken","variable","normalizeRules","metaData","name","scopeName","fileTypes","inherits","Range","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","RegExp","source","replace","foldingStopMarker","end","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","row","line","getLine","test","fw","getFoldWidgetRange","forceMultiline","match","getCommentRegionBlock","i","index","openingBracketBlock","range","getCommentFoldRange","length","isMultiLine","getSectionRange","closingBracketBlock","startIndent","search","startRow","startColumn","endRow","maxRow","getLength","indent","subRange","re","depth","m","exec","call","prototype","TextMode","Mode","HighlightRules","foldingRules","$behaviour","$defaultBehaviour","lineCommentStart","blockComment","$id"],"mappings":"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","file":"bat-mode.bundle.js","sourcesContent":["ace.define(\"ace/mode/batchfile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar BatchFileHighlightRules = function() {\n\n this.$rules = { start: \n [ { token: 'keyword.command.dosbatch',\n regex: '\\\\b(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\\\\b',\n caseInsensitive: true },\n { token: 'keyword.control.statement.dosbatch',\n regex: '\\\\b(?:goto|call|exit)\\\\b',\n caseInsensitive: true },\n { token: 'keyword.control.conditional.if.dosbatch',\n regex: '\\\\bif\\\\s+not\\\\s+(?:exist|defined|errorlevel|cmdextversion)\\\\b',\n caseInsensitive: true },\n { token: 'keyword.control.conditional.dosbatch',\n regex: '\\\\b(?:if|else)\\\\b',\n caseInsensitive: true },\n { token: 'keyword.control.repeat.dosbatch',\n regex: '\\\\bfor\\\\b',\n caseInsensitive: true },\n { token: 'keyword.operator.dosbatch',\n regex: '\\\\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\\\\b' },\n { token: ['doc.comment', 'comment'],\n regex: '(?:^|\\\\b)(rem)($|\\\\s.*$)',\n caseInsensitive: true },\n { token: 'comment.line.colons.dosbatch',\n regex: '::.*$' },\n { include: 'variable' },\n { token: 'punctuation.definition.string.begin.shell',\n regex: '\"',\n push: [ \n { token: 'punctuation.definition.string.end.shell', regex: '\"', next: 'pop' },\n { include: 'variable' },\n { defaultToken: 'string.quoted.double.dosbatch' } ] },\n { token: 'keyword.operator.pipe.dosbatch', regex: '[|]' },\n { token: 'keyword.operator.redirect.shell',\n regex: '&>|\\\\d*>&\\\\d*|\\\\d*(?:>>|>|<)|\\\\d*<&|\\\\d*<>' } ],\n variable: [\n { token: 'constant.numeric', regex: '%%\\\\w+|%[*\\\\d]|%\\\\w+%'},\n { token: 'constant.numeric', regex: '%~\\\\d+'},\n { token: ['markup.list', 'constant.other', 'markup.list'],\n regex: '(%)(\\\\w+)(%?)' }]};\n \n this.normalizeRules();\n};\n\nBatchFileHighlightRules.metaData = { name: 'Batch File',\n scopeName: 'source.dosbatch',\n fileTypes: [ 'bat' ] };\n\n\noop.inherits(BatchFileHighlightRules, TextHighlightRules);\n\nexports.BatchFileHighlightRules = BatchFileHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/batchfile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/batchfile_highlight_rules\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar BatchFileHighlightRules = acequire(\"./batchfile_highlight_rules\").BatchFileHighlightRules;\nvar FoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = BatchFileHighlightRules;\n this.foldingRules = new FoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n this.lineCommentStart = \"::\";\n this.blockComment = \"\";\n this.$id = \"ace/mode/batchfile\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/brace/mode/batchfile.js\n// module id = ./node_modules/brace/mode/batchfile.js\n// module chunks = 29"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///./node_modules/brace/mode/batchfile.js"],"names":["ace","define","acequire","exports","module","oop","TextHighlightRules","BatchFileHighlightRules","this","$rules","start","token","regex","caseInsensitive","include","push","next","defaultToken","variable","normalizeRules","metaData","name","scopeName","fileTypes","inherits","Range","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","RegExp","source","replace","foldingStopMarker","end","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","row","line","getLine","test","fw","getFoldWidgetRange","forceMultiline","match","getCommentRegionBlock","i","index","openingBracketBlock","range","getCommentFoldRange","length","isMultiLine","getSectionRange","closingBracketBlock","startIndent","search","startRow","startColumn","endRow","maxRow","getLength","indent","subRange","re","depth","m","exec","call","prototype","TextMode","Mode","HighlightRules","foldingRules","$behaviour","$defaultBehaviour","lineCommentStart","blockComment","$id"],"mappings":"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","file":"bat-mode.bundle.js","sourcesContent":["ace.define(\"ace/mode/batchfile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar BatchFileHighlightRules = function() {\n\n this.$rules = { start: \n [ { token: 'keyword.command.dosbatch',\n regex: '\\\\b(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\\\\b',\n caseInsensitive: true },\n { token: 'keyword.control.statement.dosbatch',\n regex: '\\\\b(?:goto|call|exit)\\\\b',\n caseInsensitive: true },\n { token: 'keyword.control.conditional.if.dosbatch',\n regex: '\\\\bif\\\\s+not\\\\s+(?:exist|defined|errorlevel|cmdextversion)\\\\b',\n caseInsensitive: true },\n { token: 'keyword.control.conditional.dosbatch',\n regex: '\\\\b(?:if|else)\\\\b',\n caseInsensitive: true },\n { token: 'keyword.control.repeat.dosbatch',\n regex: '\\\\bfor\\\\b',\n caseInsensitive: true },\n { token: 'keyword.operator.dosbatch',\n regex: '\\\\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\\\\b' },\n { token: ['doc.comment', 'comment'],\n regex: '(?:^|\\\\b)(rem)($|\\\\s.*$)',\n caseInsensitive: true },\n { token: 'comment.line.colons.dosbatch',\n regex: '::.*$' },\n { include: 'variable' },\n { token: 'punctuation.definition.string.begin.shell',\n regex: '\"',\n push: [ \n { token: 'punctuation.definition.string.end.shell', regex: '\"', next: 'pop' },\n { include: 'variable' },\n { defaultToken: 'string.quoted.double.dosbatch' } ] },\n { token: 'keyword.operator.pipe.dosbatch', regex: '[|]' },\n { token: 'keyword.operator.redirect.shell',\n regex: '&>|\\\\d*>&\\\\d*|\\\\d*(?:>>|>|<)|\\\\d*<&|\\\\d*<>' } ],\n variable: [\n { token: 'constant.numeric', regex: '%%\\\\w+|%[*\\\\d]|%\\\\w+%'},\n { token: 'constant.numeric', regex: '%~\\\\d+'},\n { token: ['markup.list', 'constant.other', 'markup.list'],\n regex: '(%)(\\\\w+)(%?)' }]};\n \n this.normalizeRules();\n};\n\nBatchFileHighlightRules.metaData = { name: 'Batch File',\n scopeName: 'source.dosbatch',\n fileTypes: [ 'bat' ] };\n\n\noop.inherits(BatchFileHighlightRules, TextHighlightRules);\n\nexports.BatchFileHighlightRules = BatchFileHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/batchfile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/batchfile_highlight_rules\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar BatchFileHighlightRules = acequire(\"./batchfile_highlight_rules\").BatchFileHighlightRules;\nvar FoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = BatchFileHighlightRules;\n this.foldingRules = new FoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n this.lineCommentStart = \"::\";\n this.blockComment = \"\";\n this.$id = \"ace/mode/batchfile\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/brace/mode/batchfile.js\n// module id = ./node_modules/brace/mode/batchfile.js\n// module chunks = 30"],"sourceRoot":""} \ No newline at end of file
diff --git a/build/clj-mode.bundle.js b/build/clj-mode.bundle.js
new file mode 100644
index 0000000..4e3496b
--- /dev/null
+++ b/build/clj-mode.bundle.js
@@ -0,0 +1,2 @@
+webpackJsonpTexteditor([28],{"./node_modules/brace/mode/clojure.js":function(e,t){ace.define("ace/mode/clojure_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),s=e("./text_highlight_rules").TextHighlightRules,a=function(){var e=this.createKeywordMapper({keyword:"throw try var def do fn if let loop monitor-enter monitor-exit new quote recur set!","constant.language":"true false nil","support.function":"* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> ->> .. / < <= = == > &gt; >= &gt;= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate acequire reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap"},"identifier",!1," ");this.$rules={start:[{token:"comment",regex:";.*$"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$\\-]*\\b"},{token:"string",regex:'"',next:"string"},{token:"constant",regex:/:[^()\[\]{}'"\^%`,;\s]+/},{token:"string.regexp",regex:'/#"(?:\\.|(?:\\")|[^""\n])*"/g'}],string:[{token:"constant.language.escape",regex:"\\\\.|\\\\$"},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"}]}};r.inherits(a,s),t.ClojureHighlightRules=a}),ace.define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,s=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\)/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\))/);if(!n)return 0;var s=n[1].length,a=e.findMatchingBracket({row:t,column:s});if(!a||a.row==t)return 0;var o=this.$getIndent(e.getLine(a.row));e.replace(new r(t,0,t,s-1),o)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(s.prototype),t.MatchingParensOutdent=s}),ace.define("ace/mode/clojure",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent"],function(e,t,n){"use strict";var r=e("../lib/oop"),s=e("./text").Mode,a=e("./clojure_highlight_rules").ClojureHighlightRules,o=e("./matching_parens_outdent").MatchingParensOutdent,i=function(){this.HighlightRules=a,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(i,s),function(){this.lineCommentStart=";",this.minorIndentFunctions=["defn","defn-","defmacro","def","deftest","testing"],this.$toIndent=function(e){return e.split("").map(function(e){return/\s/.exec(e)?e:" "}).join("")},this.$calculateIndent=function(e,t){for(var n,r,s=this.$getIndent(e),a=0,o=e.length-1;o>=0&&("("===(r=e[o])?(a--,n=!0):"("===r||"["===r||"{"===r?(a--,n=!1):")"!==r&&"]"!==r&&"}"!==r||a++,!(a<0));o--);if(!(a<0&&n))return a<0&&!n?this.$toIndent(e.substring(0,o+1)):a>0?s=s.substring(0,s.length-t.length):s;for(var i=o+=1,c="";;){if(" "===(r=e[o])||"\t"===r)return-1!==this.minorIndentFunctions.indexOf(c)?this.$toIndent(e.substring(0,i-1)+t):this.$toIndent(e.substring(0,o+1));if(void 0===r)return this.$toIndent(e.substring(0,i-1)+t);c+=e[o],o++}},this.getNextLineIndent=function(e,t,n){return this.$calculateIndent(t,n)},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/clojure"}.call(i.prototype),t.Mode=i})}});
+//# sourceMappingURL=clj-mode.bundle.js.map \ No newline at end of file
diff --git a/build/clj-mode.bundle.js.map b/build/clj-mode.bundle.js.map
new file mode 100644
index 0000000..0ab6b3c
--- /dev/null
+++ b/build/clj-mode.bundle.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///./node_modules/brace/mode/clojure.js"],"names":["ace","define","acequire","exports","module","oop","TextHighlightRules","ClojureHighlightRules","keywordMapper","this","createKeywordMapper","keyword","constant.language","support.function","$rules","start","token","regex","next","string","inherits","Range","MatchingParensOutdent","checkOutdent","line","input","test","autoOutdent","doc","row","match","getLine","column","length","openBracePos","findMatchingBracket","indent","$getIndent","replace","call","prototype","TextMode","Mode","HighlightRules","$outdent","$behaviour","$defaultBehaviour","lineCommentStart","minorIndentFunctions","$toIndent","str","split","map","ch","exec","join","$calculateIndent","tab","isParen","baseIndent","delta","i","substring","iBefore","fn","indexOf","undefined","getNextLineIndent","state","$id"],"mappings":"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","file":"clj-mode.bundle.js","sourcesContent":["ace.define(\"ace/mode/clojure_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\n\n\nvar ClojureHighlightRules = function() {\n\n var builtinFunctions = (\n '* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* ' +\n '*command-line-args* *compile-files* *compile-path* *e *err* *file* ' +\n '*flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* ' +\n '*print-dup* *print-length* *print-level* *print-meta* *print-readably* ' +\n '*read-eval* *source-path* *use-context-classloader* ' +\n '*warn-on-reflection* + - -> ->> .. / < <= = ' +\n '== > &gt; >= &gt;= accessor aclone ' +\n 'add-classpath add-watch agent agent-errors aget alength alias all-ns ' +\n 'alter alter-meta! alter-var-root amap ancestors and apply areduce ' +\n 'array-map aset aset-boolean aset-byte aset-char aset-double aset-float ' +\n 'aset-int aset-long aset-short assert assoc assoc! assoc-in associative? ' +\n 'atom await await-for await1 bases bean bigdec bigint binding bit-and ' +\n 'bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left ' +\n 'bit-shift-right bit-test bit-xor boolean boolean-array booleans ' +\n 'bound-fn bound-fn* butlast byte byte-array bytes cast char char-array ' +\n 'char-escape-string char-name-string char? chars chunk chunk-append ' +\n 'chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? ' +\n 'class class? clear-agent-errors clojure-version coll? comment commute ' +\n 'comp comparator compare compare-and-set! compile complement concat cond ' +\n 'condp conj conj! cons constantly construct-proxy contains? count ' +\n 'counted? create-ns create-struct cycle dec decimal? declare definline ' +\n 'defmacro defmethod defmulti defn defn- defonce defstruct delay delay? ' +\n 'deliver deref derive descendants destructure disj disj! dissoc dissoc! ' +\n 'distinct distinct? doall doc dorun doseq dosync dotimes doto double ' +\n 'double-array doubles drop drop-last drop-while empty empty? ensure ' +\n 'enumeration-seq eval even? every? false? ffirst file-seq filter find ' +\n 'find-doc find-ns find-var first float float-array float? floats flush ' +\n 'fn fn? fnext for force format future future-call future-cancel ' +\n 'future-cancelled? future-done? future? gen-class gen-interface gensym ' +\n 'get get-in get-method get-proxy-class get-thread-bindings get-validator ' +\n 'hash hash-map hash-set identical? identity if-let if-not ifn? import ' +\n 'in-ns inc init-proxy instance? int int-array integer? interleave intern ' +\n 'interpose into into-array ints io! isa? iterate iterator-seq juxt key ' +\n 'keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list ' +\n 'list* list? load load-file load-reader load-string loaded-libs locking ' +\n 'long long-array longs loop macroexpand macroexpand-1 make-array ' +\n 'make-hierarchy map map? mapcat max max-key memfn memoize merge ' +\n 'merge-with meta method-sig methods min min-key mod name namespace neg? ' +\n 'newline next nfirst nil? nnext not not-any? not-empty not-every? not= ' +\n 'ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ' +\n 'ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? ' +\n 'or parents partial partition pcalls peek persistent! pmap pop pop! ' +\n 'pop-thread-bindings pos? pr pr-str prefer-method prefers ' +\n 'primitives-classnames print print-ctor print-doc print-dup print-method ' +\n 'print-namespace-doc print-simple print-special-doc print-str printf ' +\n 'println println-str prn prn-str promise proxy proxy-call-with-super ' +\n 'proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot ' +\n 'rand rand-int range ratio? rational? rationalize re-find re-groups ' +\n 're-matcher re-matches re-pattern re-seq read read-line read-string ' +\n 'reduce ref ref-history-count ref-max-history ref-min-history ref-set ' +\n 'refer refer-clojure release-pending-sends rem remove remove-method ' +\n 'remove-ns remove-watch repeat repeatedly replace replicate acequire ' +\n 'reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq ' +\n 'rsubseq second select-keys send send-off seq seq? seque sequence ' +\n 'sequential? set set-validator! set? short short-array shorts ' +\n 'shutdown-agents slurp some sort sort-by sorted-map sorted-map-by ' +\n 'sorted-set sorted-set-by sorted? special-form-anchor special-symbol? ' +\n 'split-at split-with str stream? string? struct struct-map subs subseq ' +\n 'subvec supers swap! symbol symbol? sync syntax-symbol-anchor take ' +\n 'take-last take-nth take-while test the-ns time to-array to-array-2d ' +\n 'trampoline transient tree-seq true? type unchecked-add unchecked-dec ' +\n 'unchecked-divide unchecked-inc unchecked-multiply unchecked-negate ' +\n 'unchecked-remainder unchecked-subtract underive unquote ' +\n 'unquote-splicing update-in update-proxy use val vals var-get var-set ' +\n 'var? vary-meta vec vector vector? when when-first when-let when-not ' +\n 'while with-bindings with-bindings* with-in-str with-loading-context ' +\n 'with-local-vars with-meta with-open with-out-str with-precision xml-seq ' +\n 'zero? zipmap'\n );\n\n var keywords = ('throw try var ' +\n 'def do fn if let loop monitor-enter monitor-exit new quote recur set!'\n );\n\n var buildinConstants = (\"true false nil\");\n\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": buildinConstants,\n \"support.function\": builtinFunctions\n }, \"identifier\", false, \" \");\n\n this.$rules = {\n \"start\" : [\n {\n token : \"comment\",\n regex : \";.*$\"\n }, {\n token : \"keyword\", //parens\n regex : \"[\\\\(|\\\\)]\"\n }, {\n token : \"keyword\", //lists\n regex : \"[\\\\'\\\\(]\"\n }, {\n token : \"keyword\", //vectors\n regex : \"[\\\\[|\\\\]]\"\n }, {\n token : \"keyword\", //sets and maps\n regex : \"[\\\\{|\\\\}|\\\\#\\\\{|\\\\#\\\\}]\"\n }, {\n token : \"keyword\", // ampersands\n regex : '[\\\\&]'\n }, {\n token : \"keyword\", // metadata\n regex : '[\\\\#\\\\^\\\\{]'\n }, {\n token : \"keyword\", // anonymous fn syntactic sugar\n regex : '[\\\\%]'\n }, {\n token : \"keyword\", // deref reader macro\n regex : '[@]'\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language\",\n regex : '[!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+||=|!=|<=|>=|<>|<|>|!|&&]'\n }, {\n token : keywordMapper,\n regex : \"[a-zA-Z_$][a-zA-Z0-9_$\\\\-]*\\\\b\"\n }, {\n token : \"string\", // single line\n regex : '\"',\n next: \"string\"\n }, {\n token : \"constant\", // symbol\n regex : /:[^()\\[\\]{}'\"\\^%`,;\\s]+/\n }, {\n token : \"string.regexp\", //Regular Expressions\n regex : '/#\"(?:\\\\.|(?:\\\\\")|[^\"\"\\n])*\"/g'\n }\n\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : \"\\\\\\\\.|\\\\\\\\$\"\n }, {\n token : \"string\",\n regex : '[^\"\\\\\\\\]+'\n }, {\n token : \"string\",\n regex : '\"',\n next : \"start\"\n }\n ]\n };\n};\n\noop.inherits(ClojureHighlightRules, TextHighlightRules);\n\nexports.ClojureHighlightRules = ClojureHighlightRules;\n});\n\nace.define(\"ace/mode/matching_parens_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingParensOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\)/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\))/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n var match = line.match(/^(\\s+)/);\n if (match) {\n return match[1];\n }\n\n return \"\";\n };\n\n}).call(MatchingParensOutdent.prototype);\n\nexports.MatchingParensOutdent = MatchingParensOutdent;\n});\n\nace.define(\"ace/mode/clojure\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/clojure_highlight_rules\",\"ace/mode/matching_parens_outdent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar ClojureHighlightRules = acequire(\"./clojure_highlight_rules\").ClojureHighlightRules;\nvar MatchingParensOutdent = acequire(\"./matching_parens_outdent\").MatchingParensOutdent;\n\nvar Mode = function() {\n this.HighlightRules = ClojureHighlightRules;\n this.$outdent = new MatchingParensOutdent();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \";\";\n this.minorIndentFunctions = [\"defn\", \"defn-\", \"defmacro\", \"def\", \"deftest\", \"testing\"];\n\n this.$toIndent = function(str) {\n return str.split('').map(function(ch) {\n if (/\\s/.exec(ch)) {\n return ch;\n } else {\n return ' ';\n }\n }).join('');\n };\n\n this.$calculateIndent = function(line, tab) {\n var baseIndent = this.$getIndent(line);\n var delta = 0;\n var isParen, ch;\n for (var i = line.length - 1; i >= 0; i--) {\n ch = line[i];\n if (ch === '(') {\n delta--;\n isParen = true;\n } else if (ch === '(' || ch === '[' || ch === '{') {\n delta--;\n isParen = false;\n } else if (ch === ')' || ch === ']' || ch === '}') {\n delta++;\n }\n if (delta < 0) {\n break;\n }\n }\n if (delta < 0 && isParen) {\n i += 1;\n var iBefore = i;\n var fn = '';\n while (true) {\n ch = line[i];\n if (ch === ' ' || ch === '\\t') {\n if(this.minorIndentFunctions.indexOf(fn) !== -1) {\n return this.$toIndent(line.substring(0, iBefore - 1) + tab);\n } else {\n return this.$toIndent(line.substring(0, i + 1));\n }\n } else if (ch === undefined) {\n return this.$toIndent(line.substring(0, iBefore - 1) + tab);\n }\n fn += line[i];\n i++;\n }\n } else if(delta < 0 && !isParen) {\n return this.$toIndent(line.substring(0, i+1));\n } else if(delta > 0) {\n baseIndent = baseIndent.substring(0, baseIndent.length - tab.length);\n return baseIndent;\n } else {\n return baseIndent;\n }\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$calculateIndent(line, tab);\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.$id = \"ace/mode/clojure\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/brace/mode/clojure.js\n// module id = ./node_modules/brace/mode/clojure.js\n// module chunks = 28"],"sourceRoot":""} \ No newline at end of file
diff --git a/build/editor.js b/build/editor.js
index 2c8b9df..27863a4 100644
--- a/build/editor.js
+++ b/build/editor.js
@@ -1,4 +1,4 @@
-!function(e){var t=window.webpackJsonpTexteditor;window.webpackJsonpTexteditor=function(i,o,s){for(var r,a,l=0,d=[];l<i.length;l++)a=i[l],n[a]&&d.push(n[a][0]),n[a]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r]);for(t&&t(i,o,s);d.length;)d.shift()()};var i={},n={30:0};function o(t){if(i[t])return i[t].exports;var n=i[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.e=function(e){var t=n[e];if(0===t)return new Promise(function(e){e()});if(t)return t[2];var i=new Promise(function(i,o){t=n[e]=[i,o]});t[2]=i;var s=document.getElementsByTagName("head")[0],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.timeout=12e4,o.nc&&r.setAttribute("nonce",o.nc),r.src=o.p+""+({1:"markdown-mode",2:"php-mode",3:"html-mode",4:"svg-mode",5:"xml-mode",6:"scala-mode",7:"lua-mode",8:"json-mode",9:"js-mode",10:"java-mode",11:"groovy-mode",12:"css-mode",13:"coffee-mode",14:"ace",15:"textile-mode",16:"sql-mode",17:"sh-mode",18:"scss-mode",19:"scad-mode",20:"rb-mode",21:"py-mode",22:"ps1-mode",23:"pl-mode",24:"ml-mode",25:"less-mode",26:"latex-mode",27:"cs-mode",28:"h-mode",29:"bat-mode"}[e]||e)+".bundle.js";var a=setTimeout(l,12e4);function l(){r.onerror=r.onload=null,clearTimeout(a);var t=n[e];0!==t&&(t&&t[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return r.onerror=r.onload=l,s.appendChild(r),i},o.m=e,o.c=i,o.d=function(e,t,i){o.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o.oe=function(e){throw console.error(e),e},o(o.s="./js/index.js")}({"./js/ImportAce.js":function(e,t,i){"use strict";
+!function(e){var t=window.webpackJsonpTexteditor;window.webpackJsonpTexteditor=function(i,o,s){for(var r,a,l=0,d=[];l<i.length;l++)a=i[l],n[a]&&d.push(n[a][0]),n[a]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r]);for(t&&t(i,o,s);d.length;)d.shift()()};var i={},n={32:0};function o(t){if(i[t])return i[t].exports;var n=i[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.e=function(e){var t=n[e];if(0===t)return new Promise(function(e){e()});if(t)return t[2];var i=new Promise(function(i,o){t=n[e]=[i,o]});t[2]=i;var s=document.getElementsByTagName("head")[0],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.timeout=12e4,o.nc&&r.setAttribute("nonce",o.nc),r.src=o.p+""+({1:"markdown-mode",2:"php-mode",3:"html-mode",4:"svg-mode",5:"xml-mode",6:"scala-mode",7:"lua-mode",8:"json-mode",9:"js-mode",10:"java-mode",11:"groovy-mode",12:"css-mode",13:"coffee-mode",14:"ace",15:"textile-mode",16:"sql-mode",17:"sh-mode",18:"scss-mode",19:"scad-mode",20:"rb-mode",21:"py-mode",22:"ps1-mode",23:"pl-mode",24:"ml-mode",25:"less-mode",26:"latex-mode",27:"cs-mode",28:"clj-mode",29:"h-mode",30:"bat-mode"}[e]||e)+".bundle.js";var a=setTimeout(l,12e4);function l(){r.onerror=r.onload=null,clearTimeout(a);var t=n[e];0!==t&&(t&&t[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return r.onerror=r.onload=l,s.appendChild(r),i},o.m=e,o.c=i,o.d=function(e,t,i){o.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o.oe=function(e){throw console.error(e),e},o(o.s="./js/index.js")}({"./js/ImportAce.js":function(e,t,i){"use strict";
/*
* @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
*
@@ -19,5 +19,5 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
- */t.a=function(){return i.e(14).then(i.bind(null,"./node_modules/brace/index.js"))}},"./js/SyntaxMode.js":function(e,t,i){"use strict";t.a=function(e){var t=n[e];if(t)return o[t]().then(function(){return t});return $.when()};var n={bat:"batchfile",cmd:"batchfile",h:"c_cpp",c:"c_cpp",clj:"clojure",coffee:"coffee",cpp:"c_cpp",cs:"csharp",css:"css",groovy:"groovy",htm:"html",html:"html",tt:"html",java:"java",js:"javascript",jsm:"javascript",json:"json",latex:"latex",tex:"latex",less:"less",ly:"latex",ily:"latex",lua:"lua",markdown:"markdown",md:"markdown",mdown:"markdown",mdwn:"markdown",mkd:"markdown",ml:"ocaml",mli:"ocaml",pl:"perl",php:"php",ps1:"powershell",py:"python",rb:"ruby",scad:"scad",scala:"scala",scss:"scss",sh:"sh",sql:"sql",svg:"svg",textile:"textile",xml:"xml"},o={};o.batchfile=function(){return i.e(29).then(i.bind(null,"./node_modules/brace/mode/batchfile.js"))},o.c_cpp=function(){return i.e(28).then(i.bind(null,"./node_modules/brace/mode/c_cpp.js"))},o.coffee=function(){return i.e(13).then(i.bind(null,"./node_modules/brace/mode/coffee.js"))},o.cs=function(){return i.e(27).then(i.bind(null,"./node_modules/brace/mode/csharp.js"))},o.css=function(){return i.e(12).then(i.bind(null,"./node_modules/brace/mode/css.js"))},o.groovy=function(){return i.e(11).then(i.bind(null,"./node_modules/brace/mode/groovy.js"))},o.html=function(){return i.e(3).then(i.bind(null,"./node_modules/brace/mode/html.js"))},o.java=function(){return i.e(10).then(i.bind(null,"./node_modules/brace/mode/java.js"))},o.javascript=function(){return i.e(9).then(i.bind(null,"./node_modules/brace/mode/javascript.js"))},o.json=function(){return i.e(8).then(i.bind(null,"./node_modules/brace/mode/json.js"))},o.latex=function(){return i.e(26).then(i.bind(null,"./node_modules/brace/mode/latex.js"))},o.less=function(){return i.e(25).then(i.bind(null,"./node_modules/brace/mode/less.js"))},o.lua=function(){return i.e(7).then(i.bind(null,"./node_modules/brace/mode/lua.js"))},o.markdown=function(){return i.e(1).then(i.bind(null,"./node_modules/brace/mode/markdown.js"))},o.ocaml=function(){return i.e(24).then(i.bind(null,"./node_modules/brace/mode/ocaml.js"))},o.perl=function(){return i.e(23).then(i.bind(null,"./node_modules/brace/mode/perl.js"))},o.php=function(){return i.e(2).then(i.bind(null,"./node_modules/brace/mode/php.js"))},o.powershell=function(){return i.e(22).then(i.bind(null,"./node_modules/brace/mode/powershell.js"))},o.python=function(){return i.e(21).then(i.bind(null,"./node_modules/brace/mode/python.js"))},o.ruby=function(){return i.e(20).then(i.bind(null,"./node_modules/brace/mode/ruby.js"))},o.scad=function(){return i.e(19).then(i.bind(null,"./node_modules/brace/mode/scad.js"))},o.scala=function(){return i.e(6).then(i.bind(null,"./node_modules/brace/mode/scala.js"))},o.scss=function(){return i.e(18).then(i.bind(null,"./node_modules/brace/mode/scss.js"))},o.sh=function(){return i.e(17).then(i.bind(null,"./node_modules/brace/mode/sh.js"))},o.sql=function(){return i.e(16).then(i.bind(null,"./node_modules/brace/mode/sql.js"))},o.svg=function(){return i.e(4).then(i.bind(null,"./node_modules/brace/mode/svg.js"))},o.textile=function(){return i.e(15).then(i.bind(null,"./node_modules/brace/mode/textile.js"))},o.xml=function(){return i.e(5).then(i.bind(null,"./node_modules/brace/mode/xml.js"))}},"./js/editor.js":function(e,i,n){"use strict";n.d(i,"a",function(){return l});var o=n("./js/SyntaxMode.js"),s=n("./js/ImportAce.js"),r=n("./js/supported_mimetypes.json"),a=void 0,l={$container:null,editor:"editor",file:{edited:!1,mtime:null,dir:null,name:null,writeable:null,mime:null,size:null},saving:!1,currentContext:null,saveTimer:null,oldTitle:null,saveMessageTimeout:null,previewPlugins:{},registerPreviewPlugin:function(e,t){this.previewPlugins[e]=t},previewPluginsLoaded:{},preview:null,previewPluginOnChange:null,_onSaveTrigger:function(){if(l.file.edited&&!l.saving){l.saving=!0,l.file.edited=!1,clearTimeout(l.saveMessageTimeout);var e=$("#editor_controls").find("small.saving-message");e.text(t("files_texteditor","saving...")).show(),l.saveFile(window.aceEditor.getSession().getValue(),l.file,function(i){0==l.file.edited&&(document.title=l.file.name+" - "+l.oldTitle,$("small.unsaved-star").css("display","none")),l.file.mtime=i.mtime,l.file.size=i.size,e.text(t("files_texteditor","saved!")),l.saveMessageTimeout=setTimeout(function(){$("small.saving-message").fadeOut(200)},2e3)},function(e){void 0===e?$("small.saving-message").text(t("files_texteditor","failed!")):$("small.saving-message").text(e),l.saveMessageTimeout=setTimeout(function(){$("small.saving-message").fadeOut(200)},5e3),l.file.edited=!0}),l.saving=!1,window.aceEditor.focus()}},_onCloseTrigger:function(){l.file.edited?(l.file.edited=!1,l.hideEditor(),l.saveFile(window.aceEditor.getSession().getValue(),l.file,function(){OC.Notification.showTemporary(t("files_texteditor","Saved")),l.closeEditor()},function(){OC.Notification.showTemporary(t("files_texteditor","There was a problem saving your changes. Click to resume editing.")),$("#notification").data("reopeneditor",!0).on("click",l._onReOpenTrigger),l.file.edited=!0})):l.closeEditor()},_onReOpenTrigger:function(){1==$("#notification").data("reopeneditor")&&(document.title=l.file.name+" - "+l.oldTitle,l.$container.show())},_onEditorTrigger:function(e,t){var i=this;this.currentContext=t,this.file.name=e,this.file.dir=t.dir,this.fileList=t.fileList,Object(s.a)().then(function(n){a=n,i.loadEditor(l.$container,l.file),history.pushState({file:e,dir:t.dir},"Editor","#editor")})},_onEdit:function(){if(l.file.edited||(l.file.edited=!0,l.saving||l._onUnsaved()),this.previewPluginOnChange){var e=window.aceEditor.getSession().getValue();this.previewPluginOnChange(e,this.preview)}},_onUnsaved:function(){document.title="* "+l.file.name+" - "+l.oldTitle,$("small.unsaved-star").css("display","inline-block")},initialize:function(e){$("#content.app-files").length&&(this.$container=e,this.registerFileActions(),this.oldTitle=document.title)},registerFileActions:function(){var e=this;r.forEach(function(i){OCA.Files.fileActions.registerAction({name:"edit_texteditor",displayName:t("files_texteditor","Edit in plain text editor"),mime:i,actionHandler:e._onEditorTrigger.bind(e),permissions:OC.PERMISSION_READ,iconClass:"icon-edit"}),OCA.Files.fileActions.setDefault(i,"edit_texteditor")})},loadEditor:function(e,i){var n=this;e.html('<div id="editor_overlay"></div><div id="editor_container" class="icon-loading"><div id="editor_wrap"><div id="editor"></div><div id="preview_wrap"><div id="preview"></div></div></div></div>'),$("#content").append(e),this.loadFile(i.dir,i.name,function(t,i){if(document.title=t.name+" - "+l.oldTitle,$("#"+n.editor).text(i),$("#editor_container").removeClass("icon-loading"),n.configureACE(t),n.loadControlBar(t),window.aceEditor.getSession().on("change",n.setupAutosave),n.bindVisibleActions(),window.aceEditor.focus(),n.previewPlugins[t.mime]){n.preview=e.find("#preview"),n.preview.addClass(t.mime.replace("/","-")),e.find("#editor_container").addClass("hasPreview"),n.previewPluginOnChange=_.debounce(function(e,i){n.loadPreviewPlugin(t.mime).then(function(){n.previewPlugins[t.mime].preview(e,i)})},200);var o=window.aceEditor.getSession().getValue();n.previewPluginOnChange(o,n.preview),setTimeout(function(){window.aceEditor.resize()},500),n.loadPreviewControlBar()}else n.previewPluginOnChange=null},function(e){OC.dialogs.alert(e,t("files_texteditor","An error occurred!")),n.closeEditor()})},loadPreviewPlugin:function(e){if(this.previewPluginsLoaded[e])return $.Deferred().resolve().promise();this.previewPluginsLoaded[e]=!0;var t=this.previewPlugins[e];return $.when(t.init())},loadControlBar:function(e){var t='<small class="filename">'+escapeHTML(e.name)+'</small><small class="unsaved-star" style="display: none">*</small><small class="saving-message"></small><button id="editor_close" class="icon-close svg"></button>',i=$('<div id="editor_controls"></div>').html(t);$("#editor_wrap").before(i),this.setFilenameMaxLength(),this.bindControlBar()},setPreviewMode:function(e){var t=$("#app-content-texteditor"),i=$("#preview_editor_controls");switch(i.find("button").removeClass("active"),i.find('button[data-type="'+e+'"]').addClass("active"),e){case"mixed":t.find("#editor_container").addClass("hasPreview"),t.find("#editor_container").removeClass("onlyPreview");break;case"text":t.find("#editor_container").removeClass("hasPreview"),t.find("#editor_container").removeClass("onlyPreview");break;case"image":t.find("#editor_container").addClass("hasPreview"),t.find("#editor_container").addClass("onlyPreview")}setTimeout(function(){window.aceEditor.resize()},500)},loadPreviewControlBar:function(){var e=function(e,t,i){var n=$("<button/>");return n.tooltip({title:t,container:"body",placement:"bottom",delay:{show:500,hide:0}}),i&&n.addClass("active"),n.click(this.setPreviewMode.bind(this,e)),n.attr("data-type",e),n.css("background-image",'url("'+OC.imagePath("files_texteditor",e)+'")')}.bind(this),i=$("<span/>").attr("id","preview_editor_controls");i.append(e("text",t("files_texteditor","Edit"))),i.append(e("mixed",t("files_texteditor","Mixed"),!0)),i.append(e("image",t("files_texteditor","Preview"))),$("#editor_close").after(i)},unloadControlBar:function(){$("#editor_controls").remove()},setFilenameMaxLength:function(){var e=$("#editor_controls").width(),t=$("small.saving-message").outerWidth(!0);t+=$("small.unsaved-star").outerWidth(!0),t+=$("#editor_close").outerWidth(!0),$("small.filename").css("max-width",e-t-28)},bindControlBar:function(){$("#editor_close").on("click",_.bind(this._onCloseTrigger,this)),$(window).resize(l.setFilenameMaxLength),window.onpopstate=function(){"editor"!==location.hash.substr(1).substr(0,6)&&this._onCloseTrigger()}.bind(this)},configureACE:function(e){window.aceEditor=a.edit(this.editor),aceEditor.getSession().setNewLineMode("windows"),aceEditor.setShowPrintMargin(!1),aceEditor.getSession().setUseWrapMode(!0),e.writeable||aceEditor.setReadOnly(!0),e.mime&&"text/html"===e.mime?this.setEditorSyntaxMode("html"):this.setEditorSyntaxMode(e.name.split(".")[e.name.split(".").length-1]),n.e(0).then(n.bind(null,"./node_modules/brace/theme/clouds.js")).then(function(){window.aceEditor.setTheme("ace/theme/clouds")}),window.aceEditor.getSession().on("change",this._onEdit.bind(this)),window.aceEditor.commands.addCommand({name:"save",bindKey:{win:"Ctrl-S",mac:"Command-S",sender:"editor"},exec:l._onSaveTrigger}),window.aceEditor.commands.removeCommand(window.aceEditor.commands.byName.transposeletters)},setEditorSyntaxMode:function(e){Object(o.a)(e).then(function(e){e&&window.aceEditor.getSession().setMode("ace/mode/"+e)})},loadFile:function(e,t,i,n){$.get(OC.generateUrl("/apps/files_texteditor/ajax/loadfile"),{filename:t,dir:e}).done(function(e){l.file.writeable=e.writeable,l.file.mime=e.mime,l.file.mtime=e.mtime,i(l.file,e.filecontents)}).fail(function(e){n(JSON.parse(e.responseText).message)})},saveFile:function(e,t,i,n){var o=t.dir+t.name;"/"!==t.dir&&(o=t.dir+"/"+t.name),$.ajax({type:"PUT",url:OC.generateUrl("/apps/files_texteditor/ajax/savefile"),data:{filecontents:e,path:o,mtime:t.mtime}}).done(i).fail(function(e){var t;try{t=JSON.parse(e.responseText).message}catch(e){}n(t)})},closeEditor:function(){this.$container.html("").show(),this.unloadControlBar(),this.unBindVisibleActions();var e=this.fileList.getModelForFile(this.file.name);e&&e.set({etag:e.get("id")+this.file.mtime,mtime:1e3*this.file.mtime,size:this.file.size}),document.title=this.oldTitle},hideEditor:function(){this.$container.hide(),document.title=this.oldTitle,this.unBindVisibleActions()},setupAutosave:function(){clearTimeout(this.saveTimer),this.saveTimer=setTimeout(l._onSaveTrigger,3e3)},_onClickDocument:function(e){$(e.target).closest("#editor_container").length||$(e.target).closest(".oc-dialog").length||l._onCloseTrigger()},bindVisibleActions:function(){$(document).bind("click",this._onClickDocument)},unBindVisibleActions:function(){$(document).unbind("click",this._onClickDocument)}}},"./js/index.js":function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i("./js/sidebarpreview.js"),o=i("./js/editor.js"),s=i("./js/newfileplugin.js");i.p=OC.filePath("files_texteditor","js","../build/");var r=document.querySelector("[nonce]");i.nc=r.nonce||r.getAttribute("nonce"),OCA.Files_Texteditor=o.a,OC.Plugins.register("OCA.Files.NewFileMenu",s.a),OC.Plugins.register("OCA.Files.SidebarPreviewManager",new n.a),$(document).ready(function(){$("#editor").remove(),OCA.Files_Texteditor.initialize($('<div id="app-content-texteditor"></div>'))})},"./js/newfileplugin.js":function(e,i,n){"use strict";n.d(i,"a",function(){return o});var o={attach:function(e){var i=e.fileList;void 0===OCA.Text&&"files"===i.id&&e.addMenuEntry({id:"file",displayName:t("files_texteditor","New text file"),templateName:t("files_texteditor","New text file.txt"),iconClass:"icon-filetype-text",fileType:"file",actionHandler:function(e){var t=i.getCurrentDirectory();i.createFile(e).then(function(){OCA.Files_Texteditor._onEditorTrigger(e,{fileList:i,dir:t})})}})}}},"./js/sidebarpreview.js":function(e,t,i){"use strict";i.d(t,"a",function(){return a});var n=i("./js/SyntaxMode.js"),o=i("./js/ImportAce.js"),s=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();var r=i("./js/supported_mimetypes.json"),a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return s(e,[{key:"attach",value:function(e){var t=this.handlePreview.bind(this);r.forEach(function(i){return e.addPreviewHandler(i,t)})}},{key:"handlePreview",value:function(e,t,s,r){var a=s.parent().width()+50,l=a/(16/9);this.getFileContent(e.getFullPath()).then(function(r){r=r.filecontents,t.removeClass("icon-loading icon-32"),s.addClass("large"),s.addClass("text");var d=$("<div id='sidebar_editor'/>");d.text(r),t.children(".stretcher").remove(),t.append(d),Object(o.a)().then(function(t){var o=t.edit("sidebar_editor");o.setReadOnly(!0);("text/html"===e.get("mimetype")?Object(n.a)("html"):Object(n.a)(e.get("name").split(".")[e.get("name").split(".").length-1])).then(function(e){e&&o.getSession().setMode("ace/mode/"+e)}),i.e(0).then(i.bind(null,"./node_modules/brace/theme/clouds.js")).then(function(){o.setTheme("ace/theme/clouds")}),d.css("height",l),d.css("width",a)})},function(){r()})}},{key:"getFileContent",value:function(e){var t=e.split("/"),i=t.slice(0,-1).join(""),n=t.slice(-1).join("");return $.ajax({url:OC.generateUrl("/apps/files_texteditor/ajax/loadfile"),data:{filename:n,dir:i},headers:{Range:"bytes=0-10240"}})}}]),e}()},"./js/supported_mimetypes.json":function(e,t){e.exports=["text","application/cmd","application/javascript","application/json","application/xml","application/x-empty","application/x-msdos-program","application/x-php","application/x-pearl","application/x-text","application/yaml"]}});
+ */t.a=function(){return i.e(14).then(i.bind(null,"./node_modules/brace/index.js"))}},"./js/SyntaxMode.js":function(e,t,i){"use strict";t.a=function(e){var t=n[e];if(t)return o[t]().then(function(){return t});return $.when()};var n={bat:"batchfile",cmd:"batchfile",h:"c_cpp",c:"c_cpp",clj:"clojure",coffee:"coffee",cpp:"c_cpp",cs:"csharp",css:"css",groovy:"groovy",htm:"html",html:"html",tt:"html",java:"java",js:"javascript",jsm:"javascript",json:"json",latex:"latex",tex:"latex",less:"less",ly:"latex",ily:"latex",lua:"lua",markdown:"markdown",md:"markdown",mdown:"markdown",mdwn:"markdown",mkd:"markdown",ml:"ocaml",mli:"ocaml",pl:"perl",php:"php",ps1:"powershell",py:"python",rb:"ruby",scad:"scad",scala:"scala",scss:"scss",sh:"sh",sql:"sql",svg:"svg",textile:"textile",xml:"xml"},o={};o.batchfile=function(){return i.e(30).then(i.bind(null,"./node_modules/brace/mode/batchfile.js"))},o.c_cpp=function(){return i.e(29).then(i.bind(null,"./node_modules/brace/mode/c_cpp.js"))},o.coffee=function(){return i.e(13).then(i.bind(null,"./node_modules/brace/mode/coffee.js"))},o.csharp=function(){return i.e(27).then(i.bind(null,"./node_modules/brace/mode/csharp.js"))},o.clojure=function(){return i.e(28).then(i.bind(null,"./node_modules/brace/mode/clojure.js"))},o.css=function(){return i.e(12).then(i.bind(null,"./node_modules/brace/mode/css.js"))},o.groovy=function(){return i.e(11).then(i.bind(null,"./node_modules/brace/mode/groovy.js"))},o.html=function(){return i.e(3).then(i.bind(null,"./node_modules/brace/mode/html.js"))},o.java=function(){return i.e(10).then(i.bind(null,"./node_modules/brace/mode/java.js"))},o.javascript=function(){return i.e(9).then(i.bind(null,"./node_modules/brace/mode/javascript.js"))},o.json=function(){return i.e(8).then(i.bind(null,"./node_modules/brace/mode/json.js"))},o.latex=function(){return i.e(26).then(i.bind(null,"./node_modules/brace/mode/latex.js"))},o.less=function(){return i.e(25).then(i.bind(null,"./node_modules/brace/mode/less.js"))},o.lua=function(){return i.e(7).then(i.bind(null,"./node_modules/brace/mode/lua.js"))},o.markdown=function(){return i.e(1).then(i.bind(null,"./node_modules/brace/mode/markdown.js"))},o.ocaml=function(){return i.e(24).then(i.bind(null,"./node_modules/brace/mode/ocaml.js"))},o.perl=function(){return i.e(23).then(i.bind(null,"./node_modules/brace/mode/perl.js"))},o.php=function(){return i.e(2).then(i.bind(null,"./node_modules/brace/mode/php.js"))},o.powershell=function(){return i.e(22).then(i.bind(null,"./node_modules/brace/mode/powershell.js"))},o.python=function(){return i.e(21).then(i.bind(null,"./node_modules/brace/mode/python.js"))},o.ruby=function(){return i.e(20).then(i.bind(null,"./node_modules/brace/mode/ruby.js"))},o.scad=function(){return i.e(19).then(i.bind(null,"./node_modules/brace/mode/scad.js"))},o.scala=function(){return i.e(6).then(i.bind(null,"./node_modules/brace/mode/scala.js"))},o.scss=function(){return i.e(18).then(i.bind(null,"./node_modules/brace/mode/scss.js"))},o.sh=function(){return i.e(17).then(i.bind(null,"./node_modules/brace/mode/sh.js"))},o.sql=function(){return i.e(16).then(i.bind(null,"./node_modules/brace/mode/sql.js"))},o.svg=function(){return i.e(4).then(i.bind(null,"./node_modules/brace/mode/svg.js"))},o.textile=function(){return i.e(15).then(i.bind(null,"./node_modules/brace/mode/textile.js"))},o.xml=function(){return i.e(5).then(i.bind(null,"./node_modules/brace/mode/xml.js"))}},"./js/editor.js":function(e,i,n){"use strict";n.d(i,"a",function(){return l});var o=n("./js/SyntaxMode.js"),s=n("./js/ImportAce.js"),r=n("./js/supported_mimetypes.json"),a=void 0,l={$container:null,editor:"editor",file:{edited:!1,mtime:null,dir:null,name:null,writeable:null,mime:null,size:null},saving:!1,currentContext:null,saveTimer:null,oldTitle:null,saveMessageTimeout:null,previewPlugins:{},registerPreviewPlugin:function(e,t){this.previewPlugins[e]=t},previewPluginsLoaded:{},preview:null,previewPluginOnChange:null,_onSaveTrigger:function(){if(l.file.edited&&!l.saving){l.saving=!0,l.file.edited=!1,clearTimeout(l.saveMessageTimeout);var e=$("#editor_controls").find("small.saving-message");e.text(t("files_texteditor","saving...")).show(),l.saveFile(window.aceEditor.getSession().getValue(),l.file,function(i){0==l.file.edited&&(document.title=l.file.name+" - "+l.oldTitle,$("small.unsaved-star").css("display","none")),l.file.mtime=i.mtime,l.file.size=i.size,e.text(t("files_texteditor","saved!")),l.saveMessageTimeout=setTimeout(function(){$("small.saving-message").fadeOut(200)},2e3)},function(e){void 0===e?$("small.saving-message").text(t("files_texteditor","failed!")):$("small.saving-message").text(e),l.saveMessageTimeout=setTimeout(function(){$("small.saving-message").fadeOut(200)},5e3),l.file.edited=!0}),l.saving=!1,window.aceEditor.focus()}},_onCloseTrigger:function(){l.file.edited?(l.file.edited=!1,l.hideEditor(),l.saveFile(window.aceEditor.getSession().getValue(),l.file,function(){OC.Notification.showTemporary(t("files_texteditor","Saved")),l.closeEditor()},function(){OC.Notification.showTemporary(t("files_texteditor","There was a problem saving your changes. Click to resume editing.")),$("#notification").data("reopeneditor",!0).on("click",l._onReOpenTrigger),l.file.edited=!0})):l.closeEditor()},_onReOpenTrigger:function(){1==$("#notification").data("reopeneditor")&&(document.title=l.file.name+" - "+l.oldTitle,l.$container.show())},_onEditorTrigger:function(e,t){var i=this;this.currentContext=t,this.file.name=e,this.file.dir=t.dir,this.fileList=t.fileList,Object(s.a)().then(function(n){a=n,i.loadEditor(l.$container,l.file),history.pushState({file:e,dir:t.dir},"Editor","#editor")})},_onEdit:function(){if(l.file.edited||(l.file.edited=!0,l.saving||l._onUnsaved()),this.previewPluginOnChange){var e=window.aceEditor.getSession().getValue();this.previewPluginOnChange(e,this.preview)}},_onUnsaved:function(){document.title="* "+l.file.name+" - "+l.oldTitle,$("small.unsaved-star").css("display","inline-block")},initialize:function(e){$("#content.app-files").length&&(this.$container=e,this.registerFileActions(),this.oldTitle=document.title)},registerFileActions:function(){var e=this;r.forEach(function(i){OCA.Files.fileActions.registerAction({name:"edit_texteditor",displayName:t("files_texteditor","Edit in plain text editor"),mime:i,actionHandler:e._onEditorTrigger.bind(e),permissions:OC.PERMISSION_READ,iconClass:"icon-edit"}),OCA.Files.fileActions.setDefault(i,"edit_texteditor")})},loadEditor:function(e,i){var n=this;e.html('<div id="editor_overlay"></div><div id="editor_container" class="icon-loading"><div id="editor_wrap"><div id="editor"></div><div id="preview_wrap"><div id="preview"></div></div></div></div>'),$("#content").append(e),this.loadFile(i.dir,i.name,function(t,i){if(document.title=t.name+" - "+l.oldTitle,$("#"+n.editor).text(i),$("#editor_container").removeClass("icon-loading"),n.configureACE(t),n.loadControlBar(t),window.aceEditor.getSession().on("change",n.setupAutosave),n.bindVisibleActions(),window.aceEditor.focus(),n.previewPlugins[t.mime]){n.preview=e.find("#preview"),n.preview.addClass(t.mime.replace("/","-")),e.find("#editor_container").addClass("hasPreview"),n.previewPluginOnChange=_.debounce(function(e,i){n.loadPreviewPlugin(t.mime).then(function(){n.previewPlugins[t.mime].preview(e,i)})},200);var o=window.aceEditor.getSession().getValue();n.previewPluginOnChange(o,n.preview),setTimeout(function(){window.aceEditor.resize()},500),n.loadPreviewControlBar()}else n.previewPluginOnChange=null},function(e){OC.dialogs.alert(e,t("files_texteditor","An error occurred!")),n.closeEditor()})},loadPreviewPlugin:function(e){if(this.previewPluginsLoaded[e])return $.Deferred().resolve().promise();this.previewPluginsLoaded[e]=!0;var t=this.previewPlugins[e];return $.when(t.init())},loadControlBar:function(e){var t='<small class="filename">'+escapeHTML(e.name)+'</small><small class="unsaved-star" style="display: none">*</small><small class="saving-message"></small><button id="editor_close" class="icon-close svg"></button>',i=$('<div id="editor_controls"></div>').html(t);$("#editor_wrap").before(i),this.setFilenameMaxLength(),this.bindControlBar()},setPreviewMode:function(e){var t=$("#app-content-texteditor"),i=$("#preview_editor_controls");switch(i.find("button").removeClass("active"),i.find('button[data-type="'+e+'"]').addClass("active"),e){case"mixed":t.find("#editor_container").addClass("hasPreview"),t.find("#editor_container").removeClass("onlyPreview");break;case"text":t.find("#editor_container").removeClass("hasPreview"),t.find("#editor_container").removeClass("onlyPreview");break;case"image":t.find("#editor_container").addClass("hasPreview"),t.find("#editor_container").addClass("onlyPreview")}setTimeout(function(){window.aceEditor.resize()},500)},loadPreviewControlBar:function(){var e=function(e,t,i){var n=$("<button/>");return n.tooltip({title:t,container:"body",placement:"bottom",delay:{show:500,hide:0}}),i&&n.addClass("active"),n.click(this.setPreviewMode.bind(this,e)),n.attr("data-type",e),n.css("background-image",'url("'+OC.imagePath("files_texteditor",e)+'")')}.bind(this),i=$("<span/>").attr("id","preview_editor_controls");i.append(e("text",t("files_texteditor","Edit"))),i.append(e("mixed",t("files_texteditor","Mixed"),!0)),i.append(e("image",t("files_texteditor","Preview"))),$("#editor_close").after(i)},unloadControlBar:function(){$("#editor_controls").remove()},setFilenameMaxLength:function(){var e=$("#editor_controls").width(),t=$("small.saving-message").outerWidth(!0);t+=$("small.unsaved-star").outerWidth(!0),t+=$("#editor_close").outerWidth(!0),$("small.filename").css("max-width",e-t-28)},bindControlBar:function(){$("#editor_close").on("click",_.bind(this._onCloseTrigger,this)),$(window).resize(l.setFilenameMaxLength),window.onpopstate=function(){"editor"!==location.hash.substr(1).substr(0,6)&&this._onCloseTrigger()}.bind(this)},configureACE:function(e){window.aceEditor=a.edit(this.editor),aceEditor.getSession().setNewLineMode("windows"),aceEditor.setShowPrintMargin(!1),aceEditor.getSession().setUseWrapMode(!0),e.writeable||aceEditor.setReadOnly(!0),e.mime&&"text/html"===e.mime?this.setEditorSyntaxMode("html"):this.setEditorSyntaxMode(e.name.split(".")[e.name.split(".").length-1]),n.e(0).then(n.bind(null,"./node_modules/brace/theme/clouds.js")).then(function(){window.aceEditor.setTheme("ace/theme/clouds")}),window.aceEditor.getSession().on("change",this._onEdit.bind(this)),window.aceEditor.commands.addCommand({name:"save",bindKey:{win:"Ctrl-S",mac:"Command-S",sender:"editor"},exec:l._onSaveTrigger}),window.aceEditor.commands.removeCommand(window.aceEditor.commands.byName.transposeletters)},setEditorSyntaxMode:function(e){Object(o.a)(e).then(function(e){e&&window.aceEditor.getSession().setMode("ace/mode/"+e)})},loadFile:function(e,t,i,n){$.get(OC.generateUrl("/apps/files_texteditor/ajax/loadfile"),{filename:t,dir:e}).done(function(e){l.file.writeable=e.writeable,l.file.mime=e.mime,l.file.mtime=e.mtime,i(l.file,e.filecontents)}).fail(function(e){n(JSON.parse(e.responseText).message)})},saveFile:function(e,t,i,n){var o=t.dir+t.name;"/"!==t.dir&&(o=t.dir+"/"+t.name),$.ajax({type:"PUT",url:OC.generateUrl("/apps/files_texteditor/ajax/savefile"),data:{filecontents:e,path:o,mtime:t.mtime}}).done(i).fail(function(e){var t;try{t=JSON.parse(e.responseText).message}catch(e){}n(t)})},closeEditor:function(){this.$container.html("").show(),this.unloadControlBar(),this.unBindVisibleActions();var e=this.fileList.getModelForFile(this.file.name);e&&e.set({etag:e.get("id")+this.file.mtime,mtime:1e3*this.file.mtime,size:this.file.size}),document.title=this.oldTitle},hideEditor:function(){this.$container.hide(),document.title=this.oldTitle,this.unBindVisibleActions()},setupAutosave:function(){clearTimeout(this.saveTimer),this.saveTimer=setTimeout(l._onSaveTrigger,3e3)},_onClickDocument:function(e){$(e.target).closest("#editor_container").length||$(e.target).closest(".oc-dialog").length||l._onCloseTrigger()},bindVisibleActions:function(){$(document).bind("click",this._onClickDocument)},unBindVisibleActions:function(){$(document).unbind("click",this._onClickDocument)}}},"./js/index.js":function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i("./js/sidebarpreview.js"),o=i("./js/editor.js"),s=i("./js/newfileplugin.js");i.p=OC.filePath("files_texteditor","js","../build/");var r=document.querySelector("[nonce]");i.nc=r.nonce||r.getAttribute("nonce"),OCA.Files_Texteditor=o.a,OC.Plugins.register("OCA.Files.NewFileMenu",s.a),OC.Plugins.register("OCA.Files.SidebarPreviewManager",new n.a),$(document).ready(function(){$("#editor").remove(),OCA.Files_Texteditor.initialize($('<div id="app-content-texteditor"></div>'))})},"./js/newfileplugin.js":function(e,i,n){"use strict";n.d(i,"a",function(){return o});var o={attach:function(e){var i=e.fileList;void 0===OCA.Text&&"files"===i.id&&e.addMenuEntry({id:"file",displayName:t("files_texteditor","New text file"),templateName:t("files_texteditor","New text file.txt"),iconClass:"icon-filetype-text",fileType:"file",actionHandler:function(e){var t=i.getCurrentDirectory();i.createFile(e).then(function(){OCA.Files_Texteditor._onEditorTrigger(e,{fileList:i,dir:t})})}})}}},"./js/sidebarpreview.js":function(e,t,i){"use strict";i.d(t,"a",function(){return a});var n=i("./js/SyntaxMode.js"),o=i("./js/ImportAce.js"),s=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();var r=i("./js/supported_mimetypes.json"),a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return s(e,[{key:"attach",value:function(e){var t=this.handlePreview.bind(this);r.forEach(function(i){return e.addPreviewHandler(i,t)})}},{key:"handlePreview",value:function(e,t,s,r){var a=s.parent().width()+50,l=a/(16/9);this.getFileContent(e.getFullPath()).then(function(r){r=r.filecontents,t.removeClass("icon-loading icon-32"),s.addClass("large"),s.addClass("text");var d=$("<div id='sidebar_editor'/>");d.text(r),t.children(".stretcher").remove(),t.append(d),Object(o.a)().then(function(t){var o=t.edit("sidebar_editor");o.setReadOnly(!0);("text/html"===e.get("mimetype")?Object(n.a)("html"):Object(n.a)(e.get("name").split(".")[e.get("name").split(".").length-1])).then(function(e){e&&o.getSession().setMode("ace/mode/"+e)}),i.e(0).then(i.bind(null,"./node_modules/brace/theme/clouds.js")).then(function(){o.setTheme("ace/theme/clouds")}),d.css("height",l),d.css("width",a)})},function(){r()})}},{key:"getFileContent",value:function(e){var t=e.split("/"),i=t.slice(0,-1).join(""),n=t.slice(-1).join("");return $.ajax({url:OC.generateUrl("/apps/files_texteditor/ajax/loadfile"),data:{filename:n,dir:i},headers:{Range:"bytes=0-10240"}})}}]),e}()},"./js/supported_mimetypes.json":function(e,t){e.exports=["text","application/cmd","application/javascript","application/json","application/xml","application/x-empty","application/x-msdos-program","application/x-php","application/x-pearl","application/x-text","application/yaml"]}});
//# sourceMappingURL=editor.js.map \ No newline at end of file
diff --git a/build/editor.js.map b/build/editor.js.map
index c175fee..611da8f 100644
--- a/build/editor.js.map
+++ b/build/editor.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 22a5cb653aacc4fb9c14","webpack:///./js/ImportAce.js","webpack:///./js/SyntaxMode.js","webpack:///./js/editor.js","webpack:///./js/index.js","webpack:///./js/newfileplugin.js","webpack:///./js/sidebarpreview.js","webpack:///./js/supported_mimetypes.json"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","installedModules","30","__webpack_require__","exports","module","l","e","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","script","createElement","type","charset","async","timeout","nc","setAttribute","src","p","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","setTimeout","onScriptComplete","onerror","onload","clearTimeout","chunk","Error","undefined","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","s","__webpack_exports__","then","bind","extension","filetype","loaders","$","when","supportedMimeTypes","ace","Texteditor","$container","editor","file","edited","mtime","dir","writeable","mime","size","saving","currentContext","saveTimer","oldTitle","saveMessageTimeout","previewPlugins","registerPreviewPlugin","mimeType","plugin","this","previewPluginsLoaded","preview","previewPluginOnChange","_onSaveTrigger","$message","find","text","t","show","saveFile","aceEditor","getSession","getValue","data","title","css","fadeOut","message","focus","_onCloseTrigger","hideEditor","OC","Notification","showTemporary","closeEditor","on","_onReOpenTrigger","_onEditorTrigger","filename","context","_this","fileList","__WEBPACK_IMPORTED_MODULE_1__ImportAce__","_ace","loadEditor","history","pushState","_onEdit","_onUnsaved","initialize","container","registerFileActions","_this2","forEach","OCA","Files","fileActions","registerAction","displayName","actionHandler","permissions","PERMISSION_READ","iconClass","setDefault","_self","html","append","loadFile","removeClass","configureACE","loadControlBar","setupAutosave","bindVisibleActions","addClass","replace","_","debounce","element","loadPreviewPlugin","resize","loadPreviewControlBar","dialogs","alert","Deferred","init","escapeHTML","controlBar","before","setFilenameMaxLength","bindControlBar","setPreviewMode","mode","makeButton","tooltip","active","button","placement","delay","hide","click","attr","imagePath","controls","after","unloadControlBar","remove","width","outerWidth","onpopstate","location","hash","substr","edit","setNewLineMode","setShowPrintMargin","setUseWrapMode","setReadOnly","setEditorSyntaxMode","split","setTheme","commands","addCommand","bindKey","win","mac","sender","exec","removeCommand","byName","transposeletters","__WEBPACK_IMPORTED_MODULE_0__SyntaxMode__","setMode","success","failure","generateUrl","done","filecontents","fail","jqXHR","JSON","parse","responseText","path","ajax","url","unBindVisibleActions","fileInfoModel","getModelForFile","set","etag","_onClickDocument","event","target","closest","unbind","__WEBPACK_IMPORTED_MODULE_2__newfileplugin__","filePath","querySelector","getAttribute","Files_Texteditor","__WEBPACK_IMPORTED_MODULE_1__editor__","Plugins","register","__WEBPACK_IMPORTED_MODULE_0__sidebarpreview__","ready","newFileMenuPlugin","attach","menu","Text","id","addMenuEntry","templateName","fileType","getCurrentDirectory","createFile","SidebarPreview","_classCallCheck","_createClass","key","value","manager","handler","handlePreview","addPreviewHandler","model","$thumbnailDiv","$thumbnailContainer","fallback","previewWidth","parent","previewHeight","getFileContent","getFullPath","content","$editorDiv","children","imports","parts","slice","join","headers","Range"],"mappings":"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","file":"editor.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonpTexteditor\"];\n \twindow[\"webpackJsonpTexteditor\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t30: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = \"text/javascript\";\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"\" + ({\"1\":\"markdown-mode\",\"2\":\"php-mode\",\"3\":\"html-mode\",\"4\":\"svg-mode\",\"5\":\"xml-mode\",\"6\":\"scala-mode\",\"7\":\"lua-mode\",\"8\":\"json-mode\",\"9\":\"js-mode\",\"10\":\"java-mode\",\"11\":\"groovy-mode\",\"12\":\"css-mode\",\"13\":\"coffee-mode\",\"14\":\"ace\",\"15\":\"textile-mode\",\"16\":\"sql-mode\",\"17\":\"sh-mode\",\"18\":\"scss-mode\",\"19\":\"scad-mode\",\"20\":\"rb-mode\",\"21\":\"py-mode\",\"22\":\"ps1-mode\",\"23\":\"pl-mode\",\"24\":\"ml-mode\",\"25\":\"less-mode\",\"26\":\"latex-mode\",\"27\":\"cs-mode\",\"28\":\"h-mode\",\"29\":\"bat-mode\"}[chunkId]||chunkId) + \".bundle.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./js/index.js\");\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 22a5cb653aacc4fb9c14","/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default function() {\n\treturn import(/* webpackChunkName: \"ace\" */'brace')\n}\n\n\n\n// WEBPACK FOOTER //\n// ./js/ImportAce.js","const filetype = {};\n// add file extensions like this: filetype[\"extension\"] = \"filetype\":\nfiletype[\"bat\"] = \"batchfile\";\nfiletype[\"cmd\"] = \"batchfile\";\nfiletype[\"h\"] = \"c_cpp\";\nfiletype[\"c\"] = \"c_cpp\";\nfiletype[\"clj\"] = \"clojure\";\nfiletype[\"coffee\"] = \"coffee\"; // coffescript can be compiled to javascript\nfiletype[\"cpp\"] = \"c_cpp\";\nfiletype[\"cs\"] = \"csharp\";\nfiletype[\"css\"] = \"css\";\nfiletype[\"groovy\"] = \"groovy\";\nfiletype[\"htm\"] = \"html\";\nfiletype[\"html\"] = \"html\";\nfiletype[\"tt\"] = \"html\";\nfiletype[\"java\"] = \"java\";\nfiletype[\"js\"] = \"javascript\";\nfiletype[\"jsm\"] = \"javascript\";\nfiletype[\"json\"] = \"json\";\nfiletype[\"latex\"] = \"latex\";\nfiletype[\"tex\"] = \"latex\";\nfiletype[\"less\"] = \"less\";\nfiletype[\"ly\"] = \"latex\";\nfiletype[\"ily\"] = \"latex\";\nfiletype[\"lua\"] = \"lua\";\nfiletype[\"markdown\"] = \"markdown\";\nfiletype[\"md\"] = \"markdown\";\nfiletype[\"mdown\"] = \"markdown\";\nfiletype[\"mdwn\"] = \"markdown\";\nfiletype[\"mkd\"] = \"markdown\";\nfiletype[\"ml\"] = \"ocaml\";\nfiletype[\"mli\"] = \"ocaml\";\nfiletype[\"pl\"] = \"perl\";\nfiletype[\"php\"] = \"php\";\nfiletype[\"ps1\"] = \"powershell\";\nfiletype[\"py\"] = \"python\";\nfiletype[\"rb\"] = \"ruby\";\nfiletype[\"scad\"] = \"scad\"; // seems to be something like 3d model files printed with e.g. reprap\nfiletype[\"scala\"] = \"scala\";\nfiletype[\"scss\"] = \"scss\"; // \"sassy css\"\nfiletype[\"sh\"] = \"sh\";\nfiletype[\"sql\"] = \"sql\";\nfiletype[\"svg\"] = \"svg\";\nfiletype[\"textile\"] = \"textile\"; // related to markdown\nfiletype[\"xml\"] = \"xml\";\n\nconst loaders = {};\n// add loader like this: loaders[\"filetype\"] = () => require(\"promise?brace/mode/filetype\"):\n\n// note that these require statements can't be generated from the filetypes dynamically\n// to make sure webpack can analyse our dependencies\nloaders[\"batchfile\"] = () => import(\n\t/* webpackChunkName: \"bat-mode\" */\n\t\"brace/mode/batchfile\"\n\t);\nloaders[\"c_cpp\"] = () => import(\n\t/* webpackChunkName: \"h-mode\" */\n\t\"brace/mode/c_cpp\"\n\t);\nloaders[\"coffee\"] = () => import\n\t/* webpackChunkName: \"coffee-mode\" */(\n\t\"brace/mode/coffee\"\n\t);\nloaders[\"cs\"] = () => import(\n\t/* webpackChunkName: \"cs-mode\" */\n\t\"brace/mode/csharp\"\n\t);\nloaders[\"css\"] = () => import(\n\t/* webpackChunkName: \"css-mode\" */\n\t\"brace/mode/css\"\n\t);\nloaders[\"groovy\"] = () => import\n\t/* webpackChunkName: \"groovy-mode\" */(\n\t\"brace/mode/groovy\"\n\t);\nloaders[\"html\"] = () => import(\n\t/* webpackChunkName: \"html-mode\" */\n\t\"brace/mode/html\"\n\t);\nloaders[\"java\"] = () => import(\n\t/* webpackChunkName: \"java-mode\" */\n\t\"brace/mode/java\"\n\t);\nloaders[\"javascript\"] = () => import(\n\t/* webpackChunkName: \"js-mode\" */\n\t\"brace/mode/javascript\"\n\t);\nloaders[\"json\"] = () => import(\n\t/* webpackChunkName: \"json-mode\" */\n\t\"brace/mode/json\"\n\t);\nloaders[\"latex\"] = () => import(\n\t/* webpackChunkName: \"latex-mode\" */\n\t\"brace/mode/latex\"\n\t);\nloaders[\"less\"] = () => import(\n\t/* webpackChunkName: \"less-mode\" */\n\t\"brace/mode/less\"\n\t);\nloaders[\"lua\"] = () => import(\n\t/* webpackChunkName: \"lua-mode\" */\n\t\"brace/mode/lua\"\n\t);\nloaders[\"markdown\"] = () => import(\n\t/* webpackChunkName: \"markdown-mode\" */\n\t\"brace/mode/markdown\"\n\t);\nloaders[\"ocaml\"] = () => import(\n\t/* webpackChunkName: \"ml-mode\" */\n\t\"brace/mode/ocaml\"\n\t);\nloaders[\"perl\"] = () => import(\n\t/* webpackChunkName: \"pl-mode\" */\n\t\"brace/mode/perl\"\n\t);\nloaders[\"php\"] = () => import(\n\t/* webpackChunkName: \"php-mode\" */\n\t\"brace/mode/php\"\n\t);\nloaders[\"powershell\"] = () => import(\n\t/* webpackChunkName: \"ps1-mode\" */\n\t\"brace/mode/powershell\"\n\t);\nloaders[\"python\"] = () => import(\n\t/* webpackChunkName: \"py-mode\" */\n\t\"brace/mode/python\"\n\t);\nloaders[\"ruby\"] = () => import(\n\t/* webpackChunkName: \"rb-mode\" */\n\t\"brace/mode/ruby\"\n\t);\nloaders[\"scad\"] = () => import(\n\t/* webpackChunkName: \"scad-mode\" */\n\t\"brace/mode/scad\"\n\t); // seems to be something like 3d model files printed with e.g. reprap\nloaders[\"scala\"] = () => import(\n\t/* webpackChunkName: \"scala-mode\" */\n\t\"brace/mode/scala\"\n\t);\nloaders[\"scss\"] = () => import(\n\t/* webpackChunkName: \"scss-mode\" */\n\t\"brace/mode/scss\"); // \"sassy css\"\nloaders[\"sh\"] = () => import(\n\t/* webpackChunkName: \"sh-mode\" */\n\t\"brace/mode/sh\"\n\t);\nloaders[\"sql\"] = () => import(\n\t/* webpackChunkName: \"sql-mode\" */\n\t\"brace/mode/sql\"\n\t);\nloaders[\"svg\"] = () => import(\n\t/* webpackChunkName: \"svg-mode\" */\n\t\"brace/mode/svg\"\n\t);\nloaders[\"textile\"] = () => import(\n\t/* webpackChunkName: \"textile-mode\" */\n\t\"brace/mode/textile\"); // related to markdown\nloaders[\"xml\"] = () => import(\n\t/* webpackChunkName: \"xml-mode\" */\n\t\"brace/mode/xml\"\n\t);\n\nexport function getSyntaxMode (extension) {\n\tconst type = filetype[extension];\n\tif (type) {\n\t\t// Then it must be in the array, so load the custom syntax mode\n\t\t// Set the syntax mode\n\t\treturn loaders[type]().then(() => {\n\t\t\treturn type;\n\t\t});\n\t}\n\n\treturn $.when();\n}\n\n\n\n// WEBPACK FOOTER //\n// ./js/SyntaxMode.js","import {getSyntaxMode} from './SyntaxMode';\nimport importAce from './ImportAce';\n\n/** @type array[] supportedMimeTypes */\nconst supportedMimeTypes = require('./supported_mimetypes.json');\n\nlet ace;\nexport const Texteditor = {\n\n\t/**\n\t * Holds the editor container\n\t */\n\t$container: null,\n\n\t/**\n\t * Holds the editor element ID\n\t */\n\teditor: 'editor',\n\n\t/**\n\t * Stores info on the file being edited\n\t */\n\tfile: {\n\t\tedited: false,\n\t\tmtime: null,\n\t\tdir: null,\n\t\tname: null,\n\t\twriteable: null,\n\t\tmime: null,\n\t\tsize: null\n\t},\n\n\t/**\n\t * Stored the saving state\n\t */\n\tsaving: false,\n\n\t/**\n\t * Current files app context\n\t */\n\tcurrentContext: null,\n\n\t/**\n\t * Stores the autosave timer\n\t */\n\tsaveTimer: null,\n\n\t/**\n\t * Stores the old page title\n\t */\n\toldTitle: null,\n\n\t/**\n\t * Stores the timeout for the saving message\n\t */\n\tsaveMessageTimeout: null,\n\n\t/**\n\t * preview plugins by mimetype\n\t */\n\tpreviewPlugins: {},\n\n\tregisterPreviewPlugin: function (mimeType, plugin) {\n\t\tthis.previewPlugins[mimeType] = plugin;\n\t},\n\n\tpreviewPluginsLoaded: {},\n\n\t/**\n\t * preview element\n\t */\n\tpreview: null,\n\n\tpreviewPluginOnChange: null,\n\n\t/**\n\t * Save handler, triggered by the button, or keyboard\n\t */\n\t_onSaveTrigger: function () {\n\t\t// Don't save if not edited\n\t\tif (!Texteditor.file.edited) {\n\t\t\treturn;\n\t\t}\n\t\t// Don't try to save twice\n\t\tif (Texteditor.saving) {\n\t\t\treturn;\n\t\t} else {\n\t\t\tTexteditor.saving = true;\n\t\t\tTexteditor.file.edited = false;\n\t\t}\n\n\t\t// Can any fade outs on the saving message\n\t\tclearTimeout(Texteditor.saveMessageTimeout);\n\n\t\t// Set the saving status\n\t\tvar $message = $('#editor_controls').find('small.saving-message');\n\t\t$message.text(t('files_texteditor', 'saving...'))\n\t\t\t.show();\n\t\t// Send to server\n\t\tTexteditor.saveFile(\n\t\t\twindow.aceEditor.getSession().getValue(),\n\t\t\tTexteditor.file,\n\t\t\tfunction (data) {\n\t\t\t\t// Yay\n\t\t\t\tif (Texteditor.file.edited == false) {\n\t\t\t\t\tdocument.title = Texteditor.file.name + ' - ' + Texteditor.oldTitle;\n\t\t\t\t\t$('small.unsaved-star').css('display', 'none');\n\t\t\t\t}\n\t\t\t\tTexteditor.file.mtime = data.mtime;\n\t\t\t\tTexteditor.file.size = data.size;\n\n\t\t\t\t$message.text(t('files_texteditor', 'saved!'));\n\t\t\t\tTexteditor.saveMessageTimeout = setTimeout(function () {\n\t\t\t\t\t$('small.saving-message').fadeOut(200);\n\t\t\t\t}, 2000);\n\t\t\t},\n\t\t\tfunction (message) {\n\t\t\t\t// Boo\n\t\t\t\tif (typeof message == 'undefined') {\n\t\t\t\t\t$('small.saving-message').text(t('files_texteditor', 'failed!'));\n\t\t\t\t} else {\n\t\t\t\t\t$('small.saving-message').text(message);\n\t\t\t\t}\n\t\t\t\tTexteditor.saveMessageTimeout = setTimeout(function () {\n\t\t\t\t\t$('small.saving-message').fadeOut(200);\n\t\t\t\t}, 5000);\n\t\t\t\tTexteditor.file.edited = true;\n\t\t\t}\n\t\t);\n\t\tTexteditor.saving = false;\n\t\twindow.aceEditor.focus();\n\t},\n\n\t/**\n\t * Handles on close button click\n\t */\n\t_onCloseTrigger: function () {\n\t\t// Hide or close?\n\t\tif (!Texteditor.file.edited) {\n\t\t\tTexteditor.closeEditor();\n\t\t} else {\n\t\t\t// Trick the autosave attempt into thinking we have no changes\n\t\t\tTexteditor.file.edited = false;\n\t\t\t// Hide the editor\n\t\t\tTexteditor.hideEditor();\n\t\t\t// Try to save\n\t\t\tTexteditor.saveFile(\n\t\t\t\twindow.aceEditor.getSession().getValue(),\n\t\t\t\tTexteditor.file,\n\t\t\t\tfunction () {\n\t\t\t\t\tOC.Notification.showTemporary(t(\n\t\t\t\t\t\t'files_texteditor',\n\t\t\t\t\t\t'Saved'\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t\t// Remove the editor\n\t\t\t\t\tTexteditor.closeEditor();\n\t\t\t\t},\n\t\t\t\tfunction () {\n\t\t\t\t\tOC.Notification.showTemporary(t(\n\t\t\t\t\t\t'files_texteditor',\n\t\t\t\t\t\t'There was a problem saving your changes. Click to resume editing.'\n\t\t\t\t\t));\n\t\t\t\t\t$('#notification').data('reopeneditor', true).on(\n\t\t\t\t\t\t'click',\n\t\t\t\t\t\tTexteditor._onReOpenTrigger\n\t\t\t\t\t);\n\t\t\t\t\tTexteditor.file.edited = true;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t},\n\n\t/**\n\t * Handles the trigger or re open editor\n\t */\n\t_onReOpenTrigger: function () {\n\t\tif ($('#notification').data('reopeneditor') == true) {\n\t\t\tdocument.title = Texteditor.file.name + ' - ' + Texteditor.oldTitle;\n\t\t\tTexteditor.$container.show();\n\t\t}\n\t},\n\n\t/**\n\t * Handles the FileAction click event\n\t */\n\t_onEditorTrigger: function (filename, context) {\n\t\tthis.currentContext = context;\n\t\tthis.file.name = filename;\n\t\tthis.file.dir = context.dir;\n\t\tthis.fileList = context.fileList;\n\t\timportAce().then((_ace) => {\n\t\t\tace = _ace;\n\t\t\tthis.loadEditor(\n\t\t\t\tTexteditor.$container,\n\t\t\t\tTexteditor.file\n\t\t\t);\n\t\t\thistory.pushState({\n\t\t\t\tfile: filename,\n\t\t\t\tdir: context.dir\n\t\t\t}, 'Editor', '#editor');\n\t\t});\n\t},\n\n\t/**\n\t * Handler for edits detected\n\t */\n\t_onEdit: function () {\n\t\tif (!Texteditor.file.edited) {\n\t\t\tTexteditor.file.edited = true;\n\t\t\tif (!Texteditor.saving) {\n\t\t\t\tTexteditor._onUnsaved();\n\t\t\t}\n\t\t}\n\t\tif (this.previewPluginOnChange) {\n\t\t\tvar text = window.aceEditor.getSession().getValue();\n\t\t\tthis.previewPluginOnChange(text, this.preview);\n\t\t}\n\t},\n\n\t/**\n\t * Handler when unsaved work is detected\n\t */\n\t_onUnsaved: function () {\n\t\tdocument.title = '* ' + Texteditor.file.name + ' - ' + Texteditor.oldTitle;\n\t\t$('small.unsaved-star').css('display', 'inline-block');\n\t},\n\n\t/**\n\t * Setup on page load\n\t */\n\tinitialize: function (container) {\n\t\t// Don't load if not in the files app TODO: Fix for sharing\n\t\tif (!$('#content.app-files').length) {\n\t\t\treturn;\n\t\t}\n\t\tthis.$container = container;\n\t\tthis.registerFileActions();\n\t\tthis.oldTitle = document.title;\n\t},\n\n\t/**\n\t * Registers the file actions\n\t */\n\tregisterFileActions: function () {\n\t\tsupportedMimeTypes.forEach((mime) => {\n\t\t\tOCA.Files.fileActions.registerAction({\n\t\t\t\tname: 'edit_texteditor',\n\t\t\t\tdisplayName: t('files_texteditor', 'Edit in plain text editor'),\n\t\t\t\tmime: mime,\n\t\t\t\tactionHandler: this._onEditorTrigger.bind(this),\n\t\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\t\ticonClass: 'icon-edit'\n\t\t\t});\n\t\t\tOCA.Files.fileActions.setDefault(mime, 'edit_texteditor');\n\t\t});\n\t},\n\n\t/**\n\t * Actually fire up the editor in a container\n\t */\n\tloadEditor: function (container, file) {\n\t\tvar _self = this;\n\t\t// Insert the editor into the container\n\t\tcontainer.html(\n\t\t\t'<div id=\"editor_overlay\"></div>'\n\t\t\t+'<div id=\"editor_container\" class=\"icon-loading\">'\n\t\t\t+'<div id=\"editor_wrap\"><div id=\"editor\"></div>'\n\t\t\t+'<div id=\"preview_wrap\"><div id=\"preview\"></div></div></div></div>');\n\t\t$('#content').append(container);\n\n\t\t// Get the file data\n\t\tthis.loadFile(\n\t\t\tfile.dir,\n\t\t\tfile.name,\n\t\t\tfunction (file, data) {\n\t\t\t\t// Success!\n\t\t\t\t// Sort the title\n\t\t\t\tdocument.title = file.name + ' - ' + Texteditor.oldTitle;\n\t\t\t\t// Load ace\n\t\t\t\t$('#' + _self.editor).text(data);\n\t\t\t\t// Remove loading\n\t\t\t\t$('#editor_container').removeClass('icon-loading');\n\t\t\t\t// Configure ace\n\t\t\t\t_self.configureACE(file);\n\t\t\t\t// Show the controls\n\t\t\t\t_self.loadControlBar(file);\n\t\t\t\twindow.aceEditor.getSession().on('change', _self.setupAutosave);\n\t\t\t\t_self.bindVisibleActions();\n\t\t\t\twindow.aceEditor.focus();\n\n\t\t\t\tif (_self.previewPlugins[file.mime]) {\n\t\t\t\t\t_self.preview = container.find('#preview');\n\t\t\t\t\t_self.preview.addClass(file.mime.replace('/', '-'));\n\t\t\t\t\tcontainer.find('#editor_container').addClass('hasPreview');\n\t\t\t\t\t_self.previewPluginOnChange = _.debounce(function (text, element) {\n\t\t\t\t\t\t_self.loadPreviewPlugin(file.mime).then(function () {\n\t\t\t\t\t\t\t_self.previewPlugins[file.mime].preview(text, element);\n\t\t\t\t\t\t});\n\t\t\t\t\t}, 200);\n\t\t\t\t\tvar text = window.aceEditor.getSession().getValue();\n\t\t\t\t\t_self.previewPluginOnChange(text, _self.preview);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\twindow.aceEditor.resize();\n\t\t\t\t\t}, 500);\n\t\t\t\t\t_self.loadPreviewControlBar();\n\t\t\t\t} else {\n\t\t\t\t\t_self.previewPluginOnChange = null;\n\t\t\t\t}\n\t\t\t},\n\t\t\tfunction (message) {\n\t\t\t\t// Oh dear\n\t\t\t\tOC.dialogs.alert(message, t('files_texteditor', 'An error occurred!'));\n\t\t\t\t_self.closeEditor();\n\t\t\t});\n\t},\n\n\tloadPreviewPlugin: function (mime) {\n\t\tif (this.previewPluginsLoaded[mime]) {\n\t\t\treturn $.Deferred().resolve().promise();\n\t\t}\n\t\tthis.previewPluginsLoaded[mime] = true;\n\t\tvar plugin = this.previewPlugins[mime];\n\t\treturn $.when(plugin.init());\n\t},\n\n\t/**\n\t * Load the editor control bar\n\t */\n\tloadControlBar: function (file) {\n\t\tvar html =\n\t\t\t'<small class=\"filename\">' + escapeHTML(file.name) + '</small>'\n\t\t\t+ '<small class=\"unsaved-star\" style=\"display: none\">*</small>'\n\t\t\t+ '<small class=\"saving-message\">'\n\t\t\t+ '</small>'\n\t\t\t+ '<button id=\"editor_close\" class=\"icon-close svg\"></button>';\n\t\tvar controlBar = $('<div id=\"editor_controls\"></div>').html(html);\n\t\t$('#editor_wrap').before(controlBar);\n\t\tthis.setFilenameMaxLength();\n\t\tthis.bindControlBar();\n\n\t},\n\n\tsetPreviewMode: function (mode) {\n\t\tvar container = $('#app-content-texteditor');\n\t\tvar controlBar = $('#preview_editor_controls');\n\t\tcontrolBar.find('button').removeClass('active');\n\t\tcontrolBar.find('button[data-type=\"' + mode + '\"]').addClass('active');\n\t\tswitch (mode) {\n\t\t\tcase 'mixed':\n\t\t\t\tcontainer.find('#editor_container').addClass('hasPreview');\n\t\t\t\tcontainer.find('#editor_container').removeClass('onlyPreview');\n\t\t\t\tbreak;\n\t\t\tcase 'text':\n\t\t\t\tcontainer.find('#editor_container').removeClass('hasPreview');\n\t\t\t\tcontainer.find('#editor_container').removeClass('onlyPreview');\n\t\t\t\tbreak;\n\t\t\tcase 'image':\n\t\t\t\tcontainer.find('#editor_container').addClass('hasPreview');\n\t\t\t\tcontainer.find('#editor_container').addClass('onlyPreview');\n\t\t\t\tbreak;\n\t\t}\n\t\tsetTimeout(function() {\n\t\t\twindow.aceEditor.resize();\n\t\t}, 500);\n\t},\n\n\tloadPreviewControlBar: function () {\n\t\tvar makeButton = function (type, tooltip, active) {\n\t\t\tvar button = $('<button/>');\n\t\t\tbutton.tooltip({\n\t\t\t\ttitle: tooltip,\n\t\t\t\tcontainer: 'body',\n\t\t\t\tplacement: 'bottom',\n\t\t\t\tdelay: {show: 500, hide: 0}\n\t\t\t});\n\t\t\tif (active) {\n\t\t\t\tbutton.addClass('active');\n\t\t\t}\n\t\t\tbutton.click(this.setPreviewMode.bind(this, type));\n\t\t\tbutton.attr('data-type', type);\n\t\t\treturn button.css('background-image', 'url(\"' + OC.imagePath('files_texteditor', type) + '\")');\n\t\t}.bind(this);\n\n\t\tvar controls = $('<span/>').attr('id', 'preview_editor_controls');\n\t\tcontrols.append(makeButton('text', t('files_texteditor', 'Edit')));\n\t\tcontrols.append(makeButton('mixed', t('files_texteditor', 'Mixed'), true));\n\t\tcontrols.append(makeButton('image', t('files_texteditor', 'Preview')));\n\t\t$('#editor_close').after(controls);\n\t},\n\n\t/**\n\t * Removes the control bar\n\t */\n\tunloadControlBar: function () {\n\t\t$('#editor_controls').remove();\n\t},\n\n\t/**\n\t * Set the max width of the filename to prevent wrapping\n\t */\n\tsetFilenameMaxLength: function () {\n\t\t// Get the width of the control bar\n\t\tvar controlBar = $('#editor_controls').width();\n\t\t// Get the width of all of the other controls\n\t\tvar controls = $('small.saving-message').outerWidth(true);\n\t\tcontrols += $('small.unsaved-star').outerWidth(true);\n\t\tcontrols += $('#editor_close').outerWidth(true);\n\t\t// Set the max width\n\t\t$('small.filename').css('max-width', controlBar - controls - 28);\n\t},\n\n\t/**\n\t * Binds the control events on the control bar\n\t */\n\tbindControlBar: function () {\n\t\t$('#editor_close').on('click', _.bind(this._onCloseTrigger, this));\n\t\t$(window).resize(Texteditor.setFilenameMaxLength);\n\t\twindow.onpopstate = function () {\n\t\t\tvar hash = location.hash.substr(1);\n\t\t\tif (hash.substr(0, 6) !== 'editor') {\n\t\t\t\tthis._onCloseTrigger();\n\t\t\t}\n\t\t}.bind(this);\n\t},\n\n\t/**\n\t * Configure the ACE editor\n\t */\n\tconfigureACE: function (file) {\n\t\twindow.aceEditor = ace.edit(this.editor);\n\t\taceEditor.getSession().setNewLineMode(\"windows\");\n\t\taceEditor.setShowPrintMargin(false);\n\t\taceEditor.getSession().setUseWrapMode(true);\n\t\tif (!file.writeable) {\n\t\t\taceEditor.setReadOnly(true);\n\t\t}\n\t\tif (file.mime && file.mime === 'text/html') {\n\t\t\tthis.setEditorSyntaxMode('html');\n\t\t} else {\n\t\t\t// Set the syntax mode based on the file extension\n\t\t\tthis.setEditorSyntaxMode(\n\t\t\t\tfile.name.split('.')[file.name.split('.').length - 1]\n\t\t\t);\n\t\t}\n\t\t// Set the theme\n\t\timport('brace/theme/clouds').then(() => {\n\t\t\twindow.aceEditor.setTheme(\"ace/theme/clouds\");\n\t\t});\n\t\t// Bind the edit event\n\t\twindow.aceEditor.getSession().on('change', this._onEdit.bind(this));\n\t\t// Bind save trigger\n\t\twindow.aceEditor.commands.addCommand({\n\t\t\tname: \"save\",\n\t\t\tbindKey: {\n\t\t\t\twin: \"Ctrl-S\",\n\t\t\t\tmac: \"Command-S\",\n\t\t\t\tsender: \"editor\"\n\t\t\t},\n\t\t\texec: Texteditor._onSaveTrigger\n\t\t});\n\n\t\t// disable Ctrl-T shortcut in ace to allow new tab feature in browser\n\t\twindow.aceEditor.commands.removeCommand(window.aceEditor.commands.byName.transposeletters);\n\t},\n\n\t/**\n\t * Sets the syntax highlighting for the editor based on the file extension\n\t */\n\tsetEditorSyntaxMode: function (extension) {\n\t\tgetSyntaxMode(extension).then(function (mode) {\n\t\t\tif (mode) {\n\t\t\t\twindow.aceEditor.getSession().setMode(`ace/mode/${mode}`);\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Loads the data through AJAX\n\t */\n\tloadFile: function (dir, filename, success, failure) {\n\t\t$.get(\n\t\t\tOC.generateUrl('/apps/files_texteditor/ajax/loadfile'),\n\t\t\t{\n\t\t\t\tfilename: filename,\n\t\t\t\tdir: dir\n\t\t\t}\n\t\t).done(function (data) {\n\t\t\t// Call success callback\n\t\t\tTexteditor.file.writeable = data.writeable;\n\t\t\tTexteditor.file.mime = data.mime;\n\t\t\tTexteditor.file.mtime = data.mtime;\n\t\t\tsuccess(Texteditor.file, data.filecontents);\n\t\t}).fail(function (jqXHR) {\n\t\t\tfailure(JSON.parse(jqXHR.responseText).message);\n\t\t});\n\t},\n\n/**\n * Send the new file data back to the server\n */\nsaveFile: function (data, file, success, failure) {\n\t// Send the post request\n\tvar path = file.dir + file.name;\n\tif (file.dir !== '/') {\n\t\tpath = file.dir + '/' + file.name;\n\t}\n\t$.ajax({\n\t\ttype: 'PUT',\n\t\turl: OC.generateUrl('/apps/files_texteditor/ajax/savefile'),\n\t\tdata: {\n\t\t\tfilecontents: data,\n\t\t\tpath: path,\n\t\t\tmtime: file.mtime\n\t\t}\n\t})\n\t\t.done(success)\n\t\t.fail(function (jqXHR) {\n\t\t\tvar message;\n\n\t\t\ttry {\n\t\t\t\tmessage = JSON.parse(jqXHR.responseText).message;\n\t\t\t} catch (e) {\n\t\t\t}\n\n\t\t\tfailure(message);\n\t\t});\n},\n\n/**\n * Close the editor for good\n */\ncloseEditor: function () {\n\tthis.$container.html('').show();\n\tthis.unloadControlBar();\n\tthis.unBindVisibleActions();\n\tvar fileInfoModel = this.fileList.getModelForFile(this.file.name);\n\tif (fileInfoModel) {\n\t\tfileInfoModel.set({\n\t\t\t// temp dummy, until we can do a PROPFIND\n\t\t\tetag: fileInfoModel.get('id') + this.file.mtime,\n\t\t\tmtime: this.file.mtime * 1000,\n\t\t\tsize: this.file.size\n\t\t});\n\t}\n\tdocument.title = this.oldTitle;\n},\n\n/**\n * Hide the editor (unsaved changes)\n */\nhideEditor: function () {\n\tthis.$container.hide();\n\tdocument.title = this.oldTitle;\n\tthis.unBindVisibleActions();\n},\n\n/**\n * Configure the autosave timer\n */\n\tsetupAutosave: function () {\n\t\tclearTimeout(this.saveTimer);\n\t\tthis.saveTimer = setTimeout(Texteditor._onSaveTrigger, 3000);\n\t},\n\n\t/**\n\t * Handles event when clicking outside editor\n\t */\n\t_onClickDocument: function (event) {\n\t\t// Check if click was inside the editor or not.\n\t\tif (!$(event.target).closest('#editor_container').length && !$(event.target).closest('.oc-dialog').length) {\n\t\t\t// Edit the editor\n\t\t\tTexteditor._onCloseTrigger();\n\t\t}\n\t},\n\n\t/*\n\t * Binds actions that need to happen whilst the editor is visible\n\t */\n\tbindVisibleActions: function () {\n\t\t$(document).bind('click', this._onClickDocument);\n\t},\n\n\t/**\n\t * Unbinds actions that happen whilst the editor is visible\n\t */\n\tunBindVisibleActions: function () {\n\t\t$(document).unbind('click', this._onClickDocument);\n\t}\n\n};\n\n\n\n// WEBPACK FOOTER //\n// ./js/editor.js","/**\n * ownCloud - Files_Texteditor\n *\n * This file is licensed under the Affero General Public License version 3 or\n * later. See the COPYING file.\n *\n * @author Tom Needham <tom@owncloud.com>\n * @copyright Tom Needham 2015\n */\n\nimport {SidebarPreview} from './sidebarpreview';\nimport {Texteditor} from './editor';\nimport {newFileMenuPlugin} from './newfileplugin';\n\n// convince webpack to load chunks\n__webpack_require__.p = OC.filePath('files_texteditor', 'js', '../build/');\nconst script = document.querySelector('[nonce]');\n__webpack_require__.nc = script['nonce'] || script.getAttribute('nonce');\n\nOCA.Files_Texteditor = Texteditor;\n\nOC.Plugins.register('OCA.Files.NewFileMenu', newFileMenuPlugin);\nOC.Plugins.register('OCA.Files.SidebarPreviewManager', new SidebarPreview());\n\n$(document).ready(function () {\n\t$('#editor').remove();\n\tOCA.Files_Texteditor.initialize($('<div id=\"app-content-texteditor\"></div>'));\n});\n\n\n\n// WEBPACK FOOTER //\n// ./js/index.js","export const newFileMenuPlugin = {\n\n\tattach: function (menu) {\n\t\tvar fileList = menu.fileList;\n\n\t\t// Make text app handle new file creation if enabled\n\t\tif (typeof OCA.Text !== 'undefined') {\n\t\t\treturn;\n\t\t}\n\n\t\t// only attach to main file list, public view is not supported yet\n\t\tif (fileList.id !== 'files') {\n\t\t\treturn;\n\t\t}\n\n\t\t// register the new menu entry\n\t\tmenu.addMenuEntry({\n\t\t\tid: 'file',\n\t\t\tdisplayName: t('files_texteditor', 'New text file'),\n\t\t\ttemplateName: t('files_texteditor', 'New text file.txt'),\n\t\t\ticonClass: 'icon-filetype-text',\n\t\t\tfileType: 'file',\n\t\t\tactionHandler: function (name) {\n\t\t\t\tvar dir = fileList.getCurrentDirectory();\n\t\t\t\t// first create the file\n\t\t\t\tfileList.createFile(name).then(function () {\n\t\t\t\t\t// once the file got successfully created,\n\t\t\t\t\t// open the editor\n\t\t\t\t\tOCA.Files_Texteditor._onEditorTrigger(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfileList: fileList,\n\t\t\t\t\t\t\tdir: dir\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./js/newfileplugin.js","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\nimport {getSyntaxMode} from \"./SyntaxMode\";\nimport importAce from './ImportAce';\n\n/** @type array[] supportedMimeTypes */\nconst supportedMimeTypes = require('./supported_mimetypes.json');\n\nexport class SidebarPreview {\n\tattach (manager) {\n\t\tconst handler = this.handlePreview.bind(this);\n\t\tsupportedMimeTypes.forEach(value => manager.addPreviewHandler(value, handler));\n\t}\n\n\thandlePreview (model, $thumbnailDiv, $thumbnailContainer, fallback) {\n\t\tconst previewWidth = $thumbnailContainer.parent().width() + 50; // 50px for negative margins\n\t\tconst previewHeight = previewWidth / (16 / 9);\n\n\t\tthis.getFileContent(model.getFullPath()).then(function (content) {\n\t\t\tcontent = content.filecontents;\n\t\t\t$thumbnailDiv.removeClass('icon-loading icon-32');\n\t\t\t$thumbnailContainer.addClass('large');\n\t\t\t$thumbnailContainer.addClass('text');\n\t\t\tconst $editorDiv = $(\"<div id='sidebar_editor'/>\");\n\t\t\t$editorDiv.text(content);\n\t\t\t$thumbnailDiv.children('.stretcher').remove();\n\t\t\t$thumbnailDiv.append($editorDiv);\n\t\t\timportAce().then((imports) => {\n\t\t\t\tconst editor = imports.edit('sidebar_editor');\n\t\t\t\teditor.setReadOnly(true);\n\t\t\t\tlet syntaxModePromise;\n\t\t\t\tif (model.get('mimetype') === 'text/html') {\n\t\t\t\t\tsyntaxModePromise = getSyntaxMode('html');\n\t\t\t\t} else {\n\t\t\t\t\t// Set the syntax mode based on the file extension\n\t\t\t\t\tsyntaxModePromise = getSyntaxMode(\n\t\t\t\t\t\tmodel.get('name').split('.')[model.get('name').split('.').length - 1]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tsyntaxModePromise.then(function (mode) {\n\t\t\t\t\tif (mode) {\n\t\t\t\t\t\teditor.getSession().setMode(`ace/mode/${mode}`);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// Set the theme\n\t\t\t\timport('brace/theme/clouds').then(() => {\n\t\t\t\t\teditor.setTheme(\"ace/theme/clouds\");\n\t\t\t\t});\n\t\t\t\t$editorDiv.css(\"height\", previewHeight);\n\t\t\t\t$editorDiv.css(\"width\", previewWidth);\n\t\t\t});\n\t\t}, function () {\n\t\t\tfallback();\n\t\t});\n\t}\n\n\tgetFileContent (path) {\n\t\tconst parts = path.split('/');\n\t\tconst dir = parts.slice(0, -1).join('');\n\t\tconst file = parts.slice(-1).join('');\n\n\t\treturn $.ajax({\n\t\t\turl: OC.generateUrl('/apps/files_texteditor/ajax/loadfile'),\n\t\t\tdata: {\n\t\t\t\tfilename: file,\n\t\t\t\tdir: dir\n\t\t\t},\n\t\t\theaders: {\n\t\t\t\t'Range': 'bytes=0-10240'\n\t\t\t}\n\t\t});\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./js/sidebarpreview.js","module.exports = [\"text\",\"application/cmd\",\"application/javascript\",\"application/json\",\"application/xml\",\"application/x-empty\",\"application/x-msdos-program\",\"application/x-php\",\"application/x-pearl\",\"application/x-text\",\"application/yaml\"]\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./js/supported_mimetypes.json\n// module id = ./js/supported_mimetypes.json\n// module chunks = 30"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap 464496a336e8d943d458","webpack:///./js/ImportAce.js","webpack:///./js/SyntaxMode.js","webpack:///./js/editor.js","webpack:///./js/index.js","webpack:///./js/newfileplugin.js","webpack:///./js/sidebarpreview.js","webpack:///./js/supported_mimetypes.json"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","installedModules","32","__webpack_require__","exports","module","l","e","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","script","createElement","type","charset","async","timeout","nc","setAttribute","src","p","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","setTimeout","onScriptComplete","onerror","onload","clearTimeout","chunk","Error","undefined","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","s","__webpack_exports__","then","bind","extension","filetype","loaders","$","when","supportedMimeTypes","ace","Texteditor","$container","editor","file","edited","mtime","dir","writeable","mime","size","saving","currentContext","saveTimer","oldTitle","saveMessageTimeout","previewPlugins","registerPreviewPlugin","mimeType","plugin","this","previewPluginsLoaded","preview","previewPluginOnChange","_onSaveTrigger","$message","find","text","t","show","saveFile","aceEditor","getSession","getValue","data","title","css","fadeOut","message","focus","_onCloseTrigger","hideEditor","OC","Notification","showTemporary","closeEditor","on","_onReOpenTrigger","_onEditorTrigger","filename","context","_this","fileList","__WEBPACK_IMPORTED_MODULE_1__ImportAce__","_ace","loadEditor","history","pushState","_onEdit","_onUnsaved","initialize","container","registerFileActions","_this2","forEach","OCA","Files","fileActions","registerAction","displayName","actionHandler","permissions","PERMISSION_READ","iconClass","setDefault","_self","html","append","loadFile","removeClass","configureACE","loadControlBar","setupAutosave","bindVisibleActions","addClass","replace","_","debounce","element","loadPreviewPlugin","resize","loadPreviewControlBar","dialogs","alert","Deferred","init","escapeHTML","controlBar","before","setFilenameMaxLength","bindControlBar","setPreviewMode","mode","makeButton","tooltip","active","button","placement","delay","hide","click","attr","imagePath","controls","after","unloadControlBar","remove","width","outerWidth","onpopstate","location","hash","substr","edit","setNewLineMode","setShowPrintMargin","setUseWrapMode","setReadOnly","setEditorSyntaxMode","split","setTheme","commands","addCommand","bindKey","win","mac","sender","exec","removeCommand","byName","transposeletters","__WEBPACK_IMPORTED_MODULE_0__SyntaxMode__","setMode","success","failure","generateUrl","done","filecontents","fail","jqXHR","JSON","parse","responseText","path","ajax","url","unBindVisibleActions","fileInfoModel","getModelForFile","set","etag","_onClickDocument","event","target","closest","unbind","__WEBPACK_IMPORTED_MODULE_2__newfileplugin__","filePath","querySelector","getAttribute","Files_Texteditor","__WEBPACK_IMPORTED_MODULE_1__editor__","Plugins","register","__WEBPACK_IMPORTED_MODULE_0__sidebarpreview__","ready","newFileMenuPlugin","attach","menu","Text","id","addMenuEntry","templateName","fileType","getCurrentDirectory","createFile","SidebarPreview","_classCallCheck","_createClass","key","value","manager","handler","handlePreview","addPreviewHandler","model","$thumbnailDiv","$thumbnailContainer","fallback","previewWidth","parent","previewHeight","getFileContent","getFullPath","content","$editorDiv","children","imports","parts","slice","join","headers","Range"],"mappings":"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","file":"editor.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonpTexteditor\"];\n \twindow[\"webpackJsonpTexteditor\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t32: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = \"text/javascript\";\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"\" + ({\"1\":\"markdown-mode\",\"2\":\"php-mode\",\"3\":\"html-mode\",\"4\":\"svg-mode\",\"5\":\"xml-mode\",\"6\":\"scala-mode\",\"7\":\"lua-mode\",\"8\":\"json-mode\",\"9\":\"js-mode\",\"10\":\"java-mode\",\"11\":\"groovy-mode\",\"12\":\"css-mode\",\"13\":\"coffee-mode\",\"14\":\"ace\",\"15\":\"textile-mode\",\"16\":\"sql-mode\",\"17\":\"sh-mode\",\"18\":\"scss-mode\",\"19\":\"scad-mode\",\"20\":\"rb-mode\",\"21\":\"py-mode\",\"22\":\"ps1-mode\",\"23\":\"pl-mode\",\"24\":\"ml-mode\",\"25\":\"less-mode\",\"26\":\"latex-mode\",\"27\":\"cs-mode\",\"28\":\"clj-mode\",\"29\":\"h-mode\",\"30\":\"bat-mode\"}[chunkId]||chunkId) + \".bundle.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./js/index.js\");\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 464496a336e8d943d458","/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default function() {\n\treturn import(/* webpackChunkName: \"ace\" */'brace')\n}\n\n\n\n// WEBPACK FOOTER //\n// ./js/ImportAce.js","const filetype = {};\n// add file extensions like this: filetype[\"extension\"] = \"filetype\":\nfiletype[\"bat\"] = \"batchfile\";\nfiletype[\"cmd\"] = \"batchfile\";\nfiletype[\"h\"] = \"c_cpp\";\nfiletype[\"c\"] = \"c_cpp\";\nfiletype[\"clj\"] = \"clojure\";\nfiletype[\"coffee\"] = \"coffee\"; // coffescript can be compiled to javascript\nfiletype[\"cpp\"] = \"c_cpp\";\nfiletype[\"cs\"] = \"csharp\";\nfiletype[\"css\"] = \"css\";\nfiletype[\"groovy\"] = \"groovy\";\nfiletype[\"htm\"] = \"html\";\nfiletype[\"html\"] = \"html\";\nfiletype[\"tt\"] = \"html\";\nfiletype[\"java\"] = \"java\";\nfiletype[\"js\"] = \"javascript\";\nfiletype[\"jsm\"] = \"javascript\";\nfiletype[\"json\"] = \"json\";\nfiletype[\"latex\"] = \"latex\";\nfiletype[\"tex\"] = \"latex\";\nfiletype[\"less\"] = \"less\";\nfiletype[\"ly\"] = \"latex\";\nfiletype[\"ily\"] = \"latex\";\nfiletype[\"lua\"] = \"lua\";\nfiletype[\"markdown\"] = \"markdown\";\nfiletype[\"md\"] = \"markdown\";\nfiletype[\"mdown\"] = \"markdown\";\nfiletype[\"mdwn\"] = \"markdown\";\nfiletype[\"mkd\"] = \"markdown\";\nfiletype[\"ml\"] = \"ocaml\";\nfiletype[\"mli\"] = \"ocaml\";\nfiletype[\"pl\"] = \"perl\";\nfiletype[\"php\"] = \"php\";\nfiletype[\"ps1\"] = \"powershell\";\nfiletype[\"py\"] = \"python\";\nfiletype[\"rb\"] = \"ruby\";\nfiletype[\"scad\"] = \"scad\"; // seems to be something like 3d model files printed with e.g. reprap\nfiletype[\"scala\"] = \"scala\";\nfiletype[\"scss\"] = \"scss\"; // \"sassy css\"\nfiletype[\"sh\"] = \"sh\";\nfiletype[\"sql\"] = \"sql\";\nfiletype[\"svg\"] = \"svg\";\nfiletype[\"textile\"] = \"textile\"; // related to markdown\nfiletype[\"xml\"] = \"xml\";\n\nconst loaders = {};\n// add loader like this: loaders[\"filetype\"] = () => require(\"promise?brace/mode/filetype\"):\n\n// note that these require statements can't be generated from the filetypes dynamically\n// to make sure webpack can analyse our dependencies\nloaders[\"batchfile\"] = () => import(\n\t/* webpackChunkName: \"bat-mode\" */\n\t\"brace/mode/batchfile\"\n\t);\nloaders[\"c_cpp\"] = () => import(\n\t/* webpackChunkName: \"h-mode\" */\n\t\"brace/mode/c_cpp\"\n\t);\nloaders[\"coffee\"] = () => import\n\t/* webpackChunkName: \"coffee-mode\" */(\n\t\"brace/mode/coffee\"\n\t);\nloaders[\"csharp\"] = () => import(\n\t/* webpackChunkName: \"cs-mode\" */\n\t\"brace/mode/csharp\"\n\t);\nloaders[\"clojure\"] = () => import(\n\t/* webpackChunkName: \"clj-mode\" */\n\t\"brace/mode/clojure\"\n\t);\nloaders[\"css\"] = () => import(\n\t/* webpackChunkName: \"css-mode\" */\n\t\"brace/mode/css\"\n\t);\nloaders[\"groovy\"] = () => import\n\t/* webpackChunkName: \"groovy-mode\" */(\n\t\"brace/mode/groovy\"\n\t);\nloaders[\"html\"] = () => import(\n\t/* webpackChunkName: \"html-mode\" */\n\t\"brace/mode/html\"\n\t);\nloaders[\"java\"] = () => import(\n\t/* webpackChunkName: \"java-mode\" */\n\t\"brace/mode/java\"\n\t);\nloaders[\"javascript\"] = () => import(\n\t/* webpackChunkName: \"js-mode\" */\n\t\"brace/mode/javascript\"\n\t);\nloaders[\"json\"] = () => import(\n\t/* webpackChunkName: \"json-mode\" */\n\t\"brace/mode/json\"\n\t);\nloaders[\"latex\"] = () => import(\n\t/* webpackChunkName: \"latex-mode\" */\n\t\"brace/mode/latex\"\n\t);\nloaders[\"less\"] = () => import(\n\t/* webpackChunkName: \"less-mode\" */\n\t\"brace/mode/less\"\n\t);\nloaders[\"lua\"] = () => import(\n\t/* webpackChunkName: \"lua-mode\" */\n\t\"brace/mode/lua\"\n\t);\nloaders[\"markdown\"] = () => import(\n\t/* webpackChunkName: \"markdown-mode\" */\n\t\"brace/mode/markdown\"\n\t);\nloaders[\"ocaml\"] = () => import(\n\t/* webpackChunkName: \"ml-mode\" */\n\t\"brace/mode/ocaml\"\n\t);\nloaders[\"perl\"] = () => import(\n\t/* webpackChunkName: \"pl-mode\" */\n\t\"brace/mode/perl\"\n\t);\nloaders[\"php\"] = () => import(\n\t/* webpackChunkName: \"php-mode\" */\n\t\"brace/mode/php\"\n\t);\nloaders[\"powershell\"] = () => import(\n\t/* webpackChunkName: \"ps1-mode\" */\n\t\"brace/mode/powershell\"\n\t);\nloaders[\"python\"] = () => import(\n\t/* webpackChunkName: \"py-mode\" */\n\t\"brace/mode/python\"\n\t);\nloaders[\"ruby\"] = () => import(\n\t/* webpackChunkName: \"rb-mode\" */\n\t\"brace/mode/ruby\"\n\t);\nloaders[\"scad\"] = () => import(\n\t/* webpackChunkName: \"scad-mode\" */\n\t\"brace/mode/scad\"\n\t); // seems to be something like 3d model files printed with e.g. reprap\nloaders[\"scala\"] = () => import(\n\t/* webpackChunkName: \"scala-mode\" */\n\t\"brace/mode/scala\"\n\t);\nloaders[\"scss\"] = () => import(\n\t/* webpackChunkName: \"scss-mode\" */\n\t\"brace/mode/scss\"); // \"sassy css\"\nloaders[\"sh\"] = () => import(\n\t/* webpackChunkName: \"sh-mode\" */\n\t\"brace/mode/sh\"\n\t);\nloaders[\"sql\"] = () => import(\n\t/* webpackChunkName: \"sql-mode\" */\n\t\"brace/mode/sql\"\n\t);\nloaders[\"svg\"] = () => import(\n\t/* webpackChunkName: \"svg-mode\" */\n\t\"brace/mode/svg\"\n\t);\nloaders[\"textile\"] = () => import(\n\t/* webpackChunkName: \"textile-mode\" */\n\t\"brace/mode/textile\"); // related to markdown\nloaders[\"xml\"] = () => import(\n\t/* webpackChunkName: \"xml-mode\" */\n\t\"brace/mode/xml\"\n\t);\n\nexport function getSyntaxMode (extension) {\n\tconst type = filetype[extension];\n\tif (type) {\n\t\t// Then it must be in the array, so load the custom syntax mode\n\t\t// Set the syntax mode\n\t\treturn loaders[type]().then(() => {\n\t\t\treturn type;\n\t\t});\n\t}\n\n\treturn $.when();\n}\n\n\n\n// WEBPACK FOOTER //\n// ./js/SyntaxMode.js","import {getSyntaxMode} from './SyntaxMode';\nimport importAce from './ImportAce';\n\n/** @type array[] supportedMimeTypes */\nconst supportedMimeTypes = require('./supported_mimetypes.json');\n\nlet ace;\nexport const Texteditor = {\n\n\t/**\n\t * Holds the editor container\n\t */\n\t$container: null,\n\n\t/**\n\t * Holds the editor element ID\n\t */\n\teditor: 'editor',\n\n\t/**\n\t * Stores info on the file being edited\n\t */\n\tfile: {\n\t\tedited: false,\n\t\tmtime: null,\n\t\tdir: null,\n\t\tname: null,\n\t\twriteable: null,\n\t\tmime: null,\n\t\tsize: null\n\t},\n\n\t/**\n\t * Stored the saving state\n\t */\n\tsaving: false,\n\n\t/**\n\t * Current files app context\n\t */\n\tcurrentContext: null,\n\n\t/**\n\t * Stores the autosave timer\n\t */\n\tsaveTimer: null,\n\n\t/**\n\t * Stores the old page title\n\t */\n\toldTitle: null,\n\n\t/**\n\t * Stores the timeout for the saving message\n\t */\n\tsaveMessageTimeout: null,\n\n\t/**\n\t * preview plugins by mimetype\n\t */\n\tpreviewPlugins: {},\n\n\tregisterPreviewPlugin: function (mimeType, plugin) {\n\t\tthis.previewPlugins[mimeType] = plugin;\n\t},\n\n\tpreviewPluginsLoaded: {},\n\n\t/**\n\t * preview element\n\t */\n\tpreview: null,\n\n\tpreviewPluginOnChange: null,\n\n\t/**\n\t * Save handler, triggered by the button, or keyboard\n\t */\n\t_onSaveTrigger: function () {\n\t\t// Don't save if not edited\n\t\tif (!Texteditor.file.edited) {\n\t\t\treturn;\n\t\t}\n\t\t// Don't try to save twice\n\t\tif (Texteditor.saving) {\n\t\t\treturn;\n\t\t} else {\n\t\t\tTexteditor.saving = true;\n\t\t\tTexteditor.file.edited = false;\n\t\t}\n\n\t\t// Can any fade outs on the saving message\n\t\tclearTimeout(Texteditor.saveMessageTimeout);\n\n\t\t// Set the saving status\n\t\tvar $message = $('#editor_controls').find('small.saving-message');\n\t\t$message.text(t('files_texteditor', 'saving...'))\n\t\t\t.show();\n\t\t// Send to server\n\t\tTexteditor.saveFile(\n\t\t\twindow.aceEditor.getSession().getValue(),\n\t\t\tTexteditor.file,\n\t\t\tfunction (data) {\n\t\t\t\t// Yay\n\t\t\t\tif (Texteditor.file.edited == false) {\n\t\t\t\t\tdocument.title = Texteditor.file.name + ' - ' + Texteditor.oldTitle;\n\t\t\t\t\t$('small.unsaved-star').css('display', 'none');\n\t\t\t\t}\n\t\t\t\tTexteditor.file.mtime = data.mtime;\n\t\t\t\tTexteditor.file.size = data.size;\n\n\t\t\t\t$message.text(t('files_texteditor', 'saved!'));\n\t\t\t\tTexteditor.saveMessageTimeout = setTimeout(function () {\n\t\t\t\t\t$('small.saving-message').fadeOut(200);\n\t\t\t\t}, 2000);\n\t\t\t},\n\t\t\tfunction (message) {\n\t\t\t\t// Boo\n\t\t\t\tif (typeof message == 'undefined') {\n\t\t\t\t\t$('small.saving-message').text(t('files_texteditor', 'failed!'));\n\t\t\t\t} else {\n\t\t\t\t\t$('small.saving-message').text(message);\n\t\t\t\t}\n\t\t\t\tTexteditor.saveMessageTimeout = setTimeout(function () {\n\t\t\t\t\t$('small.saving-message').fadeOut(200);\n\t\t\t\t}, 5000);\n\t\t\t\tTexteditor.file.edited = true;\n\t\t\t}\n\t\t);\n\t\tTexteditor.saving = false;\n\t\twindow.aceEditor.focus();\n\t},\n\n\t/**\n\t * Handles on close button click\n\t */\n\t_onCloseTrigger: function () {\n\t\t// Hide or close?\n\t\tif (!Texteditor.file.edited) {\n\t\t\tTexteditor.closeEditor();\n\t\t} else {\n\t\t\t// Trick the autosave attempt into thinking we have no changes\n\t\t\tTexteditor.file.edited = false;\n\t\t\t// Hide the editor\n\t\t\tTexteditor.hideEditor();\n\t\t\t// Try to save\n\t\t\tTexteditor.saveFile(\n\t\t\t\twindow.aceEditor.getSession().getValue(),\n\t\t\t\tTexteditor.file,\n\t\t\t\tfunction () {\n\t\t\t\t\tOC.Notification.showTemporary(t(\n\t\t\t\t\t\t'files_texteditor',\n\t\t\t\t\t\t'Saved'\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t\t// Remove the editor\n\t\t\t\t\tTexteditor.closeEditor();\n\t\t\t\t},\n\t\t\t\tfunction () {\n\t\t\t\t\tOC.Notification.showTemporary(t(\n\t\t\t\t\t\t'files_texteditor',\n\t\t\t\t\t\t'There was a problem saving your changes. Click to resume editing.'\n\t\t\t\t\t));\n\t\t\t\t\t$('#notification').data('reopeneditor', true).on(\n\t\t\t\t\t\t'click',\n\t\t\t\t\t\tTexteditor._onReOpenTrigger\n\t\t\t\t\t);\n\t\t\t\t\tTexteditor.file.edited = true;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t},\n\n\t/**\n\t * Handles the trigger or re open editor\n\t */\n\t_onReOpenTrigger: function () {\n\t\tif ($('#notification').data('reopeneditor') == true) {\n\t\t\tdocument.title = Texteditor.file.name + ' - ' + Texteditor.oldTitle;\n\t\t\tTexteditor.$container.show();\n\t\t}\n\t},\n\n\t/**\n\t * Handles the FileAction click event\n\t */\n\t_onEditorTrigger: function (filename, context) {\n\t\tthis.currentContext = context;\n\t\tthis.file.name = filename;\n\t\tthis.file.dir = context.dir;\n\t\tthis.fileList = context.fileList;\n\t\timportAce().then((_ace) => {\n\t\t\tace = _ace;\n\t\t\tthis.loadEditor(\n\t\t\t\tTexteditor.$container,\n\t\t\t\tTexteditor.file\n\t\t\t);\n\t\t\thistory.pushState({\n\t\t\t\tfile: filename,\n\t\t\t\tdir: context.dir\n\t\t\t}, 'Editor', '#editor');\n\t\t});\n\t},\n\n\t/**\n\t * Handler for edits detected\n\t */\n\t_onEdit: function () {\n\t\tif (!Texteditor.file.edited) {\n\t\t\tTexteditor.file.edited = true;\n\t\t\tif (!Texteditor.saving) {\n\t\t\t\tTexteditor._onUnsaved();\n\t\t\t}\n\t\t}\n\t\tif (this.previewPluginOnChange) {\n\t\t\tvar text = window.aceEditor.getSession().getValue();\n\t\t\tthis.previewPluginOnChange(text, this.preview);\n\t\t}\n\t},\n\n\t/**\n\t * Handler when unsaved work is detected\n\t */\n\t_onUnsaved: function () {\n\t\tdocument.title = '* ' + Texteditor.file.name + ' - ' + Texteditor.oldTitle;\n\t\t$('small.unsaved-star').css('display', 'inline-block');\n\t},\n\n\t/**\n\t * Setup on page load\n\t */\n\tinitialize: function (container) {\n\t\t// Don't load if not in the files app TODO: Fix for sharing\n\t\tif (!$('#content.app-files').length) {\n\t\t\treturn;\n\t\t}\n\t\tthis.$container = container;\n\t\tthis.registerFileActions();\n\t\tthis.oldTitle = document.title;\n\t},\n\n\t/**\n\t * Registers the file actions\n\t */\n\tregisterFileActions: function () {\n\t\tsupportedMimeTypes.forEach((mime) => {\n\t\t\tOCA.Files.fileActions.registerAction({\n\t\t\t\tname: 'edit_texteditor',\n\t\t\t\tdisplayName: t('files_texteditor', 'Edit in plain text editor'),\n\t\t\t\tmime: mime,\n\t\t\t\tactionHandler: this._onEditorTrigger.bind(this),\n\t\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\t\ticonClass: 'icon-edit'\n\t\t\t});\n\t\t\tOCA.Files.fileActions.setDefault(mime, 'edit_texteditor');\n\t\t});\n\t},\n\n\t/**\n\t * Actually fire up the editor in a container\n\t */\n\tloadEditor: function (container, file) {\n\t\tvar _self = this;\n\t\t// Insert the editor into the container\n\t\tcontainer.html(\n\t\t\t'<div id=\"editor_overlay\"></div>'\n\t\t\t+'<div id=\"editor_container\" class=\"icon-loading\">'\n\t\t\t+'<div id=\"editor_wrap\"><div id=\"editor\"></div>'\n\t\t\t+'<div id=\"preview_wrap\"><div id=\"preview\"></div></div></div></div>');\n\t\t$('#content').append(container);\n\n\t\t// Get the file data\n\t\tthis.loadFile(\n\t\t\tfile.dir,\n\t\t\tfile.name,\n\t\t\tfunction (file, data) {\n\t\t\t\t// Success!\n\t\t\t\t// Sort the title\n\t\t\t\tdocument.title = file.name + ' - ' + Texteditor.oldTitle;\n\t\t\t\t// Load ace\n\t\t\t\t$('#' + _self.editor).text(data);\n\t\t\t\t// Remove loading\n\t\t\t\t$('#editor_container').removeClass('icon-loading');\n\t\t\t\t// Configure ace\n\t\t\t\t_self.configureACE(file);\n\t\t\t\t// Show the controls\n\t\t\t\t_self.loadControlBar(file);\n\t\t\t\twindow.aceEditor.getSession().on('change', _self.setupAutosave);\n\t\t\t\t_self.bindVisibleActions();\n\t\t\t\twindow.aceEditor.focus();\n\n\t\t\t\tif (_self.previewPlugins[file.mime]) {\n\t\t\t\t\t_self.preview = container.find('#preview');\n\t\t\t\t\t_self.preview.addClass(file.mime.replace('/', '-'));\n\t\t\t\t\tcontainer.find('#editor_container').addClass('hasPreview');\n\t\t\t\t\t_self.previewPluginOnChange = _.debounce(function (text, element) {\n\t\t\t\t\t\t_self.loadPreviewPlugin(file.mime).then(function () {\n\t\t\t\t\t\t\t_self.previewPlugins[file.mime].preview(text, element);\n\t\t\t\t\t\t});\n\t\t\t\t\t}, 200);\n\t\t\t\t\tvar text = window.aceEditor.getSession().getValue();\n\t\t\t\t\t_self.previewPluginOnChange(text, _self.preview);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\twindow.aceEditor.resize();\n\t\t\t\t\t}, 500);\n\t\t\t\t\t_self.loadPreviewControlBar();\n\t\t\t\t} else {\n\t\t\t\t\t_self.previewPluginOnChange = null;\n\t\t\t\t}\n\t\t\t},\n\t\t\tfunction (message) {\n\t\t\t\t// Oh dear\n\t\t\t\tOC.dialogs.alert(message, t('files_texteditor', 'An error occurred!'));\n\t\t\t\t_self.closeEditor();\n\t\t\t});\n\t},\n\n\tloadPreviewPlugin: function (mime) {\n\t\tif (this.previewPluginsLoaded[mime]) {\n\t\t\treturn $.Deferred().resolve().promise();\n\t\t}\n\t\tthis.previewPluginsLoaded[mime] = true;\n\t\tvar plugin = this.previewPlugins[mime];\n\t\treturn $.when(plugin.init());\n\t},\n\n\t/**\n\t * Load the editor control bar\n\t */\n\tloadControlBar: function (file) {\n\t\tvar html =\n\t\t\t'<small class=\"filename\">' + escapeHTML(file.name) + '</small>'\n\t\t\t+ '<small class=\"unsaved-star\" style=\"display: none\">*</small>'\n\t\t\t+ '<small class=\"saving-message\">'\n\t\t\t+ '</small>'\n\t\t\t+ '<button id=\"editor_close\" class=\"icon-close svg\"></button>';\n\t\tvar controlBar = $('<div id=\"editor_controls\"></div>').html(html);\n\t\t$('#editor_wrap').before(controlBar);\n\t\tthis.setFilenameMaxLength();\n\t\tthis.bindControlBar();\n\n\t},\n\n\tsetPreviewMode: function (mode) {\n\t\tvar container = $('#app-content-texteditor');\n\t\tvar controlBar = $('#preview_editor_controls');\n\t\tcontrolBar.find('button').removeClass('active');\n\t\tcontrolBar.find('button[data-type=\"' + mode + '\"]').addClass('active');\n\t\tswitch (mode) {\n\t\t\tcase 'mixed':\n\t\t\t\tcontainer.find('#editor_container').addClass('hasPreview');\n\t\t\t\tcontainer.find('#editor_container').removeClass('onlyPreview');\n\t\t\t\tbreak;\n\t\t\tcase 'text':\n\t\t\t\tcontainer.find('#editor_container').removeClass('hasPreview');\n\t\t\t\tcontainer.find('#editor_container').removeClass('onlyPreview');\n\t\t\t\tbreak;\n\t\t\tcase 'image':\n\t\t\t\tcontainer.find('#editor_container').addClass('hasPreview');\n\t\t\t\tcontainer.find('#editor_container').addClass('onlyPreview');\n\t\t\t\tbreak;\n\t\t}\n\t\tsetTimeout(function() {\n\t\t\twindow.aceEditor.resize();\n\t\t}, 500);\n\t},\n\n\tloadPreviewControlBar: function () {\n\t\tvar makeButton = function (type, tooltip, active) {\n\t\t\tvar button = $('<button/>');\n\t\t\tbutton.tooltip({\n\t\t\t\ttitle: tooltip,\n\t\t\t\tcontainer: 'body',\n\t\t\t\tplacement: 'bottom',\n\t\t\t\tdelay: {show: 500, hide: 0}\n\t\t\t});\n\t\t\tif (active) {\n\t\t\t\tbutton.addClass('active');\n\t\t\t}\n\t\t\tbutton.click(this.setPreviewMode.bind(this, type));\n\t\t\tbutton.attr('data-type', type);\n\t\t\treturn button.css('background-image', 'url(\"' + OC.imagePath('files_texteditor', type) + '\")');\n\t\t}.bind(this);\n\n\t\tvar controls = $('<span/>').attr('id', 'preview_editor_controls');\n\t\tcontrols.append(makeButton('text', t('files_texteditor', 'Edit')));\n\t\tcontrols.append(makeButton('mixed', t('files_texteditor', 'Mixed'), true));\n\t\tcontrols.append(makeButton('image', t('files_texteditor', 'Preview')));\n\t\t$('#editor_close').after(controls);\n\t},\n\n\t/**\n\t * Removes the control bar\n\t */\n\tunloadControlBar: function () {\n\t\t$('#editor_controls').remove();\n\t},\n\n\t/**\n\t * Set the max width of the filename to prevent wrapping\n\t */\n\tsetFilenameMaxLength: function () {\n\t\t// Get the width of the control bar\n\t\tvar controlBar = $('#editor_controls').width();\n\t\t// Get the width of all of the other controls\n\t\tvar controls = $('small.saving-message').outerWidth(true);\n\t\tcontrols += $('small.unsaved-star').outerWidth(true);\n\t\tcontrols += $('#editor_close').outerWidth(true);\n\t\t// Set the max width\n\t\t$('small.filename').css('max-width', controlBar - controls - 28);\n\t},\n\n\t/**\n\t * Binds the control events on the control bar\n\t */\n\tbindControlBar: function () {\n\t\t$('#editor_close').on('click', _.bind(this._onCloseTrigger, this));\n\t\t$(window).resize(Texteditor.setFilenameMaxLength);\n\t\twindow.onpopstate = function () {\n\t\t\tvar hash = location.hash.substr(1);\n\t\t\tif (hash.substr(0, 6) !== 'editor') {\n\t\t\t\tthis._onCloseTrigger();\n\t\t\t}\n\t\t}.bind(this);\n\t},\n\n\t/**\n\t * Configure the ACE editor\n\t */\n\tconfigureACE: function (file) {\n\t\twindow.aceEditor = ace.edit(this.editor);\n\t\taceEditor.getSession().setNewLineMode(\"windows\");\n\t\taceEditor.setShowPrintMargin(false);\n\t\taceEditor.getSession().setUseWrapMode(true);\n\t\tif (!file.writeable) {\n\t\t\taceEditor.setReadOnly(true);\n\t\t}\n\t\tif (file.mime && file.mime === 'text/html') {\n\t\t\tthis.setEditorSyntaxMode('html');\n\t\t} else {\n\t\t\t// Set the syntax mode based on the file extension\n\t\t\tthis.setEditorSyntaxMode(\n\t\t\t\tfile.name.split('.')[file.name.split('.').length - 1]\n\t\t\t);\n\t\t}\n\t\t// Set the theme\n\t\timport('brace/theme/clouds').then(() => {\n\t\t\twindow.aceEditor.setTheme(\"ace/theme/clouds\");\n\t\t});\n\t\t// Bind the edit event\n\t\twindow.aceEditor.getSession().on('change', this._onEdit.bind(this));\n\t\t// Bind save trigger\n\t\twindow.aceEditor.commands.addCommand({\n\t\t\tname: \"save\",\n\t\t\tbindKey: {\n\t\t\t\twin: \"Ctrl-S\",\n\t\t\t\tmac: \"Command-S\",\n\t\t\t\tsender: \"editor\"\n\t\t\t},\n\t\t\texec: Texteditor._onSaveTrigger\n\t\t});\n\n\t\t// disable Ctrl-T shortcut in ace to allow new tab feature in browser\n\t\twindow.aceEditor.commands.removeCommand(window.aceEditor.commands.byName.transposeletters);\n\t},\n\n\t/**\n\t * Sets the syntax highlighting for the editor based on the file extension\n\t */\n\tsetEditorSyntaxMode: function (extension) {\n\t\tgetSyntaxMode(extension).then(function (mode) {\n\t\t\tif (mode) {\n\t\t\t\twindow.aceEditor.getSession().setMode(`ace/mode/${mode}`);\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Loads the data through AJAX\n\t */\n\tloadFile: function (dir, filename, success, failure) {\n\t\t$.get(\n\t\t\tOC.generateUrl('/apps/files_texteditor/ajax/loadfile'),\n\t\t\t{\n\t\t\t\tfilename: filename,\n\t\t\t\tdir: dir\n\t\t\t}\n\t\t).done(function (data) {\n\t\t\t// Call success callback\n\t\t\tTexteditor.file.writeable = data.writeable;\n\t\t\tTexteditor.file.mime = data.mime;\n\t\t\tTexteditor.file.mtime = data.mtime;\n\t\t\tsuccess(Texteditor.file, data.filecontents);\n\t\t}).fail(function (jqXHR) {\n\t\t\tfailure(JSON.parse(jqXHR.responseText).message);\n\t\t});\n\t},\n\n/**\n * Send the new file data back to the server\n */\nsaveFile: function (data, file, success, failure) {\n\t// Send the post request\n\tvar path = file.dir + file.name;\n\tif (file.dir !== '/') {\n\t\tpath = file.dir + '/' + file.name;\n\t}\n\t$.ajax({\n\t\ttype: 'PUT',\n\t\turl: OC.generateUrl('/apps/files_texteditor/ajax/savefile'),\n\t\tdata: {\n\t\t\tfilecontents: data,\n\t\t\tpath: path,\n\t\t\tmtime: file.mtime\n\t\t}\n\t})\n\t\t.done(success)\n\t\t.fail(function (jqXHR) {\n\t\t\tvar message;\n\n\t\t\ttry {\n\t\t\t\tmessage = JSON.parse(jqXHR.responseText).message;\n\t\t\t} catch (e) {\n\t\t\t}\n\n\t\t\tfailure(message);\n\t\t});\n},\n\n/**\n * Close the editor for good\n */\ncloseEditor: function () {\n\tthis.$container.html('').show();\n\tthis.unloadControlBar();\n\tthis.unBindVisibleActions();\n\tvar fileInfoModel = this.fileList.getModelForFile(this.file.name);\n\tif (fileInfoModel) {\n\t\tfileInfoModel.set({\n\t\t\t// temp dummy, until we can do a PROPFIND\n\t\t\tetag: fileInfoModel.get('id') + this.file.mtime,\n\t\t\tmtime: this.file.mtime * 1000,\n\t\t\tsize: this.file.size\n\t\t});\n\t}\n\tdocument.title = this.oldTitle;\n},\n\n/**\n * Hide the editor (unsaved changes)\n */\nhideEditor: function () {\n\tthis.$container.hide();\n\tdocument.title = this.oldTitle;\n\tthis.unBindVisibleActions();\n},\n\n/**\n * Configure the autosave timer\n */\n\tsetupAutosave: function () {\n\t\tclearTimeout(this.saveTimer);\n\t\tthis.saveTimer = setTimeout(Texteditor._onSaveTrigger, 3000);\n\t},\n\n\t/**\n\t * Handles event when clicking outside editor\n\t */\n\t_onClickDocument: function (event) {\n\t\t// Check if click was inside the editor or not.\n\t\tif (!$(event.target).closest('#editor_container').length && !$(event.target).closest('.oc-dialog').length) {\n\t\t\t// Edit the editor\n\t\t\tTexteditor._onCloseTrigger();\n\t\t}\n\t},\n\n\t/*\n\t * Binds actions that need to happen whilst the editor is visible\n\t */\n\tbindVisibleActions: function () {\n\t\t$(document).bind('click', this._onClickDocument);\n\t},\n\n\t/**\n\t * Unbinds actions that happen whilst the editor is visible\n\t */\n\tunBindVisibleActions: function () {\n\t\t$(document).unbind('click', this._onClickDocument);\n\t}\n\n};\n\n\n\n// WEBPACK FOOTER //\n// ./js/editor.js","/**\n * ownCloud - Files_Texteditor\n *\n * This file is licensed under the Affero General Public License version 3 or\n * later. See the COPYING file.\n *\n * @author Tom Needham <tom@owncloud.com>\n * @copyright Tom Needham 2015\n */\n\nimport {SidebarPreview} from './sidebarpreview';\nimport {Texteditor} from './editor';\nimport {newFileMenuPlugin} from './newfileplugin';\n\n// convince webpack to load chunks\n__webpack_require__.p = OC.filePath('files_texteditor', 'js', '../build/');\nconst script = document.querySelector('[nonce]');\n__webpack_require__.nc = script['nonce'] || script.getAttribute('nonce');\n\nOCA.Files_Texteditor = Texteditor;\n\nOC.Plugins.register('OCA.Files.NewFileMenu', newFileMenuPlugin);\nOC.Plugins.register('OCA.Files.SidebarPreviewManager', new SidebarPreview());\n\n$(document).ready(function () {\n\t$('#editor').remove();\n\tOCA.Files_Texteditor.initialize($('<div id=\"app-content-texteditor\"></div>'));\n});\n\n\n\n// WEBPACK FOOTER //\n// ./js/index.js","export const newFileMenuPlugin = {\n\n\tattach: function (menu) {\n\t\tvar fileList = menu.fileList;\n\n\t\t// Make text app handle new file creation if enabled\n\t\tif (typeof OCA.Text !== 'undefined') {\n\t\t\treturn;\n\t\t}\n\n\t\t// only attach to main file list, public view is not supported yet\n\t\tif (fileList.id !== 'files') {\n\t\t\treturn;\n\t\t}\n\n\t\t// register the new menu entry\n\t\tmenu.addMenuEntry({\n\t\t\tid: 'file',\n\t\t\tdisplayName: t('files_texteditor', 'New text file'),\n\t\t\ttemplateName: t('files_texteditor', 'New text file.txt'),\n\t\t\ticonClass: 'icon-filetype-text',\n\t\t\tfileType: 'file',\n\t\t\tactionHandler: function (name) {\n\t\t\t\tvar dir = fileList.getCurrentDirectory();\n\t\t\t\t// first create the file\n\t\t\t\tfileList.createFile(name).then(function () {\n\t\t\t\t\t// once the file got successfully created,\n\t\t\t\t\t// open the editor\n\t\t\t\t\tOCA.Files_Texteditor._onEditorTrigger(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfileList: fileList,\n\t\t\t\t\t\t\tdir: dir\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./js/newfileplugin.js","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\nimport {getSyntaxMode} from \"./SyntaxMode\";\nimport importAce from './ImportAce';\n\n/** @type array[] supportedMimeTypes */\nconst supportedMimeTypes = require('./supported_mimetypes.json');\n\nexport class SidebarPreview {\n\tattach (manager) {\n\t\tconst handler = this.handlePreview.bind(this);\n\t\tsupportedMimeTypes.forEach(value => manager.addPreviewHandler(value, handler));\n\t}\n\n\thandlePreview (model, $thumbnailDiv, $thumbnailContainer, fallback) {\n\t\tconst previewWidth = $thumbnailContainer.parent().width() + 50; // 50px for negative margins\n\t\tconst previewHeight = previewWidth / (16 / 9);\n\n\t\tthis.getFileContent(model.getFullPath()).then(function (content) {\n\t\t\tcontent = content.filecontents;\n\t\t\t$thumbnailDiv.removeClass('icon-loading icon-32');\n\t\t\t$thumbnailContainer.addClass('large');\n\t\t\t$thumbnailContainer.addClass('text');\n\t\t\tconst $editorDiv = $(\"<div id='sidebar_editor'/>\");\n\t\t\t$editorDiv.text(content);\n\t\t\t$thumbnailDiv.children('.stretcher').remove();\n\t\t\t$thumbnailDiv.append($editorDiv);\n\t\t\timportAce().then((imports) => {\n\t\t\t\tconst editor = imports.edit('sidebar_editor');\n\t\t\t\teditor.setReadOnly(true);\n\t\t\t\tlet syntaxModePromise;\n\t\t\t\tif (model.get('mimetype') === 'text/html') {\n\t\t\t\t\tsyntaxModePromise = getSyntaxMode('html');\n\t\t\t\t} else {\n\t\t\t\t\t// Set the syntax mode based on the file extension\n\t\t\t\t\tsyntaxModePromise = getSyntaxMode(\n\t\t\t\t\t\tmodel.get('name').split('.')[model.get('name').split('.').length - 1]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tsyntaxModePromise.then(function (mode) {\n\t\t\t\t\tif (mode) {\n\t\t\t\t\t\teditor.getSession().setMode(`ace/mode/${mode}`);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// Set the theme\n\t\t\t\timport('brace/theme/clouds').then(() => {\n\t\t\t\t\teditor.setTheme(\"ace/theme/clouds\");\n\t\t\t\t});\n\t\t\t\t$editorDiv.css(\"height\", previewHeight);\n\t\t\t\t$editorDiv.css(\"width\", previewWidth);\n\t\t\t});\n\t\t}, function () {\n\t\t\tfallback();\n\t\t});\n\t}\n\n\tgetFileContent (path) {\n\t\tconst parts = path.split('/');\n\t\tconst dir = parts.slice(0, -1).join('');\n\t\tconst file = parts.slice(-1).join('');\n\n\t\treturn $.ajax({\n\t\t\turl: OC.generateUrl('/apps/files_texteditor/ajax/loadfile'),\n\t\t\tdata: {\n\t\t\t\tfilename: file,\n\t\t\t\tdir: dir\n\t\t\t},\n\t\t\theaders: {\n\t\t\t\t'Range': 'bytes=0-10240'\n\t\t\t}\n\t\t});\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./js/sidebarpreview.js","module.exports = [\"text\",\"application/cmd\",\"application/javascript\",\"application/json\",\"application/xml\",\"application/x-empty\",\"application/x-msdos-program\",\"application/x-php\",\"application/x-pearl\",\"application/x-text\",\"application/yaml\"]\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./js/supported_mimetypes.json\n// module id = ./js/supported_mimetypes.json\n// module chunks = 32"],"sourceRoot":""} \ No newline at end of file
diff --git a/build/h-mode.bundle.js b/build/h-mode.bundle.js
index 8a348e2..7ac15db 100644
--- a/build/h-mode.bundle.js
+++ b/build/h-mode.bundle.js
@@ -1,2 +1,2 @@
-webpackJsonpTexteditor([28],{"./node_modules/brace/mode/c_cpp.js":function(e,t){ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},i.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(i,o),i.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},i.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},i.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=i}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./doc_comment_highlight_rules").DocCommentHighlightRules,i=e("./text_highlight_rules").TextHighlightRules,a=t.cFunctions="\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b",l=function(){var e=this.$keywords=this.createKeywordMapper({"keyword.control":"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using","storage.type":"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t","storage.modifier":"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local","keyword.operator":"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace","variable.language":"this","constant.language":"NULL|true|false|TRUE|FALSE|nullptr"},"identifier"),t=/\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source,n="%"+/(\d+\$)?/.source+/[#0\- +']*/.source+/[,;:_]?/.source+/((-?\d+)|\*(-?\d+\$)?)?/.source+/(\.((-?\d+)|\*(-?\d+\$)?)?)?/.source+/(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source+/(\[[^"\]]+\]|[diouxXDOUeEfFgGaACcSspn%])/.source;this.$rules={start:[{token:"comment",regex:"//$",next:"start"},{token:"comment",regex:"//",next:"singleLineComment"},o.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:"'(?:"+t+"|.)?'"},{token:"string.start",regex:'"',stateName:"qqstring",next:[{token:"string",regex:/\\\s*$/,next:"qqstring"},{token:"constant.language.escape",regex:t},{token:"constant.language.escape",regex:n},{token:"string.end",regex:'"|$',next:"start"},{defaultToken:"string"}]},{token:"string.start",regex:'R"\\(',stateName:"rawString",next:[{token:"string.end",regex:'\\)"',next:"start"},{defaultToken:"string"}]},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"keyword",regex:"#\\s*(?:include|import|pragma|line|define|undef)\\b",next:"directive"},{token:"keyword",regex:"#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b"},{token:"support.function.C99.c",regex:a},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*"},{token:"keyword.operator",regex:/--|\+\+|<<=|>>=|>>>=|<>|&&|\|\||\?:|[*%\/+\-&\^|~!<>=]=?/},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],singleLineComment:[{token:"comment",regex:/\\$/,next:"singleLineComment"},{token:"comment",regex:/$/,next:"start"},{defaultToken:"comment"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(o,"doc-",[o.getEndRule("start")]),this.normalizeRules()};r.inherits(l,i),t.c_cppHighlightRules=l}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var o=n[1].length,i=e.findMatchingBracket({row:t,column:o});if(!i||i.row==t)return 0;var a=this.$getIndent(e.getLine(i.row));e.replace(new r(t,0,t,o-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),o=e("../../range").Range,i=e("./fold_mode").FoldMode,a=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(a,i),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(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(r)?"start":o},this.getFoldWidgetRange=function(e,t,n,r){var o,i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);if(o=i.match(this.foldingStartMarker)){var a=o.index;if(o[1])return this.openingBracketBlock(e,o[1],n,a);var l=e.getCommentFoldRange(n,a+o[0].length,1);return l&&!l.isMultiLine()&&(r?l=this.getSectionRange(e,n):"all"!=t&&(l=null)),l}if("markbegin"!==t&&(o=i.match(this.foldingStopMarker))){a=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],n,a):e.getCommentFoldRange(n,a,-1)}},this.getSectionRange=function(e,t){for(var n=e.getLine(t),r=n.search(/\S/),i=t,a=n.length,l=t+=1,s=e.getLength();++t<s;){var c=(n=e.getLine(t)).search(/\S/);if(-1!==c){if(r>c)break;var g=this.getFoldWidgetRange(e,"all",t);if(g){if(g.start.row<=i)break;if(g.isMultiLine())t=g.end.row;else if(r==c)break}l=t}}return new o(i,a,l,e.getLine(l).length)},this.getCommentRegionBlock=function(e,t,n){for(var r=t.search(/\s*$/),i=e.getLength(),a=n,l=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,s=1;++n<i;){t=e.getLine(n);var c=l.exec(t);if(c&&(c[1]?s--:s++,!s))break}if(n>a)return new o(a,r,n,t.length)}}.call(a.prototype)}),ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,i=e("./c_cpp_highlight_rules").c_cppHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=(e("../range").Range,e("./behaviour/cstyle").CstyleBehaviour),s=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=i,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new s};r.inherits(c,o),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),o=this.getTokenizer().getLineTokens(t,e),i=o.tokens,a=o.state;if(i.length&&"comment"==i[i.length-1].type)return r;if("start"==e)(l=t.match(/^.*[\{\(\[]\s*$/))&&(r+=n);else if("doc-start"==e){if("start"==a)return"";var l;(l=t.match(/^\s*(\/?)\*/))&&(l[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/c_cpp"}.call(c.prototype),t.Mode=c})}});
+webpackJsonpTexteditor([29],{"./node_modules/brace/mode/c_cpp.js":function(e,t){ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},i.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(i,o),i.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},i.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},i.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=i}),ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./doc_comment_highlight_rules").DocCommentHighlightRules,i=e("./text_highlight_rules").TextHighlightRules,a=t.cFunctions="\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b",l=function(){var e=this.$keywords=this.createKeywordMapper({"keyword.control":"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using","storage.type":"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t","storage.modifier":"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local","keyword.operator":"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace","variable.language":"this","constant.language":"NULL|true|false|TRUE|FALSE|nullptr"},"identifier"),t=/\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source,n="%"+/(\d+\$)?/.source+/[#0\- +']*/.source+/[,;:_]?/.source+/((-?\d+)|\*(-?\d+\$)?)?/.source+/(\.((-?\d+)|\*(-?\d+\$)?)?)?/.source+/(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source+/(\[[^"\]]+\]|[diouxXDOUeEfFgGaACcSspn%])/.source;this.$rules={start:[{token:"comment",regex:"//$",next:"start"},{token:"comment",regex:"//",next:"singleLineComment"},o.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:"'(?:"+t+"|.)?'"},{token:"string.start",regex:'"',stateName:"qqstring",next:[{token:"string",regex:/\\\s*$/,next:"qqstring"},{token:"constant.language.escape",regex:t},{token:"constant.language.escape",regex:n},{token:"string.end",regex:'"|$',next:"start"},{defaultToken:"string"}]},{token:"string.start",regex:'R"\\(',stateName:"rawString",next:[{token:"string.end",regex:'\\)"',next:"start"},{defaultToken:"string"}]},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"keyword",regex:"#\\s*(?:include|import|pragma|line|define|undef)\\b",next:"directive"},{token:"keyword",regex:"#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b"},{token:"support.function.C99.c",regex:a},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*"},{token:"keyword.operator",regex:/--|\+\+|<<=|>>=|>>>=|<>|&&|\|\||\?:|[*%\/+\-&\^|~!<>=]=?/},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],singleLineComment:[{token:"comment",regex:/\\$/,next:"singleLineComment"},{token:"comment",regex:/$/,next:"start"},{defaultToken:"comment"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(o,"doc-",[o.getEndRule("start")]),this.normalizeRules()};r.inherits(l,i),t.c_cppHighlightRules=l}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var o=n[1].length,i=e.findMatchingBracket({row:t,column:o});if(!i||i.row==t)return 0;var a=this.$getIndent(e.getLine(i.row));e.replace(new r(t,0,t,o-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),o=e("../../range").Range,i=e("./fold_mode").FoldMode,a=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(a,i),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(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(r)?"start":o},this.getFoldWidgetRange=function(e,t,n,r){var o,i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);if(o=i.match(this.foldingStartMarker)){var a=o.index;if(o[1])return this.openingBracketBlock(e,o[1],n,a);var l=e.getCommentFoldRange(n,a+o[0].length,1);return l&&!l.isMultiLine()&&(r?l=this.getSectionRange(e,n):"all"!=t&&(l=null)),l}if("markbegin"!==t&&(o=i.match(this.foldingStopMarker))){a=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],n,a):e.getCommentFoldRange(n,a,-1)}},this.getSectionRange=function(e,t){for(var n=e.getLine(t),r=n.search(/\S/),i=t,a=n.length,l=t+=1,s=e.getLength();++t<s;){var c=(n=e.getLine(t)).search(/\S/);if(-1!==c){if(r>c)break;var g=this.getFoldWidgetRange(e,"all",t);if(g){if(g.start.row<=i)break;if(g.isMultiLine())t=g.end.row;else if(r==c)break}l=t}}return new o(i,a,l,e.getLine(l).length)},this.getCommentRegionBlock=function(e,t,n){for(var r=t.search(/\s*$/),i=e.getLength(),a=n,l=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,s=1;++n<i;){t=e.getLine(n);var c=l.exec(t);if(c&&(c[1]?s--:s++,!s))break}if(n>a)return new o(a,r,n,t.length)}}.call(a.prototype)}),ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,i=e("./c_cpp_highlight_rules").c_cppHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=(e("../range").Range,e("./behaviour/cstyle").CstyleBehaviour),s=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=i,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new s};r.inherits(c,o),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),o=this.getTokenizer().getLineTokens(t,e),i=o.tokens,a=o.state;if(i.length&&"comment"==i[i.length-1].type)return r;if("start"==e)(l=t.match(/^.*[\{\(\[]\s*$/))&&(r+=n);else if("doc-start"==e){if("start"==a)return"";var l;(l=t.match(/^\s*(\/?)\*/))&&(l[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/c_cpp"}.call(c.prototype),t.Mode=c})}});
//# sourceMappingURL=h-mode.bundle.js.map \ No newline at end of file
diff --git a/build/h-mode.bundle.js.map b/build/h-mode.bundle.js.map
index 94dfed6..ec1b70e 100644
--- a/build/h-mode.bundle.js.map
+++ b/build/h-mode.bundle.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///./node_modules/brace/mode/c_cpp.js"],"names":["ace","define","acequire","exports","module","oop","TextHighlightRules","DocCommentHighlightRules","this","$rules","start","token","regex","getTagRule","defaultToken","caseInsensitive","inherits","getStartRule","next","getEndRule","cFunctions","c_cppHighlightRules","keywordMapper","$keywords","createKeywordMapper","keyword.control","storage.type","storage.modifier","keyword.operator","variable.language","constant.language","escapeRe","source","formatRe","stateName","comment","singleLineComment","directive","embedRules","normalizeRules","Range","MatchingBraceOutdent","checkOutdent","line","input","test","autoOutdent","doc","row","match","getLine","column","length","openBracePos","findMatchingBracket","indent","$getIndent","replace","call","prototype","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","RegExp","foldingStopMarker","end","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","i","index","openingBracketBlock","range","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","search","startRow","startColumn","endRow","maxRow","getLength","subRange","re","depth","m","exec","TextMode","Mode","CstyleBehaviour","CStyleFoldMode","HighlightRules","$outdent","$behaviour","foldingRules","lineCommentStart","blockComment","getNextLineIndent","state","tab","tokenizedLine","getTokenizer","getLineTokens","tokens","endState","type","$id"],"mappings":"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","file":"h-mode.bundle.js","sourcesContent":["ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n this.$rules = {\n \"start\" : [ {\n token : \"comment.doc.tag\",\n regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n }, \n DocCommentHighlightRules.getTagRule(),\n {\n defaultToken : \"comment.doc\",\n caseInsensitive: true\n }]\n };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n return {\n token : \"comment.doc.tag.storage.type\",\n regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\n\nDocCommentHighlightRules.getStartRule = function(start) {\n return {\n token : \"comment.doc\", // doc comment\n regex : \"\\\\/\\\\*(?=\\\\*)\",\n next : start\n };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token : \"comment.doc\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : start\n };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar DocCommentHighlightRules = acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar cFunctions = exports.cFunctions = \"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\";\n\nvar c_cppHighlightRules = function() {\n\n var keywordControls = (\n \"break|case|continue|default|do|else|for|goto|if|_Pragma|\" +\n \"return|switch|while|catch|operator|try|throw|using\"\n );\n \n var storageType = (\n \"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|\" +\n \"_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|\" +\n \"class|wchar_t|template|char16_t|char32_t\"\n );\n\n var storageModifiers = (\n \"const|extern|register|restrict|static|volatile|inline|private|\" +\n \"protected|public|friend|explicit|virtual|export|mutable|typename|\" +\n \"constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\"\n );\n\n var keywordOperators = (\n \"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq\" +\n \"const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\"\n );\n\n var builtinConstants = (\n \"NULL|true|false|TRUE|FALSE|nullptr\"\n );\n\n var keywordMapper = this.$keywords = this.createKeywordMapper({\n \"keyword.control\" : keywordControls,\n \"storage.type\" : storageType,\n \"storage.modifier\" : storageModifiers,\n \"keyword.operator\" : keywordOperators,\n \"variable.language\": \"this\",\n \"constant.language\": builtinConstants\n }, \"identifier\");\n\n var identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n var escapeRe = /\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;\n var formatRe = \"%\"\n + /(\\d+\\$)?/.source // field (argument #)\n + /[#0\\- +']*/.source // flags\n + /[,;:_]?/.source // separator character (AltiVec)\n + /((-?\\d+)|\\*(-?\\d+\\$)?)?/.source // minimum field width\n + /(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?/.source // precision\n + /(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source // length modifier\n + /(\\[[^\"\\]]+\\]|[diouxXDOUeEfFgGaACcSspn%])/.source; // conversion type\n\n this.$rules = { \n \"start\" : [\n {\n token : \"comment\",\n regex : \"//$\",\n next : \"start\"\n }, {\n token : \"comment\",\n regex : \"//\",\n next : \"singleLineComment\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token : \"comment\", // multi line comment\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"string\", // character\n regex : \"'(?:\" + escapeRe + \"|.)?'\"\n }, {\n token : \"string.start\",\n regex : '\"', \n stateName: \"qqstring\",\n next: [\n { token: \"string\", regex: /\\\\\\s*$/, next: \"qqstring\" },\n { token: \"constant.language.escape\", regex: escapeRe },\n { token: \"constant.language.escape\", regex: formatRe },\n { token: \"string.end\", regex: '\"|$', next: \"start\" },\n { defaultToken: \"string\"}\n ]\n }, {\n token : \"string.start\",\n regex : 'R\"\\\\(', \n stateName: \"rawString\",\n next: [\n { token: \"string.end\", regex: '\\\\)\"', next: \"start\" },\n { defaultToken: \"string\"}\n ]\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n }, {\n token : \"keyword\", // pre-compiler directives\n regex : \"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",\n next : \"directive\"\n }, {\n token : \"keyword\", // special case pre-compiler directive\n regex : \"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"\n }, {\n token : \"support.function.C99.c\",\n regex : cFunctions\n }, {\n token : keywordMapper,\n regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n }, {\n token : \"keyword.operator\",\n regex : /--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/\n }, {\n token : \"punctuation.operator\",\n regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : \"start\"\n }, {\n defaultToken : \"comment\"\n }\n ],\n \"singleLineComment\" : [\n {\n token : \"comment\",\n regex : /\\\\$/,\n next : \"singleLineComment\"\n }, {\n token : \"comment\",\n regex : /$/,\n next : \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"directive\" : [\n {\n token : \"constant.other.multiline\",\n regex : /\\\\/\n },\n {\n token : \"constant.other.multiline\",\n regex : /.*\\\\/\n },\n {\n token : \"constant.other\",\n regex : \"\\\\s*<.+?>\",\n next : \"start\"\n },\n {\n token : \"constant.other\", // single line\n regex : '\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',\n next : \"start\"\n }, \n {\n token : \"constant.other\", // single line\n regex : \"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",\n next : \"start\"\n },\n {\n token : \"constant.other\",\n regex : /[^\\\\\\/]+/,\n next : \"start\"\n }\n ]\n };\n\n this.embedRules(DocCommentHighlightRules, \"doc-\",\n [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n this.normalizeRules();\n};\n\noop.inherits(c_cppHighlightRules, TextHighlightRules);\n\nexports.c_cppHighlightRules = c_cppHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar c_cppHighlightRules = acequire(\"./c_cpp_highlight_rules\").c_cppHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = acequire(\"../range\").Range;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = c_cppHighlightRules;\n\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \"//\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n\n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n } else if (state == \"doc-start\") {\n if (endState == \"start\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.$id = \"ace/mode/c_cpp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/brace/mode/c_cpp.js\n// module id = ./node_modules/brace/mode/c_cpp.js\n// module chunks = 28"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///./node_modules/brace/mode/c_cpp.js"],"names":["ace","define","acequire","exports","module","oop","TextHighlightRules","DocCommentHighlightRules","this","$rules","start","token","regex","getTagRule","defaultToken","caseInsensitive","inherits","getStartRule","next","getEndRule","cFunctions","c_cppHighlightRules","keywordMapper","$keywords","createKeywordMapper","keyword.control","storage.type","storage.modifier","keyword.operator","variable.language","constant.language","escapeRe","source","formatRe","stateName","comment","singleLineComment","directive","embedRules","normalizeRules","Range","MatchingBraceOutdent","checkOutdent","line","input","test","autoOutdent","doc","row","match","getLine","column","length","openBracePos","findMatchingBracket","indent","$getIndent","replace","call","prototype","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","RegExp","foldingStopMarker","end","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","i","index","openingBracketBlock","range","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","search","startRow","startColumn","endRow","maxRow","getLength","subRange","re","depth","m","exec","TextMode","Mode","CstyleBehaviour","CStyleFoldMode","HighlightRules","$outdent","$behaviour","foldingRules","lineCommentStart","blockComment","getNextLineIndent","state","tab","tokenizedLine","getTokenizer","getLineTokens","tokens","endState","type","$id"],"mappings":"gFAAAA,IAAAC,OAAA,6HAAAC,EAAAC,EAAAC,GACA,aAEA,IAAAC,EAAAH,EAAA,cACAI,EAAAJ,EAAA,0BAAAI,mBAEAC,EAAA,WACAC,KAAAC,QACAC,QACAC,MAAA,kBACAC,MAAA,eAEAL,EAAAM,cAEAC,aAAA,cACAC,iBAAA,MAKAV,EAAAW,SAAAT,EAAAD,GAEAC,EAAAM,WAAA,SAAAH,GACA,OACAC,MAAA,+BACAC,MAAA,kCAIAL,EAAAU,aAAA,SAAAP,GACA,OACAC,MAAA,cACAC,MAAA,gBACAM,KAAAR,IAIAH,EAAAY,WAAA,SAAAT,GACA,OACAC,MAAA,cACAC,MAAA,SACAM,KAAAR,IAKAP,EAAAI,6BAIAP,IAAAC,OAAA,8JAAAC,EAAAC,EAAAC,GACA,aAEA,IAAAC,EAAAH,EAAA,cACAK,EAAAL,EAAA,iCAAAK,yBACAD,EAAAJ,EAAA,0BAAAI,mBACAc,EAAAjB,EAAAiB,WAAA,klFAEAC,EAAA,WAEA,IA0BAC,EAAAd,KAAAe,UAAAf,KAAAgB,qBACAC,kBA3BA,6GA4BAC,eAvBA,2KAwBAC,mBAlBA,qMAmBAC,mBAbA,2IAcAC,oBAAA,OACAC,oBAVA,sCAWK,cAGLC,EAAA,gFAA8FC,OAC9FC,EAAA,IACA,WAAAD,OACA,aAAAA,OACA,UAAgBA,OAChB,0BAAAA,OACA,+BAAAA,OACA,uCAAAA,OACA,2CAAAA,OAEAxB,KAAAC,QACAC,QAEAC,MAAA,UACAC,MAAA,MACAM,KAAA,UAEAP,MAAA,UACAC,MAAA,KACAM,KAAA,qBAEAX,EAAAU,aAAA,cAEAN,MAAA,UACAC,MAAA,SACAM,KAAA,YAEAP,MAAA,SACAC,MAAA,OAAAmB,EAAA,UAEApB,MAAA,eACAC,MAAA,IACAsB,UAAA,WACAhB,OACqBP,MAAA,SAAAC,MAAA,SAAAM,KAAA,aACAP,MAAA,2BAAAC,MAAAmB,IACApB,MAAA,2BAAAC,MAAAqB,IACAtB,MAAA,aAAAC,MAAA,MAAAM,KAAA,UACAJ,aAAA,aAGrBH,MAAA,eACAC,MAAA,QACAsB,UAAA,YACAhB,OACqBP,MAAA,aAAAC,MAAA,OAAAM,KAAA,UACAJ,aAAA,aAGrBH,MAAA,mBACAC,MAAA,2DAEAD,MAAA,mBACAC,MAAA,sFAEAD,MAAA,UACAC,MAAA,sDACAM,KAAA,cAEAP,MAAA,UACAC,MAAA,gDAEAD,MAAA,yBACAC,MAAAQ,IAEAT,MAAAW,EACAV,MAAA,6BAEAD,MAAA,mBACAC,MAAA,6DAEAD,MAAA,uBACAC,MAAA,wBAEAD,MAAA,eACAC,MAAA,UAEAD,MAAA,eACAC,MAAA,YAEAD,MAAA,OACAC,MAAA,SAGAuB,UAEAxB,MAAA,UACAC,MAAA,SACAM,KAAA,UAEAJ,aAAA,YAGAsB,oBAEAzB,MAAA,UACAC,MAAA,MACAM,KAAA,sBAEAP,MAAA,UACAC,MAAA,IACAM,KAAA,UAEAJ,aAAA,YAGAuB,YAEA1B,MAAA,2BACAC,MAAA,OAGAD,MAAA,2BACAC,MAAA,SAGAD,MAAA,iBACAC,MAAA,YACAM,KAAA,UAGAP,MAAA,iBACAC,MAAA,yCACAM,KAAA,UAGAP,MAAA,iBACAC,MAAA,yCACAM,KAAA,UAGAP,MAAA,iBACAC,MAAA,WACAM,KAAA,WAKAV,KAAA8B,WAAA/B,EAAA,QACAA,EAAAY,WAAA,WACAX,KAAA+B,kBAGAlC,EAAAW,SAAAK,EAAAf,GAEAH,EAAAkB,wBAGArB,IAAAC,OAAA,sFAAAC,EAAAC,EAAAC,GACA,aAEA,IAAAoC,EAAAtC,EAAA,YAAAsC,MAEAC,EAAA,cAEA,WAEAjC,KAAAkC,aAAA,SAAAC,EAAAC,GACA,gBAAAC,KAAAF,IAGA,SAAsBE,KAAAD,IAGtBpC,KAAAsC,YAAA,SAAAC,EAAAC,GACA,IACAC,EADAF,EAAAG,QAAAF,GACAC,MAAA,YAEA,IAAAA,EAAA,SAEA,IAAAE,EAAAF,EAAA,GAAAG,OACAC,EAAAN,EAAAO,qBAAoDN,MAAAG,WAEpD,IAAAE,KAAAL,OAAA,SAEA,IAAAO,EAAA/C,KAAAgD,WAAAT,EAAAG,QAAAG,EAAAL,MACAD,EAAAU,QAAA,IAAAjB,EAAAQ,EAAA,EAAAA,EAAAG,EAAA,GAAAI,IAGA/C,KAAAgD,WAAA,SAAAb,GACA,OAAAA,EAAAM,MAAA,cAGCS,KAAAjB,EAAAkB,WAEDxD,EAAAsC,yBAGAzC,IAAAC,OAAA,yHAAAC,EAAAC,EAAAC,GACA,aAEA,IAAAC,EAAAH,EAAA,iBACAsC,EAAAtC,EAAA,eAAAsC,MACAoB,EAAA1D,EAAA,eAAA2D,SAEAA,EAAA1D,EAAA0D,SAAA,SAAAC,GACAA,IACAtD,KAAAuD,mBAAA,IAAAC,OACAxD,KAAAuD,mBAAA/B,OAAAyB,QAAA,gBAAAK,EAAApD,QAEAF,KAAAyD,kBAAA,IAAAD,OACAxD,KAAAyD,kBAAAjC,OAAAyB,QAAA,gBAAAK,EAAAI,QAIA7D,EAAAW,SAAA6C,EAAAD,GAEA,WAEApD,KAAAuD,mBAAA,mCACAvD,KAAAyD,kBAAA,uCACAzD,KAAA2D,yBAAA,uBACA3D,KAAA4D,yBAAA,2BACA5D,KAAA6D,cAAA,4BACA7D,KAAA8D,mBAAA9D,KAAA+D,cACA/D,KAAA+D,cAAA,SAAAC,EAAAC,EAAAzB,GACA,IAAAL,EAAA6B,EAAAtB,QAAAF,GAEA,GAAAxC,KAAA2D,yBAAAtB,KAAAF,KACAnC,KAAA6D,cAAAxB,KAAAF,KAAAnC,KAAA4D,yBAAAvB,KAAAF,GACA,SAGA,IAAA+B,EAAAlE,KAAA8D,mBAAAE,EAAAC,EAAAzB,GAEA,OAAA0B,GAAAlE,KAAA6D,cAAAxB,KAAAF,GACA,QAEA+B,GAGAlE,KAAAmE,mBAAA,SAAAH,EAAAC,EAAAzB,EAAA4B,GACA,IA2BA3B,EA3BAN,EAAA6B,EAAAtB,QAAAF,GAEA,GAAAxC,KAAA6D,cAAAxB,KAAAF,GACA,OAAAnC,KAAAqE,sBAAAL,EAAA7B,EAAAK,GAGA,GADAC,EAAAN,EAAAM,MAAAzC,KAAAuD,oBACA,CACA,IAAAe,EAAA7B,EAAA8B,MAEA,GAAA9B,EAAA,GACA,OAAAzC,KAAAwE,oBAAAR,EAAAvB,EAAA,GAAAD,EAAA8B,GAEA,IAAAG,EAAAT,EAAAU,oBAAAlC,EAAA8B,EAAA7B,EAAA,GAAAG,OAAA,GASA,OAPA6B,MAAAE,gBACAP,EACAK,EAAAzE,KAAA4E,gBAAAZ,EAAAxB,GACiB,OAAAyB,IACjBQ,EAAA,OAGAA,EAGA,iBAAAR,IAGAxB,EAAAN,EAAAM,MAAAzC,KAAAyD,oBACA,CACAa,EAAA7B,EAAA8B,MAAA9B,EAAA,GAAAG,OAEA,OAAAH,EAAA,GACAzC,KAAA6E,oBAAAb,EAAAvB,EAAA,GAAAD,EAAA8B,GAEAN,EAAAU,oBAAAlC,EAAA8B,GAAA,KAIAtE,KAAA4E,gBAAA,SAAAZ,EAAAxB,GAQA,IAPA,IAAAL,EAAA6B,EAAAtB,QAAAF,GACAsC,EAAA3C,EAAA4C,OAAA,MACAC,EAAAxC,EACAyC,EAAA9C,EAAAS,OAEAsC,EADA1C,GAAA,EAEA2C,EAAAnB,EAAAoB,cACA5C,EAAA2C,GAAA,CAEA,IAAApC,GADAZ,EAAA6B,EAAAtB,QAAAF,IACAuC,OAAA,MACA,QAAAhC,EAAA,CAEA,GAAA+B,EAAA/B,EACA,MACA,IAAAsC,EAAArF,KAAAmE,mBAAAH,EAAA,MAAAxB,GAEA,GAAA6C,EAAA,CACA,GAAAA,EAAAnF,MAAAsC,KAAAwC,EACA,MACiB,GAAAK,EAAAV,cACjBnC,EAAA6C,EAAA3B,IAAAlB,SACiB,GAAAsC,GAAA/B,EACjB,MAGAmC,EAAA1C,GAGA,WAAAR,EAAAgD,EAAAC,EAAAC,EAAAlB,EAAAtB,QAAAwC,GAAAtC,SAEA5C,KAAAqE,sBAAA,SAAAL,EAAA7B,EAAAK,GAOA,IANA,IAAAyC,EAAA9C,EAAA4C,OAAA,QACAI,EAAAnB,EAAAoB,YACAJ,EAAAxC,EAEA8C,EAAA,uCACAC,EAAA,IACA/C,EAAA2C,GAAA,CACAhD,EAAA6B,EAAAtB,QAAAF,GACA,IAAAgD,EAAAF,EAAAG,KAAAtD,GACA,GAAAqD,IACAA,EAAA,GAAAD,IACAA,KAEAA,GAAA,MAIA,GADA/C,EACAwC,EACA,WAAAhD,EAAAgD,EAAAC,EAFAzC,EAEAL,EAAAS,UAICM,KAAAG,EAAAF,aAID3D,IAAAC,OAAA,4NAAAC,EAAAC,EAAAC,GACA,aAEA,IAAAC,EAAAH,EAAA,cACAgG,EAAAhG,EAAA,UAAAiG,KACA9E,EAAAnB,EAAA,2BAAAmB,oBACAoB,EAAAvC,EAAA,4BAAAuC,qBAEA2D,GADAlG,EAAA,YAAAsC,MACAtC,EAAA,sBAAAkG,iBACAC,EAAAnG,EAAA,oBAAA2D,SAEAsC,EAAA,WACA3F,KAAA8F,eAAAjF,EAEAb,KAAA+F,SAAA,IAAA9D,EACAjC,KAAAgG,WAAA,IAAAJ,EAEA5F,KAAAiG,aAAA,IAAAJ,GAEAhG,EAAAW,SAAAmF,EAAAD,GAEA,WAEA1F,KAAAkG,iBAAA,KACAlG,KAAAmG,cAAyBjG,MAAA,KAAAwD,IAAA,MAEzB1D,KAAAoG,kBAAA,SAAAC,EAAAlE,EAAAmE,GACA,IAAAvD,EAAA/C,KAAAgD,WAAAb,GAEAoE,EAAAvG,KAAAwG,eAAAC,cAAAtE,EAAAkE,GACAK,EAAAH,EAAAG,OACAC,EAAAJ,EAAAF,MAEA,GAAAK,EAAA9D,QAAA,WAAA8D,IAAA9D,OAAA,GAAAgE,KACA,OAAA7D,EAGA,YAAAsD,GACA5D,EAAAN,EAAAM,MAAA,sBAEAM,GAAAuD,QAES,gBAAAD,EAAA,CACT,YAAAM,EACA,SAEA,IAAAlE,KAAAN,EAAAM,MAAA,kBAEAA,EAAA,KACAM,GAAA,KAEAA,GAAA,MAIA,OAAAA,GAGA/C,KAAAkC,aAAA,SAAAmE,EAAAlE,EAAAC,GACA,OAAApC,KAAA+F,SAAA7D,aAAAC,EAAAC,IAGApC,KAAAsC,YAAA,SAAA+D,EAAA9D,EAAAC,GACAxC,KAAA+F,SAAAzD,YAAAC,EAAAC,IAGAxC,KAAA6G,IAAA,kBACC3D,KAAAyC,EAAAxC,WAEDxD,EAAAgG","file":"h-mode.bundle.js","sourcesContent":["ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n this.$rules = {\n \"start\" : [ {\n token : \"comment.doc.tag\",\n regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n }, \n DocCommentHighlightRules.getTagRule(),\n {\n defaultToken : \"comment.doc\",\n caseInsensitive: true\n }]\n };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n return {\n token : \"comment.doc.tag.storage.type\",\n regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\n\nDocCommentHighlightRules.getStartRule = function(start) {\n return {\n token : \"comment.doc\", // doc comment\n regex : \"\\\\/\\\\*(?=\\\\*)\",\n next : start\n };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token : \"comment.doc\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : start\n };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar DocCommentHighlightRules = acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar cFunctions = exports.cFunctions = \"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\";\n\nvar c_cppHighlightRules = function() {\n\n var keywordControls = (\n \"break|case|continue|default|do|else|for|goto|if|_Pragma|\" +\n \"return|switch|while|catch|operator|try|throw|using\"\n );\n \n var storageType = (\n \"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|\" +\n \"_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|\" +\n \"class|wchar_t|template|char16_t|char32_t\"\n );\n\n var storageModifiers = (\n \"const|extern|register|restrict|static|volatile|inline|private|\" +\n \"protected|public|friend|explicit|virtual|export|mutable|typename|\" +\n \"constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\"\n );\n\n var keywordOperators = (\n \"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq\" +\n \"const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\"\n );\n\n var builtinConstants = (\n \"NULL|true|false|TRUE|FALSE|nullptr\"\n );\n\n var keywordMapper = this.$keywords = this.createKeywordMapper({\n \"keyword.control\" : keywordControls,\n \"storage.type\" : storageType,\n \"storage.modifier\" : storageModifiers,\n \"keyword.operator\" : keywordOperators,\n \"variable.language\": \"this\",\n \"constant.language\": builtinConstants\n }, \"identifier\");\n\n var identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n var escapeRe = /\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;\n var formatRe = \"%\"\n + /(\\d+\\$)?/.source // field (argument #)\n + /[#0\\- +']*/.source // flags\n + /[,;:_]?/.source // separator character (AltiVec)\n + /((-?\\d+)|\\*(-?\\d+\\$)?)?/.source // minimum field width\n + /(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?/.source // precision\n + /(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source // length modifier\n + /(\\[[^\"\\]]+\\]|[diouxXDOUeEfFgGaACcSspn%])/.source; // conversion type\n\n this.$rules = { \n \"start\" : [\n {\n token : \"comment\",\n regex : \"//$\",\n next : \"start\"\n }, {\n token : \"comment\",\n regex : \"//\",\n next : \"singleLineComment\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token : \"comment\", // multi line comment\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"string\", // character\n regex : \"'(?:\" + escapeRe + \"|.)?'\"\n }, {\n token : \"string.start\",\n regex : '\"', \n stateName: \"qqstring\",\n next: [\n { token: \"string\", regex: /\\\\\\s*$/, next: \"qqstring\" },\n { token: \"constant.language.escape\", regex: escapeRe },\n { token: \"constant.language.escape\", regex: formatRe },\n { token: \"string.end\", regex: '\"|$', next: \"start\" },\n { defaultToken: \"string\"}\n ]\n }, {\n token : \"string.start\",\n regex : 'R\"\\\\(', \n stateName: \"rawString\",\n next: [\n { token: \"string.end\", regex: '\\\\)\"', next: \"start\" },\n { defaultToken: \"string\"}\n ]\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n }, {\n token : \"keyword\", // pre-compiler directives\n regex : \"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",\n next : \"directive\"\n }, {\n token : \"keyword\", // special case pre-compiler directive\n regex : \"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"\n }, {\n token : \"support.function.C99.c\",\n regex : cFunctions\n }, {\n token : keywordMapper,\n regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n }, {\n token : \"keyword.operator\",\n regex : /--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/\n }, {\n token : \"punctuation.operator\",\n regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : \"start\"\n }, {\n defaultToken : \"comment\"\n }\n ],\n \"singleLineComment\" : [\n {\n token : \"comment\",\n regex : /\\\\$/,\n next : \"singleLineComment\"\n }, {\n token : \"comment\",\n regex : /$/,\n next : \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"directive\" : [\n {\n token : \"constant.other.multiline\",\n regex : /\\\\/\n },\n {\n token : \"constant.other.multiline\",\n regex : /.*\\\\/\n },\n {\n token : \"constant.other\",\n regex : \"\\\\s*<.+?>\",\n next : \"start\"\n },\n {\n token : \"constant.other\", // single line\n regex : '\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',\n next : \"start\"\n }, \n {\n token : \"constant.other\", // single line\n regex : \"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",\n next : \"start\"\n },\n {\n token : \"constant.other\",\n regex : /[^\\\\\\/]+/,\n next : \"start\"\n }\n ]\n };\n\n this.embedRules(DocCommentHighlightRules, \"doc-\",\n [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n this.normalizeRules();\n};\n\noop.inherits(c_cppHighlightRules, TextHighlightRules);\n\nexports.c_cppHighlightRules = c_cppHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar c_cppHighlightRules = acequire(\"./c_cpp_highlight_rules\").c_cppHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = acequire(\"../range\").Range;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = c_cppHighlightRules;\n\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \"//\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n\n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n } else if (state == \"doc-start\") {\n if (endState == \"start\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.$id = \"ace/mode/c_cpp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/brace/mode/c_cpp.js\n// module id = ./node_modules/brace/mode/c_cpp.js\n// module chunks = 29"],"sourceRoot":""} \ No newline at end of file
diff --git a/build/public-share.js b/build/public-share.js
index a437e64..3dba3dc 100644
--- a/build/public-share.js
+++ b/build/public-share.js
@@ -1,2 +1,2 @@
-!function(e){var t={};function n(r){if(t[r])return t[r].exports;var s=t[r]={i:r,l:!1,exports:{}};return e[r].call(s.exports,s,s.exports,n),s.l=!0,s.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="./js/public-share.js")}({"./js/public-share.js":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("./node_modules/marked/lib/marked.js"),s=n.n(r);$(document).ready(function(){var e=$("#isPublic").val(),t=$("#mimetype").val(),n=$("#filesize").val();if(e&&"text/markdown"===t&&n<524288){var r=$("#sharingToken").val(),i=OC.generateUrl("/s/{token}/download",{token:r}),l=$("#imgframe"),o=new s.a.Renderer;o.link=function(e,t,n){try{var r=decodeURIComponent(unescape(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(0!==r.indexOf("http:")&&0!==r.indexOf("https:"))return"";var s='<a href="'+e+'" rel="noreferrer noopener"';return t&&(s+=' title="'+t+'"'),s+=">"+n+"</a>"},o.image=function(e,t,n){return n||t},o.blockquote=function(e){return e},l.addClass("icon-loading").children().remove(),$.get(i).success(function(e){l.removeClass("icon-loading").addClass("preview formatted-text").html(DOMPurify.sanitize(s()(e,{renderer:o,smartLists:!0}),{SAFE_FOR_JQUERY:!0}))}).fail(function(e){l.removeClass("icon-loading")})}else if(e&&"text"===t.substr(0,t.indexOf("/"))){(l=$("#imgframe")).addClass("icon-loading").children().remove();var a=$(window).height()-350;a=Math.max(200,a);r=$("#sharingToken").val();$.ajax({url:OC.generateUrl("/apps/files_texteditor/public/{token}",{token:r}),headers:{Range:"bytes=0-524288"}}).success(function(e){var t=$("<div/>").addClass("text-preview default-overridden");t.text(e),l.removeClass("icon-loading").addClass("preview").append(t);var n=t.height();if(e.length>524289){var r=$("<div/>").addClass("ellipsis");r.html("(&#133;)"),r.appendTo("#imgframe")}n>a&&t.height(a)})}})},"./node_modules/marked/lib/marked.js":function(e,t,n){(function(t){!function(t){"use strict";var n={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:m,table:m,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};function r(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||w.defaults,this.rules=n.normal,this.options.pedantic?this.rules=n.pedantic:this.options.gfm&&(this.rules=n.gfm)}n._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,n._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,n.def=c(n.def).replace("label",n._label).replace("title",n._title).getRegex(),n.bullet=/(?:[*+-]|\d{1,9}\.)/,n.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,n.item=c(n.item,"gm").replace(/bull/g,n.bullet).getRegex(),n.list=c(n.list).replace(/bull/g,n.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+n.def.source+")").getRegex(),n._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",n._comment=/<!--(?!-?>)[\s\S]*?-->/,n.html=c(n.html,"i").replace("comment",n._comment).replace("tag",n._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),n.paragraph=c(n._paragraph).replace("hr",n.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",n._tag).getRegex(),n.blockquote=c(n.blockquote).replace("paragraph",n.paragraph).getRegex(),n.normal=b({},n),n.gfm=b({},n.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),n.pedantic=b({},n.normal,{html:c("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",n._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:m,paragraph:c(n.normal._paragraph).replace("hr",n.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",n.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()}),r.rules=n,r.lex=function(e,t){return new r(t).lex(e)},r.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},r.prototype.token=function(e,t){var r,s,i,l,o,a,h,u,c,g,d,f,m,b,_,y;for(e=e.replace(/^ +$/gm,"");e;)if((i=this.rules.newline.exec(e))&&(e=e.substring(i[0].length),i[0].length>1&&this.tokens.push({type:"space"})),i=this.rules.code.exec(e)){var w=this.tokens[this.tokens.length-1];e=e.substring(i[0].length),w&&"paragraph"===w.type?w.text+="\n"+i[0].trimRight():(i=i[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?i:x(i,"\n")}))}else if(i=this.rules.fences.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"code",lang:i[2]?i[2].trim():i[2],text:i[3]||""});else if(i=this.rules.heading.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"heading",depth:i[1].length,text:i[2]});else if((i=this.rules.nptable.exec(e))&&(a={type:"table",header:k(i[1].replace(/^ *| *\| *$/g,"")),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:i[3]?i[3].replace(/\n$/,"").split("\n"):[]}).header.length===a.align.length){for(e=e.substring(i[0].length),d=0;d<a.align.length;d++)/^ *-+: *$/.test(a.align[d])?a.align[d]="right":/^ *:-+: *$/.test(a.align[d])?a.align[d]="center":/^ *:-+ *$/.test(a.align[d])?a.align[d]="left":a.align[d]=null;for(d=0;d<a.cells.length;d++)a.cells[d]=k(a.cells[d],a.header.length);this.tokens.push(a)}else if(i=this.rules.hr.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"hr"});else if(i=this.rules.blockquote.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"blockquote_start"}),i=i[0].replace(/^ *> ?/gm,""),this.token(i,t),this.tokens.push({type:"blockquote_end"});else if(i=this.rules.list.exec(e)){for(e=e.substring(i[0].length),h={type:"list_start",ordered:b=(l=i[2]).length>1,start:b?+l:"",loose:!1},this.tokens.push(h),u=[],r=!1,m=(i=i[0].match(this.rules.item)).length,d=0;d<m;d++)g=(a=i[d]).length,~(a=a.replace(/^ *([*+-]|\d+\.) */,"")).indexOf("\n ")&&(g-=a.length,a=this.options.pedantic?a.replace(/^ {1,4}/gm,""):a.replace(new RegExp("^ {1,"+g+"}","gm"),"")),d!==m-1&&(o=n.bullet.exec(i[d+1])[0],(l.length>1?1===o.length:o.length>1||this.options.smartLists&&o!==l)&&(e=i.slice(d+1).join("\n")+e,d=m-1)),s=r||/\n\n(?!\s*$)/.test(a),d!==m-1&&(r="\n"===a.charAt(a.length-1),s||(s=r)),s&&(h.loose=!0),y=void 0,(_=/^\[[ xX]\] /.test(a))&&(y=" "!==a[1],a=a.replace(/^\[[ xX]\] +/,"")),c={type:"list_item_start",task:_,checked:y,loose:s},u.push(c),this.tokens.push(c),this.token(a,!1),this.tokens.push({type:"list_item_end"});if(h.loose)for(m=u.length,d=0;d<m;d++)u[d].loose=!0;this.tokens.push({type:"list_end"})}else if(i=this.rules.html.exec(e))e=e.substring(i[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===i[1]||"script"===i[1]||"style"===i[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):p(i[0]):i[0]});else if(t&&(i=this.rules.def.exec(e)))e=e.substring(i[0].length),i[3]&&(i[3]=i[3].substring(1,i[3].length-1)),f=i[1].toLowerCase().replace(/\s+/g," "),this.tokens.links[f]||(this.tokens.links[f]={href:i[2],title:i[3]});else if((i=this.rules.table.exec(e))&&(a={type:"table",header:k(i[1].replace(/^ *| *\| *$/g,"")),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:i[3]?i[3].replace(/\n$/,"").split("\n"):[]}).header.length===a.align.length){for(e=e.substring(i[0].length),d=0;d<a.align.length;d++)/^ *-+: *$/.test(a.align[d])?a.align[d]="right":/^ *:-+: *$/.test(a.align[d])?a.align[d]="center":/^ *:-+ *$/.test(a.align[d])?a.align[d]="left":a.align[d]=null;for(d=0;d<a.cells.length;d++)a.cells[d]=k(a.cells[d].replace(/^ *\| *| *\| *$/g,""),a.header.length);this.tokens.push(a)}else if(i=this.rules.lheading.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"heading",depth:"="===i[2].charAt(0)?1:2,text:i[1]});else if(t&&(i=this.rules.paragraph.exec(e)))e=e.substring(i[0].length),this.tokens.push({type:"paragraph",text:"\n"===i[1].charAt(i[1].length-1)?i[1].slice(0,-1):i[1]});else if(i=this.rules.text.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"text",text:i[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens};var s={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:m,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:m,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/};function i(e,t){if(this.options=t||w.defaults,this.links=e,this.rules=s.normal,this.renderer=this.options.renderer||new l,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.pedantic?this.rules=s.pedantic:this.options.gfm&&(this.options.breaks?this.rules=s.breaks:this.rules=s.gfm)}function l(e){this.options=e||w.defaults}function o(){}function a(e){this.tokens=[],this.token=null,this.options=e||w.defaults,this.options.renderer=this.options.renderer||new l,this.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new h}function h(){this.seen={}}function p(e,t){if(t){if(p.escapeTest.test(e))return e.replace(p.escapeReplace,function(e){return p.replacements[e]})}else if(p.escapeTestNoEncode.test(e))return e.replace(p.escapeReplaceNoEncode,function(e){return p.replacements[e]});return e}function u(e){return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function c(e,t){return e=e.source||e,t=t||"",{replace:function(t,n){return n=(n=n.source||n).replace(/(^|[^\[])\^/g,"$1"),e=e.replace(t,n),this},getRegex:function(){return new RegExp(e,t)}}}function g(e,t,n){if(e){try{var r=decodeURIComponent(u(n)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return null}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return null}t&&!f.test(n)&&(n=function(e,t){d[" "+e]||(/^[^:]+:\/*[^/]*$/.test(e)?d[" "+e]=e+"/":d[" "+e]=x(e,"/",!0));return e=d[" "+e],"//"===t.slice(0,2)?e.replace(/:[\s\S]*/,":")+t:"/"===t.charAt(0)?e.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+t:e+t}(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n}s._punctuation="!\"#$%&'()*+,\\-./:;<=>?@\\[^_{|}~",s.em=c(s.em).replace(/punctuation/g,s._punctuation).getRegex(),s._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,s._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,s._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,s.autolink=c(s.autolink).replace("scheme",s._scheme).replace("email",s._email).getRegex(),s._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,s.tag=c(s.tag).replace("comment",n._comment).replace("attribute",s._attribute).getRegex(),s._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,s._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,s._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,s.link=c(s.link).replace("label",s._label).replace("href",s._href).replace("title",s._title).getRegex(),s.reflink=c(s.reflink).replace("label",s._label).getRegex(),s.normal=b({},s),s.pedantic=b({},s.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:c(/^!?\[(label)\]\((.*?)\)/).replace("label",s._label).getRegex(),reflink:c(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",s._label).getRegex()}),s.gfm=b({},s.normal,{escape:c(s.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),s.gfm.url=c(s.gfm.url,"i").replace("email",s.gfm._extended_email).getRegex(),s.breaks=b({},s.gfm,{br:c(s.br).replace("{2,}","*").getRegex(),text:c(s.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()}),i.rules=s,i.output=function(e,t,n){return new i(t,n).output(e)},i.prototype.output=function(e){for(var t,n,r,s,l,o,a="";e;)if(l=this.rules.escape.exec(e))e=e.substring(l[0].length),a+=p(l[1]);else if(l=this.rules.tag.exec(e))!this.inLink&&/^<a /i.test(l[0])?this.inLink=!0:this.inLink&&/^<\/a>/i.test(l[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(l[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(l[0])&&(this.inRawBlock=!1),e=e.substring(l[0].length),a+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(l[0]):p(l[0]):l[0];else if(l=this.rules.link.exec(e)){var h=_(l[2],"()");if(h>-1){var u=4+l[1].length+h;l[2]=l[2].substring(0,h),l[0]=l[0].substring(0,u).trim(),l[3]=""}e=e.substring(l[0].length),this.inLink=!0,r=l[2],this.options.pedantic?(t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r))?(r=t[1],s=t[3]):s="":s=l[3]?l[3].slice(1,-1):"",r=r.trim().replace(/^<([\s\S]*)>$/,"$1"),a+=this.outputLink(l,{href:i.escapes(r),title:i.escapes(s)}),this.inLink=!1}else if((l=this.rules.reflink.exec(e))||(l=this.rules.nolink.exec(e))){if(e=e.substring(l[0].length),t=(l[2]||l[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){a+=l[0].charAt(0),e=l[0].substring(1)+e;continue}this.inLink=!0,a+=this.outputLink(l,t),this.inLink=!1}else if(l=this.rules.strong.exec(e))e=e.substring(l[0].length),a+=this.renderer.strong(this.output(l[4]||l[3]||l[2]||l[1]));else if(l=this.rules.em.exec(e))e=e.substring(l[0].length),a+=this.renderer.em(this.output(l[6]||l[5]||l[4]||l[3]||l[2]||l[1]));else if(l=this.rules.code.exec(e))e=e.substring(l[0].length),a+=this.renderer.codespan(p(l[2].trim(),!0));else if(l=this.rules.br.exec(e))e=e.substring(l[0].length),a+=this.renderer.br();else if(l=this.rules.del.exec(e))e=e.substring(l[0].length),a+=this.renderer.del(this.output(l[1]));else if(l=this.rules.autolink.exec(e))e=e.substring(l[0].length),r="@"===l[2]?"mailto:"+(n=p(this.mangle(l[1]))):n=p(l[1]),a+=this.renderer.link(r,null,n);else if(this.inLink||!(l=this.rules.url.exec(e))){if(l=this.rules.text.exec(e))e=e.substring(l[0].length),this.inRawBlock?a+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(l[0]):p(l[0]):l[0]):a+=this.renderer.text(p(this.smartypants(l[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else{if("@"===l[2])r="mailto:"+(n=p(l[0]));else{do{o=l[0],l[0]=this.rules._backpedal.exec(l[0])[0]}while(o!==l[0]);n=p(l[0]),r="www."===l[1]?"http://"+n:n}e=e.substring(l[0].length),a+=this.renderer.link(r,null,n)}return a},i.escapes=function(e){return e?e.replace(i.rules._escapes,"$1"):e},i.prototype.outputLink=function(e,t){var n=t.href,r=t.title?p(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,p(e[1]))},i.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},i.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,s=0;s<r;s++)t=e.charCodeAt(s),Math.random()>.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},l.prototype.code=function(e,t,n){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var s=this.options.highlight(e,r);null!=s&&s!==e&&(n=!0,e=s)}return r?'<pre><code class="'+this.options.langPrefix+p(r,!0)+'">'+(n?e:p(e,!0))+"</code></pre>\n":"<pre><code>"+(n?e:p(e,!0))+"</code></pre>"},l.prototype.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},l.prototype.html=function(e){return e},l.prototype.heading=function(e,t,n,r){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+r.slug(n)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"},l.prototype.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},l.prototype.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"</"+r+">\n"},l.prototype.listitem=function(e){return"<li>"+e+"</li>\n"},l.prototype.checkbox=function(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},l.prototype.paragraph=function(e){return"<p>"+e+"</p>\n"},l.prototype.table=function(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"},l.prototype.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},l.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"</"+n+">\n"},l.prototype.strong=function(e){return"<strong>"+e+"</strong>"},l.prototype.em=function(e){return"<em>"+e+"</em>"},l.prototype.codespan=function(e){return"<code>"+e+"</code>"},l.prototype.br=function(){return this.options.xhtml?"<br/>":"<br>"},l.prototype.del=function(e){return"<del>"+e+"</del>"},l.prototype.link=function(e,t,n){if(null===(e=g(this.options.sanitize,this.options.baseUrl,e)))return n;var r='<a href="'+p(e)+'"';return t&&(r+=' title="'+t+'"'),r+=">"+n+"</a>"},l.prototype.image=function(e,t,n){if(null===(e=g(this.options.sanitize,this.options.baseUrl,e)))return n;var r='<img src="'+e+'" alt="'+n+'"';return t&&(r+=' title="'+t+'"'),r+=this.options.xhtml?"/>":">"},l.prototype.text=function(e){return e},o.prototype.strong=o.prototype.em=o.prototype.codespan=o.prototype.del=o.prototype.text=function(e){return e},o.prototype.link=o.prototype.image=function(e,t,n){return""+n},o.prototype.br=function(){return""},a.parse=function(e,t){return new a(t).parse(e)},a.prototype.parse=function(e){this.inline=new i(e.links,this.options),this.inlineText=new i(e.links,b({},this.options,{renderer:new o})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},a.prototype.next=function(){return this.token=this.tokens.pop(),this.token},a.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},a.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},a.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,u(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,s="",i="";for(n="",e=0;e<this.token.header.length;e++)n+=this.renderer.tablecell(this.inline.output(this.token.header[e]),{header:!0,align:this.token.align[e]});for(s+=this.renderer.tablerow(n),e=0;e<this.token.cells.length;e++){for(t=this.token.cells[e],n="",r=0;r<t.length;r++)n+=this.renderer.tablecell(this.inline.output(t[r]),{header:!1,align:this.token.align[r]});i+=this.renderer.tablerow(n)}return this.renderer.table(s,i);case"blockquote_start":for(i="";"blockquote_end"!==this.next().type;)i+=this.tok();return this.renderer.blockquote(i);case"list_start":i="";for(var l=this.token.ordered,o=this.token.start;"list_end"!==this.next().type;)i+=this.tok();return this.renderer.list(i,l,o);case"list_item_start":i="";var a=this.token.loose,h=this.token.checked,p=this.token.task;for(this.token.task&&(i+=this.renderer.checkbox(h));"list_item_end"!==this.next().type;)i+=a||"text"!==this.token.type?this.tok():this.parseText();return this.renderer.listitem(i,p,h);case"html":return this.renderer.html(this.token.text);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText());default:var c='Token with "'+this.token.type+'" type was not found.';if(!this.options.silent)throw new Error(c);console.log(c)}},h.prototype.slug=function(e){var t=e.toLowerCase().trim().replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t},p.escapeTest=/[&<>"']/,p.escapeReplace=/[&<>"']/g,p.replacements={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},p.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,p.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;var d={},f=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function m(){}function b(e){for(var t,n,r=1;r<arguments.length;r++)for(n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}function k(e,t){var n=e.replace(/\|/g,function(e,t,n){for(var r=!1,s=t;--s>=0&&"\\"===n[s];)r=!r;return r?"|":" |"}).split(/ \|/),r=0;if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(/\\\|/g,"|");return n}function x(e,t,n){if(0===e.length)return"";for(var r=0;r<e.length;){var s=e.charAt(e.length-r-1);if(s!==t||n){if(s===t||!n)break;r++}else r++}return e.substr(0,e.length-r)}function _(e,t){if(-1===e.indexOf(t[1]))return-1;for(var n=0,r=0;r<e.length;r++)if("\\"===e[r])r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&--n<0)return r;return-1}function y(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function w(e,t,n){if(void 0===e||null===e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if(n||"function"==typeof t){n||(n=t,t=null),y(t=b({},w.defaults,t||{}));var s,i,l=t.highlight,o=0;try{s=r.lex(e,t)}catch(e){return n(e)}i=s.length;var h=function(e){if(e)return t.highlight=l,n(e);var r;try{r=a.parse(s,t)}catch(t){e=t}return t.highlight=l,e?n(e):n(null,r)};if(!l||l.length<3)return h();if(delete t.highlight,!i)return h();for(;o<s.length;o++)!function(e){"code"!==e.type?--i||h():l(e.text,e.lang,function(t,n){return t?h(t):null==n||n===e.text?--i||h():(e.text=n,e.escaped=!0,void(--i||h()))})}(s[o])}else try{return t&&(t=b({},w.defaults,t)),y(t),a.parse(r.lex(e,t),t)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",(t||w.defaults).silent)return"<p>An error occurred:</p><pre>"+p(e.message+"",!0)+"</pre>";throw e}}m.exec=m,w.options=w.setOptions=function(e){return b(w.defaults,e),w},w.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new l,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},w.defaults=w.getDefaults(),w.Parser=a,w.parser=a.parse,w.Renderer=l,w.TextRenderer=o,w.Lexer=r,w.lexer=r.lex,w.InlineLexer=i,w.inlineLexer=i.output,w.Slugger=h,w.parse=w,e.exports=w}(this||"undefined"!=typeof window&&window)}).call(t,n("./node_modules/webpack/buildin/global.js"))},"./node_modules/webpack/buildin/global.js":function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n}});
+!function(e){var t={};function s(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,s),n.l=!0,n.exports}s.m=e,s.c=t,s.d=function(e,t,r){s.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="",s(s.s="./js/public-share.js")}({"./js/public-share.js":function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s("./node_modules/marked/src/marked.js"),n=s.n(r);$(document).ready(function(){var e=$("#isPublic").val(),t=$("#mimetype").val(),s=$("#filesize").val();if(e&&"text/markdown"===t&&s<524288){var r=$("#sharingToken").val(),i=OC.generateUrl("/s/{token}/download",{token:r}),l=$("#imgframe"),a=new n.a.Renderer;a.link=function(e,t,s){try{var r=decodeURIComponent(unescape(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(0!==r.indexOf("http:")&&0!==r.indexOf("https:"))return"";var n='<a href="'+e+'" rel="noreferrer noopener"';return t&&(n+=' title="'+t+'"'),n+=">"+s+"</a>"},a.image=function(e,t,s){return s||t},a.blockquote=function(e){return e},l.addClass("icon-loading").children().remove(),$.get(i).success(function(e){l.removeClass("icon-loading").addClass("preview formatted-text").html(DOMPurify.sanitize(n()(e,{renderer:a,smartLists:!0}),{SAFE_FOR_JQUERY:!0}))}).fail(function(e){l.removeClass("icon-loading")})}else if(e&&"text"===t.substr(0,t.indexOf("/"))){(l=$("#imgframe")).addClass("icon-loading").children().remove();var o=$(window).height()-350;o=Math.max(200,o);r=$("#sharingToken").val();$.ajax({url:OC.generateUrl("/apps/files_texteditor/public/{token}",{token:r}),headers:{Range:"bytes=0-524288"}}).success(function(e){var t=$("<div/>").addClass("text-preview default-overridden");t.text(e),l.removeClass("icon-loading").addClass("preview").append(t);var s=t.height();if(e.length>524289){var r=$("<div/>").addClass("ellipsis");r.html("(&#133;)"),r.appendTo("#imgframe")}s>o&&t.height(o)})}})},"./node_modules/marked/src/InlineLexer.js":function(e,t,s){const r=s("./node_modules/marked/src/Renderer.js"),{defaults:n}=s("./node_modules/marked/src/defaults.js"),{inline:i}=s("./node_modules/marked/src/rules.js"),{findClosingBracket:l,escape:a}=s("./node_modules/marked/src/helpers.js");e.exports=class e{constructor(e,t){if(this.options=t||n,this.links=e,this.rules=i.normal,this.options.renderer=this.options.renderer||new r,this.renderer=this.options.renderer,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.pedantic?this.rules=i.pedantic:this.options.gfm&&(this.options.breaks?this.rules=i.breaks:this.rules=i.gfm)}static get rules(){return i}static output(t,s,r){return new e(s,r).output(t)}output(t){let s,r,n,i,o,h,c="";for(;t;)if(o=this.rules.escape.exec(t))t=t.substring(o[0].length),c+=a(o[1]);else if(o=this.rules.tag.exec(t))!this.inLink&&/^<a /i.test(o[0])?this.inLink=!0:this.inLink&&/^<\/a>/i.test(o[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(o[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(o[0])&&(this.inRawBlock=!1),t=t.substring(o[0].length),c+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(o[0]):a(o[0]):o[0];else if(o=this.rules.link.exec(t)){const r=l(o[2],"()");if(r>-1){const e=(0===o[0].indexOf("!")?5:4)+o[1].length+r;o[2]=o[2].substring(0,r),o[0]=o[0].substring(0,e).trim(),o[3]=""}t=t.substring(o[0].length),this.inLink=!0,n=o[2],this.options.pedantic?(s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n))?(n=s[1],i=s[3]):i="":i=o[3]?o[3].slice(1,-1):"",n=n.trim().replace(/^<([\s\S]*)>$/,"$1"),c+=this.outputLink(o,{href:e.escapes(n),title:e.escapes(i)}),this.inLink=!1}else if((o=this.rules.reflink.exec(t))||(o=this.rules.nolink.exec(t))){if(t=t.substring(o[0].length),s=(o[2]||o[1]).replace(/\s+/g," "),!(s=this.links[s.toLowerCase()])||!s.href){c+=o[0].charAt(0),t=o[0].substring(1)+t;continue}this.inLink=!0,c+=this.outputLink(o,s),this.inLink=!1}else if(o=this.rules.strong.exec(t))t=t.substring(o[0].length),c+=this.renderer.strong(this.output(o[4]||o[3]||o[2]||o[1]));else if(o=this.rules.em.exec(t))t=t.substring(o[0].length),c+=this.renderer.em(this.output(o[6]||o[5]||o[4]||o[3]||o[2]||o[1]));else if(o=this.rules.code.exec(t))t=t.substring(o[0].length),c+=this.renderer.codespan(a(o[2].trim(),!0));else if(o=this.rules.br.exec(t))t=t.substring(o[0].length),c+=this.renderer.br();else if(o=this.rules.del.exec(t))t=t.substring(o[0].length),c+=this.renderer.del(this.output(o[1]));else if(o=this.rules.autolink.exec(t))t=t.substring(o[0].length),n="@"===o[2]?"mailto:"+(r=a(this.mangle(o[1]))):r=a(o[1]),c+=this.renderer.link(n,null,r);else if(this.inLink||!(o=this.rules.url.exec(t))){if(o=this.rules.text.exec(t))t=t.substring(o[0].length),this.inRawBlock?c+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(o[0]):a(o[0]):o[0]):c+=this.renderer.text(a(this.smartypants(o[0])));else if(t)throw new Error("Infinite loop on byte: "+t.charCodeAt(0))}else{if("@"===o[2])n="mailto:"+(r=a(o[0]));else{do{h=o[0],o[0]=this.rules._backpedal.exec(o[0])[0]}while(h!==o[0]);r=a(o[0]),n="www."===o[1]?"http://"+r:r}t=t.substring(o[0].length),c+=this.renderer.link(n,null,r)}return c}static escapes(t){return t?t.replace(e.rules._escapes,"$1"):t}outputLink(e,t){const s=t.href,r=t.title?a(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(s,r,this.output(e[1])):this.renderer.image(s,r,a(e[1]))}smartypants(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e}mangle(e){if(!this.options.mangle)return e;const t=e.length;let s,r="",n=0;for(;n<t;n++)s=e.charCodeAt(n),Math.random()>.5&&(s="x"+s.toString(16)),r+="&#"+s+";";return r}}},"./node_modules/marked/src/Lexer.js":function(e,t,s){const{defaults:r}=s("./node_modules/marked/src/defaults.js"),{block:n}=s("./node_modules/marked/src/rules.js"),{rtrim:i,splitCells:l,escape:a}=s("./node_modules/marked/src/helpers.js");e.exports=class e{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||r,this.rules=n.normal,this.options.pedantic?this.rules=n.pedantic:this.options.gfm&&(this.rules=n.gfm)}static get rules(){return n}static lex(t,s){return new e(s).lex(t)}lex(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.token(e,!0)}token(e,t){let s,r,o,h,c,u,p,d,g,m,f,k,x,b,_,w;for(e=e.replace(/^ +$/gm,"");e;)if((o=this.rules.newline.exec(e))&&(e=e.substring(o[0].length),o[0].length>1&&this.tokens.push({type:"space"})),o=this.rules.code.exec(e)){const t=this.tokens[this.tokens.length-1];e=e.substring(o[0].length),t&&"paragraph"===t.type?t.text+="\n"+o[0].trimRight():(o=o[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?o:i(o,"\n")}))}else if(o=this.rules.fences.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"code",lang:o[2]?o[2].trim():o[2],text:o[3]||""});else if(o=this.rules.heading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:o[1].length,text:o[2]});else if((o=this.rules.nptable.exec(e))&&(u={type:"table",header:l(o[1].replace(/^ *| *\| *$/g,"")),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3]?o[3].replace(/\n$/,"").split("\n"):[]}).header.length===u.align.length){for(e=e.substring(o[0].length),f=0;f<u.align.length;f++)/^ *-+: *$/.test(u.align[f])?u.align[f]="right":/^ *:-+: *$/.test(u.align[f])?u.align[f]="center":/^ *:-+ *$/.test(u.align[f])?u.align[f]="left":u.align[f]=null;for(f=0;f<u.cells.length;f++)u.cells[f]=l(u.cells[f],u.header.length);this.tokens.push(u)}else if(o=this.rules.hr.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"hr"});else if(o=this.rules.blockquote.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"blockquote_start"}),o=o[0].replace(/^ *> ?/gm,""),this.token(o,t),this.tokens.push({type:"blockquote_end"});else if(o=this.rules.list.exec(e)){for(e=e.substring(o[0].length),p={type:"list_start",ordered:b=(h=o[2]).length>1,start:b?+h:"",loose:!1},this.tokens.push(p),d=[],s=!1,x=(o=o[0].match(this.rules.item)).length,f=0;f<x;f++)m=(u=o[f]).length,~(u=u.replace(/^ *([*+-]|\d+\.) */,"")).indexOf("\n ")&&(m-=u.length,u=this.options.pedantic?u.replace(/^ {1,4}/gm,""):u.replace(new RegExp("^ {1,"+m+"}","gm"),"")),f!==x-1&&(c=n.bullet.exec(o[f+1])[0],(h.length>1?1===c.length:c.length>1||this.options.smartLists&&c!==h)&&(e=o.slice(f+1).join("\n")+e,f=x-1)),r=s||/\n\n(?!\s*$)/.test(u),f!==x-1&&(s="\n"===u.charAt(u.length-1),r||(r=s)),r&&(p.loose=!0),w=void 0,(_=/^\[[ xX]\] /.test(u))&&(w=" "!==u[1],u=u.replace(/^\[[ xX]\] +/,"")),g={type:"list_item_start",task:_,checked:w,loose:r},d.push(g),this.tokens.push(g),this.token(u,!1),this.tokens.push({type:"list_item_end"});if(p.loose)for(x=d.length,f=0;f<x;f++)d[f].loose=!0;this.tokens.push({type:"list_end"})}else if(o=this.rules.html.exec(e))e=e.substring(o[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===o[1]||"script"===o[1]||"style"===o[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(o[0]):a(o[0]):o[0]});else if(t&&(o=this.rules.def.exec(e)))e=e.substring(o[0].length),o[3]&&(o[3]=o[3].substring(1,o[3].length-1)),k=o[1].toLowerCase().replace(/\s+/g," "),this.tokens.links[k]||(this.tokens.links[k]={href:o[2],title:o[3]});else if((o=this.rules.table.exec(e))&&(u={type:"table",header:l(o[1].replace(/^ *| *\| *$/g,"")),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3]?o[3].replace(/\n$/,"").split("\n"):[]}).header.length===u.align.length){for(e=e.substring(o[0].length),f=0;f<u.align.length;f++)/^ *-+: *$/.test(u.align[f])?u.align[f]="right":/^ *:-+: *$/.test(u.align[f])?u.align[f]="center":/^ *:-+ *$/.test(u.align[f])?u.align[f]="left":u.align[f]=null;for(f=0;f<u.cells.length;f++)u.cells[f]=l(u.cells[f].replace(/^ *\| *| *\| *$/g,""),u.header.length);this.tokens.push(u)}else if(o=this.rules.lheading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:"="===o[2].charAt(0)?1:2,text:o[1]});else if(t&&(o=this.rules.paragraph.exec(e)))e=e.substring(o[0].length),this.tokens.push({type:"paragraph",text:"\n"===o[1].charAt(o[1].length-1)?o[1].slice(0,-1):o[1]});else if(o=this.rules.text.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"text",text:o[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens}}},"./node_modules/marked/src/Parser.js":function(e,t,s){const r=s("./node_modules/marked/src/Renderer.js"),n=s("./node_modules/marked/src/Slugger.js"),i=s("./node_modules/marked/src/InlineLexer.js"),l=s("./node_modules/marked/src/TextRenderer.js"),{defaults:a}=s("./node_modules/marked/src/defaults.js"),{merge:o,unescape:h}=s("./node_modules/marked/src/helpers.js");e.exports=class e{constructor(e){this.tokens=[],this.token=null,this.options=e||a,this.options.renderer=this.options.renderer||new r,this.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new n}static parse(t,s){return new e(s).parse(t)}parse(e){this.inline=new i(e.links,this.options),this.inlineText=new i(e.links,o({},this.options,{renderer:new l})),this.tokens=e.reverse();let t="";for(;this.next();)t+=this.tok();return t}next(){return this.token=this.tokens.pop(),this.token}peek(){return this.tokens[this.tokens.length-1]||0}parseText(){let e=this.token.text;for(;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)}tok(){let e="";switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,h(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":{let t,s,r,n,i="";for(r="",t=0;t<this.token.header.length;t++)r+=this.renderer.tablecell(this.inline.output(this.token.header[t]),{header:!0,align:this.token.align[t]});for(i+=this.renderer.tablerow(r),t=0;t<this.token.cells.length;t++){for(s=this.token.cells[t],r="",n=0;n<s.length;n++)r+=this.renderer.tablecell(this.inline.output(s[n]),{header:!1,align:this.token.align[n]});e+=this.renderer.tablerow(r)}return this.renderer.table(i,e)}case"blockquote_start":for(e="";"blockquote_end"!==this.next().type;)e+=this.tok();return this.renderer.blockquote(e);case"list_start":{e="";const t=this.token.ordered,s=this.token.start;for(;"list_end"!==this.next().type;)e+=this.tok();return this.renderer.list(e,t,s)}case"list_item_start":{e="";const t=this.token.loose,s=this.token.checked,r=this.token.task;if(this.token.task)if(t)if("text"===this.peek().type){const e=this.peek();e.text=this.renderer.checkbox(s)+" "+e.text}else this.tokens.push({type:"text",text:this.renderer.checkbox(s)});else e+=this.renderer.checkbox(s);for(;"list_item_end"!==this.next().type;)e+=t||"text"!==this.token.type?this.tok():this.parseText();return this.renderer.listitem(e,r,s)}case"html":return this.renderer.html(this.token.text);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText());default:{const e='Token with "'+this.token.type+'" type was not found.';if(!this.options.silent)throw new Error(e);console.log(e)}}}}},"./node_modules/marked/src/Renderer.js":function(e,t,s){const{defaults:r}=s("./node_modules/marked/src/defaults.js"),{cleanUrl:n,escape:i}=s("./node_modules/marked/src/helpers.js");e.exports=class{constructor(e){this.options=e||r}code(e,t,s){const r=(t||"").match(/\S*/)[0];if(this.options.highlight){const t=this.options.highlight(e,r);null!=t&&t!==e&&(s=!0,e=t)}return r?'<pre><code class="'+this.options.langPrefix+i(r,!0)+'">'+(s?e:i(e,!0))+"</code></pre>\n":"<pre><code>"+(s?e:i(e,!0))+"</code></pre>"}blockquote(e){return"<blockquote>\n"+e+"</blockquote>\n"}html(e){return e}heading(e,t,s,r){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+r.slug(s)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"}hr(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}list(e,t,s){const r=t?"ol":"ul";return"<"+r+(t&&1!==s?' start="'+s+'"':"")+">\n"+e+"</"+r+">\n"}listitem(e){return"<li>"+e+"</li>\n"}checkbox(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}paragraph(e){return"<p>"+e+"</p>\n"}table(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"}tablerow(e){return"<tr>\n"+e+"</tr>\n"}tablecell(e,t){const s=t.header?"th":"td";return(t.align?"<"+s+' align="'+t.align+'">':"<"+s+">")+e+"</"+s+">\n"}strong(e){return"<strong>"+e+"</strong>"}em(e){return"<em>"+e+"</em>"}codespan(e){return"<code>"+e+"</code>"}br(){return this.options.xhtml?"<br/>":"<br>"}del(e){return"<del>"+e+"</del>"}link(e,t,s){if(null===(e=n(this.options.sanitize,this.options.baseUrl,e)))return s;let r='<a href="'+i(e)+'"';return t&&(r+=' title="'+t+'"'),r+=">"+s+"</a>"}image(e,t,s){if(null===(e=n(this.options.sanitize,this.options.baseUrl,e)))return s;let r='<img src="'+e+'" alt="'+s+'"';return t&&(r+=' title="'+t+'"'),r+=this.options.xhtml?"/>":">"}text(e){return e}}},"./node_modules/marked/src/Slugger.js":function(e,t){e.exports=class{constructor(){this.seen={}}slug(e){let t=e.toLowerCase().trim().replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){const e=t;do{this.seen[e]++,t=e+"-"+this.seen[e]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t}}},"./node_modules/marked/src/TextRenderer.js":function(e,t){e.exports=class{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}text(e){return e}link(e,t,s){return""+s}image(e,t,s){return""+s}br(){return""}}},"./node_modules/marked/src/defaults.js":function(e,t){function s(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}}e.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1},getDefaults:s,changeDefaults:function(t){e.exports.defaults=t}}},"./node_modules/marked/src/helpers.js":function(e,t){const s=/[&<>"']/,r=/[&<>"']/g,n=/[<>"']|&(?!#?\w+;)/,i=/[<>"']|&(?!#?\w+;)/g,l={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},a=e=>l[e];const o=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function h(e){return e.replace(o,(e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):"")}const c=/(^|[^\[])\^/g;const u=/[^\w:]/g,p=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;const d={},g=/^[^:]+:\/*[^/]*$/,m=/^([^:]+:)[\s\S]*$/,f=/^([^:]+:\/*[^/]*)[\s\S]*$/;function k(e,t){d[" "+e]||(g.test(e)?d[" "+e]=e+"/":d[" "+e]=x(e,"/",!0));const s=-1===(e=d[" "+e]).indexOf(":");return"//"===t.substring(0,2)?s?t:e.replace(m,"$1")+t:"/"===t.charAt(0)?s?t:e.replace(f,"$1")+t:e+t}function x(e,t,s){const r=e.length;if(0===r)return"";let n=0;for(;n<r;){const i=e.charAt(r-n-1);if(i!==t||s){if(i===t||!s)break;n++}else n++}return e.substr(0,r-n)}e.exports={escape:function(e,t){if(t){if(s.test(e))return e.replace(r,a)}else if(n.test(e))return e.replace(i,a);return e},unescape:h,edit:function(e,t){e=e.source||e,t=t||"";const s={replace:(t,r)=>(r=(r=r.source||r).replace(c,"$1"),e=e.replace(t,r),s),getRegex:()=>new RegExp(e,t)};return s},cleanUrl:function(e,t,s){if(e){let e;try{e=decodeURIComponent(h(s)).replace(u,"").toLowerCase()}catch(e){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!p.test(s)&&(s=k(t,s));try{s=encodeURI(s).replace(/%25/g,"%")}catch(e){return null}return s},resolveUrl:k,noopTest:{exec:function(){}},merge:function(e){let t,s,r=1;for(;r<arguments.length;r++)for(s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e},splitCells:function(e,t){const s=e.replace(/\|/g,(e,t,s)=>{let r=!1,n=t;for(;--n>=0&&"\\"===s[n];)r=!r;return r?"|":" |"}).split(/ \|/);let r=0;if(s.length>t)s.splice(t);else for(;s.length<t;)s.push("");for(;r<s.length;r++)s[r]=s[r].trim().replace(/\\\|/g,"|");return s},rtrim:x,findClosingBracket:function(e,t){if(-1===e.indexOf(t[1]))return-1;const s=e.length;let r=0,n=0;for(;n<s;n++)if("\\"===e[n])n++;else if(e[n]===t[0])r++;else if(e[n]===t[1]&&--r<0)return n;return-1},checkSanitizeDeprecation:function(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}}},"./node_modules/marked/src/marked.js":function(e,t,s){const r=s("./node_modules/marked/src/Lexer.js"),n=s("./node_modules/marked/src/Parser.js"),i=s("./node_modules/marked/src/Renderer.js"),l=s("./node_modules/marked/src/TextRenderer.js"),a=s("./node_modules/marked/src/InlineLexer.js"),o=s("./node_modules/marked/src/Slugger.js"),{merge:h,checkSanitizeDeprecation:c,escape:u}=s("./node_modules/marked/src/helpers.js"),{getDefaults:p,changeDefaults:d,defaults:g}=s("./node_modules/marked/src/defaults.js");function m(e,t,s){if(void 0===e||null===e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if(s||"function"==typeof t){s||(s=t,t=null),t=h({},m.defaults,t||{}),c(t);const i=t.highlight;let l,a,o=0;try{l=r.lex(e,t)}catch(e){return s(e)}a=l.length;const u=function(e){if(e)return t.highlight=i,s(e);let r;try{r=n.parse(l,t)}catch(t){e=t}return t.highlight=i,e?s(e):s(null,r)};if(!i||i.length<3)return u();if(delete t.highlight,!a)return u();for(;o<l.length;o++)!function(e){"code"!==e.type?--a||u():i(e.text,e.lang,function(t,s){return t?u(t):null==s||s===e.text?--a||u():(e.text=s,e.escaped=!0,void(--a||u()))})}(l[o])}else try{return t=h({},m.defaults,t||{}),c(t),n.parse(r.lex(e,t),t)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",(t||m.defaults).silent)return"<p>An error occurred:</p><pre>"+u(e.message+"",!0)+"</pre>";throw e}}m.options=m.setOptions=function(e){return h(m.defaults,e),d(m.defaults),m},m.getDefaults=p,m.defaults=g,m.Parser=n,m.parser=n.parse,m.Renderer=i,m.TextRenderer=l,m.Lexer=r,m.lexer=r.lex,m.InlineLexer=a,m.inlineLexer=a.output,m.Slugger=o,m.parse=m,e.exports=m},"./node_modules/marked/src/rules.js":function(e,t,s){const{noopTest:r,edit:n,merge:i}=s("./node_modules/marked/src/helpers.js"),l={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:r,table:r,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};l.def=n(l.def).replace("label",l._label).replace("title",l._title).getRegex(),l.bullet=/(?:[*+-]|\d{1,9}\.)/,l.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,l.item=n(l.item,"gm").replace(/bull/g,l.bullet).getRegex(),l.list=n(l.list).replace(/bull/g,l.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+l.def.source+")").getRegex(),l._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",l._comment=/<!--(?!-?>)[\s\S]*?-->/,l.html=n(l.html,"i").replace("comment",l._comment).replace("tag",l._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),l.paragraph=n(l._paragraph).replace("hr",l.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",l._tag).getRegex(),l.blockquote=n(l.blockquote).replace("paragraph",l.paragraph).getRegex(),l.normal=i({},l),l.gfm=i({},l.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),l.pedantic=i({},l.normal,{html:n("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",l._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:r,paragraph:n(l.normal._paragraph).replace("hr",l.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",l.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const a={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:r,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:r,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/,_punctuation:"!\"#$%&'()*+,\\-./:;<=>?@\\[^_{|}~"};a.em=n(a.em).replace(/punctuation/g,a._punctuation).getRegex(),a._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,a._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,a._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,a.autolink=n(a.autolink).replace("scheme",a._scheme).replace("email",a._email).getRegex(),a._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,a.tag=n(a.tag).replace("comment",l._comment).replace("attribute",a._attribute).getRegex(),a._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,a._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,a._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,a.link=n(a.link).replace("label",a._label).replace("href",a._href).replace("title",a._title).getRegex(),a.reflink=n(a.reflink).replace("label",a._label).getRegex(),a.normal=i({},a),a.pedantic=i({},a.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:n(/^!?\[(label)\]\((.*?)\)/).replace("label",a._label).getRegex(),reflink:n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",a._label).getRegex()}),a.gfm=i({},a.normal,{escape:n(a.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),a.gfm.url=n(a.gfm.url,"i").replace("email",a.gfm._extended_email).getRegex(),a.breaks=i({},a.gfm,{br:n(a.br).replace("{2,}","*").getRegex(),text:n(a.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()}),e.exports={block:l,inline:a}}});
//# sourceMappingURL=public-share.js.map \ No newline at end of file
diff --git a/build/public-share.js.map b/build/public-share.js.map
index f5d6aff..aa6b6f6 100644
--- a/build/public-share.js.map
+++ b/build/public-share.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 22a5cb653aacc4fb9c14","webpack:///./js/public-share.js","webpack:///./node_modules/marked/lib/marked.js","webpack:///(webpack)/buildin/global.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","$","document","ready","isPublic","val","mimetype","filesize","sharingToken","downloadUrl","OC","generateUrl","token","previewElement","renderer","__WEBPACK_IMPORTED_MODULE_0_marked___default","a","Renderer","link","href","title","text","prot","decodeURIComponent","unescape","replace","toLowerCase","e","indexOf","out","image","blockquote","quote","addClass","children","remove","success","content","removeClass","html","DOMPurify","sanitize","smartLists","SAFE_FOR_JQUERY","fail","result","substr","previewHeight","window","height","Math","max","ajax","url","headers","Range","textDiv","append","divHeight","length","ellipsis","appendTo","global","root","block","newline","code","fences","hr","heading","list","def","nptable","noop","table","lheading","_paragraph","Lexer","options","this","tokens","links","create","marked","defaults","rules","normal","pedantic","gfm","_label","_title","edit","getRegex","bullet","item","source","_tag","_comment","paragraph","merge","lex","src","top","next","loose","cap","bull","b","listStart","listItems","t","space","tag","isordered","istask","ischecked","exec","substring","push","type","lastToken","trimRight","codeBlockStyle","rtrim","lang","trim","depth","header","splitCells","align","split","cells","test","ordered","start","match","RegExp","slice","join","charAt","undefined","task","checked","pre","sanitizer","escape","Error","charCodeAt","inline","autolink","reflink","nolink","strong","em","br","del","InlineLexer","breaks","TextRenderer","Parser","slugger","Slugger","seen","encode","escapeTest","escapeReplace","ch","replacements","escapeTestNoEncode","escapeReplaceNoEncode","_","String","fromCharCode","parseInt","regex","opt","cleanUrl","base","originIndependentUrl","baseUrls","resolveUrl","encodeURI","_punctuation","_escapes","_scheme","_email","_attribute","_href","_extended_email","_backpedal","output","prevCapZero","inLink","inRawBlock","lastParenIndex","findClosingBracket","linkLen","outputLink","escapes","codespan","mangle","smartypants","random","toString","infostring","escaped","highlight","langPrefix","level","raw","headerIds","headerPrefix","slug","xhtml","body","listitem","checkbox","tablerow","tablecell","flags","baseUrl","parse","inlineText","reverse","tok","pop","peek","parseText","row","cell","j","errMsg","silent","console","log","value","originalSlug","&","<",">","\"","'","obj","target","key","arguments","tableRow","count","offset","str","curr","splice","invert","suffLen","currChar","checkSanitizeDeprecation","warn","callback","pending","done","err","message","setOptions","getDefaults","parser","lexer","inlineLexer","g","Function","eval"],"mappings":"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","file":"public-share.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./js/public-share.js\");\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 22a5cb653aacc4fb9c14","import marked from 'marked'\n\n// FIXME: Hack for single public file view since it is not attached to the fileslist\n$(document).ready(function(){\n\tvar isPublic = $('#isPublic').val();\n\tvar mimetype = $('#mimetype').val();\n\tvar filesize = $('#filesize').val();\n\n\tif (isPublic &&\n\t\tmimetype === 'text/markdown' &&\n\t\tfilesize < 524288) {\n\n\t\tvar sharingToken = $('#sharingToken').val();\n\t\tvar downloadUrl = OC.generateUrl('/s/{token}/download', {token: sharingToken});\n\t\tvar previewElement = $('#imgframe');\n\t\tvar renderer = new marked.Renderer();\n\t\trenderer.link = function(href, title, text) {\n\t\t\ttry {\n\t\t\t\tvar prot = decodeURIComponent(unescape(href))\n\t\t\t\t\t.replace(/[^\\w:]/g, '')\n\t\t\t\t\t.toLowerCase();\n\t\t\t} catch (e) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tvar out = '<a href=\"' + href + '\" rel=\"noreferrer noopener\"';\n\t\t\tif (title) {\n\t\t\t\tout += ' title=\"' + title + '\"';\n\t\t\t}\n\t\t\tout += '>' + text + '</a>';\n\t\t\treturn out;\n\t\t};\n\t\trenderer.image = function(href, title, text) {\n\t\t\tif (text) {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t\treturn title;\n\t\t};\n\t\trenderer.blockquote = function(quote) {\n\t\t\treturn quote;\n\t\t};\n\n\t\tpreviewElement\n\t\t\t.addClass('icon-loading')\n\t\t\t.children().remove();\n\n\t\t$.get(downloadUrl).success(function(content) {\n\t\t\tpreviewElement\n\t\t\t\t.removeClass('icon-loading')\n\t\t\t\t.addClass('preview formatted-text')\n\t\t\t\t.html(DOMPurify.sanitize(\n\t\t\t\t\tmarked(content, {\n\t\t\t\t\t\trenderer: renderer,\n\t\t\t\t\t\tsmartLists: true\n\t\t\t\t\t}),\n\t\t\t\t\t{\n\t\t\t\t\t\tSAFE_FOR_JQUERY: true\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t}).fail(function(result){\n\t\t\tpreviewElement\n\t\t\t\t.removeClass('icon-loading');\n\t\t});\n\t} else if (isPublic &&\n\t\t\t mimetype.substr(0, mimetype.indexOf('/')) === 'text') {\n\t\t// Based on default text previews from \"files_sharing/js/public.js\", but\n\t\t// using the public endpoint from files_texteditor for better character\n\t\t// encoding support.\n\t\tvar previewElement = $('#imgframe');\n\t\tpreviewElement\n\t\t\t.addClass('icon-loading')\n\t\t\t.children().remove();\n\n\t\tvar bottomMargin = 350;\n\t\tvar previewHeight = $(window).height() - bottomMargin;\n\t\tpreviewHeight = Math.max(200, previewHeight);\n\n\t\tvar sharingToken = $('#sharingToken').val();\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/apps/files_texteditor/public/{token}', { token: sharingToken }),\n\t\t\theaders: {\n\t\t\t\t'Range': 'bytes=0-524288'\n\t\t\t}\n\t\t}).success(function(content) {\n\t\t\tvar textDiv = $('<div/>').addClass('text-preview default-overridden');\n\t\t\ttextDiv.text(content);\n\n\t\t\tpreviewElement\n\t\t\t\t.removeClass('icon-loading')\n\t\t\t\t.addClass('preview')\n\t\t\t\t.append(textDiv);\n\n\t\t\tvar divHeight = textDiv.height();\n\t\t\tif (content.length > 524289) {\n\t\t\t\tvar ellipsis = $('<div/>').addClass('ellipsis');\n\t\t\t\tellipsis.html('(&#133;)');\n\t\t\t\tellipsis.appendTo('#imgframe');\n\t\t\t}\n\t\t\tif (divHeight > previewHeight) {\n\t\t\t\ttextDiv.height(previewHeight);\n\t\t\t}\n\t\t});\n\t}\n});\n\n\n\n// WEBPACK FOOTER //\n// ./js/public-share.js","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n;(function(root) {\n'use strict';\n\n/**\n * Block-Level Grammar\n */\n\nvar block = {\n newline: /^\\n+/,\n code: /^( {4}[^\\n]+\\n*)+/,\n fences: /^ {0,3}(`{3,}|~{3,})([^`~\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6}) +([^\\n]*?)(?: +#+)? *(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?\\\\?>\\\\n*' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?>\\\\n*' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\\\\n*' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (6)\n + '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) open tag\n + '|</(?!script|pre|style)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *<?([^\\s>]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n nptable: noop,\n table: noop,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}\\.)/;\nblock.item = /^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/;\nblock.item = edit(block.item, 'gm')\n .replace(/bull/g, block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /<!--(?!-?>)[\\s\\S]*?-->/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} +')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}|~{3,})[^`\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n nptable: /^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,\n table: /^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/\n});\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^ *(#{1,6}) *([^\\n]+?) *(?:#+ *)?(?:\\n+|$)/,\n fences: noop, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Block Lexer\n */\n\nfunction Lexer(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || marked.defaults;\n this.rules = block.normal;\n\n if (this.options.pedantic) {\n this.rules = block.pedantic;\n } else if (this.options.gfm) {\n this.rules = block.gfm;\n }\n}\n\n/**\n * Expose Block Rules\n */\n\nLexer.rules = block;\n\n/**\n * Static Lex Method\n */\n\nLexer.lex = function(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n};\n\n/**\n * Preprocessing\n */\n\nLexer.prototype.lex = function(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ')\n .replace(/\\u00a0/g, ' ')\n .replace(/\\u2424/g, '\\n');\n\n return this.token(src, true);\n};\n\n/**\n * Lexing\n */\n\nLexer.prototype.token = function(src, top) {\n src = src.replace(/^ +$/gm, '');\n var next,\n loose,\n cap,\n bull,\n b,\n item,\n listStart,\n listItems,\n t,\n space,\n i,\n tag,\n l,\n isordered,\n istask,\n ischecked;\n\n while (src) {\n // newline\n if (cap = this.rules.newline.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[0].length > 1) {\n this.tokens.push({\n type: 'space'\n });\n }\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n var lastToken = this.tokens[this.tokens.length - 1];\n src = src.substring(cap[0].length);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && lastToken.type === 'paragraph') {\n lastToken.text += '\\n' + cap[0].trimRight();\n } else {\n cap = cap[0].replace(/^ {4}/gm, '');\n this.tokens.push({\n type: 'code',\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(cap, '\\n')\n : cap\n });\n }\n continue;\n }\n\n // fences\n if (cap = this.rules.fences.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'code',\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: cap[3] || ''\n });\n continue;\n }\n\n // heading\n if (cap = this.rules.heading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[1].length,\n text: cap[2]\n });\n continue;\n }\n\n // table no leading pipe (gfm)\n if (cap = this.rules.nptable.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(item.cells[i], item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // hr\n if (cap = this.rules.hr.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'hr'\n });\n continue;\n }\n\n // blockquote\n if (cap = this.rules.blockquote.exec(src)) {\n src = src.substring(cap[0].length);\n\n this.tokens.push({\n type: 'blockquote_start'\n });\n\n cap = cap[0].replace(/^ *> ?/gm, '');\n\n // Pass `top` to keep the current\n // \"toplevel\" state. This is exactly\n // how markdown.pl works.\n this.token(cap, top);\n\n this.tokens.push({\n type: 'blockquote_end'\n });\n\n continue;\n }\n\n // list\n if (cap = this.rules.list.exec(src)) {\n src = src.substring(cap[0].length);\n bull = cap[2];\n isordered = bull.length > 1;\n\n listStart = {\n type: 'list_start',\n ordered: isordered,\n start: isordered ? +bull : '',\n loose: false\n };\n\n this.tokens.push(listStart);\n\n // Get each top-level item.\n cap = cap[0].match(this.rules.item);\n\n listItems = [];\n next = false;\n l = cap.length;\n i = 0;\n\n for (; i < l; i++) {\n item = cap[i];\n\n // Remove the list item's bullet\n // so it is seen as the next token.\n space = item.length;\n item = item.replace(/^ *([*+-]|\\d+\\.) */, '');\n\n // Outdent whatever the\n // list item contains. Hacky.\n if (~item.indexOf('\\n ')) {\n space -= item.length;\n item = !this.options.pedantic\n ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')\n : item.replace(/^ {1,4}/gm, '');\n }\n\n // Determine whether the next list item belongs here.\n // Backpedal if it does not belong in this list.\n if (i !== l - 1) {\n b = block.bullet.exec(cap[i + 1])[0];\n if (bull.length > 1 ? b.length === 1\n : (b.length > 1 || (this.options.smartLists && b !== bull))) {\n src = cap.slice(i + 1).join('\\n') + src;\n i = l - 1;\n }\n }\n\n // Determine whether item is loose or not.\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n // for discount behavior.\n loose = next || /\\n\\n(?!\\s*$)/.test(item);\n if (i !== l - 1) {\n next = item.charAt(item.length - 1) === '\\n';\n if (!loose) loose = next;\n }\n\n if (loose) {\n listStart.loose = true;\n }\n\n // Check for task list items\n istask = /^\\[[ xX]\\] /.test(item);\n ischecked = undefined;\n if (istask) {\n ischecked = item[1] !== ' ';\n item = item.replace(/^\\[[ xX]\\] +/, '');\n }\n\n t = {\n type: 'list_item_start',\n task: istask,\n checked: ischecked,\n loose: loose\n };\n\n listItems.push(t);\n this.tokens.push(t);\n\n // Recurse.\n this.token(item, false);\n\n this.tokens.push({\n type: 'list_item_end'\n });\n }\n\n if (listStart.loose) {\n l = listItems.length;\n i = 0;\n for (; i < l; i++) {\n listItems[i].loose = true;\n }\n }\n\n this.tokens.push({\n type: 'list_end'\n });\n\n continue;\n }\n\n // html\n if (cap = this.rules.html.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: this.options.sanitize\n ? 'paragraph'\n : 'html',\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]\n });\n continue;\n }\n\n // def\n if (top && (cap = this.rules.def.exec(src))) {\n src = src.substring(cap[0].length);\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n if (!this.tokens.links[tag]) {\n this.tokens.links[tag] = {\n href: cap[2],\n title: cap[3]\n };\n }\n continue;\n }\n\n // table (gfm)\n if (cap = this.rules.table.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(\n item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''),\n item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // lheading\n if (cap = this.rules.lheading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1]\n });\n continue;\n }\n\n // top-level paragraph\n if (top && (cap = this.rules.paragraph.exec(src))) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'paragraph',\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1]\n });\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n // Top-level should never reach here.\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'text',\n text: cap[0]\n });\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return this.tokens;\n};\n\n/**\n * Inline-Level Grammar\n */\n\nvar inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noop,\n tag: '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n strong: /^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,\n em: /^_([^\\s_])_(?!_)|^\\*([^\\s*<\\[])\\*(?!\\*)|^_([^\\s<][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_<][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s<\"][\\s\\S]*?[^\\s\\*])\\*(?!\\*|[^\\spunctuation])|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/,\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noop,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*]|\\b_|$)|[^ ](?= {2,}\\n))|(?= {2,}\\n))/\n};\n\n// list of punctuation marks from common mark spec\n// without ` and ] to workaround Rule 17 (inline code blocks/links)\ninline._punctuation = '!\"#$%&\\'()*+,\\\\-./:;<=>?@\\\\[^_{|}~';\ninline.em = edit(inline.em).replace(/punctuation/g, inline._punctuation).getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', block._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[[^\\[\\]]*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n em: /^_(?=\\S)([\\s\\S]*?\\S)_(?!_)|^\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)/,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^~+(?=\\S)([\\s\\S]*?\\S)~+/,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*~]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))|(?= {2,}\\n|[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\n/**\n * Inline Lexer & Compiler\n */\n\nfunction InlineLexer(links, options) {\n this.options = options || marked.defaults;\n this.links = links;\n this.rules = inline.normal;\n this.renderer = this.options.renderer || new Renderer();\n this.renderer.options = this.options;\n\n if (!this.links) {\n throw new Error('Tokens array requires a `links` property.');\n }\n\n if (this.options.pedantic) {\n this.rules = inline.pedantic;\n } else if (this.options.gfm) {\n if (this.options.breaks) {\n this.rules = inline.breaks;\n } else {\n this.rules = inline.gfm;\n }\n }\n}\n\n/**\n * Expose Inline Rules\n */\n\nInlineLexer.rules = inline;\n\n/**\n * Static Lexing/Compiling Method\n */\n\nInlineLexer.output = function(src, links, options) {\n var inline = new InlineLexer(links, options);\n return inline.output(src);\n};\n\n/**\n * Lexing/Compiling\n */\n\nInlineLexer.prototype.output = function(src) {\n var out = '',\n link,\n text,\n href,\n title,\n cap,\n prevCapZero;\n\n while (src) {\n // escape\n if (cap = this.rules.escape.exec(src)) {\n src = src.substring(cap[0].length);\n out += escape(cap[1]);\n continue;\n }\n\n // tag\n if (cap = this.rules.tag.exec(src)) {\n if (!this.inLink && /^<a /i.test(cap[0])) {\n this.inLink = true;\n } else if (this.inLink && /^<\\/a>/i.test(cap[0])) {\n this.inLink = false;\n }\n if (!this.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = true;\n } else if (this.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = false;\n }\n\n src = src.substring(cap[0].length);\n out += this.options.sanitize\n ? this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0])\n : cap[0];\n continue;\n }\n\n // link\n if (cap = this.rules.link.exec(src)) {\n var lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n var linkLen = 4 + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n src = src.substring(cap[0].length);\n this.inLink = true;\n href = cap[2];\n if (this.options.pedantic) {\n link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n } else {\n title = '';\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim().replace(/^<([\\s\\S]*)>$/, '$1');\n out += this.outputLink(cap, {\n href: InlineLexer.escapes(href),\n title: InlineLexer.escapes(title)\n });\n this.inLink = false;\n continue;\n }\n\n // reflink, nolink\n if ((cap = this.rules.reflink.exec(src))\n || (cap = this.rules.nolink.exec(src))) {\n src = src.substring(cap[0].length);\n link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = this.links[link.toLowerCase()];\n if (!link || !link.href) {\n out += cap[0].charAt(0);\n src = cap[0].substring(1) + src;\n continue;\n }\n this.inLink = true;\n out += this.outputLink(cap, link);\n this.inLink = false;\n continue;\n }\n\n // strong\n if (cap = this.rules.strong.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.strong(this.output(cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // em\n if (cap = this.rules.em.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.em(this.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.codespan(escape(cap[2].trim(), true));\n continue;\n }\n\n // br\n if (cap = this.rules.br.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.br();\n continue;\n }\n\n // del (gfm)\n if (cap = this.rules.del.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.del(this.output(cap[1]));\n continue;\n }\n\n // autolink\n if (cap = this.rules.autolink.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[2] === '@') {\n text = escape(this.mangle(cap[1]));\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // url (gfm)\n if (!this.inLink && (cap = this.rules.url.exec(src))) {\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n src = src.substring(cap[0].length);\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n src = src.substring(cap[0].length);\n if (this.inRawBlock) {\n out += this.renderer.text(this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]);\n } else {\n out += this.renderer.text(escape(this.smartypants(cap[0])));\n }\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return out;\n};\n\nInlineLexer.escapes = function(text) {\n return text ? text.replace(InlineLexer.rules._escapes, '$1') : text;\n};\n\n/**\n * Compile Link\n */\n\nInlineLexer.prototype.outputLink = function(cap, link) {\n var href = link.href,\n title = link.title ? escape(link.title) : null;\n\n return cap[0].charAt(0) !== '!'\n ? this.renderer.link(href, title, this.output(cap[1]))\n : this.renderer.image(href, title, escape(cap[1]));\n};\n\n/**\n * Smartypants Transformations\n */\n\nInlineLexer.prototype.smartypants = function(text) {\n if (!this.options.smartypants) return text;\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n};\n\n/**\n * Mangle Links\n */\n\nInlineLexer.prototype.mangle = function(text) {\n if (!this.options.mangle) return text;\n var out = '',\n l = text.length,\n i = 0,\n ch;\n\n for (; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n};\n\n/**\n * Renderer\n */\n\nfunction Renderer(options) {\n this.options = options || marked.defaults;\n}\n\nRenderer.prototype.code = function(code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n var out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n};\n\nRenderer.prototype.blockquote = function(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n};\n\nRenderer.prototype.html = function(html) {\n return html;\n};\n\nRenderer.prototype.heading = function(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n};\n\nRenderer.prototype.hr = function() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\n';\n};\n\nRenderer.prototype.list = function(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n};\n\nRenderer.prototype.listitem = function(text) {\n return '<li>' + text + '</li>\\n';\n};\n\nRenderer.prototype.checkbox = function(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n};\n\nRenderer.prototype.paragraph = function(text) {\n return '<p>' + text + '</p>\\n';\n};\n\nRenderer.prototype.table = function(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n};\n\nRenderer.prototype.tablerow = function(content) {\n return '<tr>\\n' + content + '</tr>\\n';\n};\n\nRenderer.prototype.tablecell = function(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '</' + type + '>\\n';\n};\n\n// span level renderer\nRenderer.prototype.strong = function(text) {\n return '<strong>' + text + '</strong>';\n};\n\nRenderer.prototype.em = function(text) {\n return '<em>' + text + '</em>';\n};\n\nRenderer.prototype.codespan = function(text) {\n return '<code>' + text + '</code>';\n};\n\nRenderer.prototype.br = function() {\n return this.options.xhtml ? '<br/>' : '<br>';\n};\n\nRenderer.prototype.del = function(text) {\n return '<del>' + text + '</del>';\n};\n\nRenderer.prototype.link = function(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n var out = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n};\n\nRenderer.prototype.image = function(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n var out = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\n return out;\n};\n\nRenderer.prototype.text = function(text) {\n return text;\n};\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\n\nfunction TextRenderer() {}\n\n// no need for block level renderers\n\nTextRenderer.prototype.strong =\nTextRenderer.prototype.em =\nTextRenderer.prototype.codespan =\nTextRenderer.prototype.del =\nTextRenderer.prototype.text = function(text) {\n return text;\n};\n\nTextRenderer.prototype.link =\nTextRenderer.prototype.image = function(href, title, text) {\n return '' + text;\n};\n\nTextRenderer.prototype.br = function() {\n return '';\n};\n\n/**\n * Parsing & Compiling\n */\n\nfunction Parser(options) {\n this.tokens = [];\n this.token = null;\n this.options = options || marked.defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.slugger = new Slugger();\n}\n\n/**\n * Static Parse Method\n */\n\nParser.parse = function(src, options) {\n var parser = new Parser(options);\n return parser.parse(src);\n};\n\n/**\n * Parse Loop\n */\n\nParser.prototype.parse = function(src) {\n this.inline = new InlineLexer(src.links, this.options);\n // use an InlineLexer with a TextRenderer to extract pure text\n this.inlineText = new InlineLexer(\n src.links,\n merge({}, this.options, { renderer: new TextRenderer() })\n );\n this.tokens = src.reverse();\n\n var out = '';\n while (this.next()) {\n out += this.tok();\n }\n\n return out;\n};\n\n/**\n * Next Token\n */\n\nParser.prototype.next = function() {\n this.token = this.tokens.pop();\n return this.token;\n};\n\n/**\n * Preview Next Token\n */\n\nParser.prototype.peek = function() {\n return this.tokens[this.tokens.length - 1] || 0;\n};\n\n/**\n * Parse Text Tokens\n */\n\nParser.prototype.parseText = function() {\n var body = this.token.text;\n\n while (this.peek().type === 'text') {\n body += '\\n' + this.next().text;\n }\n\n return this.inline.output(body);\n};\n\n/**\n * Parse Current Token\n */\n\nParser.prototype.tok = function() {\n switch (this.token.type) {\n case 'space': {\n return '';\n }\n case 'hr': {\n return this.renderer.hr();\n }\n case 'heading': {\n return this.renderer.heading(\n this.inline.output(this.token.text),\n this.token.depth,\n unescape(this.inlineText.output(this.token.text)),\n this.slugger);\n }\n case 'code': {\n return this.renderer.code(this.token.text,\n this.token.lang,\n this.token.escaped);\n }\n case 'table': {\n var header = '',\n body = '',\n i,\n row,\n cell,\n j;\n\n // header\n cell = '';\n for (i = 0; i < this.token.header.length; i++) {\n cell += this.renderer.tablecell(\n this.inline.output(this.token.header[i]),\n { header: true, align: this.token.align[i] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n for (i = 0; i < this.token.cells.length; i++) {\n row = this.token.cells[i];\n\n cell = '';\n for (j = 0; j < row.length; j++) {\n cell += this.renderer.tablecell(\n this.inline.output(row[j]),\n { header: false, align: this.token.align[j] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n return this.renderer.table(header, body);\n }\n case 'blockquote_start': {\n body = '';\n\n while (this.next().type !== 'blockquote_end') {\n body += this.tok();\n }\n\n return this.renderer.blockquote(body);\n }\n case 'list_start': {\n body = '';\n var ordered = this.token.ordered,\n start = this.token.start;\n\n while (this.next().type !== 'list_end') {\n body += this.tok();\n }\n\n return this.renderer.list(body, ordered, start);\n }\n case 'list_item_start': {\n body = '';\n var loose = this.token.loose;\n var checked = this.token.checked;\n var task = this.token.task;\n\n if (this.token.task) {\n body += this.renderer.checkbox(checked);\n }\n\n while (this.next().type !== 'list_item_end') {\n body += !loose && this.token.type === 'text'\n ? this.parseText()\n : this.tok();\n }\n return this.renderer.listitem(body, task, checked);\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n return this.renderer.html(this.token.text);\n }\n case 'paragraph': {\n return this.renderer.paragraph(this.inline.output(this.token.text));\n }\n case 'text': {\n return this.renderer.paragraph(this.parseText());\n }\n default: {\n var errMsg = 'Token with \"' + this.token.type + '\" type was not found.';\n if (this.options.silent) {\n console.log(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n }\n};\n\n/**\n * Slugger generates header id\n */\n\nfunction Slugger() {\n this.seen = {};\n}\n\n/**\n * Convert string to unique id\n */\n\nSlugger.prototype.slug = function(value) {\n var slug = value\n .toLowerCase()\n .trim()\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n\n if (this.seen.hasOwnProperty(slug)) {\n var originalSlug = slug;\n do {\n this.seen[originalSlug]++;\n slug = originalSlug + '-' + this.seen[originalSlug];\n } while (this.seen.hasOwnProperty(slug));\n }\n this.seen[slug] = 0;\n\n return slug;\n};\n\n/**\n * Helpers\n */\n\nfunction escape(html, encode) {\n if (encode) {\n if (escape.escapeTest.test(html)) {\n return html.replace(escape.escapeReplace, function(ch) { return escape.replacements[ch]; });\n }\n } else {\n if (escape.escapeTestNoEncode.test(html)) {\n return html.replace(escape.escapeReplaceNoEncode, function(ch) { return escape.replacements[ch]; });\n }\n }\n\n return html;\n}\n\nescape.escapeTest = /[&<>\"']/;\nescape.escapeReplace = /[&<>\"']/g;\nescape.replacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;'\n};\n\nescape.escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nescape.escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig, function(_, n) {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n return {\n replace: function(name, val) {\n val = val.source || val;\n val = val.replace(/(^|[^\\[])\\^/g, '$1');\n regex = regex.replace(name, val);\n return this;\n },\n getRegex: function() {\n return new RegExp(regex, opt);\n }\n };\n}\n\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n try {\n var prot = decodeURIComponent(unescape(href))\n .replace(/[^\\w:]/g, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (/^[^:]+:\\/*[^/]*$/.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n\n if (href.slice(0, 2) === '//') {\n return base.replace(/:[\\s\\S]*/, ':') + href;\n } else if (href.charAt(0) === '/') {\n return base.replace(/(:\\/*[^/]*)[\\s\\S]*/, '$1') + href;\n } else {\n return base + href;\n }\n}\nvar baseUrls = {};\nvar originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n\nfunction noop() {}\nnoop.exec = noop;\n\nfunction merge(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function(match, offset, str) {\n var escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/),\n i = 0;\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n if (str.length === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n var suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < str.length) {\n var currChar = str.charAt(str.length - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, str.length - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n var level = 0;\n for (var i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n/**\n * Marked\n */\n\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (callback || typeof opt === 'function') {\n if (!callback) {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n var highlight = opt.highlight,\n tokens,\n pending,\n i = 0;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n pending = tokens.length;\n\n var done = function(err) {\n if (err) {\n opt.highlight = highlight;\n return callback(err);\n }\n\n var out;\n\n try {\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!pending) return done();\n\n for (; i < tokens.length; i++) {\n (function(token) {\n if (token.type !== 'code') {\n return --pending || done();\n }\n return highlight(token.text, token.lang, function(err, code) {\n if (err) return done(err);\n if (code == null || code === token.text) {\n return --pending || done();\n }\n token.text = code;\n token.escaped = true;\n --pending || done();\n });\n })(tokens[i]);\n }\n\n return;\n }\n try {\n if (opt) opt = merge({}, marked.defaults, opt);\n checkSanitizeDeprecation(opt);\n return Parser.parse(Lexer.lex(src, opt), opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if ((opt || marked.defaults).silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n return marked;\n};\n\nmarked.getDefaults = function() {\n return {\n baseUrl: null,\n breaks: false,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: new Renderer(),\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n xhtml: false\n };\n};\n\nmarked.defaults = marked.getDefaults();\n\n/**\n * Expose\n */\n\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\n\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\n\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\n\nmarked.InlineLexer = InlineLexer;\nmarked.inlineLexer = InlineLexer.output;\n\nmarked.Slugger = Slugger;\n\nmarked.parse = marked;\n\nif (typeof module !== 'undefined' && typeof exports === 'object') {\n module.exports = marked;\n} else if (typeof define === 'function' && define.amd) {\n define(function() { return marked; });\n} else {\n root.marked = marked;\n}\n})(this || (typeof window !== 'undefined' ? window : global));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/lib/marked.js\n// module id = ./node_modules/marked/lib/marked.js\n// module chunks = 31","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = ./node_modules/webpack/buildin/global.js\n// module chunks = 31"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap 464496a336e8d943d458","webpack:///./js/public-share.js","webpack:///./node_modules/marked/src/InlineLexer.js","webpack:///./node_modules/marked/src/Lexer.js","webpack:///./node_modules/marked/src/Parser.js","webpack:///./node_modules/marked/src/Renderer.js","webpack:///./node_modules/marked/src/Slugger.js","webpack:///./node_modules/marked/src/TextRenderer.js","webpack:///./node_modules/marked/src/defaults.js","webpack:///./node_modules/marked/src/helpers.js","webpack:///./node_modules/marked/src/marked.js","webpack:///./node_modules/marked/src/rules.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","$","document","ready","isPublic","val","mimetype","filesize","sharingToken","downloadUrl","OC","generateUrl","token","previewElement","renderer","__WEBPACK_IMPORTED_MODULE_0_marked___default","a","Renderer","link","href","title","text","prot","decodeURIComponent","unescape","replace","toLowerCase","e","indexOf","out","image","blockquote","quote","addClass","children","remove","success","content","removeClass","html","DOMPurify","sanitize","smartLists","SAFE_FOR_JQUERY","fail","result","substr","previewHeight","window","height","Math","max","ajax","url","headers","Range","textDiv","append","divHeight","length","ellipsis","appendTo","defaults","inline","findClosingBracket","escape","InlineLexer","[object Object]","links","options","this","rules","normal","Error","pedantic","gfm","breaks","src","output","cap","prevCapZero","exec","substring","tag","inLink","test","inRawBlock","sanitizer","lastParenIndex","linkLen","trim","slice","outputLink","escapes","reflink","nolink","charAt","strong","em","code","codespan","br","del","autolink","mangle","smartypants","charCodeAt","_backpedal","_escapes","ch","random","toString","block","rtrim","splitCells","Lexer","tokens","create","lex","top","next","loose","bull","b","item","listStart","listItems","t","space","isordered","istask","ischecked","newline","push","type","lastToken","trimRight","codeBlockStyle","fences","lang","heading","depth","nptable","header","align","split","cells","hr","list","ordered","start","match","RegExp","bullet","join","undefined","task","checked","pre","def","table","lheading","paragraph","Slugger","TextRenderer","merge","Parser","slugger","parse","inlineText","reverse","tok","pop","body","peek","escaped","row","cell","j","tablecell","tablerow","nextToken","checkbox","parseText","listitem","errMsg","silent","console","log","cleanUrl","infostring","highlight","langPrefix","level","raw","headerIds","headerPrefix","slug","xhtml","flags","baseUrl","seen","value","originalSlug","getDefaults","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","&","<",">","\"","'","getEscapeReplacement","unescapeTest","_","String","fromCharCode","parseInt","caret","nonWordAndColonTest","originIndependentUrl","baseUrls","justDomain","protocol","domain","resolveUrl","base","relativeBase","str","invert","suffLen","currChar","encode","edit","regex","opt","source","obj","getRegex","encodeURI","noopTest","target","key","arguments","tableRow","count","offset","curr","splice","checkSanitizeDeprecation","warn","marked","callback","pending","done","err","message","setOptions","parser","lexer","inlineLexer","_paragraph","_label","_title","_tag","_comment","_punctuation","_scheme","_email","_attribute","_href","_extended_email"],"mappings":"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","file":"public-share.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./js/public-share.js\");\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 464496a336e8d943d458","import marked from 'marked'\n\n// FIXME: Hack for single public file view since it is not attached to the fileslist\n$(document).ready(function(){\n\tvar isPublic = $('#isPublic').val();\n\tvar mimetype = $('#mimetype').val();\n\tvar filesize = $('#filesize').val();\n\n\tif (isPublic &&\n\t\tmimetype === 'text/markdown' &&\n\t\tfilesize < 524288) {\n\n\t\tvar sharingToken = $('#sharingToken').val();\n\t\tvar downloadUrl = OC.generateUrl('/s/{token}/download', {token: sharingToken});\n\t\tvar previewElement = $('#imgframe');\n\t\tvar renderer = new marked.Renderer();\n\t\trenderer.link = function(href, title, text) {\n\t\t\ttry {\n\t\t\t\tvar prot = decodeURIComponent(unescape(href))\n\t\t\t\t\t.replace(/[^\\w:]/g, '')\n\t\t\t\t\t.toLowerCase();\n\t\t\t} catch (e) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tvar out = '<a href=\"' + href + '\" rel=\"noreferrer noopener\"';\n\t\t\tif (title) {\n\t\t\t\tout += ' title=\"' + title + '\"';\n\t\t\t}\n\t\t\tout += '>' + text + '</a>';\n\t\t\treturn out;\n\t\t};\n\t\trenderer.image = function(href, title, text) {\n\t\t\tif (text) {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t\treturn title;\n\t\t};\n\t\trenderer.blockquote = function(quote) {\n\t\t\treturn quote;\n\t\t};\n\n\t\tpreviewElement\n\t\t\t.addClass('icon-loading')\n\t\t\t.children().remove();\n\n\t\t$.get(downloadUrl).success(function(content) {\n\t\t\tpreviewElement\n\t\t\t\t.removeClass('icon-loading')\n\t\t\t\t.addClass('preview formatted-text')\n\t\t\t\t.html(DOMPurify.sanitize(\n\t\t\t\t\tmarked(content, {\n\t\t\t\t\t\trenderer: renderer,\n\t\t\t\t\t\tsmartLists: true\n\t\t\t\t\t}),\n\t\t\t\t\t{\n\t\t\t\t\t\tSAFE_FOR_JQUERY: true\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t}).fail(function(result){\n\t\t\tpreviewElement\n\t\t\t\t.removeClass('icon-loading');\n\t\t});\n\t} else if (isPublic &&\n\t\t\t mimetype.substr(0, mimetype.indexOf('/')) === 'text') {\n\t\t// Based on default text previews from \"files_sharing/js/public.js\", but\n\t\t// using the public endpoint from files_texteditor for better character\n\t\t// encoding support.\n\t\tvar previewElement = $('#imgframe');\n\t\tpreviewElement\n\t\t\t.addClass('icon-loading')\n\t\t\t.children().remove();\n\n\t\tvar bottomMargin = 350;\n\t\tvar previewHeight = $(window).height() - bottomMargin;\n\t\tpreviewHeight = Math.max(200, previewHeight);\n\n\t\tvar sharingToken = $('#sharingToken').val();\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/apps/files_texteditor/public/{token}', { token: sharingToken }),\n\t\t\theaders: {\n\t\t\t\t'Range': 'bytes=0-524288'\n\t\t\t}\n\t\t}).success(function(content) {\n\t\t\tvar textDiv = $('<div/>').addClass('text-preview default-overridden');\n\t\t\ttextDiv.text(content);\n\n\t\t\tpreviewElement\n\t\t\t\t.removeClass('icon-loading')\n\t\t\t\t.addClass('preview')\n\t\t\t\t.append(textDiv);\n\n\t\t\tvar divHeight = textDiv.height();\n\t\t\tif (content.length > 524289) {\n\t\t\t\tvar ellipsis = $('<div/>').addClass('ellipsis');\n\t\t\t\tellipsis.html('(&#133;)');\n\t\t\t\tellipsis.appendTo('#imgframe');\n\t\t\t}\n\t\t\tif (divHeight > previewHeight) {\n\t\t\t\ttextDiv.height(previewHeight);\n\t\t\t}\n\t\t});\n\t}\n});\n\n\n\n// WEBPACK FOOTER //\n// ./js/public-share.js","const Renderer = require('./Renderer.js');\nconst { defaults } = require('./defaults.js');\nconst { inline } = require('./rules.js');\nconst {\n findClosingBracket,\n escape\n} = require('./helpers.js');\n\n/**\n * Inline Lexer & Compiler\n */\nmodule.exports = class InlineLexer {\n constructor(links, options) {\n this.options = options || defaults;\n this.links = links;\n this.rules = inline.normal;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n\n if (!this.links) {\n throw new Error('Tokens array requires a `links` property.');\n }\n\n if (this.options.pedantic) {\n this.rules = inline.pedantic;\n } else if (this.options.gfm) {\n if (this.options.breaks) {\n this.rules = inline.breaks;\n } else {\n this.rules = inline.gfm;\n }\n }\n }\n\n /**\n * Expose Inline Rules\n */\n static get rules() {\n return inline;\n }\n\n /**\n * Static Lexing/Compiling Method\n */\n static output(src, links, options) {\n const inline = new InlineLexer(links, options);\n return inline.output(src);\n }\n\n /**\n * Lexing/Compiling\n */\n output(src) {\n let out = '',\n link,\n text,\n href,\n title,\n cap,\n prevCapZero;\n\n while (src) {\n // escape\n if (cap = this.rules.escape.exec(src)) {\n src = src.substring(cap[0].length);\n out += escape(cap[1]);\n continue;\n }\n\n // tag\n if (cap = this.rules.tag.exec(src)) {\n if (!this.inLink && /^<a /i.test(cap[0])) {\n this.inLink = true;\n } else if (this.inLink && /^<\\/a>/i.test(cap[0])) {\n this.inLink = false;\n }\n if (!this.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = true;\n } else if (this.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = false;\n }\n\n src = src.substring(cap[0].length);\n out += this.options.sanitize\n ? this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0])\n : cap[0];\n continue;\n }\n\n // link\n if (cap = this.rules.link.exec(src)) {\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n src = src.substring(cap[0].length);\n this.inLink = true;\n href = cap[2];\n if (this.options.pedantic) {\n link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n } else {\n title = '';\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim().replace(/^<([\\s\\S]*)>$/, '$1');\n out += this.outputLink(cap, {\n href: InlineLexer.escapes(href),\n title: InlineLexer.escapes(title)\n });\n this.inLink = false;\n continue;\n }\n\n // reflink, nolink\n if ((cap = this.rules.reflink.exec(src))\n || (cap = this.rules.nolink.exec(src))) {\n src = src.substring(cap[0].length);\n link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = this.links[link.toLowerCase()];\n if (!link || !link.href) {\n out += cap[0].charAt(0);\n src = cap[0].substring(1) + src;\n continue;\n }\n this.inLink = true;\n out += this.outputLink(cap, link);\n this.inLink = false;\n continue;\n }\n\n // strong\n if (cap = this.rules.strong.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.strong(this.output(cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // em\n if (cap = this.rules.em.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.em(this.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.codespan(escape(cap[2].trim(), true));\n continue;\n }\n\n // br\n if (cap = this.rules.br.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.br();\n continue;\n }\n\n // del (gfm)\n if (cap = this.rules.del.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.del(this.output(cap[1]));\n continue;\n }\n\n // autolink\n if (cap = this.rules.autolink.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[2] === '@') {\n text = escape(this.mangle(cap[1]));\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // url (gfm)\n if (!this.inLink && (cap = this.rules.url.exec(src))) {\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n src = src.substring(cap[0].length);\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n src = src.substring(cap[0].length);\n if (this.inRawBlock) {\n out += this.renderer.text(this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]);\n } else {\n out += this.renderer.text(escape(this.smartypants(cap[0])));\n }\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return out;\n }\n\n static escapes(text) {\n return text ? text.replace(InlineLexer.rules._escapes, '$1') : text;\n }\n\n /**\n * Compile Link\n */\n outputLink(cap, link) {\n const href = link.href,\n title = link.title ? escape(link.title) : null;\n\n return cap[0].charAt(0) !== '!'\n ? this.renderer.link(href, title, this.output(cap[1]))\n : this.renderer.image(href, title, escape(cap[1]));\n }\n\n /**\n * Smartypants Transformations\n */\n smartypants(text) {\n if (!this.options.smartypants) return text;\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n }\n\n /**\n * Mangle Links\n */\n mangle(text) {\n if (!this.options.mangle) return text;\n const l = text.length;\n let out = '',\n i = 0,\n ch;\n\n for (; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/src/InlineLexer.js\n// module id = ./node_modules/marked/src/InlineLexer.js\n// module chunks = 31","const { defaults } = require('./defaults.js');\nconst { block } = require('./rules.js');\nconst {\n rtrim,\n splitCells,\n escape\n} = require('./helpers.js');\n\n/**\n * Block Lexer\n */\nmodule.exports = class Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.rules = block.normal;\n\n if (this.options.pedantic) {\n this.rules = block.pedantic;\n } else if (this.options.gfm) {\n this.rules = block.gfm;\n }\n }\n\n /**\n * Expose Block Rules\n */\n static get rules() {\n return block;\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n };\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n return this.token(src, true);\n };\n\n /**\n * Lexing\n */\n token(src, top) {\n src = src.replace(/^ +$/gm, '');\n let next,\n loose,\n cap,\n bull,\n b,\n item,\n listStart,\n listItems,\n t,\n space,\n i,\n tag,\n l,\n isordered,\n istask,\n ischecked;\n\n while (src) {\n // newline\n if (cap = this.rules.newline.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[0].length > 1) {\n this.tokens.push({\n type: 'space'\n });\n }\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n const lastToken = this.tokens[this.tokens.length - 1];\n src = src.substring(cap[0].length);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && lastToken.type === 'paragraph') {\n lastToken.text += '\\n' + cap[0].trimRight();\n } else {\n cap = cap[0].replace(/^ {4}/gm, '');\n this.tokens.push({\n type: 'code',\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(cap, '\\n')\n : cap\n });\n }\n continue;\n }\n\n // fences\n if (cap = this.rules.fences.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'code',\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: cap[3] || ''\n });\n continue;\n }\n\n // heading\n if (cap = this.rules.heading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[1].length,\n text: cap[2]\n });\n continue;\n }\n\n // table no leading pipe (gfm)\n if (cap = this.rules.nptable.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(item.cells[i], item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // hr\n if (cap = this.rules.hr.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'hr'\n });\n continue;\n }\n\n // blockquote\n if (cap = this.rules.blockquote.exec(src)) {\n src = src.substring(cap[0].length);\n\n this.tokens.push({\n type: 'blockquote_start'\n });\n\n cap = cap[0].replace(/^ *> ?/gm, '');\n\n // Pass `top` to keep the current\n // \"toplevel\" state. This is exactly\n // how markdown.pl works.\n this.token(cap, top);\n\n this.tokens.push({\n type: 'blockquote_end'\n });\n\n continue;\n }\n\n // list\n if (cap = this.rules.list.exec(src)) {\n src = src.substring(cap[0].length);\n bull = cap[2];\n isordered = bull.length > 1;\n\n listStart = {\n type: 'list_start',\n ordered: isordered,\n start: isordered ? +bull : '',\n loose: false\n };\n\n this.tokens.push(listStart);\n\n // Get each top-level item.\n cap = cap[0].match(this.rules.item);\n\n listItems = [];\n next = false;\n l = cap.length;\n i = 0;\n\n for (; i < l; i++) {\n item = cap[i];\n\n // Remove the list item's bullet\n // so it is seen as the next token.\n space = item.length;\n item = item.replace(/^ *([*+-]|\\d+\\.) */, '');\n\n // Outdent whatever the\n // list item contains. Hacky.\n if (~item.indexOf('\\n ')) {\n space -= item.length;\n item = !this.options.pedantic\n ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')\n : item.replace(/^ {1,4}/gm, '');\n }\n\n // Determine whether the next list item belongs here.\n // Backpedal if it does not belong in this list.\n if (i !== l - 1) {\n b = block.bullet.exec(cap[i + 1])[0];\n if (bull.length > 1 ? b.length === 1\n : (b.length > 1 || (this.options.smartLists && b !== bull))) {\n src = cap.slice(i + 1).join('\\n') + src;\n i = l - 1;\n }\n }\n\n // Determine whether item is loose or not.\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n // for discount behavior.\n loose = next || /\\n\\n(?!\\s*$)/.test(item);\n if (i !== l - 1) {\n next = item.charAt(item.length - 1) === '\\n';\n if (!loose) loose = next;\n }\n\n if (loose) {\n listStart.loose = true;\n }\n\n // Check for task list items\n istask = /^\\[[ xX]\\] /.test(item);\n ischecked = undefined;\n if (istask) {\n ischecked = item[1] !== ' ';\n item = item.replace(/^\\[[ xX]\\] +/, '');\n }\n\n t = {\n type: 'list_item_start',\n task: istask,\n checked: ischecked,\n loose: loose\n };\n\n listItems.push(t);\n this.tokens.push(t);\n\n // Recurse.\n this.token(item, false);\n\n this.tokens.push({\n type: 'list_item_end'\n });\n }\n\n if (listStart.loose) {\n l = listItems.length;\n i = 0;\n for (; i < l; i++) {\n listItems[i].loose = true;\n }\n }\n\n this.tokens.push({\n type: 'list_end'\n });\n\n continue;\n }\n\n // html\n if (cap = this.rules.html.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: this.options.sanitize\n ? 'paragraph'\n : 'html',\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0]\n });\n continue;\n }\n\n // def\n if (top && (cap = this.rules.def.exec(src))) {\n src = src.substring(cap[0].length);\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n if (!this.tokens.links[tag]) {\n this.tokens.links[tag] = {\n href: cap[2],\n title: cap[3]\n };\n }\n continue;\n }\n\n // table (gfm)\n if (cap = this.rules.table.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(\n item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''),\n item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // lheading\n if (cap = this.rules.lheading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1]\n });\n continue;\n }\n\n // top-level paragraph\n if (top && (cap = this.rules.paragraph.exec(src))) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'paragraph',\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1]\n });\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n // Top-level should never reach here.\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'text',\n text: cap[0]\n });\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return this.tokens;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/src/Lexer.js\n// module id = ./node_modules/marked/src/Lexer.js\n// module chunks = 31","const Renderer = require('./Renderer.js');\nconst Slugger = require('./Slugger.js');\nconst InlineLexer = require('./InlineLexer.js');\nconst TextRenderer = require('./TextRenderer.js');\nconst { defaults } = require('./defaults.js');\nconst {\n merge,\n unescape\n} = require('./helpers.js');\n\n/**\n * Parsing & Compiling\n */\nmodule.exports = class Parser {\n constructor(options) {\n this.tokens = [];\n this.token = null;\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n };\n\n /**\n * Parse Loop\n */\n parse(tokens) {\n this.inline = new InlineLexer(tokens.links, this.options);\n // use an InlineLexer with a TextRenderer to extract pure text\n this.inlineText = new InlineLexer(\n tokens.links,\n merge({}, this.options, { renderer: new TextRenderer() })\n );\n this.tokens = tokens.reverse();\n\n let out = '';\n while (this.next()) {\n out += this.tok();\n }\n\n return out;\n };\n\n /**\n * Next Token\n */\n next() {\n this.token = this.tokens.pop();\n return this.token;\n };\n\n /**\n * Preview Next Token\n */\n peek() {\n return this.tokens[this.tokens.length - 1] || 0;\n };\n\n /**\n * Parse Text Tokens\n */\n parseText() {\n let body = this.token.text;\n\n while (this.peek().type === 'text') {\n body += '\\n' + this.next().text;\n }\n\n return this.inline.output(body);\n };\n\n /**\n * Parse Current Token\n */\n tok() {\n let body = '';\n switch (this.token.type) {\n case 'space': {\n return '';\n }\n case 'hr': {\n return this.renderer.hr();\n }\n case 'heading': {\n return this.renderer.heading(\n this.inline.output(this.token.text),\n this.token.depth,\n unescape(this.inlineText.output(this.token.text)),\n this.slugger);\n }\n case 'code': {\n return this.renderer.code(this.token.text,\n this.token.lang,\n this.token.escaped);\n }\n case 'table': {\n let header = '',\n i,\n row,\n cell,\n j;\n\n // header\n cell = '';\n for (i = 0; i < this.token.header.length; i++) {\n cell += this.renderer.tablecell(\n this.inline.output(this.token.header[i]),\n { header: true, align: this.token.align[i] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n for (i = 0; i < this.token.cells.length; i++) {\n row = this.token.cells[i];\n\n cell = '';\n for (j = 0; j < row.length; j++) {\n cell += this.renderer.tablecell(\n this.inline.output(row[j]),\n { header: false, align: this.token.align[j] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n return this.renderer.table(header, body);\n }\n case 'blockquote_start': {\n body = '';\n\n while (this.next().type !== 'blockquote_end') {\n body += this.tok();\n }\n\n return this.renderer.blockquote(body);\n }\n case 'list_start': {\n body = '';\n const ordered = this.token.ordered,\n start = this.token.start;\n\n while (this.next().type !== 'list_end') {\n body += this.tok();\n }\n\n return this.renderer.list(body, ordered, start);\n }\n case 'list_item_start': {\n body = '';\n const loose = this.token.loose;\n const checked = this.token.checked;\n const task = this.token.task;\n\n if (this.token.task) {\n if (loose) {\n if (this.peek().type === 'text') {\n const nextToken = this.peek();\n nextToken.text = this.renderer.checkbox(checked) + ' ' + nextToken.text;\n } else {\n this.tokens.push({\n type: 'text',\n text: this.renderer.checkbox(checked)\n });\n }\n } else {\n body += this.renderer.checkbox(checked);\n }\n }\n\n while (this.next().type !== 'list_item_end') {\n body += !loose && this.token.type === 'text'\n ? this.parseText()\n : this.tok();\n }\n return this.renderer.listitem(body, task, checked);\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n return this.renderer.html(this.token.text);\n }\n case 'paragraph': {\n return this.renderer.paragraph(this.inline.output(this.token.text));\n }\n case 'text': {\n return this.renderer.paragraph(this.parseText());\n }\n default: {\n const errMsg = 'Token with \"' + this.token.type + '\" type was not found.';\n if (this.options.silent) {\n console.log(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n }\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/src/Parser.js\n// module id = ./node_modules/marked/src/Parser.js\n// module chunks = 31","const { defaults } = require('./defaults.js');\nconst {\n cleanUrl,\n escape\n} = require('./helpers.js');\n\n/**\n * Renderer\n */\nmodule.exports = class Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n };\n\n blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n };\n\n html(html) {\n return html;\n };\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n };\n\n hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\n';\n };\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n };\n\n listitem(text) {\n return '<li>' + text + '</li>\\n';\n };\n\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n };\n\n paragraph(text) {\n return '<p>' + text + '</p>\\n';\n };\n\n table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n };\n\n tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\n';\n };\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '</' + type + '>\\n';\n };\n\n // span level renderer\n strong(text) {\n return '<strong>' + text + '</strong>';\n };\n\n em(text) {\n return '<em>' + text + '</em>';\n };\n\n codespan(text) {\n return '<code>' + text + '</code>';\n };\n\n br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n };\n\n del(text) {\n return '<del>' + text + '</del>';\n };\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n };\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\n return out;\n };\n\n text(text) {\n return text;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/src/Renderer.js\n// module id = ./node_modules/marked/src/Renderer.js\n// module chunks = 31","/**\n * Slugger generates header id\n */\nmodule.exports = class Slugger {\n constructor() {\n this.seen = {};\n }\n\n /**\n * Convert string to unique id\n */\n slug(value) {\n let slug = value\n .toLowerCase()\n .trim()\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n\n if (this.seen.hasOwnProperty(slug)) {\n const originalSlug = slug;\n do {\n this.seen[originalSlug]++;\n slug = originalSlug + '-' + this.seen[originalSlug];\n } while (this.seen.hasOwnProperty(slug));\n }\n this.seen[slug] = 0;\n\n return slug;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/src/Slugger.js\n// module id = ./node_modules/marked/src/Slugger.js\n// module chunks = 31","/**\n * TextRenderer\n * returns only the textual part of the token\n */\nmodule.exports = class TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/src/TextRenderer.js\n// module id = ./node_modules/marked/src/TextRenderer.js\n// module chunks = 31","function getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n xhtml: false\n };\n}\n\nfunction changeDefaults(newDefaults) {\n module.exports.defaults = newDefaults;\n}\n\nmodule.exports = {\n defaults: getDefaults(),\n getDefaults,\n changeDefaults\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/src/defaults.js\n// module id = ./node_modules/marked/src/defaults.js\n// module chunks = 31","/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;'\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest = { exec: function noopTest() {} };\n\nfunction merge(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\nmodule.exports = {\n escape,\n unescape,\n edit,\n cleanUrl,\n resolveUrl,\n noopTest,\n merge,\n splitCells,\n rtrim,\n findClosingBracket,\n checkSanitizeDeprecation\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/src/helpers.js\n// module id = ./node_modules/marked/src/helpers.js\n// module chunks = 31","const Lexer = require('./Lexer.js');\nconst Parser = require('./Parser.js');\nconst Renderer = require('./Renderer.js');\nconst TextRenderer = require('./TextRenderer.js');\nconst InlineLexer = require('./InlineLexer.js');\nconst Slugger = require('./Slugger.js');\nconst {\n merge,\n checkSanitizeDeprecation,\n escape\n} = require('./helpers.js');\nconst {\n getDefaults,\n changeDefaults,\n defaults\n} = require('./defaults.js');\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (callback || typeof opt === 'function') {\n if (!callback) {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n const highlight = opt.highlight;\n let tokens,\n pending,\n i = 0;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n pending = tokens.length;\n\n const done = function(err) {\n if (err) {\n opt.highlight = highlight;\n return callback(err);\n }\n\n let out;\n\n try {\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!pending) return done();\n\n for (; i < tokens.length; i++) {\n (function(token) {\n if (token.type !== 'code') {\n return --pending || done();\n }\n return highlight(token.text, token.lang, function(err, code) {\n if (err) return done(err);\n if (code == null || code === token.text) {\n return --pending || done();\n }\n token.text = code;\n token.escaped = true;\n --pending || done();\n });\n })(tokens[i]);\n }\n\n return;\n }\n try {\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n return Parser.parse(Lexer.lex(src, opt), opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if ((opt || marked.defaults).silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Expose\n */\n\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\n\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\n\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\n\nmarked.InlineLexer = InlineLexer;\nmarked.inlineLexer = InlineLexer.output;\n\nmarked.Slugger = Slugger;\n\nmarked.parse = marked;\n\nmodule.exports = marked;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/src/marked.js\n// module id = ./node_modules/marked/src/marked.js\n// module chunks = 31","const {\n noopTest,\n edit,\n merge\n} = require('./helpers.js');\n\n/**\n * Block-Level Grammar\n */\nconst block = {\n newline: /^\\n+/,\n code: /^( {4}[^\\n]+\\n*)+/,\n fences: /^ {0,3}(`{3,}|~{3,})([^`~\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6}) +([^\\n]*?)(?: +#+)? *(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?\\\\?>\\\\n*' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?>\\\\n*' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\\\\n*' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (6)\n + '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) open tag\n + '|</(?!script|pre|style)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *<?([^\\s>]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n nptable: noopTest,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}\\.)/;\nblock.item = /^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/;\nblock.item = edit(block.item, 'gm')\n .replace(/bull/g, block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /<!--(?!-?>)[\\s\\S]*?-->/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} +')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}|~{3,})[^`\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n nptable: /^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,\n table: /^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/\n});\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^ *(#{1,6}) *([^\\n]+?) *(?:#+ *)?(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n strong: /^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,\n em: /^_([^\\s_])_(?!_)|^\\*([^\\s*<\\[])\\*(?!\\*)|^_([^\\s<][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_<][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s<\"][\\s\\S]*?[^\\s\\*])\\*(?!\\*|[^\\spunctuation])|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/,\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*]|\\b_|$)|[^ ](?= {2,}\\n))|(?= {2,}\\n))/\n};\n\n// list of punctuation marks from common mark spec\n// without ` and ] to workaround Rule 17 (inline code blocks/links)\ninline._punctuation = '!\"#$%&\\'()*+,\\\\-./:;<=>?@\\\\[^_{|}~';\ninline.em = edit(inline.em).replace(/punctuation/g, inline._punctuation).getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', block._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[[^\\[\\]]*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n em: /^_(?=\\S)([\\s\\S]*?\\S)_(?!_)|^\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)/,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^~+(?=\\S)([\\s\\S]*?\\S)~+/,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*~]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))|(?= {2,}\\n|[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\nmodule.exports = {\n block,\n inline\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/marked/src/rules.js\n// module id = ./node_modules/marked/src/rules.js\n// module chunks = 31"],"sourceRoot":""} \ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 304504d..b90df2c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3484,9 +3484,9 @@
}
},
"marked": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz",
- "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg=="
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.0.tgz",
+ "integrity": "sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ=="
},
"math-expression-evaluator": {
"version": "1.2.17",
diff --git a/package.json b/package.json
index ee04b22..3bc1335 100644
--- a/package.json
+++ b/package.json
@@ -23,6 +23,6 @@
},
"dependencies": {
"brace": "^0.11.1",
- "marked": "^0.7.0"
+ "marked": "^0.8.0"
}
}