diff --git a/public/md/main-v2.js b/public/md/main-v2.js
index b9d3f85..ccac7be 100644
--- a/public/md/main-v2.js
+++ b/public/md/main-v2.js
@@ -12842,6 +12842,21 @@ define('extensions/emailConverter',[
return emailConverter;
});
+define('extensions/todoList',[
+ "classes/Extension",
+], function(Extension) {
+ var todoList = new Extension("todoList", "Markdown todoList", true);
+ todoList.onPagedownConfigure = function(editor) {
+ editor.getConverter().hooks.chain("postConversion", function(text) {
+ return text.replace(/
()?\[([ xX]?)\] /g, function(matched, p, b) {
+ p || (p = '');
+ return !(b == 'x' || b == 'X') ? '
' + p + ' ' : '' + p + ' '
+ });
+ });
+ };
+ return todoList;
+});
+
/**
scrollLink原理
@@ -13230,6 +13245,438 @@ define('extensions/scrollLink',[
return scrollLink;
});
+define('extensions/htmlSanitizer',[
+ // "jquery",
+ "underscore",
+ "utils",
+ "classes/Extension",
+ // "ext!html/htmlSanitizerSettingsBlock.html"
+], function(_, utils, Extension) {
+
+ var htmlSanitizer = new Extension("htmlSanitizer", "HTML Sanitizer", true);
+ // htmlSanitizer.settingsBlock = htmlSanitizerSettingsBlockHTML;
+
+ var buf;
+ htmlSanitizer.onPagedownConfigure = function(editor) {
+ var converter = editor.getConverter();
+ converter.hooks.chain("postConversion", function(html) {
+ buf = [];
+ html.split('').forEach(function(sectionHtml) {
+ htmlParser(sectionHtml, htmlSanitizeWriter(buf
+ /*, function(uri, isImage) {
+ return !/^unsafe/.test(sanitizeUri(uri, isImage));
+ }*/));
+ buf.push('');
+ });
+ return buf.slice(0, -1).join('');
+ });
+ };
+
+ /**
+ * @license AngularJS v1.2.16
+ * (c) 2010-2014 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+
+ // var aHrefSanitizationWhitelist = /^\s*(https?|ftp|mailto|tel|file):/,
+ // imgSrcSanitizationWhitelist = /^\s*(https?|ftp|file|leanote):|data:image\//;
+ /*
+ var urlResolve = (function() {
+ var urlParsingNode = document.createElement("a");
+ return function urlResolve(url) {
+ var href = url;
+
+ if (utils.msie) {
+ // Normalize before parse. Refer Implementation Notes on why this is
+ // done in two steps on IE.
+ urlParsingNode.setAttribute("href", href);
+ href = urlParsingNode.href;
+ }
+
+ urlParsingNode.setAttribute('href', href);
+
+ // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
+ return {
+ href: urlParsingNode.href,
+ protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
+ host: urlParsingNode.host,
+ search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
+ hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
+ hostname: urlParsingNode.hostname,
+ port: urlParsingNode.port,
+ pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
+ urlParsingNode.pathname : '/' + urlParsingNode.pathname
+ };
+ };
+ })();
+
+ function sanitizeUri(uri, isImage) {
+ var regex = isImage ? imgSrcSanitizationWhitelist : aHrefSanitizationWhitelist;
+ var normalizedVal;
+ normalizedVal = urlResolve(uri).href;
+ if(normalizedVal !== '' && !normalizedVal.match(regex)) {
+ return 'unsafe:' + normalizedVal;
+ }
+ }
+ */
+
+ // Regular Expressions for parsing tags and attributes
+ var START_TAG_REGEXP =
+ /^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,
+ END_TAG_REGEXP = /^<\s*\/\s*([\w:-]+)[^>]*>/,
+ ATTR_REGEXP = /([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,
+ BEGIN_TAG_REGEXP = /^,
+ BEGING_END_TAGE_REGEXP = /^<\s*\//,
+ COMMENT_REGEXP = //g,
+ DOCTYPE_REGEXP = /]*?)>/i,
+ CDATA_REGEXP = //g,
+ // Match everything outside of normal chars and " (quote character)
+ NON_ALPHANUMERIC_REGEXP = /([^\#-~| |!])/g;
+
+ function makeMap(str) {
+ var obj = {}, items = str.split(','), i;
+ for(i = 0; i < items.length; i++) {
+ obj[items[i]] = true;
+ }
+ return obj;
+ }
+
+ // Good source of info about elements and attributes
+ // http://dev.w3.org/html5/spec/Overview.html#semantics
+ // http://simon.html5.org/html-elements
+
+ // Safe Void Elements - HTML5
+ // http://dev.w3.org/html5/spec/Overview.html#void-elements
+ var voidElements = makeMap("area,br,col,hr,img,wbr");
+
+ // Elements that you can, intentionally, leave open (and which close themselves)
+ // http://dev.w3.org/html5/spec/Overview.html#optional-tags
+ var optionalEndTagBlockElements = makeMap("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),
+ optionalEndTagInlineElements = makeMap("rp,rt"),
+ optionalEndTagElements = _.extend({},
+ optionalEndTagInlineElements,
+ optionalEndTagBlockElements);
+
+ // 允许的elements
+ // Safe Block Elements - HTML5
+ var blockElements = _.extend({}, optionalEndTagBlockElements, makeMap("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"));
+
+ // Inline Elements - HTML5
+ var inlineElements = _.extend({}, optionalEndTagInlineElements, makeMap("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"));
+
+ // Special Elements (can contain anything)
+ var specialElements = makeMap("script,style");
+
+ // benweet: Add iframe
+ // blockElements.iframe = true;
+
+ var validElements = _.extend({},
+ voidElements,
+ blockElements,
+ inlineElements,
+ optionalEndTagElements);
+
+ //Attributes that have href and hence need to be sanitized
+ var uriAttrs = makeMap("background,cite,href,longdesc,src,usemap");
+ var validAttrs = _.extend({}, uriAttrs, makeMap(
+ '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'));
+
+ // benweet: Add id and allowfullscreen (YouTube iframe)
+ validAttrs.id = true;
+ validAttrs.allowfullscreen = true;
+
+ /*
+ * HTML Parser By Misko Hevery (misko@hevery.com)
+ * based on: HTML Parser By John Resig (ejohn.org)
+ * Original code by Erik Arvidsson, Mozilla Public License
+ * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js
+ *
+ * // Use like so:
+ * htmlParser(htmlString, {
+ * start: function(tag, attrs, unary) {},
+ * end: function(tag) {},
+ * chars: function(text) {},
+ * comment: function(text) {}
+ * });
+ *
+ */
+ /* jshint -W083 */
+ function htmlParser(html, handler) {
+ var index, chars, match, stack = [], last = html;
+ stack.last = function() {
+ return stack[ stack.length - 1 ];
+ };
+
+ function parseStartTag(tag, tagName, rest, unary) {
+ tagName = tagName && tagName.toLowerCase();
+ if(blockElements[ tagName ]) {
+ while(stack.last() && inlineElements[ stack.last() ]) {
+ parseEndTag("", stack.last());
+ }
+ }
+
+ if(optionalEndTagElements[ tagName ] && stack.last() == tagName) {
+ parseEndTag("", tagName);
+ }
+
+ unary = voidElements[ tagName ] || !!unary;
+
+ if(!unary) {
+ stack.push(tagName);
+ }
+
+ var attrs = {};
+
+ rest.replace(ATTR_REGEXP,
+ function(match, name, doubleQuotedValue, singleQuotedValue, unquotedValue) {
+ var value = doubleQuotedValue ||
+ singleQuotedValue ||
+ unquotedValue ||
+ '';
+
+ attrs[name] = decodeEntities(value);
+ });
+ if(handler.start) {
+ handler.start(tagName, attrs, unary);
+ }
+ }
+
+ function parseEndTag(tag, tagName) {
+ var pos = 0, i;
+ tagName = tagName && tagName.toLowerCase();
+ if(tagName) {
+ // Find the closest opened tag of the same type
+ for(pos = stack.length - 1; pos >= 0; pos--) {
+ if(stack[ pos ] == tagName) {
+ break;
+ }
+ }
+ }
+
+ if(pos >= 0) {
+ // Close all the open elements, up the stack
+ for(i = stack.length - 1; i >= pos; i--) {
+ if(handler.end) {
+ handler.end(stack[ i ]);
+ }
+ }
+
+ // Remove the open elements from the stack
+ stack.length = pos;
+ }
+ }
+
+ while(html) {
+ chars = true;
+
+ // Make sure we're not in a script or style element
+ if(!stack.last() || !specialElements[ stack.last() ]) {
+
+ // Comment
+ if(html.indexOf("", index) === index) {
+ if(handler.comment) {
+ handler.comment(html.substring(4, index));
+ }
+ html = html.substring(index + 3);
+ chars = false;
+ }
+ // DOCTYPE
+ } else if(DOCTYPE_REGEXP.test(html)) {
+ match = html.match(DOCTYPE_REGEXP);
+
+ if(match) {
+ html = html.replace(match[0], '');
+ chars = false;
+ }
+ // end tag
+ } else if(BEGING_END_TAGE_REGEXP.test(html)) {
+ match = html.match(END_TAG_REGEXP);
+
+ if(match) {
+ html = html.substring(match[0].length);
+ match[0].replace(END_TAG_REGEXP, parseEndTag);
+ chars = false;
+ }
+
+ // start tag
+ } else if(BEGIN_TAG_REGEXP.test(html)) {
+ match = html.match(START_TAG_REGEXP);
+
+ if(match) {
+ html = html.substring(match[0].length);
+ match[0].replace(START_TAG_REGEXP, parseStartTag);
+ chars = false;
+ }
+ }
+
+ if(chars) {
+ index = html.indexOf("<");
+
+ var text = index < 0 ? html : html.substring(0, index);
+ html = index < 0 ? "" : html.substring(index);
+
+ if(handler.chars) {
+ handler.chars(decodeEntities(text));
+ }
+ }
+
+ } else {
+ html = html.replace(new RegExp("(.*)<\\s*\\/\\s*" + stack.last() + "[^>]*>", 'i'),
+ function(all, text) {
+ text = text.replace(COMMENT_REGEXP, "$1").replace(CDATA_REGEXP, "$1");
+
+ if(handler.chars) {
+ handler.chars(decodeEntities(text));
+ }
+
+ return "";
+ });
+
+ parseEndTag("", stack.last());
+ }
+
+ if(html == last) {
+ //throw new Error("The sanitizer was unable to parse the following block of html: " + html);
+ stack.reverse();
+ return stack.forEach(function(tag) {
+ buf.push('');
+ buf.push(tag);
+ buf.push('>');
+ });
+ }
+ last = html;
+ }
+
+ // Clean up any remaining tags
+ parseEndTag();
+ }
+
+ var hiddenPre = document.createElement("pre");
+ var spaceRe = /^(\s*)([\s\S]*?)(\s*)$/;
+
+ /**
+ * decodes all entities into regular string
+ * @param value
+ * @returns {string} A string with decoded entities.
+ */
+ function decodeEntities(value) {
+ if(!value) {
+ return '';
+ }
+
+ // Note: IE8 does not preserve spaces at the start/end of innerHTML
+ // so we must capture them and reattach them afterward
+ var parts = spaceRe.exec(value);
+ var spaceBefore = parts[1];
+ var spaceAfter = parts[3];
+ var content = parts[2];
+ if(content) {
+ hiddenPre.innerHTML = content.replace(//g, '>');
+ }
+
+
+ /**
+ * create an HTML/XML writer which writes to buffer
+ * @param {Array} buf use buf.jain('') to get out sanitized html string
+ * @returns {object} in the form of {
+ * start: function(tag, attrs, unary) {},
+ * end: function(tag) {},
+ * chars: function(text) {},
+ * comment: function(text) {}
+ * }
+ */
+ function htmlSanitizeWriter(buf /* , uriValidator */ ) {
+ var ignore = false;
+ var out = _.bind(buf.push, buf);
+ return {
+ start: function(tag, attrs, unary) {
+ tag = tag && tag.toLowerCase();
+ if(!ignore && specialElements[tag]) {
+ ignore = tag;
+ }
+ if(!ignore && validElements[tag] === true) {
+ out('<');
+ out(tag);
+ _.forEach(attrs, function(value, key) {
+ var lkey = key && key.toLowerCase();
+ // var isImage = (tag === 'img' && lkey === 'src') || (lkey === 'background');
+ if(validAttrs[lkey] === true &&
+ (uriAttrs[lkey] !== true || true/* || uriValidator(value, isImage) */)) {
+ out(' ');
+ out(key);
+ out('="');
+ out(encodeEntities(value));
+ out('"');
+ }
+ });
+ out(unary ? '/>' : '>');
+ }
+ },
+ end: function(tag) {
+ tag = tag && tag.toLowerCase();
+ if(!ignore && validElements[tag] === true) {
+ out('');
+ out(tag);
+ out('>');
+ }
+ if(tag == ignore) {
+ ignore = false;
+ }
+ },
+ chars: function(chars) {
+ if(!ignore) {
+ out(encodeEntities(chars));
+ }
+ },
+ comment: function(comment) {
+ if(!ignore) {
+ out('');
+ }
+ }
+ };
+ }
+
+ return htmlSanitizer;
+});
/*
* waitForImages 1.4.2
* -------------------
@@ -13405,7 +13852,9 @@ define('eventMgr',[
"extensions/toc",
"extensions/mathJax",
"extensions/emailConverter",
+ "extensions/todoList",
"extensions/scrollLink",
+ "extensions/htmlSanitizer",
// "extensions/buttonFocusMode",
// "extensions/buttonSync",
// "extensions/buttonPublish",
diff --git a/public/md/main-v2.min.js b/public/md/main-v2.min.js
index a1bf5fa..e3ef0d4 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,/^[^]+/],[D,/^]*(?:>|$)/],[L,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[N,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^