diff --git a/data/version b/data/version index d52cd31a..76eae3a1 100644 --- a/data/version +++ b/data/version @@ -1 +1 @@ -{"version":"1.0.6","updatedTime":"2016-02-27T07:21:51.505Z"} \ No newline at end of file +{"version":"1.0.7","updatedTime":"2016-04-14T07:21:51.505Z"} \ No newline at end of file diff --git a/login.html b/login.html index 36987d53..c57cf42d 100644 --- a/login.html +++ b/login.html @@ -27,8 +27,11 @@ if(process.platform != 'darwin') {
- Self-hosted Service - Create Local Account + Sign up Leanote + + Sign in to Self-hosted Service + + Sign in to Leanote
@@ -40,8 +43,8 @@ if(process.platform != 'darwin') { + Self-hosted Service - Create Local Account
@@ -92,7 +95,9 @@ if(process.platform != 'darwin') {
Forget password? +
@@ -271,11 +276,13 @@ $(function() { hideMsg(); }); + /* $('#localAccount').click(function() { $body.addClass('local-account'); $('#username').focus(); hideMsg(); }); + */ $('#loginWithLeanote').click(function () { $body.removeClass('local-account custom-server'); diff --git a/node_modules/api.js b/node_modules/api.js index ab89eed4..2d36b2a2 100644 --- a/node_modules/api.js +++ b/node_modules/api.js @@ -228,13 +228,21 @@ var Api = { getImage: function(fileId, callback) { var me = this; var url = me.getUrl('file/getImage', {fileId: fileId}); - log(url); + + // console.log('getImage'); + // console.log(url); + needle.get(url, function(err, resp) { me.checkError(err, resp); if(err) { return callback && callback(false); } - // log(resp.body); + else if (resp.statusCode != 200) { + console.log(fileId + ' 图片返回状态错误: ' + resp.statusCode); + return callback && callback(false); + } + + // log(resp); /* { 'accept-ranges': 'bytes', 'content-disposition': 'inline; filename="logo.png"', @@ -243,10 +251,14 @@ var Api = { date: 'Mon, 19 Jan 2015 15:01:47 GMT', */ // log(resp.headers); - if(err) { - callback(false); - } else { - var typeStr = resp.headers['content-type']; + else { + var typeStr = ('' + resp.headers['content-type']).toLowerCase(); + + if (typeStr.indexOf('image') < 0) { + console.log(fileId + ' 不是图片'); + return callback && callback(false); + } + var type = 'png'; if(typeStr) { var typeArr = typeStr.split('/'); @@ -258,13 +270,13 @@ var Api = { var filename = Common.uuid() + '.' + type; var imagePath = User.getCurUserImagesPath(); var imagePathAll = imagePath + '/' + filename; - log(imagePathAll); fs.writeFile(imagePathAll, resp.body, function(err) { if(err) { log(err); log('local save image failed 本地保存失败'); callback(false); } else { + console.log('main save image success'); callback(imagePathAll, filename); } }); diff --git a/node_modules/api_main.js b/node_modules/api_main.js index 3ccbfb9a..597f7448 100644 --- a/node_modules/api_main.js +++ b/node_modules/api_main.js @@ -41,12 +41,20 @@ var Api = { getImage: function(fileId, callback) { var me = this; var url = me.getUrl('file/getImage', {fileId: fileId}); + + // console.log('getImage'); + // console.log(url); + needle.get(url, function(err, resp) { me.checkError(err, resp); if(err) { return callback && callback(false); } - // log(resp.body); + else if (resp.statusCode != 200) { + console.log(fileId + ' 图片返回状态错误: ' + resp.statusCode + ' ' + url); + return callback && callback(false); + } + // log(resp); /* { 'accept-ranges': 'bytes', 'content-disposition': 'inline; filename="logo.png"', @@ -56,7 +64,13 @@ var Api = { */ // log(resp.headers); else { - var typeStr = resp.headers['content-type']; + var typeStr = ('' + resp.headers['content-type']).toLowerCase(); + + if (typeStr.indexOf('image') < 0) { + console.log(fileId + ' 不是图片 ' + typeStr + ' ' + url); + return callback && callback(false); + } + var type = 'png'; if(typeStr) { var typeArr = typeStr.split('/'); diff --git a/node_modules/file.js b/node_modules/file.js index 18bd8ea8..19c743a8 100644 --- a/node_modules/file.js +++ b/node_modules/file.js @@ -532,7 +532,7 @@ var File = { } else { // 远程取不到图片, 是没有网络? 还是远程真的没有了 // TODO - // console.log("cann't get server's image" + fileId); + console.log("cann't get server's image" + fileId); callback(false); // return me.e404(res); } @@ -547,8 +547,8 @@ var File = { // console.log(fs.exists(fileLocalPath)); if(has && fileLocalPath) { fs.exists(fileLocalPath, function(exists) { - if(exists) { - // console.log('本地存在'); + if(exists) { + // console.log('本地存在 ' + fileId); callback(fileLocalPath); // me.retImage(fileLocalPath, res); } else { @@ -673,7 +673,45 @@ var File = { callback(); } - } else { + // 形如 file:///Users/life/Desktop/test/1.jpeg 本地文件 + // file:///C:/Users/CLi/App + // file://C:/Users/CLi/App + } else if(src.indexOf('file:') === 0) { + src = src.substr('file://'.length); // /user 或 /C: + if (!src) { + callback(); + return; + } + + // windows下的 把最前一个'/'去掉 + if (src.indexOf(':') >= 0 && src[0] == '/') { + src = src.substr(1); + } + + // 图片类型 + var type = 'png'; + var strArr = src.split('.'); + if (strArr.length > 1) { + type = strArr.pop(); + } + + // 新图片地址 + var filename = Common.uuid() + '.' + type; + var imagePath = User.getCurUserImagesPath(); + var imagePathAll = imagePath + '/' + filename; + + // 复制图片 + var readStream = fs.createReadStream(src); + var writeStream = fs.createWriteStream(imagePathAll); + readStream.pipe(writeStream); + readStream.on('end', function () { + callback(imagePathAll); + }); + readStream.on('error', function () { + callback(); + }); + } + else { // 远程的图片 needle.get(src, function(err, resp) { // console.log(resp); diff --git a/node_modules/file_main.js b/node_modules/file_main.js index e3bdae32..8ec22712 100644 --- a/node_modules/file_main.js +++ b/node_modules/file_main.js @@ -109,9 +109,15 @@ var File = { if(has && fileLocalPath) { fs.exists(fileLocalPath, function(exists) { if(exists) { - // console.log('本地存在'); - callback(fileLocalPath); - // me.retImage(fileLocalPath, res); + if (fileLocalPath.indexOf('; charset=utf-8') < 0) { + // console.log('本地存在 ' + fileId); + callback(fileLocalPath); + } + else { + // 存在, 但之前存错了 + console.log('存在, 但之前存错了 ' + fileId); + getImageFromApi(); + } } else { getImageFromApi(); } diff --git a/node_modules/leanote_protocol.js b/node_modules/leanote_protocol.js index 661530ec..bc12458f 100644 --- a/node_modules/leanote_protocol.js +++ b/node_modules/leanote_protocol.js @@ -17,12 +17,14 @@ var leanoteProtocol = { var ret = /fileId=([a-zA-Z0-9]{24})/.exec(url); if (ret && ret[1]) { var fileId = ret[1]; - // console.log(fileId); + // console.log('imageId: ' + fileId); File.getImage(ret[1], function(fileLocalPath) { if(fileLocalPath) { + // console.log(fileId + ' : ' + fileLocalPath); callback({path: fileLocalPath}); } else { + console.log('取不到图片: ' + fileId); callback(); } }); diff --git a/note.html b/note.html index f13c5aa2..9dafe948 100755 --- a/note.html +++ b/note.html @@ -579,6 +579,24 @@ function log(o) { + + + ","
"),e.push(s.stringRepeat("\u00a0",n.indent)),o++,a=0,u=n[o]||Number.MAX_VALUE;c.length!=0&&(i+=c.length,a=this.$renderToken(e,a,l,c))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),n||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.lengthn-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(sn?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),i===undefined&&(i=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(i?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;ne.height+e.offset||s.top<0)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[n],this.session):(o.left=s.left+"px",o.top=s.top+"px",o.width=e.characterWidth+"px",o.height=e.lineHeight+"px")}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e}}).call(u.prototype);var a=function(e,t){u.call(this,e),this.scrollTop=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};r.inherits(a,u),function(){this.classSuffix="-v",this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=function(e){this.inner.style.height=e+"px"},this.setScrollHeight=function(e){this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}.call(a.prototype);var f=function(e,t){u.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(f,u),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(f.prototype),t.ScrollBar=a,t.ScrollBarV=a,t.ScrollBarH=f,t.VScrollBar=a,t.HScrollBar=f}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending&&this.changes){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=0,f=t.FontMetrics=function(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),a||this.$testFractionalRect(),this.$measureNode.innerHTML=s.stringRepeat("X",a),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){r.implement(this,u),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=i.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;t>0&&t<1?a=50:a=100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",o.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(a===50){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var n={height:e.height,width:e.width/a}}else var n={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/a};return n.width===0||n.height===0?null:n},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,a);var t=this.$main.getBoundingClientRect();return t.width/a},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(f.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./lib/useragent"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,d=e("./layer/font_metrics").FontMetrics,v=e("./lib/event_emitter").EventEmitter,m='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}';i.importCssString(m,"ace_editor.css");var g=function(e,t){var n=this;this.container=e||i.createElement("div"),this.$keepTextAreaAtCursor=!o.isOldIE,i.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new d(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",i|=this.CHANGE_SCROLL);if(n&&(e||s.width!=n)){i|=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal("resize",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor)return;var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var r=this.textarea.style,i=this.lineHeight;if(t<0||t>e.height-i){r.top=r.left="0";return}var s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\x01+/,"");s*=this.session.$getStringScreenWidth(o)[0]+2,i+=2}n-=this.scrollLeft,n>this.$size.scrollerWidth-s&&(n=this.$size.scrollerWidth-s),n+=this.gutterWidth,r.height=i+"px",r.width=s+"px",r.left=Math.min(n,this.$size.scrollerWidth-s)+"px",r.top=Math.min(t,this.$size.height-i)+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+"px",this.content.style.marginTop=-n.offset+"px",this.content.style.width=n.width+2*this.$padding+"px",this.content.style.height=n.minHeight+"px"}e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.max((this.$minLines||1)*this.lineHeight,Math.min(t,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight());var r=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=c;var h=this.scrollMargin;this.session.setScrollTop(Math.max(-h.top,Math.min(this.scrollTop,i-t.scrollerHeight+h.bottom))),this.session.setScrollLeft(Math.max(-h.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+h.right)));var p=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+c<0||this.scrollTop>h.top),d=a!==p;d&&(this.$vScroll=p,this.scrollBarV.setVisible(p));var v=Math.ceil(l/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-f)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(g)*w+b,f=this.scrollTop-y*w;var S=0;this.layerConfig.width!=s&&(S=this.CHANGE_H_SCROLL);if(u||d)S=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:l,maxHeight:i,offset:f,gutterOffset:Math.max(0,Math.ceil((f+t.height-t.scrollerHeight)/w)),height:this.$size.scrollerHeight},S},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(ts?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-ui?(i=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=(e+this.scrollLeft-n.left-this.$padding)/this.characterWidth,i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=Math.round(r);return{row:i,column:s,side:r-s>0?1:-1}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.round((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(i,Math.max(r,0))},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+Math.round(r.column*this.characterWidth),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r.cssClass)return;i.importCssString(r.cssText,r.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),s.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),u=function(t,n,r,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var s=this.$normalizePath;i=i||s(e.toUrl("ace/worker/worker.js",null,"_"));var u={};t.forEach(function(t){u[t]=s(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{this.$worker=new Worker(i)}catch(a){if(!(a instanceof window.DOMException))throw a;var f=this.$workerBlob(i),l=window.URL||window.webkitURL,c=l.createObjectURL(f);this.$worker=new Worker(c),l.revokeObjectURL(c)}this.$worker.postMessage({init:!0,tlns:u,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})},this.$workerBlob=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}}).call(u.prototype);var a=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,i=!1,u=Object.create(s),a=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){a.messageBuffer.push(e),r&&(i?setTimeout(f):f())},this.setEmitSync=function(e){i=e};var f=function(){var e=a.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};u.postMessage=function(e){a.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.messageBuffer.length)f()})};a.prototype=u.prototype,t.UIWorkerClient=a,t.WorkerClient=u}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges();var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),io?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),st[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++tf){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action=="add";for(var u=i+1;u0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type=="errorMarker"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("
"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./editor").Editor,o=e("./edit_session").EditSession,u=e("./undomanager").UndoManager,a=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,t.edit=function(e){if(typeof e=="string"){var n=e;e=document.getElementById(n);if(!e)throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o="";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement("pre"),u.parentNode.replaceChild(e,u)}else e&&(o=r.getInnerText(e),e.innerHTML="");var f=t.createEditSession(o),l=new s(new a(e));l.setSession(f);var c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),i.addListener(window,"resize",c.onResize),l.on("destroy",function(){i.removeListener(window,"resize",c.onResize),c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.EditSession=o,t.UndoManager=u,t.version="1.2.3"}); (function() { ace.require(["ace/ace"], function(a) { a && a.config.init(true); @@ -8,5 +8,4 @@ window.ace[key] = a[key]; }); })(); -// mode-ace_mode.js -ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),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"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[_:a-zA-Z\u00c0-\uffff][-_:.a-zA-Z0-9\u00c0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.xml-decl.xml","keyword.xml-decl.xml"],regex:"(<\\?)(xml)(?=[\\s])",next:"xml_decl",caseInsensitive:!0},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],processing_instruction:[{token:"punctuation.instruction.xml",regex:"\\?>",next:"start"},{defaultToken:"instruction.xml"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:"(?:"+t+":)?"+t+""},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules((new o({noJSX:!0})).getRules(),"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/ace_mode_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";var r=e("ace/lib/oop"),i=e("ace/mode/text_highlight_rules").TextHighlightRules,s=e("ace/mode/html_highlight_rules").HtmlHighlightRules,o=function(){s.call(this),this.$rules.start.unshift({token:"empty_line",regex:"^$",next:"allowBlock"},{token:"markup.heading.multi.1",regex:"^=+(?=\\s*$)"},{token:"markup.heading.multi.2",regex:"^\\-+(?=\\s*$)"},{token:function(e){return"markup.heading."+e.length},regex:/^#{1,6}(?=\s*[^ #]|\s+#.)/,next:"header"},{token:"constant.language.escape",regex:"^```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$",next:"githubblock"},{token:["constant.language.escape","blockquote"],regex:"(^\\s*>\\s*(?:[*+-]|\\d+\\.)?)(\\s+)",next:"blockquote"},{token:"constant",regex:"^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$",next:"allowBlock"},{token:["constant.language.escape","markup.list"],regex:"(^\\s{0,3}(?:[*+-]|\\d+\\.))(\\s+)",next:"listblock-start"},{token:"constant.language.escape",regex:"\\$\\$|\\\\\\\\\\[|\\\\\\\\\\\\\\\\\\(",next:"mathblock"},{token:["keyword","text"],regex:"(\\\\?\\\\begin)(\\{[a-z]*\\*?\\})",next:"latexblock"},{include:"basic"}),this.addRules({basic:[{token:"constant.language.escape",regex:/\\[\\`*_{}\[\]()#+\-.!]/},{token:"text",regex:"\\\\\\$"},{token:["constant.language.escape","keyword","constant.language.escape"],regex:"(\\$)(.*?)(\\$)"},{token:["constant.language.escape","code","constant.language.escape"],regex:"(`+)(.*?[^`])(\\1)"},{token:["constant.language.escape","reference","constant.language.escape","link","description","constant.language.escape"],regex:'^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'},{token:["constant.language.escape","markup.underline","constant.language.escape","reference","constant.language.escape"],regex:"(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])"},{token:["constant.language.escape","markup.underline","constant.language.escape","link","description","constant.language.escape"],regex:'(\\[)(\\[[^\\]]*\\]|[^\\[\\]]*)(\\]\\([ \\t]*)(?)((?:[ ]*"(?:.*?)"[ \\t]*)?)(\\))'},{token:["constant.language.escape","strong","constant.language.escape"],regex:"([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)"},{token:["constant.language.escape","emphasis","constant.language.escape"],regex:"([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)"},{token:["text","url","text"],regex:"(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"}],allowBlock:[{token:["text","code_block"],regex:"^( {4}|\\t)(.+)",next:"allowBlock"},{token:"empty",regex:"",next:"start"}],header:[{regex:"$",next:"start"},{include:"basic"},{defaultToken:"markup.heading"}],"listblock-start":[{token:"checkbox",regex:/(?:\[[ x]\])?/,next:"listblock"}],listblock:[{token:"empty_line",regex:"^$",next:"start"},{token:["constant.language.escape","markup.list"],regex:"(^\\s{0,3}(?:[*+-]|\\d+\\.))(\\s+)",next:"listblock-start"},{include:"basic",noEscape:!0},{defaultToken:"markup.list"}],blockquote:[{token:"empty_line",regex:"^\\s*$",next:"start"},{token:["constant.language.escape","blockquote"],regex:"(^\\s*>\\s*(?:[*+-]|\\d+\\.)?)(\\s+)",next:"blockquote"},{include:"basic",noEscape:!0},{defaultToken:"blockquote"}],githubblock:[{token:"constant.language.escape",regex:"^```",next:"start"},{token:"code_block",regex:".+"}],mathblock:[{token:"constant.language.escape",regex:"\\$\\$|\\\\\\\\\\]|\\\\\\\\\\\\\\\\\\)",next:"start"},{include:"latex"}],latexblock:[{token:["keyword","text"],regex:"(\\\\?\\\\end)(\\{[a-z]*\\*?\\})",next:"start"},{include:"latex"}],latex:[{token:"keyword",regex:"\\\\(?:[^a-zA-Z]|[a-zA-Z]+)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"comment",regex:"%.*$"}]}),this.normalizeRules()};r.inherits(o,i),t.MarkdownHighlightRules=o}),ace.define("ace/mode/folding/markdown",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:[=-]+\s*$|#{1,6} |`{3})/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]=="`"?e.bgTokenizer.getState(n)=="start"?"end":"start":"start":""},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type.lastIndexOf(c,0)===0}function h(){var e=f.value[0];return e=="="?6:e=="-"?5:7-f.value.search(/[^#]/)}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;if(r[0]=="`"){if(e.bgTokenizer.getState(n)!=="start"){while(++n0){r=e.getLine(n);if(r[0]=="`"&r.substring(0,3)=="```")break}return new s(n,r.length,u,0)}var f,c="markup.heading";if(l(n)){var p=h();while(++n=p)break}a=n-(!f||["=","-"].indexOf(f.value[0])==-1?1:2);if(a>u)while(a>u&&/^\s*$/.test(e.getLine(a)))a--;if(a>u){var v=e.getLine(a).length;return new s(u,i,a,v)}}}}.call(o.prototype)}),ace.define("ace/mode/ace_mode",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/ace_mode_highlight_rules","ace/mode/folding/markdown","ace/range"],function(e,t,n){"use strict";var r=e("ace/lib/oop"),i=e("ace/mode/text").Mode,s=e("ace/tokenizer").Tokenizer,o=e("./ace_mode_highlight_rules").MarkdownHighlightRules,u=e("ace/mode/folding/markdown").FoldMode,a=e("ace/range").Range,f=window.MD.aceEditor,l=function(){var e=new o;this.$tokenizer=new s(e.getRules()),this.$embeds=e.getEmbeds()};r.inherits(l,i);var c=!1;(function(){this.type="text",this.lineCommentStart=">",this.getNextLineIndent=function(e,t,n){if(c!==!0||e!="listblock"&&e!="listblock-start"||!/^\s*(?:[-+*]|\d+\.)\s+$/.test(t)){c=!1;if(e=="listblock"){var o=/^(\s*)(?:([-+*])|(\d+)\.)(\s+)/.exec(t);if(!o)return"";var u=o[2];return u||(u=parseInt(o[3],10)+1+"."),c=!0,o[1]+u+o[4]}return this.$getIndent(t)}var r=f.$getSelectedRows();if(r.last>1){var i=new a(r.last-2,f.session.getLine(r.last-2).length,r.last-1,f.session.getLine(r.last-1).length),s=f.session.getTextRange(i);/^\s*(?:[-+*]|\d+\.)\s+$/.test(s)&&f.session.remove(i)}return c=!1,this.$getIndent(t)}}).call(l.prototype),t.Mode=l}) \ No newline at end of file + \ No newline at end of file diff --git a/public/md/main-v2.js b/public/md/main-v2.js index f1f3893a..413256a9 100644 --- a/public/md/main-v2.js +++ b/public/md/main-v2.js @@ -12054,8 +12054,16 @@ define('extensions/markdownExtra',[ }; function onToggleMode(editor) { + // 不能加linenums, 加了后, uml不能显示 + // 但是, 有人说没有行号了, 很不好 + // 怎么办 editor.hooks.chain("onPreviewRefresh", function () { - $('#preview-contents pre').addClass('prettyprint'); // 不能加linenums, 加了后, uml不能显示 + $('#preview-contents pre code').each(function () { + var classes = $(this).attr('class'); + if (classes != 'language-flow' && classes != 'language-sequence') { + $(this).parent().addClass('prettyprint linenums'); + } + }); prettify.prettyPrint(); }); } diff --git a/public/md/main-v2.min.js b/public/md/main-v2.min.js index c3c3121c..7c1594d8 100644 --- a/public/md/main-v2.min.js +++ b/public/md/main-v2.min.js @@ -1,6 +1,6 @@ (function(){var e=this,n=e._,t={},r=Array.prototype,a=Object.prototype,i=Function.prototype,o=r.push,s=r.slice,l=r.concat,c=a.toString,u=a.hasOwnProperty,d=r.forEach,p=r.map,f=r.reduce,m=r.reduceRight,g=r.filter,h=r.every,v=r.some,b=r.indexOf,w=r.lastIndexOf,x=Array.isArray,y=Object.keys,C=i.bind,k=function(e){return e instanceof k?e:this instanceof k?void(this._wrapped=e):new k(e)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=k),exports._=k):e._=k,k.VERSION="1.5.1";var S=k.each=k.forEach=function(e,n,r){if(null!=e)if(d&&e.forEach===d)e.forEach(n,r);else if(e.length===+e.length){for(var a=0,i=e.length;i>a;a++)if(n.call(r,e[a],a,e)===t)return}else for(var o in e)if(k.has(e,o)&&n.call(r,e[o],o,e)===t)return};k.map=k.collect=function(e,n,t){var r=[];return null==e?r:p&&e.map===p?e.map(n,t):(S(e,function(e,a,i){r.push(n.call(t,e,a,i))}),r)};var _="Reduce of empty array with no initial value";k.reduce=k.foldl=k.inject=function(e,n,t,r){var a=arguments.length>2;if(null==e&&(e=[]),f&&e.reduce===f)return r&&(n=k.bind(n,r)),a?e.reduce(n,t):e.reduce(n);if(S(e,function(e,i,o){a?t=n.call(r,t,e,i,o):(t=e,a=!0)}),!a)throw new TypeError(_);return t},k.reduceRight=k.foldr=function(e,n,t,r){var a=arguments.length>2;if(null==e&&(e=[]),m&&e.reduceRight===m)return r&&(n=k.bind(n,r)),a?e.reduceRight(n,t):e.reduceRight(n);var i=e.length;if(i!==+i){var o=k.keys(e);i=o.length}if(S(e,function(s,l,c){l=o?o[--i]:--i,a?t=n.call(r,t,e[l],l,c):(t=e[l],a=!0)}),!a)throw new TypeError(_);return t},k.find=k.detect=function(e,n,t){var r;return E(e,function(e,a,i){return n.call(t,e,a,i)?(r=e,!0):void 0}),r},k.filter=k.select=function(e,n,t){var r=[];return null==e?r:g&&e.filter===g?e.filter(n,t):(S(e,function(e,a,i){n.call(t,e,a,i)&&r.push(e)}),r)},k.reject=function(e,n,t){return k.filter(e,function(e,r,a){return!n.call(t,e,r,a)},t)},k.every=k.all=function(e,n,r){n||(n=k.identity);var a=!0;return null==e?a:h&&e.every===h?e.every(n,r):(S(e,function(e,i,o){return(a=a&&n.call(r,e,i,o))?void 0:t}),!!a)};var E=k.some=k.any=function(e,n,r){n||(n=k.identity);var a=!1;return null==e?a:v&&e.some===v?e.some(n,r):(S(e,function(e,i,o){return a||(a=n.call(r,e,i,o))?t:void 0}),!!a)};k.contains=k.include=function(e,n){return null==e?!1:b&&e.indexOf===b?-1!=e.indexOf(n):E(e,function(e){return e===n})},k.invoke=function(e,n){var t=s.call(arguments,2),r=k.isFunction(n);return k.map(e,function(e){return(r?n:e[n]).apply(e,t)})},k.pluck=function(e,n){return k.map(e,function(e){return e[n]})},k.where=function(e,n,t){return k.isEmpty(n)?t?void 0:[]:k[t?"find":"filter"](e,function(e){for(var t in n)if(n[t]!==e[t])return!1;return!0})},k.findWhere=function(e,n){return k.where(e,n,!0)},k.max=function(e,n,t){if(!n&&k.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.max.apply(Math,e);if(!n&&k.isEmpty(e))return-1/0;var r={computed:-1/0,value:-1/0};return S(e,function(e,a,i){var o=n?n.call(t,e,a,i):e;o>r.computed&&(r={value:e,computed:o})}),r.value},k.min=function(e,n,t){if(!n&&k.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.min.apply(Math,e);if(!n&&k.isEmpty(e))return 1/0;var r={computed:1/0,value:1/0};return S(e,function(e,a,i){var o=n?n.call(t,e,a,i):e;or||void 0===t)return 1;if(r>t||void 0===r)return-1}return e.indexi;){var s=i+o>>>1;t.call(r,e[s])=0})})},k.difference=function(e){var n=l.apply(r,s.call(arguments,1));return k.filter(e,function(e){return!k.contains(n,e)})},k.zip=function(){for(var e=k.max(k.pluck(arguments,"length").concat(0)),n=new Array(e),t=0;e>t;t++)n[t]=k.pluck(arguments,""+t);return n},k.object=function(e,n){if(null==e)return{};for(var t={},r=0,a=e.length;a>r;r++)n?t[e[r]]=n[r]:t[e[r][0]]=e[r][1];return t},k.indexOf=function(e,n,t){if(null==e)return-1;var r=0,a=e.length;if(t){if("number"!=typeof t)return r=k.sortedIndex(e,n),e[r]===n?r:-1;r=0>t?Math.max(0,a+t):t}if(b&&e.indexOf===b)return e.indexOf(n,t);for(;a>r;r++)if(e[r]===n)return r;return-1},k.lastIndexOf=function(e,n,t){if(null==e)return-1;var r=null!=t;if(w&&e.lastIndexOf===w)return r?e.lastIndexOf(n,t):e.lastIndexOf(n);for(var a=r?t:e.length;a--;)if(e[a]===n)return a;return-1},k.range=function(e,n,t){arguments.length<=1&&(n=e||0,e=0),t=arguments[2]||1;for(var r=Math.max(Math.ceil((n-e)/t),0),a=0,i=new Array(r);r>a;)i[a++]=e,e+=t;return i};var $=function(){};k.bind=function(e,n){var t,r;if(C&&e.bind===C)return C.apply(e,s.call(arguments,1));if(!k.isFunction(e))throw new TypeError;return t=s.call(arguments,2),r=function(){if(!(this instanceof r))return e.apply(n,t.concat(s.call(arguments)));$.prototype=e.prototype;var a=new $;$.prototype=null;var i=e.apply(a,t.concat(s.call(arguments)));return Object(i)===i?i:a}},k.partial=function(e){var n=s.call(arguments,1);return function(){return e.apply(this,n.concat(s.call(arguments)))}},k.bindAll=function(e){var n=s.call(arguments,1);if(0===n.length)throw new Error("bindAll must be passed function names");return S(n,function(n){e[n]=k.bind(e[n],e)}),e},k.memoize=function(e,n){var t={};return n||(n=k.identity),function(){var r=n.apply(this,arguments);return k.has(t,r)?t[r]:t[r]=e.apply(this,arguments)}},k.delay=function(e,n){var t=s.call(arguments,2);return setTimeout(function(){return e.apply(null,t)},n)},k.defer=function(e){return k.delay.apply(k,[e,1].concat(s.call(arguments,1)))},k.throttle=function(e,n,t){var r,a,i,o=null,s=0;t||(t={});var l=function(){s=t.leading===!1?0:new Date,o=null,i=e.apply(r,a)};return function(){var c=new Date;s||t.leading!==!1||(s=c);var u=n-(c-s);return r=this,a=arguments,0>=u?(clearTimeout(o),o=null,s=c,i=e.apply(r,a)):o||t.trailing===!1||(o=setTimeout(l,u)),i}},k.debounce=function(e,n,t){var r,a=null;return function(){var i=this,o=arguments,s=function(){a=null,t||(r=e.apply(i,o))},l=t&&!a;return clearTimeout(a),a=setTimeout(s,n),l&&(r=e.apply(i,o)),r}},k.once=function(e){var n,t=!1;return function(){return t?n:(t=!0,n=e.apply(this,arguments),e=null,n)}},k.wrap=function(e,n){return function(){var t=[e];return o.apply(t,arguments),n.apply(this,t)}},k.compose=function(){var e=arguments;return function(){for(var n=arguments,t=e.length-1;t>=0;t--)n=[e[t].apply(this,n)];return n[0]}},k.after=function(e,n){return function(){return--e<1?n.apply(this,arguments):void 0}},k.keys=y||function(e){if(e!==Object(e))throw new TypeError("Invalid object");var n=[];for(var t in e)k.has(e,t)&&n.push(t);return n},k.values=function(e){var n=[];for(var t in e)k.has(e,t)&&n.push(e[t]);return n},k.pairs=function(e){var n=[];for(var t in e)k.has(e,t)&&n.push([t,e[t]]);return n},k.invert=function(e){var n={};for(var t in e)k.has(e,t)&&(n[e[t]]=t);return n},k.functions=k.methods=function(e){var n=[];for(var t in e)k.isFunction(e[t])&&n.push(t);return n.sort()},k.extend=function(e){return S(s.call(arguments,1),function(n){if(n)for(var t in n)e[t]=n[t]}),e},k.pick=function(e){var n={},t=l.apply(r,s.call(arguments,1));return S(t,function(t){t in e&&(n[t]=e[t])}),n},k.omit=function(e){var n={},t=l.apply(r,s.call(arguments,1));for(var a in e)k.contains(t,a)||(n[a]=e[a]);return n},k.defaults=function(e){return S(s.call(arguments,1),function(n){if(n)for(var t in n)void 0===e[t]&&(e[t]=n[t])}),e},k.clone=function(e){return k.isObject(e)?k.isArray(e)?e.slice():k.extend({},e):e},k.tap=function(e,n){return n(e),e};var L=function(e,n,t,r){if(e===n)return 0!==e||1/e==1/n;if(null==e||null==n)return e===n;e instanceof k&&(e=e._wrapped),n instanceof k&&(n=n._wrapped);var a=c.call(e);if(a!=c.call(n))return!1;switch(a){case"[object String]":return e==String(n);case"[object Number]":return e!=+e?n!=+n:0==e?1/e==1/n:e==+n;case"[object Date]":case"[object Boolean]":return+e==+n;case"[object RegExp]":return e.source==n.source&&e.global==n.global&&e.multiline==n.multiline&&e.ignoreCase==n.ignoreCase}if("object"!=typeof e||"object"!=typeof n)return!1;for(var i=t.length;i--;)if(t[i]==e)return r[i]==n;var o=e.constructor,s=n.constructor;if(o!==s&&!(k.isFunction(o)&&o instanceof o&&k.isFunction(s)&&s instanceof s))return!1;t.push(e),r.push(n);var l=0,u=!0;if("[object Array]"==a){if(l=e.length,u=l==n.length)for(;l--&&(u=L(e[l],n[l],t,r)););}else{for(var d in e)if(k.has(e,d)&&(l++,!(u=k.has(n,d)&&L(e[d],n[d],t,r))))break;if(u){for(d in n)if(k.has(n,d)&&!l--)break;u=!l}}return t.pop(),r.pop(),u};k.isEqual=function(e,n){return L(e,n,[],[])},k.isEmpty=function(e){if(null==e)return!0;if(k.isArray(e)||k.isString(e))return 0===e.length;for(var n in e)if(k.has(e,n))return!1;return!0},k.isElement=function(e){return!(!e||1!==e.nodeType)},k.isArray=x||function(e){return"[object Array]"==c.call(e)},k.isObject=function(e){return e===Object(e)},S(["Arguments","Function","String","Number","Date","RegExp"],function(e){k["is"+e]=function(n){return c.call(n)=="[object "+e+"]"}}),k.isArguments(arguments)||(k.isArguments=function(e){return!(!e||!k.has(e,"callee"))}),"function"!=typeof/./&&(k.isFunction=function(e){return"function"==typeof e}),k.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},k.isNaN=function(e){return k.isNumber(e)&&e!=+e},k.isBoolean=function(e){return e===!0||e===!1||"[object Boolean]"==c.call(e)},k.isNull=function(e){return null===e},k.isUndefined=function(e){return void 0===e},k.has=function(e,n){return u.call(e,n)},k.noConflict=function(){return e._=n,this},k.identity=function(e){return e},k.times=function(e,n,t){for(var r=Array(Math.max(0,e)),a=0;e>a;a++)r[a]=n.call(t,a);return r},k.random=function(e,n){return null==n&&(n=e,e=0),e+Math.floor(Math.random()*(n-e+1))};var A={escape:{"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"}};A.unescape=k.invert(A.escape);var R={escape:new RegExp("["+k.keys(A.escape).join("")+"]","g"),unescape:new RegExp("("+k.keys(A.unescape).join("|")+")","g")};k.each(["escape","unescape"],function(e){k[e]=function(n){return null==n?"":(""+n).replace(R[e],function(n){return A[e][n]})}}),k.result=function(e,n){if(null==e)return void 0;var t=e[n];return k.isFunction(t)?t.call(e):t},k.mixin=function(e){S(k.functions(e),function(n){var t=k[n]=e[n];k.prototype[n]=function(){var e=[this._wrapped];return o.apply(e,arguments),O.call(this,t.apply(k,e))}})};var N=0;k.uniqueId=function(e){var n=++N+"";return e?e+n:n},k.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var P=/(.)^/,B={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\t|\u2028|\u2029/g;k.template=function(e,n,t){var r;t=k.defaults({},t,k.templateSettings);var a=new RegExp([(t.escape||P).source,(t.interpolate||P).source,(t.evaluate||P).source].join("|")+"|$","g"),i=0,o="__p+='";e.replace(a,function(n,t,r,a,s){return o+=e.slice(i,s).replace(D,function(e){return"\\"+B[e]}),t&&(o+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'"),r&&(o+="'+\n((__t=("+r+"))==null?'':__t)+\n'"),a&&(o+="';\n"+a+"\n__p+='"),i=s+n.length,n}),o+="';\n",t.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{r=new Function(t.variable||"obj","_",o)}catch(s){throw s.source=o,s}if(n)return r(n,k);var l=function(e){return r.call(this,e,k)};return l.source="function("+(t.variable||"obj")+"){\n"+o+"}",l},k.chain=function(e){return k(e).chain()};var O=function(e){return this._chain?k(e).chain():e};k.mixin(k),S(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var n=r[e];k.prototype[e]=function(){var t=this._wrapped;return n.apply(t,arguments),"shift"!=e&&"splice"!=e||0!==t.length||delete t[0],O.call(this,t)}}),S(["concat","join","slice"],function(e){var n=r[e];k.prototype[e]=function(){return O.call(this,n.apply(this._wrapped,arguments))}}),k.extend(k.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this),define("underscore",function(e){return function(){var n;return n||e._}}(this)),function(e,n){"object"==typeof exports?module.exports=n():"function"==typeof define&&define.amd?define("crel",n):e.crel=n()}(this,function(){function e(){var t,r=window.document,a=arguments,i=r.createElement(a[0]),o=a[1],s=2,l=a.length,c=e.attrMap;if(1===l)return i;if(("object"!=typeof o||n(o))&&(--s,o=null),l-s===1&&"string"==typeof a[s]&&void 0!==i.textContent)i.textContent=a[s];else for(;l>s;++s)t=a[s],null!=t&&(n(t)||(t=r.createTextNode(t)),i.appendChild(t));for(var u in o)if(c[u]){var d=e.attrMap[u];"function"==typeof d?d(i,o[u]):i.setAttribute(d,o[u])}else i.setAttribute(u,o[u]);return i}var n="object"==typeof Node?function(e){return e instanceof Node}:function(e){return e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName};return e.attrMap={},e.isNode=n,e}),define("constants",[],function(){var e={};return e.EDITOR_DEFAULT_PADDING=5,e.fontSize=14,e.fontFamily="Menlo, 'Ubuntu Mono', Consolas, 'Courier New', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif;",e}),function(e){var n;"function"==typeof define?define("xregexp",e):"object"==typeof exports?(n=e(),("object"==typeof module?module.exports=n:exports).XRegExp=n):XRegExp=e()}(function(){var e=function(e){function n(e,n,t){var r;if(t)if(e.__proto__)e.__proto__=h.prototype;else for(r in h.prototype)e[r]=h.prototype[r];return e[b]={captureNames:n},e}function t(e){return x.replace.call(e,/([\s\S])(?=[\s\S]*\1)/g,"")}function r(e,r){if(!h.isRegExp(e))throw new TypeError("Type RegExp expected");var a=x.exec.call(/\/([a-z]*)$/i,String(e))[1];return r=r||{},r.add&&(a=t(a+r.add)),r.remove&&(a=x.replace.call(a,new RegExp("["+r.remove+"]+","g"),"")),e=n(new RegExp(e.source,a),i(e)?e[b].captureNames.slice(0):null,r.addProto)}function a(){return{captureNames:null}}function i(e){return!(!e[b]||!e[b].captureNames)}function o(e,n){if(Array.prototype.indexOf)return e.indexOf(n);var t,r=e.length;for(t=0;r>t;++t)if(e[t]===n)return t;return-1}function s(e,n){return A.call(e)==="[object "+n+"]"}function l(e,n,t){return x.test.call(t.indexOf("x")>-1?/^(?:\s+|#.*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/:/^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/,e.slice(n))}function c(e,n){var r;if(t(n)!==n)throw new SyntaxError("Invalid duplicate regex flag "+n);for(e=x.replace.call(e,/^\(\?([\w$]+)\)/,function(e,r){if(x.test.call(/[gy]/,r))throw new SyntaxError("Cannot use flag g or y in mode modifier "+e);return n=t(n+r),""}),r=0;r-1)&&(i=h.exec(e,o.regex,t,"sticky"))){l={matchLength:i[0].length,output:o.handler.call(a,i,r,n),reparse:o.reparse};break}return l}function f(e){h.cache.flush("patterns"),w.astral=e}function m(e){RegExp.prototype.exec=(e?y:x).exec,RegExp.prototype.test=(e?y:x).test,String.prototype.match=(e?y:x).match,String.prototype.replace=(e?y:x).replace,String.prototype.split=(e?y:x).split,w.natives=e}function g(e){if(null==e)throw new TypeError("Cannot convert null or undefined to object");return e}var h,v,b="xregexp",w={astral:!1,natives:!1},x={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},y={},C={},k={},S=[],_="default",E="class",T={"default":/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,"class":/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|[\s\S]/},I=/\$(?:{([\w$]+)}|(\d\d?|[\s\S]))/g,M=x.exec.call(/()??/,"")[1]===e,$=RegExp.prototype.sticky!==e,L={g:!0,i:!0,m:!0,y:$},A={}.toString;return h=function(t,a){var i,o,s,l={hasNamedCapture:!1,captureNames:[]},u=_,d="",f=0;if(h.isRegExp(t)){if(a!==e)throw new TypeError("Cannot supply flags when copying a RegExp");return r(t,{addProto:!0})}if(t=t===e?"":String(t),a=a===e?"":String(a),s=t+"***"+a,!k[s]){for(i=c(t,a),t=i.pattern,a=i.flags;f"}else if(a)return"\\"+(+a+t);return e};if(!s(e,"Array")||!e.length)throw new TypeError("Must provide a nonempty array of patterns to merge");for(i=0;i1&&o(l,"")>-1&&(a=r(this,{remove:"g"}),x.replace.call(String(n).slice(l.index),a,function(){var n,t=arguments.length;for(n=1;t-2>n;++n)arguments[n]===e&&(l[n]=e)})),this[b]&&this[b].captureNames)for(i=1;il.index&&(this.lastIndex=l.index)}return this.global||(this.lastIndex=s),l},y.test=function(e){return!!y.exec.call(this,e)},y.match=function(e){var n;if(h.isRegExp(e)){if(e.global)return n=x.match.apply(this,arguments),e.lastIndex=0,n}else e=new RegExp(e);return y.exec.call(e,g(this))},y.replace=function(n,t){var r,a,i,l=h.isRegExp(n);return l?(n[b]&&(a=n[b].captureNames),r=n.lastIndex):n+="",i=s(t,"Function")?x.replace.call(String(this),n,function(){var r,i=arguments;if(a)for(i[0]=new String(i[0]),r=0;ri)throw new SyntaxError("Backreference to undefined group "+n);return e[i+1]||""}if("$"===r)return"$";if("&"===r||0===+r)return e[0];if("`"===r)return e[e.length-1].slice(0,e[e.length-2]);if("'"===r)return e[e.length-1].slice(e[e.length-2]+e[0].length);if(r=+r,!isNaN(r)){if(r>e.length-3)throw new SyntaxError("Backreference to undefined group "+n);return e[r]||""}throw new SyntaxError("Invalid token "+n)})}),l&&(n.lastIndex=n.global?0:r),i},y.split=function(n,t){if(!h.isRegExp(n))return x.split.apply(this,arguments);var r,a=String(this),i=[],o=n.lastIndex,s=0;return t=(t===e?-1:t)>>>0,h.forEach(a,n,function(e){e.index+e[0].length>s&&(i.push(a.slice(s,e.index)),e.length>1&&e.indext?i.slice(0,t):i},v=h.addToken,v(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4})|x(?![\dA-Fa-f]{2}))/,function(e,n){if("B"===e[1]&&n===_)return e[0];throw new SyntaxError("Invalid escape "+e[0])},{scope:"all"}),v(/\[(\^?)]/,function(e){return e[1]?"[\\s\\S]":"\\b\\B"}),v(/\(\?#[^)]*\)/,function(e,n,t){return l(e.input,e.index+e[0].length,t)?"":"(?:)"}),v(/\s+|#.*/,function(e,n,t){return l(e.input,e.index+e[0].length,t)?"":"(?:)"},{flag:"x"}),v(/\./,function(){return"[\\s\\S]"},{flag:"s"}),v(/\\k<([\w$]+)>/,function(e){var n=isNaN(e[1])?o(this.captureNames,e[1])+1:+e[1],t=e.index+e[0].length;if(!n||n>this.captureNames.length)throw new SyntaxError("Backreference to undefined group "+e[0]);return"\\"+n+(t===e.input.length||isNaN(e.input.charAt(t))?"":"(?:)")}),v(/\\(\d+)/,function(e,n){if(!(n===_&&/^[1-9]/.test(e[1])&&+e[1]<=this.captureNames.length)&&"0"!==e[1])throw new SyntaxError("Cannot use octal escape or backreference to undefined group "+e[0]);return e[0]},{scope:"all"}),v(/\(\?P?<([\w$]+)>/,function(e){if(!isNaN(e[1]))throw new SyntaxError("Cannot use integer as capture name "+e[0]);if("length"===e[1]||"__proto__"===e[1])throw new SyntaxError("Cannot use reserved word as capture name "+e[0]);if(o(this.captureNames,e[1])>-1)throw new SyntaxError("Cannot use same name for multiple groups "+e[0]);return this.captureNames.push(e[1]),this.hasNamedCapture=!0,"("}),v(/\((?!\?)/,function(e,n,t){return t.indexOf("n")>-1?"(?:":(this.captureNames.push(null),"(")},{optionalFlags:"n"}),h}();return function(e){function n(e){var n=/^\^/,t=/\$$/;return n.test(e)&&t.test(e.replace(/\\[\s\S]/g,""))?e.replace(n,"").replace(t,""):e}function t(n){return e.isRegExp(n)?n[r]&&n[r].captureNames?n:e(n.source):e(n)}var r="xregexp",a=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*]/g,i=e.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/,a],"g");e.build=function(o,s,l){var c,u,d,p,f=/^\(\?([\w$]+)\)/.exec(o),m={},g=0,h=0,v=[0];f&&(l=l||"",f[1].replace(/./g,function(e){l+=l.indexOf(e)>-1?"":e}));for(p in s)s.hasOwnProperty(p)&&(d=t(s[p]),m[p]={pattern:n(d.source),names:d[r].captureNames||[]});return o=t(o),u=o[r].captureNames||[],o=o.source.replace(i,function(e,n,t,r,i){var o,s,l=n||t;if(l){if(!m.hasOwnProperty(l))throw new ReferenceError("Undefined property "+e);return n?(o=u[h],v[++h]=++g,s="(?<"+(o||l)+">"):s="(?:",c=g,s+m[l].pattern.replace(a,function(e,n,t){if(n){if(o=m[l].names[g-c],++g,o)return"(?<"+o+">"}else if(t)return"\\"+(+t+c);return e})+")"}if(r){if(o=u[h],v[++h]=++g,o)return"(?<"+o+">"}else if(i)return"\\"+v[+i];return e}),e(o,l)}}(e),function(e){function n(e,n,t,r){return{name:e,value:n,start:t,end:r}}e.matchRecursive=function(t,r,a,i,o){i=i||"",o=o||{};var s,l,c,u,d,p=i.indexOf("g")>-1,f=i.indexOf("y")>-1,m=i.replace(/y/g,""),g=o.escapeChar,h=o.valueNames,v=[],b=0,w=0,x=0,y=0;if(r=e(r,m),a=e(a,m),g){if(g.length>1)throw new Error("Cannot use more than one escape character");g=e.escape(g),d=new RegExp("(?:"+g+"[\\S\\s]|(?:(?!"+e.union([r,a]).source+")[^"+g+"])+)+",i.replace(/[^im]+/g,""))}for(;;){if(g&&(x+=(e.exec(t,d,x,"sticky")||[""])[0].length),c=e.exec(t,r,x),u=e.exec(t,a,x),c&&u&&(c.index<=u.index?u=null:c=null),c||u)w=(c||u).index,x=w+(c||u)[0].length;else if(!b)break;if(f&&!b&&w>y)break;if(c)b||(s=w,l=x),++b;else{if(!u||!b)throw new Error("Unbalanced delimiter found in string");if(!--b&&(h?(h[0]&&s>y&&v.push(n(h[0],t.slice(y,s),y,s)),h[1]&&v.push(n(h[1],t.slice(s,l),s,l)),h[2]&&v.push(n(h[2],t.slice(l,w),l,w)),h[3]&&v.push(n(h[3],t.slice(w,x),w,x))):v.push(t.slice(l,w)),y=x,!p))break}w===x&&++x}return p&&!f&&h&&h[0]&&t.length>y&&v.push(n(h[0],t.slice(y),y,t.length)),v}}(e),function(e){function n(e){return e.replace(/[- _]+/g,"").toLowerCase()}function t(e){for(;e.length<4;)e="0"+e;return e}function r(e){return parseInt(e,16)}function a(e){return parseInt(e,10).toString(16)}function i(e){var n=/^\\[xu](.+)/.exec(e);return n?r(n[1]):e.charCodeAt("\\"===e.charAt(0)?1:0)}function o(n){var r,o="",s=-1;return e.forEach(n,/(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,function(e){r=i(e[1]),r>s+1&&(o+="\\u"+t(a(s+1)),r>s+2&&(o+="-\\u"+t(a(r-1)))),s=i(e[2]||e[1])}),65535>s&&(o+="\\u"+t(a(s+1)),65534>s&&(o+="-\\uFFFF")),o}function s(e){var n="b!";return u[e][n]||(u[e][n]=o(u[e].bmp))}function l(e,n){var t=u[e],r="";return t.bmp&&!t.isBmpLast&&(r="["+t.bmp+"]"+(t.astral?"|":"")),t.astral&&(r+=t.astral),t.isBmpLast&&t.bmp&&(r+=(t.astral?"|":"")+"["+t.bmp+"]"),n?"(?:(?!"+r+")(?:[�-�][�-�]|[\x00-￿]))":"(?:"+r+")"}function c(e,n){var t=n?"a!":"a=";return u[e][t]||(u[e][t]=l(e,n))}var u={};e.addToken(/\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/,function(t,r,a){var i="Invalid double negation ",o="Unknown Unicode token ",l="Unicode token missing data ",d="Astral mode required for Unicode token ",p="Astral mode does not support Unicode tokens within character classes",f="P"===t[1]||!!t[2],m=a.indexOf("A")>-1||e.isInstalled("astral"),g=n(t[4]||t[3]),h=u[g];if("P"===t[1]&&t[2])throw new SyntaxError(i+t[0]);if(!u.hasOwnProperty(g))throw new SyntaxError(o+t[0]);if(h.inverseOf){if(g=n(h.inverseOf),!u.hasOwnProperty(g))throw new ReferenceError(l+t[0]+" -> "+h.inverseOf);h=u[g],f=!f}if(!h.bmp&&!m)throw new SyntaxError(d+t[0]);if(m){if("class"===r)throw new SyntaxError(p);return c(g,f)}return"class"===r?f?s(g):h.bmp:(f?"[^":"[")+h.bmp+"]"},{scope:"all",optionalFlags:"A"}),e.addUnicodeData=function(t){var r,a,i="Unicode token requires name",o="Unicode token has no character data ";for(a=0;a\\x5E`\\x7C~¢-¦¨©¬®-±´¸×÷˂-˅˒-˟˥-˫˭˯-˿͵΄΅϶҂֏؆-؈؋؎؏۞۩۽۾߶৲৳৺৻૱୰௳-௺౿൹฿༁-༃༓༕-༗༚-༟༴༶༸྾-࿅࿇-࿌࿎࿏࿕-࿘႞႟᎐-᎙៛᥀᧞-᧿᭡-᭪᭴-᭼᾽᾿-῁῍-῏῝-῟῭-`´῾⁄⁒⁺-⁼₊-₌₠-₺℀℁℃-℆℈℉℔№-℘℞-℣℥℧℩℮℺℻⅀-⅄⅊-⅍⅏←-⌨⌫-⏳␀-␦⑀-⑊⒜-ⓩ─-⛿✁-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭌⭐-⭙⳥-⳪⺀-⺙⺛-⻳⼀-⿕⿰-⿻〄〒〓〠〶〷〾〿゛゜㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰㋀-㋾㌀-㏿䷀-䷿꒐-꓆꜀-꜖꜠꜡꞉꞊꠨-꠫꠶-꠹꩷-꩹﬩﮲-﯁﷼﷽﹢﹤-﹦﹩$+<->^`|~¢-₩│-○�",astral:"�[�-���-��-��-��-��-��-��-��-��-�]|�[����������]|�[�-��-��-��-��-��-��-��-��-��-��-��-����-��-��-��-��-��-��-�]|�[�-��-��-��-����-��-��-���-�]|�[�-��-��-��-�]|�[��]"},{name:"Sc",alias:"Currency_Symbol",bmp:"\\x24¢-¥֏؋৲৳৻૱௹฿៛₠-₺꠸﷼﹩$¢£¥₩"},{name:"Sk",alias:"Modifier_Symbol",bmp:"\\x5E`¨¯´¸˂-˅˒-˟˥-˫˭˯-˿͵΄΅᾽᾿-῁῍-῏῝-῟῭-`´῾゛゜꜀-꜖꜠꜡꞉꞊﮲-﯁^` ̄"},{name:"Sm",alias:"Math_Symbol",bmp:"\\x2B<->\\x7C~¬±×÷϶؆-؈⁄⁒⁺-⁼₊-₌℘⅀-⅄⅋←-↔↚↛↠↣↦↮⇎⇏⇒⇔⇴-⋿⌈-⌋⌠⌡⍼⎛-⎳⏜-⏡▷◁◸-◿♯⟀-⟄⟇-⟥⟰-⟿⤀-⦂⦙-⧗⧜-⧻⧾-⫿⬰-⭄⭇-⭌﬩﹢﹤-﹦+<->|~¬←-↓",astral:"�[��]|�[����������]"},{name:"So",alias:"Other_Symbol",bmp:"¦©®°҂؎؏۞۩۽۾߶৺୰௳-௸௺౿൹༁-༃༓༕-༗༚-༟༴༶༸྾-࿅࿇-࿌࿎࿏࿕-࿘႞႟᎐-᎙᥀᧞-᧿᭡-᭪᭴-᭼℀℁℃-℆℈℉℔№℗℞-℣℥℧℩℮℺℻⅊⅌⅍⅏↕-↙↜-↟↡↢↤↥↧-↭↯-⇍⇐⇑⇓⇕-⇳⌀-⌇⌌-⌟⌢-⌨⌫-⍻⍽-⎚⎴-⏛⏢-⏳␀-␦⑀-⑊⒜-ⓩ─-▶▸-◀◂-◷☀-♮♰-⛿✁-❧➔-➿⠀-⣿⬀-⬯⭅⭆⭐-⭙⳥-⳪⺀-⺙⺛-⻳⼀-⿕⿰-⿻〄〒〓〠〶〷〾〿㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰㋀-㋾㌀-㏿䷀-䷿꒐-꓆꠨-꠫꠶꠷꠹꩷-꩹﷽¦│■○�",astral:"�[�-���-��-��-��-��-��-��-��-��-�]|�[�-��-��-��-����-��-��-���-�]|�[�-��-��-��-��-��-��-��-��-��-��-��-����-��-��-��-��-��-��-�]|�[�-��-��-��-�]"},{name:"Z",alias:"Separator",bmp:"   ᠎ - \u2028\u2029   "},{name:"Zl",alias:"Line_Separator",bmp:"\u2028"},{name:"Zp",alias:"Paragraph_Separator",bmp:"\u2029"},{name:"Zs",alias:"Space_Separator",bmp:"   ᠎ -    "}])}(e),function(e){if(!e.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Properties");e.addUnicodeData([{name:"ASCII",bmp:"\x00-"},{name:"Alphabetic",bmp:"A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͅͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևְ-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-ٗٙ-ٟٮ-ۓە-ۜۡ-ۭۨ-ۯۺ-ۼۿܐ-ܿݍ-ޱߊ-ߪߴߵߺࠀ-ࠗࠚ-ࠬࡀ-ࡘࢠࢢ-ࢬࣤ-ࣰࣩ-ࣾऀ-ऻऽ-ौॎ-ॐॕ-ॣॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হঽ-ৄেৈোৌৎৗড়ঢ়য়-ৣৰৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਾ-ੂੇੈੋੌੑਖ਼-ੜਫ਼ੰ-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽ-ૅે-ૉોૌૐૠ-ૣଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽ-ୄେୈୋୌୖୗଡ଼ଢ଼ୟ-ୣୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-ௌௐௗఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-ౌౕౖౘౙౠ-ౣಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ-ೄೆ-ೈೊ-ೌೕೖೞೠ-ೣೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൌൎൗൠ-ൣൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆා-ුූෘ-ෟෲෳก-ฺเ-ๆํກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆໍໜ-ໟༀཀ-ཇཉ-ཬཱ-ཱྀྈ-ྗྙ-ྼက-ံးျ-ဿၐ-ၢၥ-ၨၮ-ႆႎႜႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜓᜠ-ᜳᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-ឳា-ៈៗៜᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-ᤸᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨛᨠ-ᩞᩡ-ᩴᪧᬀ-ᬳᬵ-ᭃᭅ-ᭋᮀ-ᮩᮬ-ᮯᮺ-ᯥᯧ-ᯱᰀ-ᰵᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳳᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⒶ-ⓩⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙴ-ꙻꙿ-ꚗꚟ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠧꡀ-ꡳꢀ-ꣃꣲ-ꣷꣻꤊ-ꤪꤰ-ꥒꥠ-ꥼꦀ-ꦲꦴ-ꦿꧏꨀ-ꨶꩀ-ꩍꩠ-ꩶꩺꪀ-ꪾꫀꫂꫛ-ꫝꫠ-ꫯꫲ-ꫵꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",astral:"�[�-�]|�[�-�]|�[�-�]|�[�-�]|�[�-��-��-��-��-��-�]|[��-��-�][�-�]|�[�-�]|�[�-��-�]|�[�-�]|�[�-�]|�[�-���-�����-��-��-��-����-����-��-��-��-��-��-��-�]|�[�-��-��-����-��-��-��-��-��-��-��-��-��-��-��-�]|�[�-��-��-�]|�[�-��-�������-��-���-��-��-��-��-��-��-��-���-��-��-��-��-��-��-��-��-��-��-��-��-�]|�[�-��-������-��-��������-�������������-��-��-��-���-��-��-��-��-�]|�[�-��-�]|�[��]|�[�-�]|�[�-�]"},{name:"Any",isBmpLast:!0,bmp:"\x00-￿",astral:"[�-�][�-�]"},{name:"Assigned",inverseOf:"Cn"},{name:"Default_Ignorable_Code_Point",bmp:"­͏ᅟᅠ឴឵᠋-᠍​-‏‪-‮⁠-ㅤ︀-️ᅠ￰-￸",astral:"[�-�][�-�]|�[�-�]"},{name:"Lowercase",bmp:"a-zªµºß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌƍƒƕƙ-ƛƞơƣƥƨƪƫƭưƴƶƹƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿɀɂɇɉɋɍɏ-ʓʕ-ʸˀˁˠ-ˤͅͱͳͷͺ-ͽΐά-ώϐϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧա-ևᴀ-ᶿḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶᾷιῂ-ῄῆῇῐ-ΐῖῗῠ-ῧῲ-ῴῶῷⁱⁿₐ-ₜℊℎℏℓℯℴℹℼℽⅆ-ⅉⅎⅰ-ⅿↄⓐ-ⓩⰰ-ⱞⱡⱥⱦⱨⱪⱬⱱⱳⱴⱶ-ⱽⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓꞡꞣꞥꞧꞩꟸ-ꟺff-stﬓ-ﬗa-z",astral:"�[�-��-��-��-��-���-��-��-��-��-��-��-��-��-��-��-��-��-��-��-��-��-��-��-��-��-��]|�[�-�]"},{name:"Noncharacter_Code_Point",bmp:"﷐-﷯￾￿",astral:"[����������������][��]"},{name:"Uppercase",bmp:"A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉ-ƋƎ-ƑƓƔƖ-ƘƜƝƟƠƢƤƦƧƩƬƮƯƱ-ƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾℿⅅⅠ-ⅯↃⒶ-ⓏⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z",astral:"�[�-��-��-��������-��-��-����-��-��-����-��-���-��-��-��-��-��-��-��-��-��-��-��-��]|�[�-�]"},{name:"White_Space",bmp:" -\r …  ᠎ - \u2028\u2029   "}])}(e),function(e){if(!e.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts");e.addUnicodeData([{name:"Arabic",bmp:"؀-؄؆-؋؍-ؚ؞ؠ-ؿف-يٖ-ٟ٪-ٯٱ-ۜ۞-ۿݐ-ݿࢠࢢ-ࢬࣤ-ࣾﭐ-﯁ﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-﷼ﹰ-ﹴﹶ-ﻼ",astral:"�[�-�]|�[�-��-������-��-��������-�������������-��-��-��-���-��-��-��-��-���]"},{name:"Armenian",bmp:"Ա-Ֆՙ-՟ա-և֊֏ﬓ-ﬗ"},{name:"Avestan",astral:"�[�-��-�]"},{name:"Balinese",bmp:"ᬀ-ᭋ᭐-᭼"},{name:"Bamum",bmp:"ꚠ-꛷",astral:"�[�-�]"},{name:"Batak",bmp:"ᯀ-᯳᯼-᯿"},{name:"Bengali",bmp:"ঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-৻"},{name:"Bopomofo",bmp:"˪˫ㄅ-ㄭㆠ-ㆺ"},{name:"Brahmi",astral:"�[�-��-�]"},{name:"Braille",bmp:"⠀-⣿"},{name:"Buginese",bmp:"ᨀ-ᨛ᨞᨟"},{name:"Buhid",bmp:"ᝀ-ᝓ"},{name:"Canadian_Aboriginal",bmp:"᐀-ᙿᢰ-ᣵ"},{name:"Carian",astral:"�[�-�]"},{name:"Chakma",astral:"�[�-��-�]"},{name:"Cham",bmp:"ꨀ-ꨶꩀ-ꩍ꩐-꩙꩜-꩟"},{name:"Cherokee",bmp:"Ꭰ-Ᏼ"},{name:"Common",bmp:"\x00-@\\x5B-`\\x7B-©«-¹»-¿×÷ʹ-˟˥-˩ˬ-˿ʹ;΅·։،؛؟ـ٠-٩۝।॥฿࿕-࿘჻᛫-᛭᜵᜶᠂᠃᠅᳓᳡ᳩ-ᳬᳮ-ᳳᳵᳶ -​‎-⁤-⁰⁴-⁾₀-₎₠-₺℀-℥℧-℩ℬ-ℱℳ-⅍⅏-⅟↉←-⏳␀-␦⑀-⑊①-⛿✁-⟿⤀-⭌⭐-⭙⸀-⸻⿰-⿻ -〄〆〈-〠〰-〷〼-〿゛゜゠・ー㆐-㆟㇀-㇣㈠-㉟㉿-㋏㍘-㏿䷀-䷿꜀-꜡ꞈ-꞊꠰-꠹﴾﴿﷽︐-︙︰-﹒﹔-﹦﹨-﹫!-@[-`{-・ー゙゚¢-₩│-○-�",astral:"�[�-��-��-��-��-�]|�[�-��-��-��-��-��-��-��-��-��-��-����-��-����-��-��-��-��-��-��-�]|�[��-�]|�[�-��-�������-��-���-��-��-��-��-��-��-��-���-��-��-��-�]|�[�-��-��-��-����-��-��-��-�]|�[�-���-��-��-��-��-��-��-��-��-�]"},{name:"Coptic",bmp:"Ϣ-ϯⲀ-ⳳ⳹-⳿"},{name:"Cuneiform",astral:"�[�-��-�]|�[�-�]"},{name:"Cypriot",astral:"�[�-���-�����]"},{name:"Cyrillic",bmp:"Ѐ-҄҇-ԧᴫᵸⷠ-ⷿꙀ-ꚗꚟ"},{name:"Deseret",astral:"�[�-�]"},{name:"Devanagari",bmp:"ऀ-ॐ॓-ॣ०-ॷॹ-ॿ꣠-ꣻ"},{name:"Egyptian_Hieroglyphs",astral:"�[�-�]|�[�-�]"},{name:"Ethiopic",bmp:"ሀ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፼ᎀ-᎙ⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮ"},{name:"Georgian",bmp:"Ⴀ-ჅჇჍა-ჺჼ-ჿⴀ-ⴥⴧⴭ"},{name:"Glagolitic",bmp:"Ⰰ-Ⱞⰰ-ⱞ"},{name:"Gothic",astral:"�[�-�]"},{name:"Greek",bmp:"Ͱ-ͳ͵-ͷͺ-ͽ΄ΆΈ-ΊΌΎ-ΡΣ-ϡϰ-Ͽᴦ-ᴪᵝ-ᵡᵦ-ᵪᶿἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ῄῆ-ΐῖ-Ί῝-`ῲ-ῴῶ-῾Ω",astral:"�[�-�]|�[�-�]"},{name:"Gujarati",bmp:"ઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૱"},{name:"Gurmukhi",bmp:"ਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵ"},{name:"Han",bmp:"⺀-⺙⺛-⻳⼀-⿕々〇〡-〩〸-〻㐀-䶵一-鿌豈-舘並-龎",astral:"[�-��-�][�-�]|�[�-��-�]|�[�-�]|�[�-��-�]|�[�-�]"},{name:"Hangul",bmp:"ᄀ-ᇿ〮〯ㄱ-ㆎ㈀-㈞㉠-㉾ꥠ-ꥼ가-힣ힰ-ퟆퟋ-ퟻᅠ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ"},{name:"Hanunoo",bmp:"ᜠ-᜴"},{name:"Hebrew",bmp:"֑-ׇא-תװ-״יִ-זּטּ-לּמּנּסּףּפּצּ-ﭏ"},{name:"Hiragana",bmp:"ぁ-ゖゝ-ゟ",astral:"𛀁|🈀"},{name:"Imperial_Aramaic",astral:"�[�-��-�]"},{name:"Inherited",bmp:"̀-ًͯ҅҆-ٰٕ॒॑᳐-᳔᳒-᳢᳠-᳨᳭᳴᷀-ᷦ᷼-᷿‌‍⃐-〪⃰-゙゚〭︀-️︠-︦",astral:"�[�-��-��-��-�]|𐇽|�[�-�]"},{name:"Inscriptional_Pahlavi",astral:"�[�-��-�]"},{name:"Inscriptional_Parthian",astral:"�[�-��-�]"},{name:"Javanese",bmp:"ꦀ-꧍ꧏ-꧙꧞꧟"},{name:"Kaithi",astral:"�[�-�]"},{name:"Kannada",bmp:"ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲ"},{name:"Katakana",bmp:"ァ-ヺヽ-ヿㇰ-ㇿ㋐-㋾㌀-㍗ヲ-ッア-ン",astral:"𛀀"},{name:"Kayah_Li",bmp:"꤀-꤯"},{name:"Kharoshthi",astral:"�[�-����-��-��-��-��-��-�]"},{name:"Khmer",bmp:"ក-៝០-៩៰-៹᧠-᧿"},{name:"Lao",bmp:"ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟ"},{name:"Latin",bmp:"A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꟿff-stA-Za-z"},{name:"Lepcha",bmp:"ᰀ-᰷᰻-᱉ᱍ-ᱏ"},{name:"Limbu",bmp:"ᤀ-ᤜᤠ-ᤫᤰ-᤻᥀᥄-᥏"},{name:"Linear_B",astral:"�[�-��-��-����-��-��-�]"},{name:"Lisu",bmp:"ꓐ-꓿"},{name:"Lycian",astral:"�[�-�]"},{name:"Lydian",astral:"�[�-��]"},{name:"Malayalam",bmp:"ംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൵൹-ൿ"},{name:"Mandaic",bmp:"ࡀ-࡛࡞"},{name:"Meetei_Mayek",bmp:"ꫠ-꫶ꯀ-꯭꯰-꯹"},{name:"Meroitic_Cursive",astral:"�[�-���]"},{name:"Meroitic_Hieroglyphs",astral:"�[�-�]"},{name:"Miao",astral:"�[�-��-��-�]"},{name:"Mongolian",bmp:"᠀᠁᠄᠆-᠎᠐-᠙ᠠ-ᡷᢀ-ᢪ"},{name:"Myanmar",bmp:"က-႟ꩠ-ꩻ"},{name:"New_Tai_Lue",bmp:"ᦀ-ᦫᦰ-ᧉ᧐-᧚᧞᧟"},{name:"Nko",bmp:"߀-ߺ"},{name:"Ogham",bmp:" -᚜"},{name:"Ol_Chiki",bmp:"᱐-᱿"},{name:"Old_Italic",astral:"�[�-��-�]"},{name:"Old_Persian",astral:"�[�-��-�]"},{name:"Old_South_Arabian",astral:"�[�-�]"},{name:"Old_Turkic",astral:"�[�-�]"},{name:"Oriya",bmp:"ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୷"},{name:"Osmanya",astral:"�[�-��-�]"},{name:"Phags_Pa",bmp:"ꡀ-꡷"},{name:"Phoenician",astral:"�[�-��]"},{name:"Rejang",bmp:"ꤰ-꥓꥟"},{name:"Runic",bmp:"ᚠ-ᛪᛮ-ᛰ"},{name:"Samaritan",bmp:"ࠀ-࠭࠰-࠾"},{name:"Saurashtra",bmp:"ꢀ-꣄꣎-꣙"},{name:"Sharada",astral:"�[�-��-�]"},{name:"Shavian",astral:"�[�-�]"},{name:"Sinhala",bmp:"ංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲ-෴"},{name:"Sora_Sompeng",astral:"�[�-��-�]"},{name:"Sundanese",bmp:"ᮀ-ᮿ᳀-᳇"},{name:"Syloti_Nagri",bmp:"ꠀ-꠫"},{name:"Syriac",bmp:"܀-܍܏-݊ݍ-ݏ"},{name:"Tagalog",bmp:"ᜀ-ᜌᜎ-᜔"},{name:"Tagbanwa",bmp:"ᝠ-ᝬᝮ-ᝰᝲᝳ"},{name:"Tai_Le",bmp:"ᥐ-ᥭᥰ-ᥴ"},{name:"Tai_Tham",bmp:"ᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪠-᪭"},{name:"Tai_Viet",bmp:"ꪀ-ꫂꫛ-꫟"},{name:"Takri",astral:"�[�-��-�]"},{name:"Tamil",bmp:"ஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௺"},{name:"Telugu",bmp:"ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯౸-౿"},{name:"Thaana",bmp:"ހ-ޱ"},{name:"Thai",bmp:"ก-ฺเ-๛"},{name:"Tibetan",bmp:"ༀ-ཇཉ-ཬཱ-ྗྙ-ྼ྾-࿌࿎-࿔࿙࿚"},{name:"Tifinagh",bmp:"ⴰ-ⵧⵯ⵰⵿"},{name:"Ugaritic",astral:"�[�-��]"},{name:"Vai",bmp:"ꔀ-ꘫ"},{name:"Yi",bmp:"ꀀ-ꒌ꒐-꓆"}])}(e),e}),define("utils",["underscore","crel","xregexp"],function(_,crel,XRegExp){function jqElt(e){return _.isString(e)?$(e):e}function inputError(e,n){void 0!==n&&(e.stop(!0,!0).addClass("error").delay(1e3).switchClass("error"),n.stopPropagation())}var utils={};utils.getURLParameter=function(e){var n=new RegExp("(?:\\?|\\#\\!|&)"+e+"=(.+?)(?:&|\\#|$)");try{return decodeURIComponent(n.exec(location.search+location.hash)[1])}catch(t){return void 0}},utils.getInputValue=function(e){return e=jqElt(e),e.val()},utils.setInputValue=function(e,n){e=jqElt(e),e.val(n)},utils.getInputTextValue=function(e,n,t){e=jqElt(e);var r=e.val();return void 0===r?void inputError(e,n):(r=utils.trim(r),0===r.length||void 0!==t&&!r.match(t)?void inputError(e,n):r)},utils.getInputIntValue=function(e,n,t,r){e=jqElt(e);var a=utils.getInputTextValue(e,n);return void 0===a?void 0:(a=parseInt(a,10),isNaN(a)||void 0!==t&&t>a||void 0!==r&&a>r?void inputError(e,n):a)},utils.getInputRegExpValue=function(e,n){e=jqElt(e);var t=utils.getInputTextValue(e,n);if(void 0===t)return void 0;try{new RegExp(t)}catch(r){return void inputError(e,n)}return t},utils.getInputJsValue=function(element,event){element=jqElt(element);var value=utils.getInputTextValue(element,event);if(void 0===value)return void 0;try{eval("var test="+value)}catch(e){return void inputError(element,event)}return value},utils.getInputChecked=function(e){return e=jqElt(e),e.prop("checked")},utils.setInputChecked=function(e,n){e=jqElt(e),e.prop("checked",n).change()},utils.getInputRadio=function(e){return $("input:radio[name="+e+"]:checked").prop("value")},utils.setInputRadio=function(e,n){$("input:radio[name="+e+"][value="+n+"]").prop("checked",!0).change()},utils.resetModalInputs=function(){$(".modal input[type=text]:not([disabled]), .modal input[type=password], .modal textarea").val(""),$(".modal input[type=checkbox]").prop("checked",!1).change()},utils.trim=function(e){return $.trim(e)};var nonWordChars=XRegExp("[^\\p{L}\\p{N}-]","g");utils.slugify=function(e){return e.toLowerCase().replace(/\s/g,"-").replace(nonWordChars,"").replace(/\-\-+/g,"-").replace(/^-+/,"").replace(/-+$/,"")},utils.checkUrl=function(e,n){return e?(0!==e.indexOf("http")&&(e="http://"+e),n&&-1===e.indexOf("/",e.length-1)&&(e+="/"),e):e},utils.randomString=function(){return _.random(4294967296).toString(36)},utils.updateCurrentTime=function(){utils.currentTime=(new Date).getTime()},utils.updateCurrentTime(),utils.storeAttributes=function(){},utils.retrieveIndexArray=function(){},utils.appendIndexToArray=function(){},utils.removeIndexFromArray=function(){},utils.retrieveIgnoreError=function(){};var eventList=[];return utils.logValue=function(){},utils.logStackTrace=function(){},utils.formatEventList=function(){var e=[];return _.each(eventList,function(n){e.push("\n"),_.isString(n)?e.push(n):_.isArray(n)&&(e.push(n[5]||""),e.push(n[6]||""))}),e.join("")},utils}),define("classes/Extension",[],function(){function e(e,n,t,r,a){this.extensionId=e,this.extensionName=n,this.isOptional=t,this.disableInViewer=r,this.disableInLight=a}return e}),define("settings",[],function(){var e={layoutOrientation:"horizontal",lazyRendering:!0,editorFontFamily:'Menlo, Consolas, "Courier New", Courier, monospace',editorFontSize:13,shortcuts:{},extensionSettings:{}};return e});var IN_GLOBAL_SCOPE=!0;window.PR_SHOULD_USE_CONTINUATION=!0;var prettyPrintOne,prettyPrint;!function(){function e(e){function n(e){var n=e.charCodeAt(0);if(92!==n)return n;var t=e.charAt(1);return n=d[t],n?n:t>="0"&&"7">=t?parseInt(e.substring(1),8):"u"===t||"x"===t?parseInt(e.substring(2),16):e.charCodeAt(1)}function t(e){if(32>e)return(16>e?"\\x0":"\\x")+e.toString(16);var n=String.fromCharCode(e);return"\\"===n||"-"===n||"]"===n||"^"===n?"\\"+n:n}function r(e){var r=e.substring(1,e.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g")),a=[],i="^"===r[0],o=["["];i&&o.push("^");for(var s=i?1:0,l=r.length;l>s;++s){var c=r[s];if(/\\[bdsw]/i.test(c))o.push(c);else{var u,d=n(c);l>s+2&&"-"===r[s+1]?(u=n(r[s+2]),s+=2):u=d,a.push([d,u]),65>u||d>122||(65>u||d>90||a.push([32|Math.max(65,d),32|Math.min(u,90)]),97>u||d>122||a.push([-33&Math.max(97,d),-33&Math.min(u,122)]))}}a.sort(function(e,n){return e[0]-n[0]||n[1]-e[1]});for(var p=[],f=[],s=0;sm[0]&&(m[1]+1>m[0]&&o.push("-"),o.push(t(m[1])))}return o.push("]"),o.join("")}function a(e){for(var n=e.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g")),a=n.length,s=[],l=0,c=0;a>l;++l){var u=n[l];if("("===u)++c;else if("\\"===u.charAt(0)){var d=+u.substring(1);d&&(c>=d?s[d]=-1:n[l]=t(d))}}for(var l=1;ll;++l){var u=n[l];if("("===u)++c,s[c]||(n[l]="(?:");else if("\\"===u.charAt(0)){var d=+u.substring(1);d&&c>=d&&(n[l]="\\"+s[d])}}for(var l=0;a>l;++l)"^"===n[l]&&"^"!==n[l+1]&&(n[l]="");if(e.ignoreCase&&o)for(var l=0;a>l;++l){var u=n[l],p=u.charAt(0);u.length>=2&&"["===p?n[l]=r(u):"\\"!==p&&(n[l]=u.replace(/[a-zA-Z]/g,function(e){var n=e.charCodeAt(0);return"["+String.fromCharCode(-33&n,32|n)+"]"}))}return n.join("")}for(var i=0,o=!1,s=!1,l=0,c=e.length;c>l;++l){var u=e[l];if(u.ignoreCase)s=!0;else if(/[a-z]/i.test(u.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){o=!0,s=!1;break}}for(var d={b:8,t:9,n:10,v:11,f:12,r:13},p=[],l=0,c=e.length;c>l;++l){var u=e[l];if(u.global||u.multiline)throw new Error(""+u);p.push("(?:"+a(u)+")")}return new RegExp(p.join("|"),s?"gi":"g")}function n(e,n){function t(e){var l=e.nodeType;if(1==l){if(r.test(e.className))return;for(var c=e.firstChild;c;c=c.nextSibling)t(c);var u=e.nodeName.toLowerCase();("br"===u||"li"===u)&&(a[s]="\n",o[s<<1]=i++,o[s++<<1|1]=e)}else if(3==l||4==l){var d=e.nodeValue;d.length&&(d=n?d.replace(/\r\n?/g,"\n"):d.replace(/[ \t\r\n]+/g," "),a[s]=d,o[s<<1]=i,i+=d.length,o[s++<<1|1]=e)}}var r=/(?:^|\s)nocode(?:\s|$)/,a=[],i=0,o=[],s=0;return t(e),{sourceCode:a.join("").replace(/\n$/,""),spans:o}}function t(e,n,t,r){if(n){var a={sourceCode:n,basePos:e};t(a),r.push.apply(r,a.decorations)}}function r(e){for(var n=void 0,t=e.firstChild;t;t=t.nextSibling){var r=t.nodeType;n=1===r?n?e:t:3===r&&U.test(t.nodeValue)?e:n}return n===e?void 0:n}function a(n,r){var a,i={};!function(){for(var t=n.concat(r),o=[],s={},l=0,c=t.length;c>l;++l){var u=t[l],d=u[3];if(d)for(var p=d.length;--p>=0;)i[d.charAt(p)]=u;var f=u[1],m=""+f;s.hasOwnProperty(m)||(o.push(f),s[m]=null)}o.push(/[\0-\uffff]/),a=e(o)}();var o=r.length,s=function(e){for(var n=e.sourceCode,l=e.basePos,u=[l,P],d=0,p=n.match(a)||[],f={},m=0,g=p.length;g>m;++m){var h,v=p[m],b=f[v],w=void 0;if("string"==typeof b)h=!1;else{var x=i[v.charAt(0)];if(x)w=v.match(x[1]),b=x[0];else{for(var y=0;o>y;++y)if(x=r[y],w=v.match(x[1])){b=x[0];break}w||(b=P)}h=b.length>=5&&"lang-"===b.substring(0,5),!h||w&&"string"==typeof w[1]||(h=!1,b=O),h||(f[v]=b)}var C=d;if(d+=v.length,h){var k=w[1],S=v.indexOf(k),_=S+k.length;w[2]&&(_=v.length-w[2].length,S=_-k.length);var E=b.substring(5);t(l+C,v.substring(0,S),s,u),t(l+C+S,k,c(E,k),u),t(l+C+_,v.substring(_),s,u)}else u.push(l+C,b)}e.decorations=u};return s}function i(e){var n=[],t=[];n.push(e.tripleQuotedStrings?[M,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""]:e.multiLineStrings?[M,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]:[M,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]),e.verbatimStrings&&t.push([M,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);var r=e.hashComments;r&&(e.cStyleComments?(n.push(r>1?[L,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"]:[L,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"]),t.push([M,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])):n.push([L,/^#[^\r\n]*/,null,"#"])),e.cStyleComments&&(t.push([L,/^\/\/[^\r\n]*/,null]),t.push([L,/^\/\*[\s\S]*?(?:\*\/|$)/,null]));var i=e.regexLiterals;if(i){var o=i>1?"":"\n\r",s=o?".":"[\\S\\s]",l="/(?=[^/*"+o+"])(?:[^/\\x5B\\x5C"+o+"]|\\x5C"+s+"|\\x5B(?:[^\\x5C\\x5D"+o+"]|\\x5C"+s+")*(?:\\x5D|$))+/";t.push(["lang-regex",RegExp("^"+q+"("+l+")")])}var c=e.types;c&&t.push([A,c]);var u=(""+e.keywords).replace(/^ | $/g,"");u.length&&t.push([$,new RegExp("^(?:"+u.replace(/[\s,]+/g,"|")+")\\b"),null]),n.push([P,/^\s+/,null," \r\n  "]);var d="^.[^\\s\\w.$@'\"`/\\\\]*";return e.regexLiterals&&(d+="(?!s*/)"),t.push([R,/^@[a-z_$][a-z_$@0-9]*/i,null],[A,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[P,/^[a-z_$][a-z_$@0-9]*/i,null],[R,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[P,/^\\[\s\S]?/,null],[N,new RegExp(d),null]),a(n,t)}function o(e,n,t){function r(e){var n=e.nodeType;if(1!=n||i.test(e.className)){if((3==n||4==n)&&t){var l=e.nodeValue,c=l.match(o);if(c){var u=l.substring(0,c.index);e.nodeValue=u;var d=l.substring(c.index+c[0].length);if(d){var p=e.parentNode;p.insertBefore(s.createTextNode(d),e.nextSibling)}a(e),u||e.parentNode.removeChild(e)}}}else if("br"===e.nodeName)a(e),e.parentNode&&e.parentNode.removeChild(e);else for(var f=e.firstChild;f;f=f.nextSibling)r(f)}function a(e){function n(e,t){var r=t?e.cloneNode(!1):e,a=e.parentNode;if(a){var i=n(a,1),o=e.nextSibling;i.appendChild(r);for(var s=o;s;s=o)o=s.nextSibling,i.appendChild(s)}return r}for(;!e.nextSibling;)if(e=e.parentNode,!e)return;for(var t,r=n(e.nextSibling,0);(t=r.parentNode)&&1===t.nodeType;)r=t;c.push(r)}for(var i=/(?:^|\s)nocode(?:\s|$)/,o=/\r\n?|\n/,s=e.ownerDocument,l=s.createElement("li");e.firstChild;)l.appendChild(e.firstChild);for(var c=[l],u=0;uu;++u)l=c[u],l.className="L"+(u+p)%10,l.firstChild||l.appendChild(s.createTextNode(" ")),d.appendChild(l);e.appendChild(d)}function s(e){var n=/\bMSIE\s(\d+)/.exec(navigator.userAgent);n=n&&+n[1]<=8;var t=/\n/g,r=e.sourceCode,a=r.length,i=0,o=e.spans,s=o.length,l=0,c=e.decorations,u=c.length,d=0;c[u]=a;var p,f;for(f=p=0;u>f;)c[f]!==c[f+2]?(c[p++]=c[f++],c[p++]=c[f++]):f+=2;for(u=p,f=p=0;u>f;){for(var m=c[f],g=c[f+1],h=f+2;u>=h+2&&c[h+1]===g;)h+=2;c[p++]=m,c[p++]=g,f=h}u=c.length=p;var v,b=e.sourceNode;b&&(v=b.style.display,b.style.display="none");try{for(;s>l;){var w,x=(o[l],o[l+2]||a),y=c[d+2]||a,h=Math.min(x,y),C=o[l+1];if(1!==C.nodeType&&(w=r.substring(i,h))){n&&(w=w.replace(t,"\r")),C.nodeValue=w;var k=C.ownerDocument,S=k.createElement("span");S.className=c[d+1];var _=C.parentNode;_.replaceChild(S,C),S.appendChild(C),x>i&&(o[l+1]=C=k.createTextNode(r.substring(h,x)),_.insertBefore(C,S.nextSibling))}i=h,i>=x&&(l+=2),i>=y&&(d+=2)}}finally{b&&(b.style.display=v)}}function l(e,n){for(var t=n.length;--t>=0;){var r=n[t];z.hasOwnProperty(r)?f.console&&console.warn("cannot override language handler %s",r):z[r]=e}}function c(e,n){return e&&z.hasOwnProperty(e)||(e=/^\s*"+e+"",r=r.firstChild,t&&o(r,t,!0);var a={langExtension:n,numberLines:t,sourceNode:r,pre:1};return u(a),r.innerHTML}function p(e,n){function t(e){return i.getElementsByTagName(e)}function a(){for(var n=f.PR_SHOULD_USE_CONTINUATION?g.now()+250:1/0;vp;++p)c.push(l[d][p]);l=null;var g=Date;g.now||(g={now:function(){return+new Date}});var h,v=0,b=/\blang(?:uage)?-([\w.]+)(?!\S)/,w=/\bprettyprint\b/,x=/\bprettyprinted\b/,y=/pre|xmp/i,C=/^code$/i,k=/^(?:pre|code|xmp)$/i,S={};a()}var f=window,m=["break,continue,do,else,for,if,return,while"],g=[m,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],h=[g,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],v=[h,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],b=[h,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],w=[b,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],x="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",y=[h,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],C="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",k=[m,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],S=[m,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],_=[m,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],E=[m,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],T=[v,w,y,C,k,S,E],I=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,M="str",$="kwd",L="com",A="typ",R="lit",N="pun",P="pln",B="tag",D="dec",O="src",H="atn",F="atv",j="nocode",q="(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*",U=/\S/,K=i({keywords:T,hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),z={};l(K,["default-code"]),l(a([],[[P,/^[^]*(?:>|$)/],[L,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[N,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]),l(a([[P,/^[\s]+/,null," \r\n"],[F,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[B,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[H,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[N,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]),l(a([],[[F,/^[\s\S]+/]]),["uq.val"]),l(i({keywords:v,hashComments:!0,cStyleComments:!0,types:I}),["c","cc","cpp","cxx","cyc","m"]),l(i({keywords:"null,true,false"}),["json"]),l(i({keywords:w,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:I}),["cs"]),l(i({keywords:b,cStyleComments:!0}),["java"]),l(i({keywords:E,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]),l(i({keywords:k,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]),l(i({keywords:C,hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]),l(i({keywords:S,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]),l(i({keywords:y,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]),l(i({keywords:x,hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]),l(i({keywords:_,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]),l(a([],[[M,/^[\s\S]+/]]),["regex"]);var G=f.PR={createSimpleLexer:a,registerLangHandler:l,sourceDecorator:i,PR_ATTRIB_NAME:H,PR_ATTRIB_VALUE:F,PR_COMMENT:L,PR_DECLARATION:D,PR_KEYWORD:$,PR_LITERAL:R,PR_NOCODE:j,PR_PLAIN:P,PR_PUNCTUATION:N,PR_SOURCE:O,PR_STRING:M,PR_TAG:B,PR_TYPE:A,prettyPrintOne:IN_GLOBAL_SCOPE?f.prettyPrintOne=d:prettyPrintOne=d,prettyPrint:prettyPrint=IN_GLOBAL_SCOPE?f.prettyPrint=p:prettyPrint=p};"function"==typeof define&&define.amd&&define("google-code-prettify",[],function(){return G})}();var Markdown;Markdown="object"==typeof exports&&"function"==typeof require?exports:{},function(){function e(e){return e}function n(){return!1}function t(){}function r(){}t.prototype={chain:function(n,t){var r=this[n];if(!r)throw new Error("unknown hook "+n);this[n]=r===e?t:function(){var e=Array.prototype.slice.call(arguments,0);return e[0]=r.apply(null,e),t.apply(null,e)}},set:function(e,n){if(!this[e])throw new Error("unknown hook "+e);this[e]=n},addNoop:function(n){this[n]=e},addFalse:function(e){this[e]=n}},Markdown.HookCollection=t,r.prototype={set:function(e,n){this["s_"+e]=n},get:function(e){return this["s_"+e]}},Markdown.Converter=function(){function e(e){return e=e.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*?(?=\s|$)[ \t]*\n?[ \t]*((\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm,function(e,n,t,r,a,i){return n=n.toLowerCase(),P.set(n,k(t)),a?r:(i&&B.set(n,i.replace(/"/g,""")),"")})}function n(e){return e=e.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,a),e=e.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm,a),e=e.replace(/\n[ ]{0,3}((<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,a),e=e.replace(/\n\n[ ]{0,3}(-]|-[^>])(?:[^-]|-[^-])*)--)>[ \t]*(?=\n{2,}))/g,a),e=e.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,a)}function a(e,n){var t=n;return t=t.replace(/^\n+/,""),t=t.replace(/\n+$/g,""),t="\n\n~K"+(D.push(t)-1)+"K\n\n"}function i(e,t){e=N.preBlockGamut(e,H),e=f(e);var r="
\n";return e=e.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,r),e=e.replace(/^[ ]{0,2}([ ]?-[ ]?){3,}[ \t]*$/gm,r),e=e.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm,r),e=m(e),e=h(e),e=y(e),e=N.postBlockGamut(e,H),e=n(e),e=C(e,t)}function o(e){return e=N.preSpanGamut(e),e=b(e),e=s(e),e=S(e),e=u(e),e=l(e),e=E(e),e=e.replace(/~P/g,"://"),e=k(e),e=R._DoItalicsAndBold?R._DoItalicsAndBold(e):x(e),e=e.replace(/ +\n/g,"
\n"),e=N.postSpanGamut(e)}function s(e){var n=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|-]|-[^>])(?:[^-]|-[^-])*)--)>)/gi;return e=e.replace(n,function(e){var n=e.replace(/(.)<\/?code>(?=.)/g,"$1`");return n=L(n,"!"==e.charAt(1)?"\\`*_/":"\\`*_")})}function l(e){return e=e.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,c),e=e.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,c),e=e.replace(/(\[([^\[\]]+)\])()()()()()/g,c)}function c(e,n,t,r,a,i,o,s){void 0==s&&(s="");var l=n,c=t.replace(/:\/\//g,"~P"),u=r.toLowerCase(),p=a,f=s;if(""==p)if(""==u&&(u=c.toLowerCase().replace(/ ?\n/g," ")),p="#"+u,void 0!=P.get(u))p=P.get(u),void 0!=B.get(u)&&(f=B.get(u));else{if(!(l.search(/\(\s*\)$/m)>-1))return l;p=""}p=$(p),p=L(p,"*_");var m='"}function u(e){return e=e.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,p),e=e.replace(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,p)}function d(e){return e.replace(/>/g,">").replace(/"+o(n)+"\n\n"}),e=e.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(e,n){return"

"+o(n)+"

\n\n"}),e=e.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(e,n,t){var r=n.length;return""+o(t)+"\n\n"})}function m(e,n){e+="~0";var t=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return O?e=e.replace(t,function(e,t,r){var a=t,i=r.search(/[*+-]/g)>-1?"ul":"ol",o=g(a,i,n);return o=o.replace(/\s+$/,""),o="<"+i+">"+o+"\n"}):(t=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,e=e.replace(t,function(e,n,t,r){var a=n,i=t,o=r.search(/[*+-]/g)>-1?"ul":"ol",s=g(i,o);return s=a+"<"+o+">\n"+s+"\n"})),e=e.replace(/~0/,"")}function g(e,n,t){O++,e=e.replace(/\n{2,}$/,"\n"),e+="~0";var r=F[n],a=new RegExp("(^[ \\t]*)("+r+")[ \\t]+([^\\r]+?(\\n+))(?=(~0|\\1("+r+")[ \\t]+))","gm"),s=!1;return e=e.replace(a,function(e,n,r,a){var l=a,c=/\n\n$/.test(l),u=c||l.search(/\n{2,}/)>-1;return u||s?l=i(I(l),!0):(l=m(I(l),!0),l=l.replace(/\n$/,""),t||(l=o(l))),s=c,"
  • "+l+"
  • \n"}),e=e.replace(/~0/g,""),O--,e}function h(e){return e+="~0",e=e.replace(/(?:\n\n|^\n?)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(e,n,t){var r=n,a=t;return r=w(I(r)),r=M(r),r=r.replace(/^\n+/g,""),r=r.replace(/\n+$/g,""),r="
    "+r+"\n
    ","\n\n"+r+"\n\n"+a}),e=e.replace(/~0/,"")}function v(e){return e=e.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(D.push(e)-1)+"K\n\n"}function b(e){return e=e.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(e,n,t,r){var a=r;return a=a.replace(/^([ \t]*)/g,""),a=a.replace(/[ \t]*$/g,""),a=w(a),a=a.replace(/:\/\//g,"~P"),n+""+a+""})}function w(e){return e=e.replace(/&/g,"&"),e=e.replace(//g,">"),e=L(e,"*_{}[]\\",!1)}function x(e){return e=e.replace(/([\W_]|^)(\*\*|__)(?=\S)([^\r]*?\S[\*_]*)\2([\W_]|$)/g,"$1$3$4"),e=e.replace(/([\W_]|^)(\*|_)(?=\S)([^\r\*_]*?\S)\2([\W_]|$)/g,"$1$3$4")}function y(e){return e=e.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(e,n){var t=n;return t=t.replace(/^[ \t]*>[ \t]?/gm,"~0"),t=t.replace(/~0/g,""),t=t.replace(/^[ \t]+$/gm,""),t=i(t),t=t.replace(/(^|\n)/g,"$1 "),t=t.replace(/(\s*
    [^\r]+?<\/pre>)/gm,function(e,n){var t=n;return t=t.replace(/^  /gm,"~0"),t=t.replace(/~0/g,"")}),v("
    \n"+t+"\n
    ")})}function C(e,n){e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,"");for(var t=e.split(/\n{2,}/g),r=[],a=/~K(\d+)K/,i=t.length,s=0;i>s;s++){var l=t[s];a.test(l)?r.push(l):/\S/.test(l)&&(l=o(l),l=l.replace(/^([ \t]*)/g,"

    "),l+="

    ",r.push(l))}if(!n){i=r.length;for(var s=0;i>s;s++)for(var c=!0;c;)c=!1,r[s]=r[s].replace(/~K(\d+)K/g,function(e,n){return c=!0,D[n]})}return r.join("\n\n")}function k(e){return e=e.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),e=e.replace(/<(?![a-z\/?!]|~D)/gi,"<")}function S(e){return e=e.replace(/\\(\\)/g,A),e=e.replace(/\\([`*_{}\[\]()>#+-.!])/g,A)}function _(e,n,t,r){if(n)return e;if(")"!==r.charAt(r.length-1))return"<"+t+r+">";for(var a=r.match(/[()]/g),i=0,o=0;o=i?i=1:i++:i--;var s="";if(0>i){var l=new RegExp("\\){1,"+-i+"}$");r=r.replace(l,function(e){return s=e,""})}if(s){var c=r.charAt(r.length-1);K.test(c)||(s=c+s,r=r.substr(0,r.length-1))}return"<"+t+r+">"+s}function E(e){e=e.replace(U,_);var n=function(e,n){return'
    '+N.plainLinkText(n)+""};return e=e.replace(/<((https?|ftp):[^'">\s]+)>/gi,n)}function T(e){return e=e.replace(/~E(\d+)E/g,function(e,n){var t=parseInt(n);return String.fromCharCode(t)})}function I(e){return e=e.replace(/^(\t|[ ]{1,4})/gm,"~0"),e=e.replace(/~0/g,"")}function M(e){if(!/\t/.test(e))return e;var n,t=[" "," "," "," "],r=0;return e.replace(/[\n\t]/g,function(e,a){return"\n"===e?(r=a+1,e):(n=(a-r)%4,r=a+1,t[n])})}function $(e){if(!e)return"";e.length;return e.replace(z,function(e){return"~D"==e?"%24":":"==e?":":"%"+e.charCodeAt(0).toString(16)})}function L(e,n,t){var r="(["+n.replace(/([\[\]\\])/g,"\\$1")+"])";t&&(r="\\\\"+r);var a=new RegExp(r,"g");return e=e.replace(a,A)}function A(e,n){var t=n.charCodeAt(0);return"~E"+t+"E"}var R={};this.setOptions=function(e){R=e};var N=this.hooks=new t;N.addNoop("plainLinkText"),N.addNoop("preConversion"),N.addNoop("postNormalization"),N.addNoop("preBlockGamut"),N.addNoop("postBlockGamut"),N.addNoop("preSpanGamut"),N.addNoop("postSpanGamut"),N.addNoop("postConversion");var P,B,D,O;this.makeHtml=function(t){if(P)throw new Error("Recursive call to converter.makeHtml");return P=new r,B=new r,D=[],O=0,t=N.preConversion(t),t=t.replace(/~/g,"~T"),t=t.replace(/\$/g,"~D"),t=t.replace(/\r\n/g,"\n"),t=t.replace(/\r/g,"\n"),t="\n\n"+t+"\n\n",t=M(t),t=t.replace(/^[ \t]+$/gm,""),t=N.postNormalization(t),t=n(t),t=e(t),t=i(t),t=T(t),t=t.replace(/~D/g,"$$"),t=t.replace(/~T/g,"~"),t=N.postConversion(t),D=B=P=null,t};var H=function(e){return i(e)},F={ol:"\\d+[.]",ul:"[*+-]"},j="[-A-Z0-9+&@#/%?=~_|[\\]()!:,.;]",q="[-A-Z0-9+&@#/%=~_|[\\])]",U=new RegExp('(="|<)?\\b(https?|ftp)(://'+j+"*"+q+")(?=$|\\W)","gi"),K=new RegExp(q,"i"),z=/(?:["'*()[\]:]|~D)/g}}(),define("bower-libs/pagedown-ace/Markdown.Converter",function(){}),function(){function e(){}function n(e,n){this.buttonBar=u.getElementById("wmd-button-bar"+e),this.preview=u.getElementById("wmd-preview"+e),this.input=n}function t(n){var t=this,r=n.input;this.init=function(){var e=ace.require("ace/range").Range;!function(n){t.before=r.session.getTextRange(new e(0,0,n.start.row,n.start.column)),t.selection=r.session.getTextRange(),t.after=r.session.getTextRange(new e(n.end.row,n.end.column,Number.MAX_VALUE,Number.MAX_VALUE))}(r.selection.getRange()),this.text=[this.before,this.selection,this.after].join(""),this.length=this.text.length,this.setInputAreaSelectionStartEnd(),this.scrollTop=r.renderer.getScrollTop()},this.setInputAreaSelection=function(){var e=ace.require("ace/range").Range;r.selection.setSelectionRange(function(n,t){return new e(n.row,n.column,t.row,t.column)}(r.session.doc.indexToPosition(t.start),r.session.doc.indexToPosition(t.end))),r.renderer.scrollToY(t.scrollTop),r.focus()},this.setInputAreaSelectionStartEnd=function(){t.start=t.before.length,t.end=t.after.length},this.restore=function(){for(var e=0,n=t.before.length;n>e&&t.before.charCodeAt(e)===t.text.charCodeAt(e);)e++;for(var a=0,i=t.after.length,o=t.after.length-1,s=t.text.length-1;i>a&&t.after.charCodeAt(o-a)===t.text.charCodeAt(s-a);)a++;var l=ace.require("ace/range").Range,c=function(e,n){return new l(e.row,e.column,n.row,n.column)}(r.session.doc.indexToPosition(e),r.session.doc.indexToPosition(t.length-a));r.session.replace(c,t.text.substring(e,s-a+1)),this.setInputAreaSelection()},this.getChunks=function(){var n=new e;return n.before=t.before,n.startTag="",n.selection=t.selection,n.endTag="",n.after=t.after,n.scrollTop=t.scrollTop,n},this.setChunks=function(e){e.before=e.before+e.startTag,e.after=e.endTag+e.after,this.start=e.before.length,this.end=e.before.length+e.selection.length,this.text=e.before+e.selection+e.after,this.scrollTop=e.scrollTop},this.init()}function r(e,n,t,r){var a,i,o,s=3e3,c="delayed",d=function(){var e=0;return window.innerHeight?e=window.pageYOffset:u.documentElement&&u.documentElement.scrollTop?e=u.documentElement.scrollTop:u.body&&(e=u.body.scrollTop),e},p=function(){if(n.preview){var t=n.input.getValue();if(!t||t!=o){o=t;var r=(new Date).getTime();t=e.makeHtml(t);var a=(new Date).getTime();i=a-r,C(t)}}};void 0!==r&&(p=r(p));var f=function(){if(a&&(clearTimeout(a),a=void 0),"manual"!==c){var e=0;"delayed"===c&&(e=i),e>s&&(e=s),a=setTimeout(p,e)}},g=function(e){return e.scrollHeight<=e.clientHeight?1:e.scrollTop/(e.scrollHeight-e.clientHeight)},h=function(){n.preview&&(n.preview.scrollTop=(n.preview.scrollHeight-n.preview.clientHeight)*g(n.preview))};this.refresh=function(e){e?(o="",p()):f()},this.processingTime=function(){return i};var v,b=!0,w=function(e){var t=n.preview,r=t.parentNode,a=t.nextSibling;r.removeChild(t),t.innerHTML=e,a?r.insertBefore(t,a):r.appendChild(t)},x=function(e){n.preview.innerHTML=e},y=function(e){if(v)return v(e);try{x(e),v=x}catch(n){v=w,v(e)}},C=function(e){var r=l.getTop(n.input)-d();if(n.preview&&(y(e),t()),h(),b)return void(b=!1);var a=l.getTop(n.input)-d();m.isIE?setTimeout(function(){window.scrollBy(0,a-r)},0):window.scrollBy(0,a-r)},k=function(){n.input.session.on("change",f),n.preview&&(n.preview.scrollTop=0)};k()}function a(e,n,r,a,i,o,s,l){function c(e){if(0!==e.length){var n=e.pop();x.commands.addCommand({name:s(n),bindKey:h[n],exec:function(){p(y[n])}}),c(e)}}function d(e,i,o){x.focus(),r&&r.setCommandMode();var s=new t(n);if(s){var l=s.getChunks(),c=function(){x.focus(),l&&s.setChunks(l),s.restore(),a.refresh()},u=w.insertLink(l,c,e,i,o);u||c()}}function p(e){x.focus();var i="wmd-link-button"==e.id||"wmd-image-button"==e.id;if(e.textOp){r&&!i&&r.setCommandMode();var o=new t(n);if(!o)return;var s=o.getChunks(),l=function(){x.focus(),s&&o.setChunks(s),o.restore(),a.refresh()},c=e.textOp(s,l);c||l()}e.execute&&e.execute(r)}function f(e,t){var r="0px",a="-20px",i="-40px",o=e.getElementsByTagName("span")[0];e.className=e.className.replace(/ disabled/g,""),t?(o.style.backgroundPosition=e.XShift+" "+r,e.onmouseover=function(){o.style.backgroundPosition=this.XShift+" "+i},e.onmouseout=function(){o.style.backgroundPosition=this.XShift+" "+r},m.isIE&&(e.onmousedown=function(){u.activeElement&&u.activeElement!==n.input||(n.ieCachedRange=document.selection.createRange(),n.ieCachedScrollTop=n.input.renderer.getScrollTop())}),e.isHelp||(e.onclick=function(){return this.onmouseout&&this.onmouseout(),p(this),!1})):(o.style.backgroundPosition=e.XShift+" "+a,e.onmouseover=e.onmouseout=e.onclick=function(){},e.className+=" disabled")}function g(e){return"string"==typeof e&&(e=i[e]),function(){e.apply(i,arguments)}}function v(){var t=n.buttonBar,r=document.createElement("ul");r.id="wmd-button-row"+e,r.className="wmd-button-row",r=t.appendChild(r);var a=0,i=function(n,t,i,o){var s=document.createElement("li");s.className="wmd-button",s.style.left=a+"px",a+=25;var l=document.createElement("span");return s.id=n+e,s.appendChild(l),s.title=t,s.XShift=i,o&&(s.textOp=o),f(s,!0),r.appendChild(s),s};if(y.bold=i("wmd-bold-button",b("bold"),"0px",g("doBold")),y.italic=i("wmd-italic-button",b("italic"),"-20px",g("doItalic")),y.link=i("wmd-link-button",b("link"),"-40px",g(function(e,n){return this.doLinkOrImage(e,n,!1)})),y.quote=i("wmd-quote-button",b("quote"),"-60px",g("doBlockquote")),y.code=i("wmd-code-button",b("code"),"-80px",g("doCode")),y.image=i("wmd-image-button",b("image"),"-100px",g(function(e,n){return this.doLinkOrImage(e,n,!0)})),y.olist=i("wmd-olist-button",b("olist"),"-120px",g(function(e,n){this.doList(e,n,!0)})),y.ulist=i("wmd-ulist-button",b("ulist"),"-140px",g(function(e,n){this.doList(e,n,!1)})),y.heading=i("wmd-heading-button",b("heading"),"-160px",g("doHeading")),y.hr=i("wmd-hr-button",b("hr"),"-180px",g("doHorizontalRule")),y.undo=i("wmd-undo-button",b("undo"),"-200px",null),y.undo.execute=function(){x.session.getUndoManager().undo()},y.redo=i("wmd-redo-button",b("redo"),"-220px",null),y.redo.execute=function(){x.session.getUndoManager().redo()},o){var l=document.createElement("li"),c=document.createElement("span");l.appendChild(c),l.className="wmd-button wmd-help-button",l.id="wmd-help-button"+e,l.XShift="-240px",l.isHelp=!0,l.style.right="0px",l.title=s("help"),l.onclick=o.handler,f(l,!0),r.appendChild(l),y.help=l}C.setUndoRedoButtonStates(),x.session.on("change",function(){C.setUndoRedoButtonStates()})}var b=function(e){return s(e)+" "+l(e)},x=n.input,y={};this.setUndoRedoButtonStates=function(){setTimeout(function(){f(y.undo,x.session.getUndoManager().hasUndo()),f(y.redo,x.session.getUndoManager().hasRedo())},50)};var C=this;v();var k="keydown";m.isOpera&&(k="keypress"),c(["bold","italic","link","quote","code","image","olist","ulist","heading","hr"]),MD.insertLink=d,MD.insertLink2=d,this.buttons=y,this.setButtonState=f}function i(e,n){this.hooks=e,this.getString=n}function o(e){return e.replace(/^\s*(.*?)(?:\s+"(.+)")?\s*$/,function(e,n,t){return n=n.replace(/\?.*$/,function(e){return e.replace(/\+/g," ")}),n=decodeURIComponent(n),n=encodeURI(n).replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29"),n=n.replace(/\?.*$/,function(e){return e.replace(/\+/g,"%2b")}),t&&(t=t.trim?t.trim():t.replace(/^\s*/,"").replace(/\s*$/,""),t=t.replace(/"/g,"quot;").replace(/\(/g,"(").replace(/\)/g,")").replace(//g,">")),t?n+' "'+t+'"':n})}var s={},l={},c={},u=window.document,d=window.RegExp,p=window.navigator,f={lineLength:72},m={isIE:/msie/.test(p.userAgent.toLowerCase()),isIE_5or6:/msie 6/.test(p.userAgent.toLowerCase())||/msie 5/.test(p.userAgent.toLowerCase()),isOpera:/opera/.test(p.userAgent.toLowerCase())},g={bold:getMsg("Strong")+" ",boldexample:getMsg("strong text"),italic:getMsg("Emphasis")+" ",italicexample:getMsg("emphasized text"),link:getMsg("Hyperlink")+" ",linkdescription:getMsg("enter link description here"),linkdialog:'

    Insert Hyperlink

    http://example.com/ "optional title"

    ',quote:getMsg("Blockquote")+"
    ",quoteexample:getMsg("Blockquote"),code:getMsg("Code Sample")+"
    ",codeexample:getMsg("enter code here"),image:getMsg("Image")+" ",imagedescription:getMsg("enter image description here"),imagedialog:"

    Insert Image

    http://example.com/images/diagram.jpg \"optional title\"

    Need
    free image hosting?

    ",olist:getMsg("Numbered List")+"
      ",ulist:getMsg("Bulleted List")+"
        ",litem:getMsg("List item"),heading:getMsg("Heading")+"

        /

        ",headingexample:getMsg("Heading"),hr:getMsg("Horizontal Rule")+"
        ",undo:getMsg("Undo")+" -",redo:getMsg("Redo")+" -",help:"Markdown Editing Help"},h={bold:{win:"Ctrl-B",mac:"Command-B|Ctrl-B"},italic:{win:"Ctrl-I",mac:"Command-I|Ctrl-I"},link:{win:"Ctrl-L",mac:"Command-L|Ctrl-L"},quote:{win:"Ctrl-Q",mac:"Command-Q|Ctrl-Q"},code:{win:"Ctrl-K",mac:"Command-K|Ctrl-K"},image:{win:"Ctrl-G",mac:"Command-G|Ctrl-G"},olist:{win:"Ctrl-O",mac:"Command-O|Ctrl-O"},ulist:{win:"Ctrl-U",mac:"Command-U|Ctrl-U"},heading:{win:"Ctrl-H",mac:"Command-H|Ctrl-H"},hr:{win:"Ctrl-R",mac:"Command-R|Ctrl-R"},undo:{win:"Ctrl-Z",mac:"Command-Z"},redo:{win:"Ctrl-Y|Ctrl-Shift-Z",mac:"Command-Y|Command-Shift-Z"}},v="http://",b="http://";Markdown.Editor=function(e,t,o){if(o=o||{},"function"==typeof o.handler&&(o={helpButton:o}),o.strings=o.strings||{},o.helpButton&&(o.strings.help=o.strings.help||o.helpButton.title),o.keyStrokes)for(var s in o.keyStrokes)h[s]=o.keyStrokes[s];var l=function(e){return o.strings[e]||g[e]};t=t||"";var c=this.hooks=new Markdown.HookCollection;c.addNoop("onPreviewRefresh"),c.addNoop("postBlockquoteCreation"),c.addFalse("insertImageDialog"),c.addFalse("insertLinkDialog"),this.getConverter=function(){return e};var u,d,p=this;this.run=function(s,f){if(!u){u=new n(t,s);var m,g=new i(c,l),v=new r(e,u,function(){c.onPreviewRefresh()},f),b=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),w="mac"==b,x=function(e){var n=h[e][w?"mac":"win"],t=n.indexOf("|");return n.substring(0,t>0?t:n.length)};m=new a(t,u,d,v,g,o.helpButton,l,x),m.setUndoRedoButtonStates();var y=p.refreshPreview=function(){v.refresh(!0)};y(),p.uiManager=m}}},e.prototype.findTags=function(e,n){var t,r=this;e&&(t=s.extendRegExp(e,"","$"),this.before=this.before.replace(t,function(e){return r.startTag=r.startTag+e,""}),t=s.extendRegExp(e,"^",""),this.selection=this.selection.replace(t,function(e){return r.startTag=r.startTag+e,""})),n&&(t=s.extendRegExp(n,"","$"),this.selection=this.selection.replace(t,function(e){return r.endTag=e+r.endTag,""}),t=s.extendRegExp(n,"^",""),this.after=this.after.replace(t,function(e){return r.endTag=e+r.endTag,""}))},e.prototype.trimWhitespace=function(e){var n,t,r=this;e?n=t="":(n=function(e){return r.before+=e,""},t=function(e){return r.after=e+r.after,""}),this.selection=this.selection.replace(/^(\s*)/,n).replace(/(\s*)$/,t)},e.prototype.skipLines=function(e,n,t){void 0===e&&(e=1),void 0===n&&(n=1),e++,n++;var r,a;if(navigator.userAgent.match(/Chrome/)&&"X".match(/()./),this.selection=this.selection.replace(/(^\n*)/,""),this.startTag=this.startTag+d.$1,this.selection=this.selection.replace(/(\n*$)/,""),this.endTag=this.endTag+d.$1,this.startTag=this.startTag.replace(/(^\n*)/,""),this.before=this.before+d.$1,this.endTag=this.endTag.replace(/(\n*$)/,""),this.after=this.after+d.$1,this.before){for(r=a="";e--;)r+="\\n?",a+="\n";t&&(r="\\n*"),this.before=this.before.replace(new d(r+"$",""),a)}if(this.after){for(r=a="";n--;)r+="\\n?",a+="\n";t&&(r="\\n*"),this.after=this.after.replace(new d(r,""),a)}},s.isVisible=function(e){return window.getComputedStyle?"none"!==window.getComputedStyle(e,null).getPropertyValue("display"):e.currentStyle?"none"!==e.currentStyle.display:void 0},s.addEvent=function(e,n,t){e.attachEvent?e.attachEvent("on"+n,t):e.addEventListener(n,t,!1)},s.removeEvent=function(e,n,t){e.detachEvent?e.detachEvent("on"+n,t):e.removeEventListener(n,t,!1)},s.fixEolChars=function(e){return e=e.replace(/\r\n/g,"\n"),e=e.replace(/\r/g,"\n")},s.extendRegExp=function(e,n,t){(null===n||void 0===n)&&(n=""),(null===t||void 0===t)&&(t="");var r,a=e.toString();return a=a.replace(/\/([gim]*)$/,function(e,n){return r=n,""}),a=a.replace(/(^\/|\/$)/g,""),a=n+a+t,new d(a,r)},l.getTop=function(e,n){var t=e.offsetTop;if(!n)for(;e=e.offsetParent;)t+=e.offsetTop;return t},l.getHeight=function(e){return e.offsetHeight||e.scrollHeight},l.getWidth=function(e){return e.offsetWidth||e.scrollWidth},l.getPageSize=function(){var e,n,t,r;self.innerHeight&&self.scrollMaxY?(e=u.body.scrollWidth,n=self.innerHeight+self.scrollMaxY):u.body.scrollHeight>u.body.offsetHeight?(e=u.body.scrollWidth,n=u.body.scrollHeight):(e=u.body.offsetWidth,n=u.body.offsetHeight),self.innerHeight?(t=self.innerWidth,r=self.innerHeight):u.documentElement&&u.documentElement.clientHeight?(t=u.documentElement.clientWidth,r=u.documentElement.clientHeight):u.body&&(t=u.body.clientWidth,r=u.body.clientHeight);var a=Math.max(e,t),i=Math.max(n,r);return[a,i,t,r]},c.createBackground=function(){var e=u.createElement("div"),n=e.style;e.className="wmd-prompt-background",n.position="absolute",n.top="0",n.zIndex="1000",m.isIE?n.filter="alpha(opacity=50)":n.opacity="0.5";var t=l.getPageSize();return n.height=t[1]+"px",m.isIE?(n.left=u.documentElement.scrollLeft,n.width=u.documentElement.clientWidth):(n.left="0",n.width="100%"),u.body.appendChild(e),e},c.prompt=function(e,n,t){var r,a;void 0===n&&(n="");var i=function(e){var n=e.charCode||e.keyCode;27===n&&o(!0)},o=function(e){s.removeEvent(u.body,"keydown",i);var n=a.value;return e?n=null:(n=n.replace(/^http:\/\/(https?|ftp):\/\//,"$1://"),/^(?:https?|ftp):\/\//.test(n)||(n="http://"+n)),r.parentNode.removeChild(r),t(n),!1},c=function(){r=u.createElement("div"),r.className="wmd-prompt-dialog",r.style.padding="10px;",r.style.position="fixed",r.style.width="400px",r.style.zIndex="1001";var t=u.createElement("div");t.innerHTML=e,t.style.padding="5px",r.appendChild(t);var c=u.createElement("form"),d=c.style;c.onsubmit=function(){return o(!1)},d.padding="0",d.margin="0",d.cssFloat="left",d.width="100%",d.textAlign="center",d.position="relative",r.appendChild(c),a=u.createElement("input"),a.type="text",a.value=n,d=a.style,d.display="block",d.width="80%",d.marginLeft=d.marginRight="auto",c.appendChild(a);var p=u.createElement("input");p.type="button",p.onclick=function(){return o(!1)},p.value="OK",d=p.style,d.margin="10px",d.display="inline",d.width="7em";var f=u.createElement("input");f.type="button",f.onclick=function(){return o(!0)},f.value="Cancel",d=f.style,d.margin="10px",d.display="inline",d.width="7em",c.appendChild(p),c.appendChild(f),s.addEvent(u.body,"keydown",i),r.style.top="50%",r.style.left="50%",r.style.display="block",m.isIE_5or6&&(r.style.position="absolute",r.style.top=u.documentElement.scrollTop+200+"px",r.style.left="50%"),u.body.appendChild(r),r.style.marginTop=-(l.getHeight(r)/2)+"px",r.style.marginLeft=-(l.getWidth(r)/2)+"px"};setTimeout(function(){c();var e=n.length;if(void 0!==a.selectionStart)a.selectionStart=0,a.selectionEnd=e;else if(a.createTextRange){var t=a.createTextRange();t.collapse(!1),t.moveStart("character",-e),t.moveEnd("character",e),t.select()}a.focus()},0)};var w=i.prototype;w.prefixes="(?:\\s{4,}|\\s*>|\\s*-\\s+|\\s*\\d+\\.|=|\\+|-|_|\\*|#|\\s*\\[[^\n]]+\\]:)",w.unwrap=function(e){var n=new d("([^\\n])\\n(?!(\\n|"+this.prefixes+"))","g");e.selection=e.selection.replace(n,"$1 $2")},w.wrap=function(e,n){this.unwrap(e);var t=new d("(.{1,"+n+"})( +|$\\n?)","gm"),r=this;e.selection=e.selection.replace(t,function(e,n){return new d("^"+r.prefixes,"").test(e)?e:n+"\n"}),e.selection=e.selection.replace(/\s+$/,"")},w.doBold=function(e,n){return this.doBorI(e,n,2,this.getString("boldexample"))},w.doItalic=function(e,n){return this.doBorI(e,n,1,this.getString("italicexample"))},w.doBorI=function(e,n,t,r){e.trimWhitespace(),e.selection=e.selection.replace(/\n{2,}/g,"\n");var a=/(\**$)/.exec(e.before)[0],i=/(^\**)/.exec(e.after)[0],o=Math.min(a.length,i.length);if(o>=t&&(2!=o||1!=t))e.before=e.before.replace(d("[*]{"+t+"}$",""),""),e.after=e.after.replace(d("^[*]{"+t+"}",""),"");else if(!e.selection&&i){e.after=e.after.replace(/^([*_]*)/,""),e.before=e.before.replace(/(\s?)$/,"");var s=d.$1;e.before=e.before+i+s}else{e.selection||i||(e.selection=r);var l=1>=t?"*":"**";e.before=e.before+l,e.after=l+e.after}},w.stripLinkDefs=function(e,n){return e=e.replace(/^[ ]{0,3}\[(\d+)\]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|$)/gm,function(e,t,r,a,i){return n[t]=e.replace(/\s*$/,""),a?(n[t]=e.replace(/["(](.+?)[")]$/,""),a+i):""})},w.addLinkDef=function(e,n){var t=0,r={};e.before=this.stripLinkDefs(e.before,r),e.selection=this.stripLinkDefs(e.selection,r),e.after=this.stripLinkDefs(e.after,r);var a="",i=/(\[)((?:\[[^\]]*\]|[^\[\]])*)(\][ ]?(?:\n[ ]*)?\[)(\d+)(\])/g,o=function(e){t++,e=e.replace(/^[ ]{0,3}\[(\d+)\]:/," ["+t+"]:"),a+="\n"+e},s=function(e,n,a,l,c,u){return a=a.replace(i,s),r[c]?(o(r[c]),n+a+l+t+u):e};e.before=e.before.replace(i,s),n?o(n):e.selection=e.selection.replace(i,s);var l=t;return e.after=e.after.replace(i,s),e.after&&(e.after=e.after.replace(/\n*$/,"")),e.after||(e.selection=e.selection.replace(/\n*$/,"")),e.after+="\n\n"+a,l -},w.insertLink=function(e,n,t,r,a){e.trimWhitespace(),e.findTags(/\s*!?\[/,/\][ ]?(?:\n[ ]*)?(\[.*?\])?/);var i;if(!(e.endTag.length>1&&e.startTag.length>0)){if(e.selection=e.startTag+e.selection+e.endTag,e.startTag=e.endTag="",/\n\n/.test(e.selection))return void this.addLinkDef(e,null);var s=function(t){i.parentNode.removeChild(i),null!==t&&(e.selection=(" "+e.selection).replace(/([^\\](?:\\\\)*)(?=[[\]])/g,"$1\\").substr(1),e.startTag=a?"![":"[",e.endTag="]("+o(t)+")",e.selection=r),n()};return i=c.createBackground(),s(t),!0}e.startTag=e.startTag.replace(/!?\[/,""),e.endTag="",this.addLinkDef(e,null)},w.doLinkOrImage=function(e,n,t){e.trimWhitespace(),e.findTags(/\s*!?\[/,/\][ ]?(?:\n[ ]*)?(\(.*?\))?/);var r;if(!(e.endTag.length>1&&e.startTag.length>0)){if(e.selection=e.startTag+e.selection+e.endTag,e.startTag=e.endTag="",/\n\n/.test(e.selection))return void this.addLinkDef(e,null);var a=this,i=function(i,s){if(r.parentNode.removeChild(r),null!==i&&(e.selection=(" "+e.selection).replace(/([^\\](?:\\\\)*)(?=[[\]])/g,"$1\\").substr(1),e.startTag=t?"![":"[",e.endTag="]("+o(i)+")",!e.selection)){var l="";l=s?s:a.getString(t?"imagedescription":"linkdescription"),e.selection=l}n()};return r=c.createBackground(),t?this.hooks.insertImageDialog(i)||c.prompt(this.getString("imagedialog"),v,i):this.hooks.insertLinkDialog(i)||c.prompt(this.getString("linkdialog"),b,i),!0}e.startTag=e.startTag.replace(/!?\[/,""),e.endTag="",this.addLinkDef(e,null)},w.doAutoindent=function(e){var n=this,t=!1;e.before=e.before.replace(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]*\n$/,"\n\n"),e.before=e.before.replace(/(\n|^)[ ]{0,3}>[ \t]*\n$/,"\n\n"),e.before=e.before.replace(/(\n|^)[ \t]+\n$/,"\n\n"),e.selection||/^[ \t]*(?:\n|$)/.test(e.after)||(e.after=e.after.replace(/^[^\n]*/,function(n){return e.selection=n,""}),t=!0),/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]+.*\n$/.test(e.before)&&n.doList&&n.doList(e),/(\n|^)[ ]{0,3}>[ \t]+.*\n$/.test(e.before)&&n.doBlockquote&&n.doBlockquote(e),/(\n|^)(\t|[ ]{4,}).*\n$/.test(e.before)&&n.doCode&&n.doCode(e),t&&(e.after=e.selection+e.after,e.selection="")},w.doBlockquote=function(e){e.selection=e.selection.replace(/^(\n*)([^\r]+?)(\n*)$/,function(n,t,r,a){return e.before+=t,e.after=a+e.after,r}),e.before=e.before.replace(/(>[ \t]*)$/,function(n,t){return e.selection=t+e.selection,""}),e.selection=e.selection.replace(/^(\s|>)+$/,""),e.selection=e.selection||this.getString("quoteexample");var n,t="",r="";if(e.before){for(var a=e.before.replace(/\n$/,"").split("\n"),i=!1,o=0;o0,/^>/.test(n)?(s=!0,!i&&n.length>1&&(i=!0)):s=/^[ \t]*$/.test(n)?!0:i,s?t+=n+"\n":(r+=t+n,t="\n")}/(^|\n)>/.test(t)||(r+=t,t="")}e.startTag=t,e.before=r;var l=function(n){var t=n?"> ":"";e.startTag&&(e.startTag=e.startTag.replace(/\n((>|\s)*)\n$/,function(e,n){return"\n"+n.replace(/^[ ]{0,3}>?[ \t]*$/gm,t)+"\n"})),e.endTag&&(e.endTag=e.endTag.replace(/^\n((>|\s)*)\n/,function(e,n){return"\n"+n.replace(/^[ ]{0,3}>?[ \t]*$/gm,t)+"\n"}))};/^(?![ ]{0,3}>)/m.test(e.selection)?(this.wrap(e,f.lineLength-2),e.selection=e.selection.replace(/^/gm,"> "),l(!0),e.skipLines()):(e.selection=e.selection.replace(/^[ ]{0,3}> ?/gm,""),this.unwrap(e),l(!1),!/^(\n|^)[ ]{0,3}>/.test(e.selection)&&e.startTag&&(e.startTag=e.startTag.replace(/\n{0,2}$/,"\n\n")),!/(\n|^)[ ]{0,3}>.*$/.test(e.selection)&&e.endTag&&(e.endTag=e.endTag.replace(/^\n{0,2}/,"\n\n"))),e.selection=this.hooks.postBlockquoteCreation(e.selection),/\n/.test(e.selection)||(e.selection=e.selection.replace(/^(> *)/,function(n,t){return e.startTag+=t,""}))},w.doCode=function(e){var n=/\S[ ]*$/.test(e.before),t=/^[ ]*\S/.test(e.after);if(!t&&!n||/\n/.test(e.selection)){e.before=e.before.replace(/[ ]{4}$/,function(n){return e.selection=n+e.selection,""});var r=1,a=1;/(\n|^)(\t|[ ]{4,}).*\n$/.test(e.before)&&(r=0),/^\n(\t|[ ]{4,})/.test(e.after)&&(a=0),e.skipLines(r,a),e.selection?/^[ ]{0,3}\S/m.test(e.selection)?/\n/.test(e.selection)?e.selection=e.selection.replace(/^/gm," "):e.before+=" ":e.selection=e.selection.replace(/^(?:[ ]{4}|[ ]{0,3}\t)/gm,""):(e.startTag=" ",e.selection=this.getString("codeexample"))}else e.trimWhitespace(),e.findTags(/`/,/`/),e.startTag||e.endTag?e.endTag&&!e.startTag?(e.before+=e.endTag,e.endTag=""):e.startTag=e.endTag="":(e.startTag=e.endTag="`",e.selection||(e.selection=this.getString("codeexample")))},w.doList=function(e,n,t){var r=/(\n|^)(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*$/,a=/^\n*(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*/,i="-",o=1,s=function(){var e;return t?(e=" "+o+". ",o++):e=" "+i+" ",e},l=function(e){return void 0===t&&(t=/^\s*\d/.test(e)),e=e.replace(/^[ ]{0,3}([*+-]|\d+[.])\s/gm,function(){return s()})};if(e.findTags(/(\n|^)*[ ]{0,3}([*+-]|\d+[.])\s+/,null),!e.before||/\n$/.test(e.before)||/^\n/.test(e.startTag)||(e.before+=e.startTag,e.startTag=""),e.startTag){var c=/\d+[.]/.test(e.startTag);if(e.startTag="",e.selection=e.selection.replace(/\n[ ]{4}/g,"\n"),this.unwrap(e),e.skipLines(),c&&(e.after=e.after.replace(a,l)),t==c)return}var u=1;e.before=e.before.replace(r,function(e){return/^\s*([*+-])/.test(e)&&(i=d.$1),u=/[^\n]\n\n[^\n]/.test(e)?1:0,l(e)}),e.selection||(e.selection=this.getString("litem"));var p=s(),m=1;e.after=e.after.replace(a,function(e){return m=/[^\n]\n\n[^\n]/.test(e)?1:0,l(e)}),e.trimWhitespace(!0),e.skipLines(u,m,!0),e.startTag=p;var g=p.replace(/./g," ");this.wrap(e,f.lineLength-g.length),e.selection=e.selection.replace(/\n/g,"\n"+g)},w.doHeading=function(e){if(e.selection=e.selection.replace(/\s+/g," "),e.selection=e.selection.replace(/(^\s+|\s+$)/g,""),!e.selection)return e.before&&"\n"!=e.before[e.before.length-1]&&e.skipLines(1,1),e.startTag="# ",e.selection=this.getString("headingexample"),void(e.endTag="");e.findTags(/#+[ ]*/,/[ ]*#+/),e.before&&"\n"!=e.before[e.before.length-1]&&e.skipLines(1,1);var n=0,t=e.startTag;/^#+[ ]*$/.test(t)&&(t=t.replace(/ /g,""),n=t.length);var r=0;if(n>=0&&3>=n&&(r=n+1),n>=4&&(r=0,e.startTag=""),r>0){for(var a="";r--;)a+="#";a+=" ",e.startTag=a}},w.doHorizontalRule=function(e){e.startTag="----------\n",e.selection="",e.skipLines(1,1,!0)}}(),define("pagedown-ace",function(){}),function(){function e(e){return e.replace(/^\s+|\s+$/g,"")}function n(e){return e.replace(/\s+$/g,"")}function t(e){return e.replace(new RegExp("^(\\t|[ ]{1,4})","gm"),"")}function r(e,n){return-1!=e.indexOf(n)}function a(e,n){return e.replace(/<[^>]*>?/gi,function(e){return e.match(n)?e:""})}function i(e,n){for(var t={},r=0;r]*>|","<(br)\\s?\\/?>)$"].join(""),"i");Array.indexOf||(Array.prototype.indexOf=function(e){for(var n=0;n~X"+(this.hashBlocks.push(e)-1)+"X

        \n"},Markdown.Extra.prototype.hashExtraInline=function(e){return"~X"+(this.hashBlocks.push(e)-1)+"X"},Markdown.Extra.prototype.unHashExtraBlocks=function(e){function n(){var r=!1;e=e.replace(/(?:

        )?~X(\d+)X(?:<\/p>)?/g,function(e,n){r=!0;var a=parseInt(n,10);return t.hashBlocks[a]}),r===!0&&n()}var t=this;return n(),e},Markdown.Extra.prototype.wrapHeaders=function(e){function n(e){return"\n"+e+"\n"}return e=e.replace(/^.+[ \t]*\n=+[ \t]*\n+/gm,n),e=e.replace(/^.+[ \t]*\n-+[ \t]*\n+/gm,n),e=e.replace(/^\#{1,6}[ \t]*.+?[ \t]*\#*\n+/gm,n)};var h="\\{[ \\t]*((?:[#.][-_:a-zA-Z0-9]+[ \\t]*)+)\\}",v=new RegExp("^(#{1,6}.*#{0,6})[ \\t]+"+h+"[ \\t]*(?:\\n|0x03)","gm"),b=new RegExp("^(.*)[ \\t]+"+h+"[ \\t]*\\n(?=[\\-|=]+\\s*(?:\\n|0x03))","gm"),w=new RegExp("^(```[ \\t]*[^{\\s]*)[ \\t]+"+h+"[ \\t]*\\n(?=([\\s\\S]*?)\\n```[ \\t]*(\\n|0x03))","gm");Markdown.Extra.prototype.hashHeaderAttributeBlocks=function(e){function n(e,n,r){return"

        ~XX"+(t.hashBlocks.push(r)-1)+"XX

        \n"+n+"\n"}var t=this;return e=e.replace(v,n),e=e.replace(b,n)},Markdown.Extra.prototype.hashFcbAttributeBlocks=function(e){function n(e,n,r){return"

        ~XX"+(t.hashBlocks.push(r)-1)+"XX

        \n"+n+"\n"}var t=this;return e.replace(w,n)},Markdown.Extra.prototype.applyAttributeBlocks=function(e){var n=this,t=new RegExp('

        ~XX(\\d+)XX

        [\\s]*(?:<(h[1-6]|pre)(?: +class="(\\S+)")?(>[\\s\\S]*?))',"gm");return e=e.replace(t,function(e,t,r,a,o){if(!r)return"";for(var s=parseInt(t,10),l=n.hashBlocks[s],c=l.match(/#[^\s#.]+/g)||[],u=c[0]?' id="'+c[0].substr(1,c[0].length-1)+'"':"",d=l.match(/\.[^\s#.]+/g)||[],p=0;p0&&(f=' class="'+d.join(" ")+'"'),"<"+r+u+f+o})},Markdown.Extra.prototype.tables=function(n){function t(n,t,a,i){t=t.replace(/^ *[|]/m,""),a=a.replace(/^ *[|]/m,""),i=i.replace(/^ *[|]/gm,""),t=t.replace(/[|] *$/m,""),a=a.replace(/[|] *$/m,""),i=i.replace(/[|] *$/gm,""),alignspecs=a.split(/ *[|] */),align=[];for(var o=0;o\n","\n","\n"].join("");for(o=0;u>o;o++){var f=l(e(c[o]),r);p+=[" ",f,"\n"].join("")}p+="\n\n";var m=i.split("\n");for(o=0;ov;v++)g.push("");for(p+="\n",v=0;u>v;v++){var b=l(e(g[v]),r);p+=[" ",b,"\n"].join("")}p+="\n"}return p+="\n",r.hashExtraBlock(p)}var r=this,a=new RegExp(["^","[ ]{0,3}","[|]","(.+)\\n","[ ]{0,3}","[|]([ ]*[-:]+[-| :]*)\\n","(","(?:[ ]*[|].*\\n?)*",")","(?:\\n|$)"].join(""),"gm"),i=new RegExp(["^","[ ]{0,3}","(\\S.*[|].*)\\n","[ ]{0,3}","([-:]+[ ]*[|][-| :]*)\\n","(","(?:.*[|].*\\n?)*",")","(?:\\n|$)"].join(""),"gm");return n=n.replace(a,t),n=n.replace(i,t)},Markdown.Extra.prototype.stripFootnoteDefinitions=function(e){var n=this;return e=e.replace(/\n[ ]{0,3}\[\^(.+?)\]\:[ \t]*\n?([\s\S]*?)\n{1,2}((?=\n[ ]{0,3}\S)|$)/g,function(e,t,r){return t=f(t),r+="\n",r=r.replace(/^[ ]{0,3}/g,""),n.footnotes[t]=r,"\n"})},Markdown.Extra.prototype.doFootnotes=function(e){var n=this;if(n.isConvertingFootnote===!0)return e;var t=0;return e=e.replace(/\[\^(.+?)\]/g,function(e,r){var a=f(r),i=n.footnotes[a];if(void 0===i)return e;t++,n.usedFootnotes.push(a);var o=''+t+"";return n.hashExtraInline(o)})},Markdown.Extra.prototype.printFootnotes=function(e){var n=this;if(0===n.usedFootnotes.length)return e;e+='\n\n
        \n
        \n
          \n\n';for(var t=0;t'+i+' \n\n'}return e+="
        \n
        "},Markdown.Extra.prototype.fencedCodeBlocks=function(e){function n(e){return e=e.replace(/&/g,"&"),e=e.replace(//g,">"),e=e.replace(/~D/g,"$$"),e=e.replace(/~T/g,"~")}var t=this;return e=e.replace(/(?:^|\n)```[ \t]*(\S*)[ \t]*\n([\s\S]*?)\n```[ \t]*(?=\n)/g,function(e,r,a){var i=r,o=a,s=t.googleCodePrettify?' class="prettyprint"':"",l="";i&&(l=t.googleCodePrettify||t.highlightJs?' class="language-'+i+'"':' class="'+i+'"');var c=["",n(o),"

    "].join("");return t.hashExtraBlock(c)})},Markdown.Extra.prototype.educatePants=function(e){var n=this,t="",r=0;e.replace(/(?:)|(<)([a-zA-Z1-6]+)([^\n]*?>)([\s\S]*?)(<\/\2>)/g,function(a,i,o,s,l,c,u){var d=e.substring(r,u);return t+=n.applyPants(d),n.smartyPantsLastChar=t.substring(t.length-1),r=u+a.length,i?(/code|kbd|pre|script|noscript|iframe|math|ins|del|pre/i.test(o)?n.smartyPantsLastChar=l.substring(l.length-1):l=n.educatePants(l),void(t+=i+o+s+l+c)):void(t+=a)});var a=e.substring(r);return t+=n.applyPants(a),n.smartyPantsLastChar=t.substring(t.length-1),t},Markdown.Extra.prototype.applyPants=function(e){return e=e.replace(/---/g,"—").replace(/--/g,"–"),e=e.replace(/\.\.\./g,"…").replace(/\.\s\.\s\./g,"…"),e=e.replace(/``/g,"“").replace(/''/g,"”"),/^'$/.test(e)?/\S/.test(this.smartyPantsLastChar)?"’":"‘":/^"$/.test(e)?/\S/.test(this.smartyPantsLastChar)?"”":"“":(e=e.replace(/^'(?=[!"#\$\%'()*+,\-.\/:;<=>?\@\[\\]\^_`{|}~]\B)/,"’"),e=e.replace(/^"(?=[!"#\$\%'()*+,\-.\/:;<=>?\@\[\\]\^_`{|}~]\B)/,"”"),e=e.replace(/"'(?=\w)/g,"“‘"),e=e.replace(/'"(?=\w)/g,"‘“"),e=e.replace(/'(?=\d{2}s)/g,"’"),e=e.replace(/(\s| |--|&[mn]dash;|&\#8211;|&\#8212;|&\#x201[34];)'(?=\w)/g,"$1‘"),e=e.replace(/([^\s\[\{\(\-])'/g,"$1’"),e=e.replace(/'(?=\s|s\b)/g,"’"),e=e.replace(/'/g,"‘"),e=e.replace(/(\s| |--|&[mn]dash;|&\#8211;|&\#8212;|&\#x201[34];)"(?=\w)/g,"$1“"),e=e.replace(/([^\s\[\{\(\-])"/g,"$1”"),e=e.replace(/"(?=\s)/g,"”"),e=e.replace(/"/gi,"“"))},Markdown.Extra.prototype.runSmartyPants=function(e){return this.smartyPantsLastChar="",e=this.educatePants(e),e=e.replace(/(<([a-zA-Z1-6]+)\b([^\n>]*?)(\/)?>)/g,m)},Markdown.Extra.prototype.definitionLists=function(n){var t=new RegExp(["(\\x02\\n?|\\n\\n)","(?:","(","(","[ ]{0,3}","((?:[ \\t]*\\S.*\\n)+)","\\n?","[ ]{0,3}:[ ]+",")","([\\s\\S]+?)","(","(?=\\0x03)","|","(?=","\\n{2,}","(?=\\S)","(?!","[ ]{0,3}","(?:\\S.*\\n)+?","\\n?","[ ]{0,3}:[ ]+",")","(?!","[ ]{0,3}:[ ]+",")",")",")",")",")"].join(""),"gm"),r=this;return n=o(n),n=n.replace(t,function(n,t,a){var i=e(r.processDefListItems(a));return i="
    \n"+i+"\n
    ",t+r.hashExtraBlock(i)+"\n\n"}),s(n)},Markdown.Extra.prototype.processDefListItems=function(r){var a=this,i=new RegExp(["(\\x02\\n?|\\n\\n+)","(","[ ]{0,3}","(?![:][ ]|[ ])","(?:\\S.*\\n)+?",")","(?=\\n?[ ]{0,3}:[ ])"].join(""),"gm"),u=new RegExp(["\\n(\\n+)?","(","[ ]{0,3}","[:][ ]+",")","([\\s\\S]+?)","(?=\\n*","(?:","\\n[ ]{0,3}[:][ ]|","
    |\\x03",")",")"].join(""),"gm");return r=o(r),r=r.replace(/\n{2,}(?=\\x03)/,"\n"),r=r.replace(i,function(n,t,r){for(var i=e(r).split("\n"),o="",s=0;s"+c+"
    "}return o+"\n"}),r=r.replace(u,function(e,r,i,o){return r||o.match(/\n{2,}/)?(o=Array(i.length+1).join(" ")+o,o=t(o)+"\n\n",o="\n"+c(o,a)+"\n"):(o=n(o),o=l(t(o),a)),"\n
    "+o+"
    \n"}),s(r)},Markdown.Extra.prototype.strikethrough=function(e){return e.replace(/([\W_]|^)~T~T(?=\S)([^\r]*?\S[\*_]*)~T~T([\W_]|$)/g,"$1$2$3")},Markdown.Extra.prototype.newlines=function(e){return e.replace(/(<(?:br|\/li)>)?\n/g,function(e,n){return n?e:"
    \n"})}}(),define("pagedown-extra",function(){}),define("extensions/markdownExtra",["underscore","utils","classes/Extension","google-code-prettify","pagedown-extra"],function(e,n,t,r){function a(e){e.hooks.chain("onPreviewRefresh",function(){$("#preview-contents pre").addClass("prettyprint"),r.prettyPrint()})}var i=new t("markdownExtra","Markdown Extra",!0);i.defaultConfig={extensions:["fenced_code_gfm","tables","def_list","attr_list","footnotes","smartypants","strikethrough","newlines"],intraword:!0,comments:!0,highlighter:"prettify"};var o;return i.onEventMgrCreated=function(e){o=e},i.onToggleMode=a,i.onPagedownConfigure=function(e){var n=e.getConverter();if(i.config.intraword===!0){var t={_DoItalicsAndBold:function(e){return e=e.replace(/([^\w*]|^)(\*\*|__)(?=\S)(.+?[*_]*)(?=\S)\2(?=[^\w*]|$)/g,"$1$3"),e=e.replace(/([^\w*]|^)(\*|_)(?=\S)(.+?)(?=\S)\2(?=[^\w*]|$)/g,"$1$3")}};n.setOptions(t)}i.config.comments===!0&&n.hooks.chain("postConversion",function(e){return e.replace(//g,function(e){return e.replace(/^$/,' $1 ')})});var r={extensions:i.config.extensions};r.highlighter="prettify",a(e),Markdown.Extra.init(n,r)},i}),define("public/libs/mathjax_init",["settings"],function(e){var n=document.createElement("script");n.type="text/x-mathjax-config";var t='MathJax.Hub.Config({\n skipStartupTypeset: true,\n "HTML-CSS": {\n preferredFont: "TeX",\n availableFonts: [\n "STIX",\n "TeX"\n ],\n linebreaks: {\n automatic: true\n },\n EqnChunk: 10,\n imageFont: null\n },\n tex2jax: <%= tex2jax || \'{ inlineMath: [["$","$"],["\\\\\\\\\\\\\\\\(","\\\\\\\\\\\\\\\\)"]], displayMath: [["$$","$$"],["\\\\\\\\[","\\\\\\\\]"]], processEscapes: true }\' %>,\n TeX: $.extend({\n noUndefined: {\n attributes: {\n mathcolor: "red",\n mathbackground: "#FFEEEE",\n mathsize: "90%"\n }\n },\n Safe: {\n allow: {\n URLs: "safe",\n classes: "safe",\n cssIDs: "safe",\n styles: "safe",\n fontsize: "all"\n }\n }\n }, <%= tex %>),\n messageStyle: "none"\n});\n';n.innerHTML=_.template(t,{tex:e.extensionSettings.mathJax?e.extensionSettings.mathJax.tex:"undefined",tex2jax:e.extensionSettings.mathJax?e.extensionSettings.mathJax.tex2jax:void 0}),document.getElementsByTagName("head")[0].appendChild(n)}),define("extensions/mathJax",["utils","classes/Extension","mathjax"],function(e,n){function t(e,n,t){var r=c.slice(e,n+1).join("").replace(/&/g,"&").replace(//g,">");for(w.Browser.isMSIE&&(r=r.replace(/(%[^\n]*)\n/g,"$1
    \n"));n>e;)c[n]="",n--;c[e]="@@"+m.length+"@@",t&&(r=t(r)),m.push(r),u=d=p=null}function r(e){u=d=p=null,m=[];var n;/`/.test(e)?(e=e.replace(/~/g,"~T").replace(/(^|[^\\])(`+)([^\n]*?[^`\n])\2(?!`)/gm,function(e){return e.replace(/\$/g,"~D")}),n=function(e){return e.replace(/~([TD])/g,function(e,n){return{T:"~",D:"$"}[n]})}):n=function(e){return e},c=x(e.replace(/\r\n?/g,"\n"),y);for(var e=1,r=c.length;r>e;e+=2){var a=c[e];"@"===a.charAt(0)?(c[e]="@@"+m.length+"@@",m.push(a)):u?a===d?f?p=e:t(u,e,n):a.match(/\n.*\n/)?(p&&(e=p,t(u,e,n)),u=d=p=null,f=0):"{"===a?f++:"}"===a&&f&&f--:a===b||"$$"===a?(u=e,d=a,f=0):"begin"===a.substr(1,5)&&(u=e,d="\\end"+a.substr(6),f=0)}return p&&t(u,p,n),n(c.join(""))}function a(e){return e=e.replace(/@@(\d+)@@/g,function(e,n){return m[n]}),m=null,e}function i(){h=!1,w.cancelTypeset=!1,w.Queue(["Typeset",w,v]),w.Queue(l)}function o(){!h&&(h=!0,w.Cancel(),w.Queue(i))}var s=new n("mathJax","MathJax",!0);s.defaultConfig={tex:"{}",tex2jax:'{ inlineMath: [["$","$"],["\\\\\\\\(","\\\\\\\\)"]], displayMath: [["$$","$$"],["\\\\[","\\\\]"]], processEscapes: true }'},s.onPagedownConfigure=function(e){v=document.getElementById("preview-contents");var n=e.getConverter();n.hooks.chain("preConversion",r),n.hooks.chain("postConversion",a)};var l;s.onAsyncPreview=function(e){l=e,o()};var c,u,d,p,f,m,g=!1,h=!1,v=null,b="$",w=MathJax.Hub;w.Queue(function(){g=!0,w.processUpdateTime=50,w.Config({"HTML-CSS":{EqnChunk:10,EqnChunkFactor:1},SVG:{EqnChunk:10,EqnChunkFactor:1}})});var x,y=/(\$\$?|\\(?:begin|end)\{[a-z]*\*?\}|\\[\\{}$]|[{}]|(?:\n\s*)+|@@\d+@@)/i;return x=3==="aba".split(/(b)/).length?function(e,n){return e.split(n)}:function(e,n){var t,r=[];if(!n.global){t=n.toString();var a="";t=t.replace(/^\/(.*)\/([im]*)$/,function(e,n,t){return a=t,n}),n=RegExp(t,a+"g")}for(var i=n.lastIndex=0;t=n.exec(e);)r.push(e.substring(i,t.index)),r.push.apply(r,t.slice(1)),i=t.index+t[0].length;return r.push(e.substring(i)),r},function(){var e=MathJax.Hub;if(!e.Cancel){e.cancelTypeset=!1,e.Register.StartupHook("HTML-CSS Jax Config",function(){var n=MathJax.OutputJax["HTML-CSS"],t=n.Translate;n.Augment({Translate:function(r,a){if(e.cancelTypeset||a.cancelled)throw Error("MathJax Canceled");return t.call(n,r,a)}})}),e.Register.StartupHook("SVG Jax Config",function(){var n=MathJax.OutputJax.SVG,t=n.Translate;n.Augment({Translate:function(r,a){if(e.cancelTypeset||a.cancelled)throw Error("MathJax Canceled");return t.call(n,r,a)}})}),e.Register.StartupHook("TeX Jax Config",function(){var n=MathJax.InputJax.TeX,t=n.Translate;n.Augment({Translate:function(r,a){if(e.cancelTypeset||a.cancelled)throw Error("MathJax Canceled");return t.call(n,r,a)}})});var n=e.processError;e.processError=function(t,r,a){return"MathJax Canceled"!==t.message?n.call(e,t,r,a):(MathJax.Message.Clear(0,0),r.jaxIDs=[],r.jax={},r.scripts=[],r.i=r.j=0,r.cancelled=!0,null)},e.Cancel=function(){this.cancelTypeset=!0}}}(),s}),define("extensions/markdownSectionParser",["underscore","extensions/markdownExtra","extensions/mathJax","classes/Extension"],function(e,n,t,r){var a,i=new r("markdownSectionParser","Markdown section parser");return i.onEventMgrCreated=function(e){a=e},i.onPagedownConfigure=function(r){var i="^.+[ \\t]*\\n=+[ \\t]*\\n+|^.+[ \\t]*\\n-+[ \\t]*\\n+|^\\#{1,6}[ \\t]*.+?[ \\t]*\\#*\\n+";n.enabled&&e.some(n.config.extensions,function(e){return"fenced_code_gfm"==e})&&(i="^```.*\\n[\\s\\S]*?\\n```|"+i),t.enabled&&(i="^[ \\t]*\\n\\$\\$[\\s\\S]*?\\$\\$|"+i,i="^[ \\t]*\\n\\\\\\\\[[\\s\\S]*?\\\\\\\\]|"+i,i="^[ \\t]*\\n\\\\?\\\\begin\\{[a-z]*\\*?\\}[\\s\\S]*?\\\\end\\{[a-z]*\\*?\\}|"+i),i=new RegExp(i,"gm");var o=r.getConverter();o.hooks.chain("preConversion",function(n){function t(e,n){var t=r.substring(s,n);o.push({text:t,textWithDelimiter:'\n
    \n\n'+t+"\n"})}a.previewStartTime=new Date;var r=n+"\n\n",o=[],s=0;return r.replace(i,function(e,n){t(s,n),s=n}),t(s,n.length),a.onSectionsCreated(o),e.reduce(o,function(e,n){return e+n.textWithDelimiter},"")})},i}),define("extensions/partialRendering",["underscore","crel","extensions/markdownExtra","classes/Extension"],function(e,n,t,r){function a(n,t){if(g=[],m=[],u=void 0,h===!0||c!=t)return h=!1,c=t,m=f,f=n,void(g=n);var r=f.length;e.some(f,function(e,t){return t>=n.length||e.text!=n[t].text?(r=t,!0):void 0});var a=-f.length;e.some(f.slice().reverse(),function(e,t){return t>=n.length||e.text!=n[n.length-t-1].text?(a=-t,!0):void 0}),r-a>f.length&&(a=r-f.length);var i=f.slice(0,r);g=n.slice(r,n.length+a);var o=f.slice(f.length+a,f.length);u=e.first(o),m=f.slice(r,f.length+a),f=i.concat(g).concat(o)}function i(e){var n=e.id.substring(3);y[n]=e}function o(){function t(t){for(var r=n("div",{id:"wmd-preview-section-"+t.id,"class":"wmd-preview-section preview-content"}),o=!1;a;){var s=a.nextSibling;if(o===!0&&"DIV"==a.tagName&&"se-section-delimiter"==a.className)break;o=!0,"DIV"==a.tagName&&"footnotes"==a.className?e.each(a.querySelectorAll("ol > li"),i):r.appendChild(a),a=s}return r}e.each(m,function(e){var n=document.getElementById("wmd-preview-section-"+e.id);x.removeChild(n)});var r=document.getElementById("wmd-preview"),a=r.firstChild,o=document.createDocumentFragment();e.each(g,function(e){o.appendChild(t(e))}),r.innerHTML="";var s=w;void 0!==u&&(s=document.getElementById("wmd-preview-section-"+u.id)),x.insertBefore(o,s),w.innerHTML="";var l=[];if(b===!0){var c=n("ol");e.each(x.querySelectorAll("a.footnote"),function(e,n){e.textContent=n+1;var t=e.id.substring(6);l.push(t),c.appendChild(y[t].cloneNode(!0))}),l.length>0&&w.appendChild(n("div",{"class":"footnotes"},n("hr"),c)),y=e.pick(y,l)}}function s(n){l=n.getConverter(),l.hooks.chain("preConversion",function(){var n=e.map(g,function(e){return e.text});return n.push(c+"\n\n"),n.join("")}),n.hooks.chain("onPreviewRefresh",function(){o()})}var l,c,u,d=new r("partialRendering","Partial Rendering",!0),p=0,f=[],m=[],g=[],h=!1,v=!1,b=!1;d.onSectionsCreated=function(n){var t=[],r="\n";b=!1,e.each(n,function(e){var n=e.textWithDelimiter+"\n";v&&(n=n.replace(/^```.*\n[\s\S]*?\n```|\n[ ]{0,3}\[\^(.+?)\]\:[ \t]*\n?([\s\S]*?)\n{1,2}((?=\n[ ]{0,3}\S)|$)/gm,function(e,n){return n?(b=!0,r+=e.replace(/^\s*\n/gm,"")+"\n",""):e})),n=n.replace(/^```.*\n[\s\S]*?\n```|^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*?(?=\s|$)[ \t]*\n?[ \t]*((\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm,function(e,n){return n?(r+=e.replace(/^\s*\n/gm,"")+"\n",""):e}),t.push({id:++p,text:n+"\n"})}),a(t,r)};var w,x,y={};return d.onPagedownConfigure=s,d.onToggleMode=s,d.onInit=function(){t.enabled&&e.some(t.config.extensions,function(e){return"footnotes"==e})&&(v=!0)},d.onReady=function(){w=n("div",{id:"wmd-preview-section-footnotes","class":"preview-content"}),x=document.getElementById("preview-contents"),x.appendChild(w)},d.onFileSelected=function(){h=!0},d}),define("extensions/umlDiagrams",["require","underscore","utils","classes/Extension","crel"],function(e,n,t,r,a){function i(){var t=c.querySelectorAll(".prettyprint > .language-flow");t&&0!=t.length&&e(["flow-chart"],function(e){n.each(t,function(n){try{var t=e.parse(n.textContent),r=n.parentNode,i=a("div",{"class":"flow-chart"});r.parentNode.replaceChild(i,r),t.drawSVG(i,JSON.parse(l.config.flowchartOptions))}catch(o){console.error(o)}})})}function o(){var t=c.querySelectorAll(".prettyprint > .language-sequence");t&&0!=t.length&&e(["Diagram"],function(e){n.each(t,function(n){try{var t=e.parse(n.textContent),r=n.parentNode,i=a("div",{"class":"sequence-diagram"});r.parentNode.replaceChild(i,r),t.drawSVG(i,{theme:"simple"})}catch(o){console.error(o)}})})}function i(){var t=c.querySelectorAll(".prettyprint > .language-flow");t&&0!=t.length&&e(["flow-chart"],function(e){n.each(t,function(n){try{var t=e.parse(n.textContent),r=n.parentNode,i=a("div",{"class":"flow-chart"});r.parentNode.replaceChild(i,r),t.drawSVG(i,JSON.parse(l.config.flowchartOptions))}catch(o){console.error(o)}})})}function s(e){e.hooks.chain("onPreviewRefresh",function(){o(),i()})}var l=new r("umlDiagrams","UML Diagrams",!0);l.defaultConfig={flowchartOptions:["{",' "line-width": 2,',' "font-family": "sans-serif",',' "font-weight": "normal"',"}"].join("\n")};var c=document.getElementById("preview-contents");return l.onPagedownConfigure=s,l.onToggleMode=s,l}),define("extensions/toc",["underscore","utils","classes/Extension"],function(e,n,t){function r(e,n,t){this.tagName=e,this.anchor=n,this.text=t,this.children=[]}function a(n,t){function i(){void 0!==s&&(s.children.length>0&&(s.children=a(s.children,t+1)),c.push(s))}t=t||1;var s,l="H"+t,c=[];return e.each(n,function(e){e.tagName!=l?t!==o.config.maxDepth&&(void 0===s&&(s=new r),s.children.push(e)):(i(),s=e)}),i(),c}function i(){function t(t){for(var r=t.id||n.slugify(t.textContent)||"title",a=r,o=0;e.has(i,a);)a=r+"-"+ ++o;return i[a]=!0,t.id=a,a}var i={},o=[];return e.each(s.querySelectorAll("h1, h2, h3, h4, h5, h6"),function(e){o.push(new r(e.tagName,t(e),e.textContent))}),o=a(o),'
    \n
      \n'+o.join("")+"
    \n
    \n"}var o=new t("toc","Table of Contents",!0);o.defaultConfig={marker:"\\[(TOC|toc)\\]",maxDepth:6,button:!0},r.prototype.childrenToString=function(){if(0===this.children.length)return"";var n="
      \n";return e.each(this.children,function(e){n+=e.toString()}),n+="
    \n"},r.prototype.toString=function(){var e="
  • ";return this.anchor&&this.text&&(e+=''+this.text+""),e+=this.childrenToString()+"
  • \n"};var s;return o.onPagedownConfigure=function(n){s=document.getElementById("preview-contents");var t=new RegExp("^"+o.config.marker+"$");n.hooks.chain("onPreviewRefresh",function(){var n=document.querySelectorAll(".table-of-contents, .toc"),r=i();e.each(s.getElementsByTagName("p"),function(e){t.test(e.innerHTML)&&(e.innerHTML=r)}),e.each(n,function(e){e.innerHTML=r}),$("#leanoteNavContentMd").height("auto");try{$(r).text()||$("#leanoteNavContentMd").html("    Nothing...")}catch(a){}var o=$("#leanoteNavContentMd").height(),l=$("#mdEditor").height()-100;o>l&&$("#leanoteNavContentMd").height(l)})},o.onReady=function(){},o}),define("extensions/emailConverter",["classes/Extension"],function(e){var n=new e("emailConverter","Markdown Email",!0);return n.onPagedownConfigure=function(e){e.getConverter().hooks.chain("postConversion",function(e){return e.replace(/<(mailto\:)?([^\s>]+@[^\s>]+\.\S+?)>/g,function(e,n,t){return''+t+""})})},n}),define("extensions/todoList",["classes/Extension"],function(e){var n=new e("todoList","Markdown todoList",!0);return n.onPagedownConfigure=function(e){e.getConverter().hooks.chain("postConversion",function(e){return e.replace(/
  • (

    )?\[([ xX]?)\] /g,function(e,n,t){return n||(n=""),"x"!=t&&"X"!=t?'

  • '+n+' ':'
  • '+n+' '})})},n}),define("extensions/scrollLink",["underscore","classes/Extension"],function(e,n){function t(n,t,r){var a,i=e.find(t,function(e,t){return a=t,n .se-section-delimiter").each(function(){if(void 0===w)return void(w=0);var e=$(this),n=e.position().top+y;f.push({startOffset:w,endOffset:n,height:n-w}),w=n});var C=c.prop("scrollHeight");f.push({startOffset:w,endOffset:C,height:C-w}),u=-10,d=-10,x()},500),g=!1,h=!1,v=!1,b=!1,w=$("
    "),x=e.throttle(function(){if(0===p.length||p.length!==f.length)return void x();var n=window.lightMode?s.scrollTop():r.renderer.getScrollTop();0>n&&(n=0);var a,i=c.scrollTop();if(g===!0){if(Math.abs(n-u)<=9)return;if(g=!1,u=n,a=t(n,p,f),a=e.min([a,c.prop("scrollHeight")-c.outerHeight()]),Math.abs(a-i)<=9)return void(d=i);w.stop("scrollLinkFx",!0).css("value",0).animate({value:a-i},{easing:"linear",duration:200,queue:"scrollLinkFx",step:function(e){b=!0,d=i+e,c.scrollTop(d)},done:function(){e.defer(function(){b=!1})}}).dequeue("scrollLinkFx")}else if(h===!0){if(Math.abs(i-d)<=9)return;if(h=!1,d=i,a=t(i,f,p),window.lightMode?a=e.min([a,s.prop("scrollHeight")-s.outerHeight()]):(a=e.min([a,r.session.getScreenLength()*r.renderer.lineHeight+r.renderer.scrollMargin.bottom-r.renderer.$size.scrollerHeight]),0>a&&(a=0)),Math.abs(a-n)<=9)return void(u=n);w.stop("scrollLinkFx",!0).css("value",0).animate({value:a-n},{easing:"linear",duration:200,queue:"scrollLinkFx",step:function(e){v=!0,u=n+e,window.lightMode||r.session.setScrollTop(u),window.lightMode&&s.scrollTop(u)},done:function(){e.defer(function(){v=!1})}}).dequeue("scrollLinkFx")}},100);a.onLayoutResize=function(){g=!0,m()},a.onFileClosed=function(){p=[]};var y=function(e){c=$(".preview-container"),s=$("#wmd-input"),l=$(".textarea-helper"),c.scroll(function(){b===!1&&C===!1&&(h=!0,g=!1,x()),C=!1});var n=function(){v===!1&&(g=!0,h=!1,x())},t=e?500:0;setTimeout(function(){window.lightMode?s.scroll(n):r.session.on("changeScrollTop",n)},t)};a.onToggleMode=function(){c=$(".preview-container"),s=$("#wmd-input"),l=$(".textarea-helper"),m(),y(!0)};var C=!1;a.onReady=function(){c=$(".preview-container"),s=$("#wmd-input"),l=$(".textarea-helper"),y(),$(".extension-preview-buttons .table-of-contents, #preview-contents").on("click","a",function(e){var n=this.hash;if(n){e.preventDefault();var a=$("#preview-contents "+n);if(a.length){var i=a[0].getBoundingClientRect().top-c.get(0).getBoundingClientRect().top+c.scrollTop(),o=t(i,f,p);c.scrollTop(i),window.lightMode||r.session.setScrollTop(o),window.lightMode&&s.scrollTop(o)}}})};var k;return a.onPagedownConfigure=function(e){k=$("#preview-contents"),e.getConverter().hooks.chain("postConversion",function(e){return k.height(k.height()),e})},a.onPreviewFinished=function(){var e=k.height();k.height("auto");var n=k.height();g=!0,e>n&&(C=!0),m()},a}),define("extensions/htmlSanitizer",["underscore","utils","classes/Extension"],function(e,n,t){function r(e){var n,t={},r=e.split(",");for(n=0;n=0&&c[a]!=t;a--);if(a>=0){for(r=c.length-1;r>=a;r--)n.end&&n.end(c[r]);c.length=a}}var a,o,s,c=[],b=e;for(c.last=function(){return c[c.length-1]};e;){if(o=!0,c.last()&&_[c.last()])e=e.replace(new RegExp("(.*)<\\s*\\/\\s*"+c.last()+"[^>]*>","i"),function(e,t){return t=t.replace(g,"$1").replace(v,"$1"),n.chars&&n.chars(i(t)),""}),r("",c.last());else if(0===e.indexOf("",a)===a&&(n.comment&&n.comment(e.substring(4,a)),e=e.substring(a+3),o=!1)):h.test(e)?(s=e.match(h),s&&(e=e.replace(s[0],""),o=!1)):m.test(e)?(s=e.match(d),s&&(e=e.substring(s[0].length),s[0].replace(d,r),o=!1)):f.test(e)&&(s=e.match(u),s&&(e=e.substring(s[0].length),s[0].replace(u,t),o=!1)),o){a=e.indexOf("<");var x=0>a?e:e.substring(0,a);e=0>a?"":e.substring(a),n.chars&&n.chars(i(x))}if(e==b)return c.reverse(),c.forEach(function(e){l.push("")});b=e}r()}function i(e){if(!e)return"";var n=$.exec(e),t=n[1],r=n[3],a=n[2];return a&&(M.innerHTML=a.replace(//g,">")}function s(n){var t=!1,r=e.bind(n.push,n);return{start:function(n,a,i){n=n&&n.toLowerCase(),!t&&_[n]&&(t=n),t||E[n]!==!0||(r("<"),r(n),e.forEach(a,function(e,n){var t=n&&n.toLowerCase();I[t]===!0&&(r(" "),r(n),r('="'),r(o(e)),r('"'))}),r(i?"/>":">"))},end:function(e){e=e&&e.toLowerCase(),t||E[e]!==!0||(r("")),e==t&&(t=!1)},chars:function(e){t||r(o(e))},comment:function(e){t||(r(""))}}}var l,c=new t("htmlSanitizer","HTML Sanitizer",!0);c.onPagedownConfigure=function(e){var n=e.getConverter();n.hooks.chain("postConversion",function(e){return l=[],e.split('
    ').forEach(function(e){a(e,s(l)),l.push('
    ')}),l.slice(0,-1).join("")})};var u=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,d=/^<\s*\/\s*([\w:-]+)[^>]*>/,p=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,f=/^/g,h=/]*?)>/i,v=//g,b=/([^\#-~| |!])/g,w=r("area,br,col,hr,img,wbr"),x=r("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),y=r("rp,rt"),C=e.extend({},y,x),k=e.extend({},x,r("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul,embed,iframe")),S=e.extend({},y,r("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var,input")),_=r("script,style"),E=e.extend({},w,k,S,C),T=r("background,cite,href,longdesc,src,usemap"),I=e.extend({},T,r("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,type,valign,value,vspace,width,checked"));I.id=!0,I.allowfullscreen=!0;var M=document.createElement("pre"),$=/^(\s*)([\s\S]*?)(\s*)$/;return c}),function(e){var n="waitForImages";e.waitForImages={hasImageProperties:["backgroundImage","listStyleImage","borderImage","borderCornerImage"]},e.expr[":"].uncached=function(n){if(!e(n).is('img[src!=""]'))return!1;var t=new Image;return t.src=n.src,!t.complete},e.fn.waitForImages=function(t,r,a){var i=0,o=0;if(e.isPlainObject(arguments[0])&&(a=arguments[0].waitForAll,r=arguments[0].each,t=arguments[0].finished),t=t||e.noop,r=r||e.noop,a=!!a,!e.isFunction(t)||!e.isFunction(r))throw new TypeError("An invalid callback was supplied.");return this.each(function(){var s=e(this),l=[],c=e.waitForImages.hasImageProperties||[],u=/url\(\s*(['"]?)(.*?)\1\s*\)/g;a?s.find("*").andSelf().each(function(){var n=e(this);n.is("img:uncached")&&l.push({src:n.attr("src"),element:n[0]}),e.each(c,function(e,t){var r,a=n.css(t);if(!a)return!0;for(;r=u.exec(a);)l.push({src:r[2],element:n[0]})})}):s.find("img:uncached").each(function(){l.push({src:this.src,element:this})}),i=l.length,o=0,0===i&&t.call(s[0]),e.each(l,function(a,l){var c=new Image;e(c).bind("load."+n+" error."+n,function(e){return o++,r.call(l.element,o,i,"load"==e.type),o==i?(t.call(s[0]),!1):void 0}),c.src=l.src})})}}(jQuery),define("jquery-waitforimages",function(){}),define("eventMgr",["underscore","crel","utils","classes/Extension","settings","extensions/markdownSectionParser","extensions/partialRendering","extensions/umlDiagrams","extensions/markdownExtra","extensions/toc","extensions/mathJax","extensions/emailConverter","extensions/todoList","extensions/scrollLink","extensions/htmlSanitizer","jquery-waitforimages"],function(e,n,t,r,a){function i(n){return e.chain(c).map(function(e){return e.enabled&&e[n]}).compact().value()}function o(n){return d[n]=i(n),function(){var t=arguments;e.each(d[n],function(n){try{n.apply(null,t)}catch(r){console.error(e.isObject(r)?r.stack:r)}})}}function s(e){l[e]=o(e)}var l={},c=e.chain(arguments).map(function(e){return e instanceof r&&e}).compact().value(),u=a.extensionSettings||{};e.each(c,function(n){n.config=e.extend({},n.defaultConfig,u[n.extensionId]),n.enabled=window.viewerMode===!0&&n.disableInViewer===!0?!1:window.lightMode===!0&&n.disableInLight===!0?!1:!n.isOptional||void 0===n.config.enabled||n.config.enabled===!0});var d={};l.addListener=function(e,n){try{d[e].push(n)}catch(t){console.error("No event listener called "+e)}},o("onInit")(),l.onLoadSettings=function(){e.each(c,function(e){var n=!e.isOptional||void 0===e.config.enabled||e.config.enabled===!0;t.setInputChecked("#input-enable-extension-"+e.extensionId,n),"markdownExtra"==e.extensionId?t.setInputChecked("#input-settings-markdown-extra",n):"mathJax"==e.extensionId&&t.setInputChecked("#input-settings-mathjax",n);var r=e.onLoadSettings;r&&r()})},l.onSaveSettings=function(n,r){e.each(c,function(a){if(window.lightMode===!0&&a.disableInLight===!0)return void(n[a.extensionId]=a.config);var i=e.extend({},a.defaultConfig);i.enabled=t.getInputChecked("#input-enable-extension-"+a.extensionId);var o;"markdownExtra"==a.extensionId?(o=t.getInputChecked("#input-settings-markdown-extra"),o!=a.enabled&&(i.enabled=o)):"mathJax"==a.extensionId&&(o=t.getInputChecked("#input-settings-mathjax"),o!=a.enabled&&(i.enabled=o));var s=a.onSaveSettings;s&&s(i,r),n[a.extensionId]=i})},s("onMessage"),s("onError"),s("onPeriodicRun"),s("onFileMgrCreated"),s("onSynchronizerCreated"),s("onPublisherCreated"),s("onEventMgrCreated"),s("onFileCreated"),s("onFileDeleted"),s("onFileSelected"),s("onFileOpen"),s("onFileClosed"),s("onContentChanged"),s("onToggleMode"),s("onLayoutConfigure"),s("onLayoutCreated"),s("onLayoutResize"),s("onPagedownConfigure"),s("onSectionsCreated"),s("onMarkdownTrim"),s("onAceCreated");var p,f,m=o("onPreviewFinished"),g=i("onAsyncPreview");l.onAsyncPreview=function(){function n(r){var a=r.length?r.shift():function(){e.defer(function(){var n="";e.each(p.children,function(e){n+=e.innerHTML}),n=n.replace(/^
    <\/div>\n\n/gm,"");var r=t.trim(n),a=r.replace(/ .*?<\/span> /g,"");m(r,a)})};a(function(){n(r)})}n(g.concat([function(e){f.waitForImages(e)}]))};var h=o("onReady");return l.onReady=function(){p=document.getElementById("preview-contents"),f=$(p);var t=function(t){var r=n("div",{"class":"btn-group"}),a=t();return e.isString(a)?r.innerHTML=a:e.isElement(a)&&r.appendChild(a),r};if(window.viewerMode===!1){var r=i("onCreateEditorButton"),a=document.createDocumentFragment();e.each(r,function(e){a.appendChild(t(e))})}var o=i("onCreatePreviewButton"),s=document.createDocumentFragment();e.each(o,function(e){s.appendChild(t(e))});var l=document.querySelector(".extension-preview-buttons");l.appendChild(s);var c=$(l),u=c.width();c.find(".btn-group").each(function(){var e=$(this);e.find(".dropdown-menu").css({right:-u+e.width()+e.position().left})}),h()},l.onEventMgrCreated(l),l}),define("shortcutMgr",["underscore","eventMgr","utils"],function(e){var n={},t={bold:{title:"Strong",defaultKey:{win:"Ctrl-B",mac:"Command-B|Ctrl-B"},isPageDown:!0},italic:{title:"Emphasis",defaultKey:{win:"Ctrl-I",mac:"Command-I|Ctrl-I"},isPageDown:!0},link:{title:"Hyperlink",defaultKey:{win:"Ctrl-L",mac:"Command-L|Ctrl-L"},isPageDown:!0},quote:{title:"Blockquote",defaultKey:{win:"Ctrl-Q",mac:"Command-Q|Ctrl-Q"},isPageDown:!0},code:{title:"Code Sample",defaultKey:{win:"Ctrl-K",mac:"Command-K|Ctrl-K"},isPageDown:!0},image:{title:"Image",defaultKey:{win:"Ctrl-G",mac:"Command-G|Ctrl-G"},isPageDown:!0},olist:{title:"Numbered List",defaultKey:{win:"Ctrl-O",mac:"Command-O|Ctrl-O"},isPageDown:!0},ulist:{title:"Bulleted List",defaultKey:{win:"Ctrl-U",mac:"Command-U|Ctrl-U"},isPageDown:!0},heading:{title:"Heading",defaultKey:{win:"Ctrl-H",mac:"Command-H|Ctrl-H"},isPageDown:!0},hr:{title:"Horizontal Rule",defaultKey:{win:"Ctrl-R",mac:"Command-R|Ctrl-R"},isPageDown:!0},undo:{title:"Undo",defaultKey:{win:"Ctrl-Z",mac:"Command-Z"},exec:function(e){e.undo()},isPageDown:!0},redo:{title:"Redo",defaultKey:{win:"Ctrl-Y|Ctrl-Shift-Z",mac:"Command-Y|Command-Shift-Z"},exec:function(e){e.redo()},isPageDown:!0},selectall:{title:"Select All",defaultKey:{win:"Ctrl-A",mac:"Command-A"},exec:function(e){e.selectAll()},readOnly:!0},removeline:{title:"Remove Line",defaultKey:{win:"Ctrl-D",mac:"Command-D"},exec:function(e){e.removeLines()},multiSelectAction:"forEachLine"},duplicateSelection:{title:"Duplicate Selection",defaultKey:{win:"Ctrl-Shift-D",mac:"Command-Shift-D"},exec:function(e){e.duplicateSelection()},multiSelectAction:"forEach"},sortlines:{title:"Sort Lines",defaultKey:{win:"Ctrl-Alt-S",mac:"Command-Alt-S"},exec:function(e){e.sortLines()},multiSelectAction:"forEachLine"},modifyNumberUp:{title:"Number Up",defaultKey:{win:"Ctrl-Shift-Up",mac:"Alt-Shift-Up"},exec:function(e){e.modifyNumber(1)},multiSelectAction:"forEach"},modifyNumberDown:{title:"Number Down",defaultKey:{win:"Ctrl-Shift-Down",mac:"Alt-Shift-Down"},exec:function(e){e.modifyNumber(-1)},multiSelectAction:"forEach"},find:{title:"Find",defaultKey:{win:"Ctrl-F",mac:"Command-F"},exec:function(e){var n=ace.require("ace/config");n.loadModule("ace/ext/searchbox",function(n){n.Search(e)})},readOnly:!0},replace:{title:"Replace",defaultKey:{win:"Ctrl-Shift-F",mac:"Command-Option-F"},exec:function(e){var n=require("ace/config");n.loadModule("ace/ext/searchbox",function(n){n.Search(e,!0)})},readOnly:!0},findnext:{title:"Find Next",defaultKey:{win:"Ctrl-P",mac:"Command-P"},exec:function(e){e.findNext()},readOnly:!0},findprevious:{title:"Find Previous",defaultKey:{win:"Ctrl-Shift-P",mac:"Command-Shift-P"},exec:function(e){e.findPrevious()},readOnly:!0},togglerecording:{title:"Toggle Recording",defaultKey:{win:"Ctrl-Alt-E",mac:"Command-Option-E"},exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},replaymacro:{title:"Replay Macro",defaultKey:{win:"Ctrl-Shift-E",mac:"Command-Shift-E"},exec:function(e){e.commands.replay(e)},readOnly:!0}};return e.each(t,function(e,n){e.name=n,e.bindKey=e.defaultKey}),n.configureAce=function(n){e.each(t,function(t){t.exec&&n.commands.addCommand(e.pick(t,"name","bindKey","exec","readOnly","multiSelectAction"))})},n.getPagedownKeyStrokes=function(){return e.chain(t).where({isPageDown:!0}).map(function(e){return[e.name,e.bindKey]}).object().value()},n}),function(){function e(){}function n(e){this.buttonBar=d.getElementById("wmd-button-bar"+e),this.preview=d.getElementById("wmd-preview"+e),this.input=d.getElementById("wmd-input"+e)}function t(e,n){var t,a,i,o=this,s=[],c=0,u="none",d=function(e,n){u!=e&&(u=e,n||f()),g.isIE&&"moving"==u?i=null:a=setTimeout(p,1)},p=function(e){i=new r(n,e),a=void 0};this.setCommandMode=function(){u="command",f(),a=setTimeout(p,0)},this.canUndo=function(){return c>1},this.canRedo=function(){return s[c+1]?!0:!1},this.undo=function(){o.canUndo()&&(t?(t.restore(),t=null):(s[c]=new r(n),s[--c].restore(),e&&e())),u="none",n.input.focus(),p()},this.redo=function(){o.canRedo()&&(s[++c].restore(),e&&e()),u="none",n.input.focus(),p()};var f=function(){var a=i||new r(n);return a?"moving"==u?void(t||(t=a)):(t&&(s[c-1].text!=t.text&&(s[c++]=t),t=null),s[c++]=a,s[c+1]=null,void(e&&e())):!1},m=function(e){if(!e.ctrlKey&&!e.metaKey){var n=e.keyCode;n>=33&&40>=n||n>=63232&&63235>=n?d("moving"):8==n||46==n||127==n?d("deleting"):13==n?d("newlines"):27==n?d("escape"):(16>n||n>20)&&91!=n&&d("typing")}},h=function(){l.addEvent(n.input,"keypress",function(e){!e.ctrlKey&&!e.metaKey||e.altKey||89!=e.keyCode&&90!=e.keyCode||e.preventDefault()});var e=function(){(g.isIE||i&&i.text!=n.input.value)&&void 0==a&&(u="paste",f(),p())};l.addEvent(n.input,"keydown",m),l.addEvent(n.input,"mousedown",function(){d("moving")}),n.input.onpaste=e,n.input.ondrop=e},v=function(){h(),p(!0)};this.reinit=function(e,n,r,o){s=[],c=0,u="none",t=void 0,a=void 0,p(),i.text=e,i.start=n,i.end=r,i.scrollTop=o,i.setInputAreaSelection(),f()},this.setMode=d,v()}function r(n,t){var r=this,a=n.input;this.init=function(){l.isVisible(a)&&(t||!d.activeElement||d.activeElement===a)&&(this.setInputAreaSelectionStartEnd(),this.scrollTop=a.scrollTop,(!this.text&&a.selectionStart||0===a.selectionStart)&&(this.text=a.value))},this.setInputAreaSelection=function(){if(l.isVisible(a))if(void 0===a.selectionStart||g.isOpera){if(d.selection){if(d.activeElement&&d.activeElement!==a)return;a.focus();var e=a.createTextRange();e.moveStart("character",-a.value.length),e.moveEnd("character",-a.value.length),e.moveEnd("character",r.end),e.moveStart("character",r.start),e.select()}}else a.focus(),a.selectionStart=r.start,a.selectionEnd=r.end,a.scrollTop=r.scrollTop},this.setInputAreaSelectionStartEnd=function(){if(n.ieCachedRange||!a.selectionStart&&0!==a.selectionStart){if(d.selection){r.text=l.fixEolChars(a.value);var e=n.ieCachedRange||d.selection.createRange(),t=l.fixEolChars(e.text),i="",o=i+t+i;e.text=o;var s=l.fixEolChars(a.value);e.moveStart("character",-o.length),e.text=t,r.start=s.indexOf(i),r.end=s.lastIndexOf(i)-i.length;var c=r.text.length-l.fixEolChars(a.value).length;if(c){for(e.moveStart("character",-t.length);c--;)t+="\n",r.end+=1;e.text=t}n.ieCachedRange&&(r.scrollTop=n.ieCachedScrollTop),n.ieCachedRange=null,this.setInputAreaSelection()}}else r.start=a.selectionStart,r.end=a.selectionEnd},this.restore=function(){void 0!=r.text&&r.text!=a.value&&(a.value=r.text),this.setInputAreaSelection(),a.scrollTop=r.scrollTop},this.getChunks=function(){var n=new e;return n.before=l.fixEolChars(r.text.substring(0,r.start)),n.startTag="",n.selection=l.fixEolChars(r.text.substring(r.start,r.end)),n.endTag="",n.after=l.fixEolChars(r.text.substring(r.end)),n.scrollTop=r.scrollTop,n},this.setChunks=function(e){e.before=e.before+e.startTag,e.after=e.endTag+e.after,this.start=e.before.length,this.end=e.before.length+e.selection.length,this.text=e.before+e.selection+e.after,this.scrollTop=e.scrollTop},this.init()}function a(e,n,t,r){var a,i,o,s=3e3,u="delayed",p=function(e,n){l.addEvent(e,"input",n),e.onpaste=n,e.ondrop=n,l.addEvent(e,"keypress",n),l.addEvent(e,"keydown",n)},f=function(){var e=0;return window.innerHeight?e=window.pageYOffset:d.documentElement&&d.documentElement.scrollTop?e=d.documentElement.scrollTop:d.body&&(e=d.body.scrollTop),e},m=function(){if(n.preview){var t=n.input.value;if(!t||t!=o){o=t;var r=(new Date).getTime();t=e.makeHtml(t);var a=(new Date).getTime();i=a-r,S(t)}}};void 0!==r&&(m=r(m));var h=function(){if(a&&(clearTimeout(a),a=void 0),"manual"!==u){var e=0;"delayed"===u&&(e=i),e>s&&(e=s),a=setTimeout(m,e)}},v=function(e){return e.scrollHeight<=e.clientHeight?1:e.scrollTop/(e.scrollHeight-e.clientHeight)},b=function(){n.preview&&(n.preview.scrollTop=(n.preview.scrollHeight-n.preview.clientHeight)*v(n.preview))};this.refresh=function(e){e?(o="",m()):h()},this.processingTime=function(){return i};var w,x=!0,y=function(e){var t=n.preview,r=t.parentNode,a=t.nextSibling;r.removeChild(t),t.innerHTML=e,a?r.insertBefore(t,a):r.appendChild(t)},C=function(e){n.preview.innerHTML=e},k=function(e){if(w)return w(e);try{C(e),w=C}catch(n){w=y,w(e)}},S=function(e){var r=c.getTop(n.input)-f();if(n.preview&&(k(e),t()),b(),x)return void(x=!1);var a=c.getTop(n.input)-f();g.isIE?setTimeout(function(){window.scrollBy(0,a-r)},0):window.scrollBy(0,a-r)},_=function(){p(n.input,h),n.preview&&(n.preview.scrollTop=0)};_()}function i(e,n,t,a,i,o,s){function c(e,i,o){b.focus(),t&&t.setCommandMode();var s=new r(n);if(s){var l=s.getChunks(),c=function(){b.focus(),l&&s.setChunks(l),s.restore(),a.refresh()},u=w.insertLink(l,c,e,i,o);u||c()}}function u(e){b.focus();var i="wmd-link-button"==e.id||"wmd-image-button"==e.id;if(e.textOp){t&&!i&&t.setCommandMode();var o=new r(n);if(!o)return;var s=o.getChunks(),l=function(){b.focus(),s&&o.setChunks(s),o.restore(),a.refresh()},c=e.textOp(s,l);c||(l(),i||b.dispatchEvent(new Event("input")))}e.execute&&e.execute(t)}function p(e,t){var r="0px",a="-20px",i="-40px",o=e.getElementsByTagName("span")[0];t?(o.style.backgroundPosition=e.XShift+" "+r,e.onmouseover=function(){o.style.backgroundPosition=this.XShift+" "+i},e.onmouseout=function(){o.style.backgroundPosition=this.XShift+" "+r},g.isIE&&(e.onmousedown=function(){d.activeElement&&d.activeElement!==n.input||(n.ieCachedRange=document.selection.createRange(),n.ieCachedScrollTop=n.input.scrollTop)}),e.isHelp||(e.onclick=function(){return this.onmouseout&&this.onmouseout(),u(this),!1}),e.className=e.className.replace(/ disabled/g,"")):(o.style.backgroundPosition=e.XShift+" "+a,e.onmouseover=e.onmouseout=e.onclick=function(){},e.className+=" disabled")}function m(e){return"string"==typeof e&&(e=i[e]),function(){e.apply(i,arguments)}}function h(){var t=n.buttonBar,r=document.createElement("ul");r.id="wmd-button-row"+e,r.className="wmd-button-row",r=t.appendChild(r);var a=0,i=function(n,t,i,o){var s=document.createElement("li");s.className="wmd-button",s.style.left=a+"px",a+=25;var l=document.createElement("span");return s.id=n+e,s.appendChild(l),s.title=t,s.XShift=i,o&&(s.textOp=o),p(s,!0),r.appendChild(s),s};x.bold=i("wmd-bold-button",s("bold"),"0px",m("doBold")),x.italic=i("wmd-italic-button",s("italic"),"-20px",m("doItalic")),x.link=i("wmd-link-button",s("link"),"-40px",m(function(e,n){return this.doLinkOrImage(e,n,!1)})),x.quote=i("wmd-quote-button",s("quote"),"-60px",m("doBlockquote")),x.code=i("wmd-code-button",s("code"),"-80px",m("doCode")),x.image=i("wmd-image-button",s("image"),"-100px",m(function(e,n){return this.doLinkOrImage(e,n,!0)})),x.olist=i("wmd-olist-button",s("olist"),"-120px",m(function(e,n){this.doList(e,n,!0)})),x.ulist=i("wmd-ulist-button",s("ulist"),"-140px",m(function(e,n){this.doList(e,n,!1)})),x.heading=i("wmd-heading-button",s("heading"),"-160px",m("doHeading")),x.hr=i("wmd-hr-button",s("hr"),"-180px",m("doHorizontalRule")),x.undo=i("wmd-undo-button",s("undo"),"-200px",null),x.undo.execute=function(e){e&&e.undo()};var l=s(/win/.test(f.platform.toLowerCase())?"redo":"redomac");if(x.redo=i("wmd-redo-button",l,"-220px",null),x.redo.execute=function(e){e&&e.redo()},o){var c=document.createElement("li"),u=document.createElement("span");c.appendChild(u),c.className="wmd-button wmd-help-button",c.id="wmd-help-button"+e,c.XShift="-240px",c.isHelp=!0,c.style.right="0px",c.title=s("help"),c.onclick=o.handler,p(c,!0),r.appendChild(c),x.help=c}v()}function v(){t&&(p(x.undo,t.canUndo()),p(x.redo,t.canRedo()))}var b=n.input,x={};h();var y="keydown";g.isOpera&&(y="keypress"),l.addEvent(b,y,function(e){if((e.ctrlKey||e.metaKey)&&!e.altKey){var n=e.charCode||e.keyCode,r=String.fromCharCode(n).toLowerCase();switch(r){case"b":u(x.bold);break;case"i":u(x.italic);break;case"l":u(x.link);break;case"q":u(x.quote);break;case"k":u(x.code);break;case"g":u(x.image);break;case"o":u(x.olist);break;case"u":u(x.ulist);break;case"h":u(x.heading);break;case"r":u(x.hr);break;case"y":u(x.redo);break;case"z":u(e.shiftKey?x.redo:x.undo);break;case"v":return void t.setMode("typing");case"x":return void t.setMode("deleting");default:return}e.preventDefault&&e.preventDefault(),window.event&&(window.event.returnValue=!1)}}),l.addEvent(b,"keyup",function(e){if(e.shiftKey&&!e.ctrlKey&&!e.metaKey){var n=e.charCode||e.keyCode;if(13===n){var t={};t.textOp=m("doAutoindent"),u(t)}}}),g.isIE&&l.addEvent(b,"keydown",function(e){var n=e.keyCode;return 27===n?!1:void 0}),MD.insertLink=c,MD.insertLink2=c,this.setUndoRedoButtonStates=v,this.buttons=x,this.setButtonState=p}function o(e,n){this.hooks=e,this.getString=n}function s(e){return e.replace(/^\s*(.*?)(?:\s+"(.+)")?\s*$/,function(e,n,t){return n=n.replace(/\?.*$/,function(e){return e.replace(/\+/g," ")}),n=decodeURIComponent(n),n=encodeURI(n).replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29"),n=n.replace(/\?.*$/,function(e){return e.replace(/\+/g,"%2b")}),t&&(t=t.trim?t.trim():t.replace(/^\s*/,"").replace(/\s*$/,""),t=t.replace(/"/g,"quot;").replace(/\(/g,"(").replace(/\)/g,")").replace(//g,">")),t?n+' "'+t+'"':n})}var l={},c={},u={},d=window.document,p=window.RegExp,f=window.navigator,m={lineLength:72},g={isIE:/msie/.test(f.userAgent.toLowerCase()),isIE_5or6:/msie 6/.test(f.userAgent.toLowerCase())||/msie 5/.test(f.userAgent.toLowerCase()),isOpera:/opera/.test(f.userAgent.toLowerCase())},h={bold:getMsg("Strong")+" Ctrl/Cmd+B",boldexample:getMsg("strong text"),italic:getMsg("Emphasis")+" Ctrl/Cmd+I",italicexample:getMsg("emphasized text"),link:getMsg("Hyperlink")+" Ctrl/Cmd+L",linkdescription:getMsg("enter link description here"),linkdialog:'

    Insert Hyperlink

    http://example.com/ "optional title"

    ',quote:getMsg("Blockquote")+"
    Ctrl/Cmd+Q",quoteexample:getMsg("Blockquote"),code:getMsg("Code Sample")+"
     Ctrl/Cmd+K",codeexample:getMsg("enter code here"),image:getMsg("Image")+" Ctrl/Cmd+G",imagedescription:getMsg("enter image description here"),imagedialog:"

    Insert Image

    http://example.com/images/diagram.jpg \"optional title\"

    Need
    free image hosting?

    ",olist:getMsg("Numbered List")+"
      Ctrl/Cmd+O",ulist:getMsg("Bulleted List")+"
        Ctrl/Cmd+U",litem:getMsg("List item"),heading:getMsg("Heading")+"

        /

        Ctrl/Cmd+H",headingexample:getMsg("Heading"),hr:getMsg("Horizontal Rule")+"
        Ctrl/Cmd+R",undo:getMsg("Undo")+" - Ctrl/Cmd+Z",redo:getMsg("Redo")+" - Ctrl/Cmd+Y",redomac:getMsg("Redo")+" - Ctrl+Shift+Z",help:"Markdown Editing Help"},v="http://",b="http://";Markdown.EditorLight=function(e,r,s){s=s||{},"function"==typeof s.handler&&(s={helpButton:s}),s.strings=s.strings||{},s.helpButton&&(s.strings.help=s.strings.help||s.helpButton.title);var l=function(e){return s.strings[e]||h[e]};r=r||"";var c=this.hooks=new Markdown.HookCollection;c.addNoop("onPreviewRefresh"),c.addNoop("postBlockquoteCreation"),c.addFalse("insertImageDialog"),c.addFalse("insertLinkDialog"),this.getConverter=function(){return e};var u,p,f=this;this.run=function(m){if(!u){u=new n(r);var g,h=new o(c,l),v=new a(e,u,function(){c.onPreviewRefresh()},m);/\?noundo/.test(d.location.href)||(p=new t(function(){v.refresh(),g&&g.setUndoRedoButtonStates()},u),this.textOperation=function(e){p.setCommandMode(),e(),f.refreshPreview()}),g=new i(r,u,p,v,h,s.helpButton,l),g.setUndoRedoButtonStates();{f.refreshPreview=function(){v.refresh(!0)}}f.undoManager=p,f.uiManager=g}}},e.prototype.findTags=function(e,n){var t,r=this;e&&(t=l.extendRegExp(e,"","$"),this.before=this.before.replace(t,function(e){return r.startTag=r.startTag+e,""}),t=l.extendRegExp(e,"^",""),this.selection=this.selection.replace(t,function(e){return r.startTag=r.startTag+e,""})),n&&(t=l.extendRegExp(n,"","$"),this.selection=this.selection.replace(t,function(e){return r.endTag=e+r.endTag,""}),t=l.extendRegExp(n,"^",""),this.after=this.after.replace(t,function(e){return r.endTag=e+r.endTag,""}))},e.prototype.trimWhitespace=function(e){var n,t,r=this;e?n=t="":(n=function(e){return r.before+=e,""},t=function(e){return r.after=e+r.after,""}),this.selection=this.selection.replace(/^(\s*)/,n).replace(/(\s*)$/,t)},e.prototype.skipLines=function(e,n,t){void 0===e&&(e=1),void 0===n&&(n=1),e++,n++;var r,a;if(navigator.userAgent.match(/Chrome/)&&"X".match(/()./),this.selection=this.selection.replace(/(^\n*)/,""),this.startTag=this.startTag+p.$1,this.selection=this.selection.replace(/(\n*$)/,""),this.endTag=this.endTag+p.$1,this.startTag=this.startTag.replace(/(^\n*)/,""),this.before=this.before+p.$1,this.endTag=this.endTag.replace(/(\n*$)/,""),this.after=this.after+p.$1,this.before){for(r=a="";e--;)r+="\\n?",a+="\n";t&&(r="\\n*"),this.before=this.before.replace(new p(r+"$",""),a)}if(this.after){for(r=a="";n--;)r+="\\n?",a+="\n";t&&(r="\\n*"),this.after=this.after.replace(new p(r,""),a)}},l.isVisible=function(e){return window.getComputedStyle?"none"!==window.getComputedStyle(e,null).getPropertyValue("display"):e.currentStyle?"none"!==e.currentStyle.display:void 0},l.addEvent=function(e,n,t){e.attachEvent?e.attachEvent("on"+n,t):e.addEventListener(n,t,!1)},l.removeEvent=function(e,n,t){e.detachEvent?e.detachEvent("on"+n,t):e.removeEventListener(n,t,!1)},l.fixEolChars=function(e){return e=e.replace(/\r\n/g,"\n"),e=e.replace(/\r/g,"\n")},l.extendRegExp=function(e,n,t){(null===n||void 0===n)&&(n=""),(null===t||void 0===t)&&(t="");var r,a=e.toString();return a=a.replace(/\/([gim]*)$/,function(e,n){return r=n,""}),a=a.replace(/(^\/|\/$)/g,""),a=n+a+t,new p(a,r)},c.getTop=function(e,n){var t=e.offsetTop;if(!n)for(;e=e.offsetParent;)t+=e.offsetTop;return t},c.getHeight=function(e){return e.offsetHeight||e.scrollHeight},c.getWidth=function(e){return e.offsetWidth||e.scrollWidth},c.getPageSize=function(){var e,n,t,r;self.innerHeight&&self.scrollMaxY?(e=d.body.scrollWidth,n=self.innerHeight+self.scrollMaxY):d.body.scrollHeight>d.body.offsetHeight?(e=d.body.scrollWidth,n=d.body.scrollHeight):(e=d.body.offsetWidth,n=d.body.offsetHeight),self.innerHeight?(t=self.innerWidth,r=self.innerHeight):d.documentElement&&d.documentElement.clientHeight?(t=d.documentElement.clientWidth,r=d.documentElement.clientHeight):d.body&&(t=d.body.clientWidth,r=d.body.clientHeight);var a=Math.max(e,t),i=Math.max(n,r);return[a,i,t,r]},u.createBackground=function(){var e=d.createElement("div"),n=e.style;e.className="wmd-prompt-background",n.position="absolute",n.top="0",n.zIndex="1000",g.isIE?n.filter="alpha(opacity=50)":n.opacity="0.5";var t=c.getPageSize();return n.height=t[1]+"px",g.isIE?(n.left=d.documentElement.scrollLeft,n.width=d.documentElement.clientWidth):(n.left="0",n.width="100%"),d.body.appendChild(e),e},u.prompt=function(e,n,t){var r,a;void 0===n&&(n="");var i=function(e){var n=e.charCode||e.keyCode;27===n&&o(!0)},o=function(e){l.removeEvent(d.body,"keydown",i);var n=a.value;return e?n=null:(n=n.replace(/^http:\/\/(https?|ftp):\/\//,"$1://"),/^(?:https?|ftp):\/\//.test(n)||(n="http://"+n)),r.parentNode.removeChild(r),t(n),!1},s=function(){r=d.createElement("div"),r.className="wmd-prompt-dialog",r.style.padding="10px;",r.style.position="fixed",r.style.width="400px",r.style.zIndex="1001";var t=d.createElement("div");t.innerHTML=e,t.style.padding="5px",r.appendChild(t);var s=d.createElement("form"),u=s.style;s.onsubmit=function(){return o(!1)},u.padding="0",u.margin="0",u.cssFloat="left",u.width="100%",u.textAlign="center",u.position="relative",r.appendChild(s),a=d.createElement("input"),a.type="text",a.value=n,u=a.style,u.display="block",u.width="80%",u.marginLeft=u.marginRight="auto",s.appendChild(a);var p=d.createElement("input");p.type="button",p.onclick=function(){return o(!1) -},p.value="OK",u=p.style,u.margin="10px",u.display="inline",u.width="7em";var f=d.createElement("input");f.type="button",f.onclick=function(){return o(!0)},f.value="Cancel",u=f.style,u.margin="10px",u.display="inline",u.width="7em",s.appendChild(p),s.appendChild(f),l.addEvent(d.body,"keydown",i),r.style.top="50%",r.style.left="50%",r.style.display="block",g.isIE_5or6&&(r.style.position="absolute",r.style.top=d.documentElement.scrollTop+200+"px",r.style.left="50%"),d.body.appendChild(r),r.style.marginTop=-(c.getHeight(r)/2)+"px",r.style.marginLeft=-(c.getWidth(r)/2)+"px"};setTimeout(function(){s();var e=n.length;if(void 0!==a.selectionStart)a.selectionStart=0,a.selectionEnd=e;else if(a.createTextRange){var t=a.createTextRange();t.collapse(!1),t.moveStart("character",-e),t.moveEnd("character",e),t.select()}a.focus()},0)};var w=o.prototype;w.prefixes="(?:\\s{4,}|\\s*>|\\s*-\\s+|\\s*\\d+\\.|=|\\+|-|_|\\*|#|\\s*\\[[^\n]]+\\]:)",w.unwrap=function(e){var n=new p("([^\\n])\\n(?!(\\n|"+this.prefixes+"))","g");e.selection=e.selection.replace(n,"$1 $2")},w.wrap=function(e,n){this.unwrap(e);var t=new p("(.{1,"+n+"})( +|$\\n?)","gm"),r=this;e.selection=e.selection.replace(t,function(e,n){return new p("^"+r.prefixes,"").test(e)?e:n+"\n"}),e.selection=e.selection.replace(/\s+$/,"")},w.doBold=function(e,n){return this.doBorI(e,n,2,this.getString("boldexample"))},w.doItalic=function(e,n){return this.doBorI(e,n,1,this.getString("italicexample"))},w.doBorI=function(e,n,t,r){e.trimWhitespace(),e.selection=e.selection.replace(/\n{2,}/g,"\n");var a=/(\**$)/.exec(e.before)[0],i=/(^\**)/.exec(e.after)[0],o=Math.min(a.length,i.length);if(o>=t&&(2!=o||1!=t))e.before=e.before.replace(p("[*]{"+t+"}$",""),""),e.after=e.after.replace(p("^[*]{"+t+"}",""),"");else if(!e.selection&&i){e.after=e.after.replace(/^([*_]*)/,""),e.before=e.before.replace(/(\s?)$/,"");var s=p.$1;e.before=e.before+i+s}else{e.selection||i||(e.selection=r);var l=1>=t?"*":"**";e.before=e.before+l,e.after=l+e.after}},w.stripLinkDefs=function(e,n){return e=e.replace(/^[ ]{0,3}\[(\d+)\]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|$)/gm,function(e,t,r,a,i){return n[t]=e.replace(/\s*$/,""),a?(n[t]=e.replace(/["(](.+?)[")]$/,""),a+i):""})},w.addLinkDef=function(e,n){var t=0,r={};e.before=this.stripLinkDefs(e.before,r),e.selection=this.stripLinkDefs(e.selection,r),e.after=this.stripLinkDefs(e.after,r);var a="",i=/(\[)((?:\[[^\]]*\]|[^\[\]])*)(\][ ]?(?:\n[ ]*)?\[)(\d+)(\])/g,o=function(e){t++,e=e.replace(/^[ ]{0,3}\[(\d+)\]:/," ["+t+"]:"),a+="\n"+e},s=function(e,n,a,l,c,u){return a=a.replace(i,s),r[c]?(o(r[c]),n+a+l+t+u):e};e.before=e.before.replace(i,s),n?o(n):e.selection=e.selection.replace(i,s);var l=t;return e.after=e.after.replace(i,s),e.after&&(e.after=e.after.replace(/\n*$/,"")),e.after||(e.selection=e.selection.replace(/\n*$/,"")),e.after+="\n\n"+a,l},w.insertLink=function(e,n,t,r,a){e.trimWhitespace(),e.findTags(/\s*!?\[/,/\][ ]?(?:\n[ ]*)?(\[.*?\])?/);var i;if(!(e.endTag.length>1&&e.startTag.length>0)){if(e.selection=e.startTag+e.selection+e.endTag,e.startTag=e.endTag="",/\n\n/.test(e.selection))return void this.addLinkDef(e,null);var o=function(t){i.parentNode.removeChild(i),null!==t&&(e.selection=(" "+e.selection).replace(/([^\\](?:\\\\)*)(?=[[\]])/g,"$1\\").substr(1),e.startTag=a?"![":"[",e.endTag="]("+s(t)+")",e.selection=r),n()};return i=u.createBackground(),o(t),!0}e.startTag=e.startTag.replace(/!?\[/,""),e.endTag="",this.addLinkDef(e,null)},w.doLinkOrImage=function(e,n,t){e.trimWhitespace(),e.findTags(/\s*!?\[/,/\][ ]?(?:\n[ ]*)?(\(.*?\))?/);var r;if(!(e.endTag.length>1&&e.startTag.length>0)){if(e.selection=e.startTag+e.selection+e.endTag,e.startTag=e.endTag="",/\n\n/.test(e.selection))return void this.addLinkDef(e,null);var a=this,i=function(i,o){if(r.parentNode.removeChild(r),null!==i&&(e.selection=(" "+e.selection).replace(/([^\\](?:\\\\)*)(?=[[\]])/g,"$1\\").substr(1),e.startTag=t?"![":"[",e.endTag="]("+s(i)+")",!e.selection)){var l="";l=o?o:a.getString(t?"imagedescription":"linkdescription"),e.selection=l}n()};return r=u.createBackground(),t?this.hooks.insertImageDialog(i)||u.prompt(this.getString("imagedialog"),v,i):this.hooks.insertLinkDialog(i)||u.prompt(this.getString("linkdialog"),b,i),!0}e.startTag=e.startTag.replace(/!?\[/,""),e.endTag="",this.addLinkDef(e,null)},w.doAutoindent=function(e){var n=this,t=!1;e.before=e.before.replace(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]*\n$/,"\n\n"),e.before=e.before.replace(/(\n|^)[ ]{0,3}>[ \t]*\n$/,"\n\n"),e.before=e.before.replace(/(\n|^)[ \t]+\n$/,"\n\n"),e.selection||/^[ \t]*(?:\n|$)/.test(e.after)||(e.after=e.after.replace(/^[^\n]*/,function(n){return e.selection=n,""}),t=!0),/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]+.*\n$/.test(e.before)&&n.doList&&n.doList(e),/(\n|^)[ ]{0,3}>[ \t]+.*\n$/.test(e.before)&&n.doBlockquote&&n.doBlockquote(e),/(\n|^)(\t|[ ]{4,}).*\n$/.test(e.before)&&n.doCode&&n.doCode(e),t&&(e.after=e.selection+e.after,e.selection="")},w.doBlockquote=function(e){e.selection=e.selection.replace(/^(\n*)([^\r]+?)(\n*)$/,function(n,t,r,a){return e.before+=t,e.after=a+e.after,r}),e.before=e.before.replace(/(>[ \t]*)$/,function(n,t){return e.selection=t+e.selection,""}),e.selection=e.selection.replace(/^(\s|>)+$/,""),e.selection=e.selection||this.getString("quoteexample");var n,t="",r="";if(e.before){for(var a=e.before.replace(/\n$/,"").split("\n"),i=!1,o=0;o0,/^>/.test(n)?(s=!0,!i&&n.length>1&&(i=!0)):s=/^[ \t]*$/.test(n)?!0:i,s?t+=n+"\n":(r+=t+n,t="\n")}/(^|\n)>/.test(t)||(r+=t,t="")}e.startTag=t,e.before=r,e.after&&(e.after=e.after.replace(/^\n?/,"\n")),e.after=e.after.replace(/^(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*)/,function(n){return e.endTag=n,""});var l=function(n){var t=n?"> ":"";e.startTag&&(e.startTag=e.startTag.replace(/\n((>|\s)*)\n$/,function(e,n){return"\n"+n.replace(/^[ ]{0,3}>?[ \t]*$/gm,t)+"\n"})),e.endTag&&(e.endTag=e.endTag.replace(/^\n((>|\s)*)\n/,function(e,n){return"\n"+n.replace(/^[ ]{0,3}>?[ \t]*$/gm,t)+"\n"}))};/^(?![ ]{0,3}>)/m.test(e.selection)?(this.wrap(e,m.lineLength-2),e.selection=e.selection.replace(/^/gm,"> "),l(!0),e.skipLines()):(e.selection=e.selection.replace(/^[ ]{0,3}> ?/gm,""),this.unwrap(e),l(!1),!/^(\n|^)[ ]{0,3}>/.test(e.selection)&&e.startTag&&(e.startTag=e.startTag.replace(/\n{0,2}$/,"\n\n")),!/(\n|^)[ ]{0,3}>.*$/.test(e.selection)&&e.endTag&&(e.endTag=e.endTag.replace(/^\n{0,2}/,"\n\n"))),e.selection=this.hooks.postBlockquoteCreation(e.selection),/\n/.test(e.selection)||(e.selection=e.selection.replace(/^(> *)/,function(n,t){return e.startTag+=t,""}))},w.doCode=function(e){var n=/\S[ ]*$/.test(e.before),t=/^[ ]*\S/.test(e.after);if(!t&&!n||/\n/.test(e.selection)){e.before=e.before.replace(/[ ]{4}$/,function(n){return e.selection=n+e.selection,""});var r=1,a=1;/(\n|^)(\t|[ ]{4,}).*\n$/.test(e.before)&&(r=0),/^\n(\t|[ ]{4,})/.test(e.after)&&(a=0),e.skipLines(r,a),e.selection?/^[ ]{0,3}\S/m.test(e.selection)?/\n/.test(e.selection)?e.selection=e.selection.replace(/^/gm," "):e.before+=" ":e.selection=e.selection.replace(/^(?:[ ]{4}|[ ]{0,3}\t)/gm,""):(e.startTag=" ",e.selection=this.getString("codeexample"))}else e.trimWhitespace(),e.findTags(/`/,/`/),e.startTag||e.endTag?e.endTag&&!e.startTag?(e.before+=e.endTag,e.endTag=""):e.startTag=e.endTag="":(e.startTag=e.endTag="`",e.selection||(e.selection=this.getString("codeexample")))},w.doList=function(e,n,t){var r=/(\n|^)(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*$/,a=/^\n*(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*/,i="-",o=1,s=function(){var e;return t?(e=" "+o+". ",o++):e=" "+i+" ",e},l=function(e){return void 0===t&&(t=/^\s*\d/.test(e)),e=e.replace(/^[ ]{0,3}([*+-]|\d+[.])\s/gm,function(){return s()})};if(e.findTags(/(\n|^)*[ ]{0,3}([*+-]|\d+[.])\s+/,null),!e.before||/\n$/.test(e.before)||/^\n/.test(e.startTag)||(e.before+=e.startTag,e.startTag=""),e.startTag){var c=/\d+[.]/.test(e.startTag);if(e.startTag="",e.selection=e.selection.replace(/\n[ ]{4}/g,"\n"),this.unwrap(e),e.skipLines(),c&&(e.after=e.after.replace(a,l)),t==c)return}var u=1;e.before=e.before.replace(r,function(e){return/^\s*([*+-])/.test(e)&&(i=p.$1),u=/[^\n]\n\n[^\n]/.test(e)?1:0,l(e)}),e.selection||(e.selection=this.getString("litem"));var d=s(),f=1;e.after=e.after.replace(a,function(e){return f=/[^\n]\n\n[^\n]/.test(e)?1:0,l(e)}),e.trimWhitespace(!0),e.skipLines(u,f,!0),e.startTag=d;var g=d.replace(/./g," ");this.wrap(e,m.lineLength-g.length),e.selection=e.selection.replace(/\n/g,"\n"+g)},w.doHeading=function(e){if(e.selection=e.selection.replace(/\s+/g," "),e.selection=e.selection.replace(/(^\s+|\s+$)/g,""),!e.selection)return e.before&&"\n"!=e.before[e.before.length-1]&&e.skipLines(1,1),e.startTag="# ",e.selection=this.getString("headingexample"),void(e.endTag="");e.findTags(/#+[ ]*/,/[ ]*#+/),e.before&&"\n"!=e.before[e.before.length-1]&&e.skipLines(1,1);var n=0,t=e.startTag;/^#+[ ]*$/.test(t)&&(t=t.replace(/ /g,""),n=t.length);var r=0;if(n>=0&&3>=n&&(r=n+1),n>=4&&(r=0,e.startTag=""),r>0){for(var a="";r--;)a+="#";a+=" ",e.startTag=a}},w.doHorizontalRule=function(e){e.startTag="----------\n",e.selection="",e.skipLines(1,1,!0)}}(),define("pagedown-light",function(){}),define("core",["underscore","crel","constants","utils","eventMgr","shortcutMgr","pagedown-ace","pagedown-light"],function(e,n,t,r,a,i){function o(){l=ace.edit("wmd-input"),MD.aceEditor=l,l.renderer.setShowGutter(!1),l.renderer.setPrintMarginColumn(!1),l.renderer.setPadding(t.EDITOR_DEFAULT_PADDING),l.session.setUseWrapMode(!0),l.session.setNewLineMode("unix"),l.session.setMode("ace/mode/ace_mode"),l.session.$selectLongWords=!0,function(n){function t(t){var r=n.lines[t];0!==r.length&&0===r[0].type.indexOf("markup.heading.multi")&&e.each(n.lines[t-1],function(e){e.type="markup.heading.prev.multi"})}function r(){if(n.running){for(var e=new Date,a=n.currentLine,i=-1,o=n.doc;n.lines[a];)a++;var s=a,l=o.getLength(),c=0;for(n.running=!1;l>a;){n.$tokenizeRow(a),i=a;do t(a),a++;while(n.lines[a]);if(c++,c%5===0&&new Date-e>20)return n.running=setTimeout(r,20),void(n.currentLine=a)}n.currentLine=a,i>=s&&n.fireUpdateEvent(s,i)}}n.$worker=function(){n.lines.splice(0,n.lines.length),n.states.splice(0,n.states.length),n.currentLine=0,r()}}(l.session.bgTokenizer),i.configureAce(l),a.onAceCreated(l)}var s={};window.MD={eventMgr:a};var l,c,u,d,p,f,m,g,h,v,b,w,x,y=$('"),C=y.find(".action-insert-link");s._resetToolBar=function(){$("#wmd-button-row").remove(),$("#wmd-button-bar .wmd-button-bar-inner").html('')},s._setEditorHook=function(){m.hooks.set("insertLinkDialog",function(e){return s.insertLinkCallback=e,r.resetModalInputs(),y.modal(),!0}),m.hooks.set("insertImageDialog",function(){return insertLocalImage(),!0}),m.hooks.chain("onPreviewRefresh",a.onAsyncPreview)},s._moveCursorTo=function(e,n){if(!window.lightMode)return void l.moveCursorTo(e,n);var t=s._getTextareaCursorOffset(e,n);$("#wmd-input").get(0).setSelectionRange(t,t),$("#wmd-input").focus()},s._getTextareaCusorPosition=function(){var e=$("#wmd-input").get(0).selectionStart;if(0==e)return{row:0,column:0};for(var n=MD.getContent()||"",t=n.split("\n"),r=0,a=0,r=0;ri;++i)t+=a[i].length+1;return t+=n,t+1},s.initLightEditor=function(){if(!window.lightMode){var e,n;l?(e=l.renderer.getScrollTop(),n=l.getCursorPosition()):(e=0,n=0);var t=MD.getContent();s._resetToolBar(),l&&l.destroy(),$("#wmd-input").replaceWith(function(){return $('