diff --git a/CHANGELOG.textile b/CHANGELOG.textile
index aff07e7..61ace7a 100644
--- a/CHANGELOG.textile
+++ b/CHANGELOG.textile
@@ -1,9 +1,19 @@
+*wysihtml5x 0.5.0-beta3* (December 17, 2014)
+* Fixes IE9 error if classList polyfill present allready
+* Fix #78 Preserve cursor position on editor.cleanUp()
+* Fix table cells selection is broken
+
+*wysihtml5x 0.5.0-beta2* (December 11, 2014)
+* Fix tab key triggering error
+* Update repo naming
+
+
*wysihtml5x 0.5.0-beta1* (December 4, 2014)
* formatBlock update
- * Selections apply format to selection not its parent block,
- * Removed toggle functionality from many formatBlock commands (h1-6, p, pre ...) and added plaintext state to formatblock instead.
- * Code modernization
- * Changes API!
+* Selections apply format to selection not its parent block,
+* Removed toggle functionality from many formatBlock commands (h1-6, p, pre ...) and added plaintext state to formatblock instead.
+* Code modernization
+* Changes API!
* Allow tel: scheme in links
* Fixed atributeless A tags
* Added "dimension" to checkattributes methods (for with/height attributes where floating point numbrs and percentages are allowed)
diff --git a/bower.json b/bower.json
index 852f69f..7eb614d 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "wysihtml",
- "version": "0.5.0-beta2",
+ "version": "0.5.0-beta3",
"main": [
"dist/wysihtml.min.js",
"dist/wysihtml-toolbar.min.js"
diff --git a/dist/wysihtml-toolbar.js b/dist/wysihtml-toolbar.js
index 6dc9879..e7fb044 100644
--- a/dist/wysihtml-toolbar.js
+++ b/dist/wysihtml-toolbar.js
@@ -1,7 +1,7 @@
// TODO: in future try to replace most inline compability checks with polyfills for code readability
// IE8 SUPPORT BLOCK
-// You can compile wuthout all this if IE8 is not needed
+// You can compile without all this if IE8 is not needed
// String trim for ie8
if (!String.prototype.trim) {
@@ -321,9 +321,10 @@ if ("document" in self) {
}(self));
- } else {
+ } else if ("DOMTokenList" in window) {
// There is full or partial native classList support, so just check if we need
// to normalize the add/remove and toggle APIs.
+ // DOMTokenList is expected to exist (removes conflicts with multiple polyfills present on site)
(function() {
"use strict";
@@ -376,7 +377,7 @@ if ("document" in self) {
}
;/**
- * @license wysihtml5x v0.5.0-beta2
+ * @license wysihtml5x v0.5.0-beta3
* https://github.com/Edicy/wysihtml5
*
* Author: Christopher Blum (https://github.com/tiff)
@@ -387,7 +388,7 @@ if ("document" in self) {
*
*/
var wysihtml5 = {
- version: "0.5.0-beta2",
+ version: "0.5.0-beta3",
// namespaces
commands: {},
@@ -9001,22 +9002,20 @@ wysihtml5.quirks.ensureProperClearing = (function() {
cells: null,
select: selectCells
},
- selection_class = "wysiwyg-tmp-selected-cell",
- moveHandler = null,
- upHandler = null;
+ selection_class = "wysiwyg-tmp-selected-cell";
function init () {
-
- dom.observe(editable, "mousedown", function(event) {
- var target = wysihtml5.dom.getParentElement(event.target, { query: "td, th" });
- if (target) {
- handleSelectionMousedown(target);
- }
- });
-
+ editable.addEventListener("mousedown", handleMouseDown);
return select;
}
+ var handleMouseDown = function(event) {
+ var target = wysihtml5.dom.getParentElement(event.target, { query: "td, th" });
+ if (target) {
+ handleSelectionMousedown(target);
+ }
+ };
+
function handleSelectionMousedown (target) {
select.start = target;
select.end = target;
@@ -9026,8 +9025,8 @@ wysihtml5.quirks.ensureProperClearing = (function() {
if (select.table) {
removeCellSelections();
dom.addClass(target, selection_class);
- moveHandler = dom.observe(editable, "mousemove", handleMouseMove);
- upHandler = dom.observe(editable, "mouseup", handleMouseUp);
+ editable.addEventListener("mousemove", handleMouseMove);
+ editable.addEventListener("mouseup", handleMouseUp);
editor.fire("tableselectstart").fire("tableselectstart:composer");
}
}
@@ -9052,7 +9051,7 @@ wysihtml5.quirks.ensureProperClearing = (function() {
function handleMouseMove (event) {
var curTable = null,
- cell = dom.getParentElement(event.target, { nodeName: "td, th" }),
+ cell = dom.getParentElement(event.target, { query: "td, th" }),
oldEnd;
if (cell && select.table && select.start) {
@@ -9074,25 +9073,27 @@ wysihtml5.quirks.ensureProperClearing = (function() {
}
function handleMouseUp (event) {
- moveHandler.stop();
- upHandler.stop();
+ editable.removeEventListener("mousemove", handleMouseMove);
+ editable.removeEventListener("mouseup", handleMouseUp);
editor.fire("tableselect").fire("tableselect:composer");
setTimeout(function() {
bindSideclick();
},0);
}
+ var sideClickHandler = function(event) {
+ editable.ownerDocument.removeEventListener("click", sideClickHandler);
+ if (dom.getParentElement(event.target, { query: "table" }) != select.table) {
+ removeCellSelections();
+ select.table = null;
+ select.start = null;
+ select.end = null;
+ editor.fire("tableunselect").fire("tableunselect:composer");
+ }
+ };
+
function bindSideclick () {
- var sideClickHandler = dom.observe(editable.ownerDocument, "click", function(event) {
- sideClickHandler.stop();
- if (dom.getParentElement(event.target, { query: "table" }) != select.table) {
- removeCellSelections();
- select.table = null;
- select.start = null;
- select.end = null;
- editor.fire("tableunselect").fire("tableunselect:composer");
- }
- });
+ editable.ownerDocument.addEventListener("click", sideClickHandler);
}
function selectCells (start, end) {
@@ -12965,7 +12966,14 @@ wysihtml5.views.View = Base.extend(
},
cleanUp: function() {
- this.parent.parse(this.element);
+ var bookmark;
+ if (this.selection) {
+ bookmark = rangy.saveSelection(this.doc.defaultView || this.doc.parentWindow);
+ }
+ this.parent.parse(this.element);
+ if (bookmark) {
+ rangy.restoreSelection(bookmark);
+ }
},
show: function() {
diff --git a/dist/wysihtml-toolbar.min.js b/dist/wysihtml-toolbar.min.js
index a918baf..edc7c82 100644
--- a/dist/wysihtml-toolbar.min.js
+++ b/dist/wysihtml-toolbar.min.js
@@ -1,10 +1,10 @@
-/*! wysihtml - v0.5.0-beta2 (2014-12-11) */
+/*! wysihtml - v0.5.0-beta3 (2014-12-17) */
-String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),!Element.prototype.addEventListener){var a=[],b=function(b,c){var d=this,e=function(a){a.target=a.srcElement,a.currentTarget=d,c.handleEvent?c.handleEvent(a):c.call(d,a)};if("DOMContentLoaded"==b){var f=function(a){"complete"==document.readyState&&e(a)};if(document.attachEvent("onreadystatechange",f),a.push({object:this,type:b,listener:c,wrapper:f}),"complete"==document.readyState){var g=new Event;g.srcElement=window,f(g)}}else this.attachEvent("on"+b,e),a.push({object:this,type:b,listener:c,wrapper:e})},c=function(b,c){for(var d=0;d>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),this.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(Element.prototype),"document"in self&&("classList"in document.createElement("_")?!function(){"use strict";var a=document.createElement("_");if(a.classList.add("c1","c2"),!a.classList.contains("c2")){var b=function(a){var b=DOMTokenList.prototype[a];DOMTokenList.prototype[a]=function(a){var c,d=arguments.length;for(c=0;d>c;c++)a=arguments[c],b.call(this,a)}};b("add"),b("remove")}if(a.classList.toggle("c3",!1),a.classList.contains("c3")){var c=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:c.call(this,a)}}a=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++co;++o)try{H[o](E)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a){a=a||window,l();for(var b=0,c=I.length;c>b;++b)I[b](a)}function n(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function o(a,b,c){var d=new n(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(E,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return B[a]=d,d}function p(){}function q(){}var r="object",s="function",t="undefined",u=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],v=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],w=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],x=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],y=d(a),z=d(b),A=d(c),B={},C=typeof window!=t&&typeof document!=t,D={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:y,areHostObjects:z,areHostProperties:A,isTextRange:e,getBody:f},E={version:"1.3.0-alpha.20140921",initialized:!1,isBrowser:C,supported:!0,util:D,features:{},modules:B,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==t?!0:rangyAutoInitialize}};E.fail=i,E.warn=j;var F;({}).hasOwnProperty?(D.extend=F=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&F(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},D.createOptions=function(a,b){var c={};return F(c,b),a&&F(c,a),c}):i("hasOwnProperty not supported"),C||i("Rangy can only run in a browser"),function(){var a;if(C){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),D.toArray=a}();var G;C&&(a(document,"addEventListener")?G=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?G=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),D.addListener=G);var H=[];E.init=l,E.addInitListener=function(a){E.initialized?a(E):H.push(a)};var I=[];E.addShimListener=function(a){I.push(a)},C&&(E.shim=E.createMissingNativeApi=m),n.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=B[b],!(a&&a instanceof n))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=o(a,c,b);E.initialized&&E.supported&&d.init()},E.createCoreModule=function(a,b,c){o(a,b,c)},E.RangePrototype=p,E.rangePrototype=new p,E.selectionPrototype=new q,E.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),E.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(O(a,b.startContainer)||O(a,b.endContainer))}function c(a){return a.document||P(a.startContainer)}function d(a){return new K(a.parentNode,N(a))}function e(a){return new K(a.parentNode,N(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return M(b)?c==b.length?I.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:R(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(y(a),y(b),c(b)!=c(a))throw new L("WRONG_DOCUMENT_ERR");var e=Q(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=Q(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach()),10==d.nodeType)throw new L("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(),c.stop)return}else for(d=I.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach()):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach()):a.remove(),10==b.nodeType)throw new L("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!M(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&M(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+I.inspectNode(a.startContainer)+":"+a.startOffset+", "+I.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&M(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||M(this.sc)?S(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||M(this.ec)?S(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,U(a,d))return e;e=e.parentNode}return null}}function p(a,b){if(cb(a,b))throw new L("INVALID_NODE_TYPE_ERR")}function q(a,b){if(!U(b,a.nodeType))throw new L("INVALID_NODE_TYPE_ERR")}function r(a,b){if(0>b||b>(M(a)?a.length:a.childNodes.length))throw new L("INDEX_SIZE_ERR")}function s(a,b){if(ab(a,!0)!==ab(b,!0))throw new L("WRONG_DOCUMENT_ERR")}function t(a){if(bb(a,!0))throw new L("NO_MODIFICATION_ALLOWED_ERR")}function u(a,b){if(!a)throw new L(b)}function v(a){return W&&I.isBrokenNode(a)||!U(Y,a.nodeType)&&!ab(a,!0)}function w(a,b){return b<=(M(a)?a.length:a.childNodes.length)}function x(a){return!!a.startContainer&&!!a.endContainer&&!v(a.startContainer)&&!v(a.endContainer)&&w(a.startContainer,a.startOffset)&&w(a.endContainer,a.endOffset)}function y(a){if(!x(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function z(a,b){y(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;M(e)&&f>0&&f0&&d=N(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function A(a){y(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function B(a){a.START_TO_START=ib,a.START_TO_END=jb,a.END_TO_END=kb,a.END_TO_START=lb,a.NODE_BEFORE=mb,a.NODE_AFTER=nb,a.NODE_BEFORE_AND_AFTER=ob,a.NODE_INSIDE=pb}function C(a){B(a),B(a.prototype)}function D(a,b){return function(){y(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=S(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,t),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function E(c,f){function g(a,b){return function(c){q(c,X),q(V(c),Y);var f=(a?d:e)(c);(b?h:i)(this,f.node,f.offset)}}function h(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((V(b)!=V(d)||1==Q(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function i(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((V(b)!=V(d)||-1==Q(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var l=function(){};l.prototype=a.rangePrototype,c.prototype=new l,J.extend(c.prototype,{setStart:function(a,b){p(a,!0),r(a,b),h(this,a,b)},setEnd:function(a,b){p(a,!0),r(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:g(!0,!0),setStartAfter:g(!1,!0),setEndBefore:g(!0,!1),setEndAfter:g(!1,!1),collapse:function(a){y(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){p(a,!0),f(this,a,0,a,T(a))},selectNode:function(a){p(a,!1),q(a,X);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:D(k,f),deleteContents:D(j,f),canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},splitBoundaries:function(){z(this)},splitBoundariesPreservingPositions:function(a){z(this,a)},normalizeBoundaries:function(){y(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=N(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(M(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&M(i)&&e(i)}h=!this.collapsed}if(h){if(M(a))0==b&&g(a);else if(bx",eb=3==db.firstChild.nodeType}catch(fb){}a.features.htmlParsingConforms=eb;var gb=eb?function(a){var b=this.startContainer,c=P(b);if(!b)throw new L("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:M(b)&&(d=I.parentElement(b)),d=null===d||"HTML"==d.nodeName&&I.isHtmlNamespace(P(d).documentElement)&&I.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,I.fragmentFromNodeChildren(d)}:function(a){var b=c(this),d=b.createElement("body");return d.innerHTML=a,I.fragmentFromNodeChildren(d)},hb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ib=0,jb=1,kb=2,lb=3,mb=0,nb=1,ob=2,pb=3;J.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){y(this),s(this.startContainer,b.startContainer);var c,d,e,f,g=a==lb||a==ib?"start":"end",h=a==jb||a==ib?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],Q(c,d,e,f)},insertNode:function(a){if(y(this),q(a,$),t(this.startContainer),O(a,this.startContainer))throw new L("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){y(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&M(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(q(a,_),!this.canSurroundContents())throw new L("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){y(this);for(var a,b=new H(c(this)),d=hb.length;d--;)a=hb[d],b[a]=this[a];return b},toString:function(){y(this);var a=this.startContainer;if(a===this.endContainer&&M(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){y(this);var b=a.parentNode,c=N(a);if(!b)throw new L("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?ob:mb:e>0?nb:pb},comparePoint:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)<0?-1:Q(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:gb,toHtml:function(){return A(this)},intersectsNode:function(a,b){if(y(this),u(a,"NOT_FOUND_ERR"),P(a)!==c(this))return!1;var d=a.parentNode,e=N(a);u(d,"NOT_FOUND_ERR");var f=Q(d,e,this.endContainer,this.endOffset),g=Q(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)>=0&&Q(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=Q(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=Q(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==Q(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==Q(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new L("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==pb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,T(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return y(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||I.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return H.rangesEqual(this,a)},isValid:function(){return x(this)},inspect:function(){return m(this)},detach:function(){}}),E(H,G),J.extend(H,{rangeProperties:hb,RangeIterator:n,copyComparisonConstants:C,createPrototypeRange:E,inspect:m,toHtml:A,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=H}),E.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)
+String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),!Element.prototype.addEventListener){var a=[],b=function(b,c){var d=this,e=function(a){a.target=a.srcElement,a.currentTarget=d,c.handleEvent?c.handleEvent(a):c.call(d,a)};if("DOMContentLoaded"==b){var f=function(a){"complete"==document.readyState&&e(a)};if(document.attachEvent("onreadystatechange",f),a.push({object:this,type:b,listener:c,wrapper:f}),"complete"==document.readyState){var g=new Event;g.srcElement=window,f(g)}}else this.attachEvent("on"+b,e),a.push({object:this,type:b,listener:c,wrapper:e})},c=function(b,c){for(var d=0;d>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),this.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(Element.prototype),"document"in self&&("classList"in document.createElement("_")?"DOMTokenList"in window&&!function(){"use strict";var a=document.createElement("_");if(a.classList.add("c1","c2"),!a.classList.contains("c2")){var b=function(a){var b=DOMTokenList.prototype[a];DOMTokenList.prototype[a]=function(a){var c,d=arguments.length;for(c=0;d>c;c++)a=arguments[c],b.call(this,a)}};b("add"),b("remove")}if(a.classList.toggle("c3",!1),a.classList.contains("c3")){var c=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:c.call(this,a)}}a=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++co;++o)try{H[o](E)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a){a=a||window,l();for(var b=0,c=I.length;c>b;++b)I[b](a)}function n(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function o(a,b,c){var d=new n(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(E,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return B[a]=d,d}function p(){}function q(){}var r="object",s="function",t="undefined",u=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],v=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],w=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],x=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],y=d(a),z=d(b),A=d(c),B={},C=typeof window!=t&&typeof document!=t,D={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:y,areHostObjects:z,areHostProperties:A,isTextRange:e,getBody:f},E={version:"1.3.0-alpha.20140921",initialized:!1,isBrowser:C,supported:!0,util:D,features:{},modules:B,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==t?!0:rangyAutoInitialize}};E.fail=i,E.warn=j;var F;({}).hasOwnProperty?(D.extend=F=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&F(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},D.createOptions=function(a,b){var c={};return F(c,b),a&&F(c,a),c}):i("hasOwnProperty not supported"),C||i("Rangy can only run in a browser"),function(){var a;if(C){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),D.toArray=a}();var G;C&&(a(document,"addEventListener")?G=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?G=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),D.addListener=G);var H=[];E.init=l,E.addInitListener=function(a){E.initialized?a(E):H.push(a)};var I=[];E.addShimListener=function(a){I.push(a)},C&&(E.shim=E.createMissingNativeApi=m),n.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=B[b],!(a&&a instanceof n))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=o(a,c,b);E.initialized&&E.supported&&d.init()},E.createCoreModule=function(a,b,c){o(a,b,c)},E.RangePrototype=p,E.rangePrototype=new p,E.selectionPrototype=new q,E.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),E.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(O(a,b.startContainer)||O(a,b.endContainer))}function c(a){return a.document||P(a.startContainer)}function d(a){return new K(a.parentNode,N(a))}function e(a){return new K(a.parentNode,N(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return M(b)?c==b.length?I.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:R(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(y(a),y(b),c(b)!=c(a))throw new L("WRONG_DOCUMENT_ERR");var e=Q(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=Q(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach()),10==d.nodeType)throw new L("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(),c.stop)return}else for(d=I.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach()):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach()):a.remove(),10==b.nodeType)throw new L("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!M(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&M(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+I.inspectNode(a.startContainer)+":"+a.startOffset+", "+I.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&M(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||M(this.sc)?S(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||M(this.ec)?S(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,U(a,d))return e;e=e.parentNode}return null}}function p(a,b){if(cb(a,b))throw new L("INVALID_NODE_TYPE_ERR")}function q(a,b){if(!U(b,a.nodeType))throw new L("INVALID_NODE_TYPE_ERR")}function r(a,b){if(0>b||b>(M(a)?a.length:a.childNodes.length))throw new L("INDEX_SIZE_ERR")}function s(a,b){if(ab(a,!0)!==ab(b,!0))throw new L("WRONG_DOCUMENT_ERR")}function t(a){if(bb(a,!0))throw new L("NO_MODIFICATION_ALLOWED_ERR")}function u(a,b){if(!a)throw new L(b)}function v(a){return W&&I.isBrokenNode(a)||!U(Y,a.nodeType)&&!ab(a,!0)}function w(a,b){return b<=(M(a)?a.length:a.childNodes.length)}function x(a){return!!a.startContainer&&!!a.endContainer&&!v(a.startContainer)&&!v(a.endContainer)&&w(a.startContainer,a.startOffset)&&w(a.endContainer,a.endOffset)}function y(a){if(!x(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function z(a,b){y(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;M(e)&&f>0&&f0&&d=N(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function A(a){y(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function B(a){a.START_TO_START=ib,a.START_TO_END=jb,a.END_TO_END=kb,a.END_TO_START=lb,a.NODE_BEFORE=mb,a.NODE_AFTER=nb,a.NODE_BEFORE_AND_AFTER=ob,a.NODE_INSIDE=pb}function C(a){B(a),B(a.prototype)}function D(a,b){return function(){y(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=S(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,t),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function E(c,f){function g(a,b){return function(c){q(c,X),q(V(c),Y);var f=(a?d:e)(c);(b?h:i)(this,f.node,f.offset)}}function h(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((V(b)!=V(d)||1==Q(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function i(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((V(b)!=V(d)||-1==Q(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var l=function(){};l.prototype=a.rangePrototype,c.prototype=new l,J.extend(c.prototype,{setStart:function(a,b){p(a,!0),r(a,b),h(this,a,b)},setEnd:function(a,b){p(a,!0),r(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:g(!0,!0),setStartAfter:g(!1,!0),setEndBefore:g(!0,!1),setEndAfter:g(!1,!1),collapse:function(a){y(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){p(a,!0),f(this,a,0,a,T(a))},selectNode:function(a){p(a,!1),q(a,X);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:D(k,f),deleteContents:D(j,f),canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},splitBoundaries:function(){z(this)},splitBoundariesPreservingPositions:function(a){z(this,a)},normalizeBoundaries:function(){y(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=N(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(M(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&M(i)&&e(i)}h=!this.collapsed}if(h){if(M(a))0==b&&g(a);else if(bx",eb=3==db.firstChild.nodeType}catch(fb){}a.features.htmlParsingConforms=eb;var gb=eb?function(a){var b=this.startContainer,c=P(b);if(!b)throw new L("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:M(b)&&(d=I.parentElement(b)),d=null===d||"HTML"==d.nodeName&&I.isHtmlNamespace(P(d).documentElement)&&I.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,I.fragmentFromNodeChildren(d)}:function(a){var b=c(this),d=b.createElement("body");return d.innerHTML=a,I.fragmentFromNodeChildren(d)},hb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ib=0,jb=1,kb=2,lb=3,mb=0,nb=1,ob=2,pb=3;J.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){y(this),s(this.startContainer,b.startContainer);var c,d,e,f,g=a==lb||a==ib?"start":"end",h=a==jb||a==ib?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],Q(c,d,e,f)},insertNode:function(a){if(y(this),q(a,$),t(this.startContainer),O(a,this.startContainer))throw new L("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){y(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&M(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(q(a,_),!this.canSurroundContents())throw new L("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){y(this);for(var a,b=new H(c(this)),d=hb.length;d--;)a=hb[d],b[a]=this[a];return b},toString:function(){y(this);var a=this.startContainer;if(a===this.endContainer&&M(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){y(this);var b=a.parentNode,c=N(a);if(!b)throw new L("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?ob:mb:e>0?nb:pb},comparePoint:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)<0?-1:Q(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:gb,toHtml:function(){return A(this)},intersectsNode:function(a,b){if(y(this),u(a,"NOT_FOUND_ERR"),P(a)!==c(this))return!1;var d=a.parentNode,e=N(a);u(d,"NOT_FOUND_ERR");var f=Q(d,e,this.endContainer,this.endOffset),g=Q(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)>=0&&Q(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=Q(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=Q(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==Q(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==Q(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new L("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==pb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,T(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return y(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||I.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return H.rangesEqual(this,a)},isValid:function(){return x(this)},inspect:function(){return m(this)},detach:function(){}}),E(H,G),J.extend(H,{rangeProperties:hb,RangeIterator:n,copyComparisonConstants:C,createPrototypeRange:E,inspect:m,toHtml:A,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=H}),E.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)
},k.collapse=function(a){this.nativeRange.collapse(a),d(this)},k.cloneRange=function(){return new c(this.nativeRange.cloneRange())},k.refresh=function(){d(this)},k.toString=function(){return this.nativeRange.toString()};var n=document.createTextNode("test");i(document).appendChild(n);var o=document.createRange();o.setStart(n,0),o.setEnd(n,0);try{o.setStart(n,1),k.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},k.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},l=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(p){k.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},k.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},l=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}k.setStartBefore=l("setStartBefore","setEndBefore"),k.setStartAfter=l("setStartAfter","setEndAfter"),k.setEndBefore=l("setEndBefore","setStartBefore"),k.setEndAfter=l("setEndAfter","setStartAfter"),k.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},o.selectNodeContents(n),o.setEnd(n,3);var q=document.createRange();q.selectNodeContents(n),q.setEnd(n,4),q.setStart(n,2),k.compareBoundaryPoints=-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var r=document.createElement("div");r.innerHTML="123";var s=r.firstChild,t=i(document);t.appendChild(r),o.setStart(s,1),o.setEnd(s,2),o.deleteContents(),"13"==s.data&&(k.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},k.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),t.removeChild(r),t=null,f.isHostMethod(o,"createContextualFragment")&&(k.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(n),k.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&l.parentNode.removeChild(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return l.parentNode.removeChild(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=hb;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;fh;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=bb.length;e--;)if(c=bb[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(bb.splice(e,1),!0):d;return"deleteAll"==b&&(bb.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);Q?(y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b}):O?(y=e,a.isSelectionValid=function(){return!0}):b.fail("Neither document.selection or window.getSelection() detected."),a.getNativeSelection=y;var R=y(),S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=M(document),j=i.appendChild(document.createElement("div"));j.contentEditable="false";var k=j.appendChild(document.createTextNode(" ")),l=document.createRange();if(l.setStart(k,1),l.collapse(!0),b.addRange(l),Y=1==b.rangeCount,b.removeAllRanges(),!d){var m=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(m&&parseInt(m[1])>=36)X=!1;else{var n=l.cloneRange();l.setStart(k,0),n.setEnd(k,3),n.setStart(k,2),b.addRange(l),b.addRange(n),X=2==b.rangeCount}}for(i.removeChild(j),b.removeAllRanges(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var ab;E(R,"getRangeAt")?ab=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(ab=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var bb=[],cb=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),bb.push({win:a,selection:b})),b};a.getSelection=cb,a.getIframeSelection=function(c){return b.deprecationNotice("getIframeSelection()","getSelection(iframeEl)"),a.getSelection(C.getIframeWindow(c))};var db=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){db.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var eb=function(a,b){Z(a.nativeSelection,b),a.refresh()};db.addRange=W?function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)eb(this,b);else{var e;X?e=this.rangeCount:(this.removeAllRanges(),e=0);var f=k(b).cloneRange();try{this.nativeSelection.addRange(f)}catch(g){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var i=ab(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,hb(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:function(a,b){c(b)&&V?eb(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},db.setRanges=function(a){if(_&&P&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;db.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},db.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},db.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}db.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fb;if(Q)fb=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fb=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],hb(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fb=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=ab(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}db.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fb(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var gb=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};db.removeRange=_&&P?function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else gb(this,a)}:function(a){gb(this,a)};var hb;!Q&&U&&J.implementsDomRange?(hb=g,db.isBackward=function(){return hb(this)}):hb=db.isBackward=function(){return!1},db.isBackwards=db.isBackward,db.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},db.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},db.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},db.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},db.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},db.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),a.parentNode.removeChild(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},db.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},db.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},db.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},db.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b))}),c},db.setStart=w(!0),db.setEnd=w(!1),a.rangePrototype.select=function(a){cb(this.getDocument()).setSingleRange(this,a)},db.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},db.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},db.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},db.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},db.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(db.getNativeTextRange=function(){var c;if(c=this.docSelection){var d=c.createRange();if(n(d))return d;throw b.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw b.createError("getNativeTextRange: selection contains no range")}),db.getName=function(){return"WrappedSelection"},db.inspect=function(){return x(this)},db.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=db,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return cb(a)}),a=null})});var J=!1,K=function(){J||(J=!0,!E.initialized&&E.config.autoInitialize&&l())};return C&&("complete"==document.readyState?K():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",K,!1),G(window,"load",K))),E},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){a.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(p)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),g.parentNode.removeChild(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString();return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:c,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(i.parentNode.removeChild(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),i.parentNode.removeChild(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[];b=b.slice(0),b.sort(f);for(var j=0,k=b.length;k>j;++j)i[j]=g(b[j],d);for(j=k-1;j>=0;--j)e=b[j],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[j].markerId,h)):(e.setEndBefore(c(i[j].endMarkerId,h)),e.setStartAfter(c(i[j].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],"backward"):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&d.parentNode.removeChild(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p="";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})})},this);var Base=function(){};Base.extend=function(a,b){var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return"object"==a?f:e.valueOf()},c.call(f,b),"function"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&"function"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\bbase\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return"object"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||"function"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=["constructor","toString","valueOf"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;aa:">"===b?a>d:"<="===b?d>=a:">="===b?a>=d:void 0:a===d:!0}var d=navigator.userAgent,e=document.createElement("div"),f=-1!==d.indexOf("Gecko")&&-1===d.indexOf("KHTML"),g=-1!==d.indexOf("AppleWebKit/"),h=-1!==d.indexOf("Chrome/"),i=-1!==d.indexOf("Opera/");return{USER_AGENT:d,supported:function(){var c=this.USER_AGENT.toLowerCase(),d="contentEditable"in e,f=document.execCommand&&document.queryCommandSupported&&document.queryCommandState,g=document.querySelector&&document.querySelectorAll,h=this.isIos()&&a(c)<5||this.isAndroid()&&b(c)<4||-1!==c.indexOf("opera mobi")||-1!==c.indexOf("hpwos/");return d&&f&&g&&!h},isTouchDevice:function(){return this.supportsEvent("touchmove")},isIos:function(){return/ipad|iphone|ipod/i.test(this.USER_AGENT)},isAndroid:function(){return-1!==this.USER_AGENT.indexOf("Android")},supportsSandboxedIframes:function(){return c()},throwsMixedContentWarningWhenIframeSrcIsEmpty:function(){return!("querySelector"in document)},displaysCaretInEmptyContentEditableCorrectly:function(){return c()},hasCurrentStyleProperty:function(){return"currentStyle"in e},insertsLineBreaksOnReturn:function(){return f},supportsPlaceholderAttributeOn:function(a){return"placeholder"in a},supportsEvent:function(a){return"on"+a in e||function(){return e.setAttribute("on"+a,"return;"),"function"==typeof e["on"+a]}()},supportsEventsInIframeCorrectly:function(){return!i},supportsHTML5Tags:function(a){var b=a.createElement("div"),c="foo";return b.innerHTML=c,b.innerHTML.toLowerCase()===c},supportsCommand:function(){var a={formatBlock:c(10,"<="),insertUnorderedList:c(),insertOrderedList:c()},b={insertHTML:f};return function(c,d){var e=a[d];if(!e){try{return c.queryCommandSupported(d)}catch(f){}try{return c.queryCommandEnabled(d)}catch(g){return!!b[d]}}return!1}}(),doesAutoLinkingInContentEditable:function(){return c()},canDisableAutoLinking:function(){return this.supportsCommand(document,"AutoUrlDetect")},clearsContentEditableCorrectly:function(){return f||i||g},supportsGetAttributeCorrectly:function(){var a=document.createElement("td");return"1"!=a.getAttribute("rowspan")},canSelectImagesInContentEditable:function(){return f||c()||i},autoScrollsToCaret:function(){return!g},autoClosesUnclosedTags:function(){var a,b,c=e.cloneNode(!1);return c.innerHTML="",b=c.innerHTML.toLowerCase(),a=""===b||"
"===b,this.autoClosesUnclosedTags=function(){return a},a},supportsNativeGetElementsByClassName:function(){return-1!==String(document.getElementsByClassName).indexOf("[native code]")},supportsSelectionModify:function(){return"getSelection"in window&&"modify"in window.getSelection()},needsSpaceAfterLineBreak:function(){return i},supportsSpeechApiOn:function(a){var b=d.match(/Chrome\/(\d+)/)||[void 0,0];return b[1]>=11&&("onwebkitspeechchange"in a||"speech"in a)},crashesWhenDefineProperty:function(a){return c(9)&&("XMLHttpRequest"===a||"XDomainRequest"===a)},doesAsyncFocus:function(){return c()},hasProblemsSettingCaretAfterImg:function(){return c()},hasUndoInContextMenu:function(){return f||h||i},hasInsertNodeIssue:function(){return i},hasIframeFocusIssue:function(){return c()},createsNestedInvalidMarkupAfterPaste:function(){return g},supportsMutationEvents:function(){return"MutationEvent"in window},supportsModenPaste:function(){return!("clipboardData"in window)},fixStyleKey:function(a){return"cssFloat"===a?"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat":a}}}(),wysihtml5.lang.array=function(a){return{contains:function(b){if(Array.isArray(b)){for(var c=b.length;c--;)if(-1!==wysihtml5.lang.array(a).indexOf(b[c]))return!0;return!1}return-1!==wysihtml5.lang.array(a).indexOf(b)},indexOf:function(b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},without:function(b){b=wysihtml5.lang.array(b);for(var c=[],d=0,e=a.length;e>d;d++)b.contains(a[d])||c.push(a[d]);return c},get:function(){for(var b=0,c=a.length,d=[];c>b;b++)d.push(a[b]);return d},map:function(b,c){if(Array.prototype.map)return a.map(b,c);for(var d=a.length>>>0,e=new Array(d),f=0;d>f;f++)e[f]=b.call(c,a[f],f,a);return e},unique:function(){for(var b=[],c=a.length,d=0;c>d;)wysihtml5.lang.array(b).contains(a[d])||b.push(a[d]),d++;return b}}},wysihtml5.lang.Dispatcher=Base.extend({on:function(a,b){return this.events=this.events||{},this.events[a]=this.events[a]||[],this.events[a].push(b),this},off:function(a,b){this.events=this.events||{};var c,d,e=0;if(a){for(c=this.events[a]||[],d=[];e\t"]/g,d={"&":"&","<":"<",">":">",'"':"""," ":" "};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(a,b){var f=e.replace(c,function(a){return d[a]});return a&&(f=f.replace(/(?:\r\n|\r|\n)/g,"
")),b&&(f=f.replace(/ /gi," ")),f}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return void e(b);
for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList;if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){return b.nodeType!==wysihtml5.ELEMENT_NODE&&(b=b.parentNode),a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(a,b,c,d){var e=function(c){for(var e=c.target,f=3===e.nodeType?e.parentNode:e,g=a.querySelectorAll(b),h=0,i=g.length;i>h;h++)g[h].contains(f)&&d.call(g[h],c)};return a.addEventListener(c,e,!1),{stop:function(){a.removeEventListener(c,e,!1)}}}}(wysihtml5),function(a){a.dom.domNode=function(b){var c=[a.ELEMENT_NODE,a.TEXT_NODE],d=function(b){return b.nodeType===a.TEXT_NODE&&/^\s*$/g.test(b.data)};return{prev:function(e){var f=b.previousSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).prev(e):f:null},next:function(e){var f=b.nextSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).next(e):f:null},lastLeafNode:function(c){var d;if(1!==b.nodeType)return b;if(d=b.lastChild,!d)return b;if(c&&c.leafClasses)for(var e=c.leafClasses.length;e--;)if(a.dom.hasClass(b,c.leafClasses[e]))return b;return a.dom.domNode(d).lastLeafNode(c)},test:function(c){var d;if(!c)return!1;if(1!==b.nodeType)return!1;if(c.query&&!b.matches(c.query))return!1;if(c.nodeName&&b.nodeName!==c.nodeName)return!1;if(c.className&&!b.classList.contains(c.className))return!1;if(c.classRegExp){var e=(b.className||"").match(c.classRegExp)||[];if(0===e.length)return!1}if(c.styleProperty&&c.styleProperty.length>0)for(var f=!1,g=Array.isArray(c.styleProperty)?c.styleProperty:[c.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),b.style[d]){if(!c.styleValue){f=!0;break}if(c.styleValue instanceof RegExp){if(b.style[d].trim().match(c.styleValue).length>0){f=!0;break}}else if(Array.isArray(c.styleValue)){if(c.styleValue.indexOf(b.style[d].trim())){f=!0;break}}else if(c.styleValue===b.style[d].trim()){f=!0;break}}if(!f)return!1}return!0}}}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){return function(a,b,c,d){for(c=c||50;c--&&a&&"BODY"!==a.nodeName&&(!d||a!==d);){if(wysihtml5.dom.domNode(a).test(b))return a;a=a.parentNode}return null}}(),wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a,b){var c=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b&&/^\s*$/.test(a.innerText||a.textContent)||c.push(a):c=c.concat(wysihtml5.dom.getTextNodes(a,b));return c},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},function(a){a.dom.lineBreaks=function(b){function c(a){return"BR"===a.nodeName}function d(b){return c(b)?!0:"block"===a.dom.getStyle("display").from(b)?!0:!1}return{add:function(){var c=b.ownerDocument,e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&!d(e)&&a.dom.insert(c.createElement("br")).after(b),f&&!d(f)&&a.dom.insert(c.createElement("br")).before(b)},remove:function(){var d=a.dom.domNode(b).next({ignoreBlankTexts:!0}),e=a.dom.domNode(b).prev({ignoreBlankTexts:!0});d&&c(d)&&d.parentNode.removeChild(d),e&&c(e)&&e.parentNode.removeChild(e)}}}}(wysihtml5),wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(a,b){function c(a,b){wysihtml5.lang.object(t).merge(s).merge(b.rules).get();var c,f,g,h=b.context||a.ownerDocument||document,i=h.createDocumentFragment(),j="string"==typeof a,k=!1;for(b.clearInternals===!0&&(k=!0),c=j?wysihtml5.dom.getAsDom(a,h):a,t.selectors&&e(c,t.selectors);c.firstChild;)g=c.firstChild,f=d(g,b.cleanUp,k,b.uneditableClass),f&&i.appendChild(f),g!==f&&c.removeChild(g);if(b.unjoinNbsps)for(var l=wysihtml5.dom.getTextNodes(i),m=l.length;m--;)l[m].nodeValue=l[m].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return c.innerHTML="",c.appendChild(i),j?wysihtml5.quirks.getCorrectInnerHTML(c):c}function d(a,b,c,e){var f,g,h,i,j=a.nodeType,k=a.childNodes,l=k.length,m=p[j],n=0;if(e&&1===j&&wysihtml5.dom.hasClass(a,e))return a;if(g=m&&m(a,c),!g){if(g===!1){for(f=a.ownerDocument.createDocumentFragment(),n=l;n--;)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,f.insertBefore(h,f.firstChild)));return i=wysihtml5.dom.getStyle("display").from(a),""===i&&(i=wysihtml5.lang.array(u).contains(a.tagName)?"block":""),wysihtml5.lang.array(["block","flex","table"]).contains(i)&&f.appendChild(a.ownerDocument.createElement("br")),wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||f.appendChild(a.ownerDocument.createTextNode(" "))),f.normalize&&f.normalize(),f}return null}for(n=0;l>n;n++)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,g.appendChild(h)));if(b&&g.nodeName.toLowerCase()===q&&(!g.childNodes.length||/^\s*$/gi.test(g.innerHTML)&&(c||"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className)||!g.attributes.length)){for(f=g.ownerDocument.createDocumentFragment();g.firstChild;)f.appendChild(g.firstChild);return f.normalize&&f.normalize(),f}return g.normalize&&g.normalize(),g}function e(a,b){var c,d,e;for(c in b)if(b.hasOwnProperty(c)){wysihtml5.lang.object(b[c]).isFunction()?d=b[c]:"string"==typeof b[c]&&z[b[c]]&&(d=z[b[c]]),e=a.querySelectorAll(c);for(var f=e.length;f--;)d(e[f])}}function f(a,b){var c,d,e,f=t.tags,h=a.nodeName.toLowerCase(),j=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(j&&"HTML"!=j&&(h=j+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||""===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in f){if(c=f[h],!c||c.remove)return null;if(c.unwrap)return!1;c="string"==typeof c?{rename_tag:c}:c}else{if(!a.firstChild)return null;c={rename_tag:q}}if(c.one_of_type&&!g(a,t,c.one_of_type,b)){if(!c.remove_action)return null;if("unwrap"===c.remove_action)return!1;if("rename"!==c.remove_action)return null;e=c.remove_action_rename_to||q}return d=a.ownerDocument.createElement(e||c.rename_tag||h),m(a,d,c,b),i(a,d,c),a=null,d.normalize&&d.normalize(),d}function g(a,b,c,d){var e,f;if("SPAN"===a.nodeName&&!d&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(e=b.type_definitions[f],h(a,e)))return!0;return!1}function h(a,b){var c,d,e,f,g,h=a.getAttribute("class"),i=a.getAttribute("style");if(b.methods)for(var j in b.methods)if(b.methods.hasOwnProperty(j)&&y[j]&&y[j](a))return!0;if(h&&b.classes){h=h.replace(/^\s+/g,"").replace(/\s+$/g,"").split(r),c=h.length;for(var k=0;c>k;k++)if(b.classes[h[k]])return!0}if(i&&b.styles){i=i.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var l=i.length;l--;)if(g=i[l].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=wysihtml5.dom.getAttribute(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function i(a,b,c){var d,e;if(c&&c.keep_styles)for(d in c.keep_styles)if(c.keep_styles.hasOwnProperty(d)){if(e="float"===d?a.style.styleFloat||a.style.cssFloat:a.style[d],c.keep_styles[d]instanceof RegExp&&!c.keep_styles[d].test(e))continue;"float"===d?b.style[a.style.styleFloat?"styleFloat":"cssFloat"]=e:a.style[d]&&(b.style[d]=e)}}function j(a,b){var c=[];for(var d in b)b.hasOwnProperty(d)&&0===d.indexOf(a)&&c.push(d);return c}function k(a,b,c,d){var e,f=v[c];return f&&(b||"alt"===a&&"IMG"==d)&&(e=f(b),"string"==typeof e)?e:!1}function l(a,b){var c,d,e,f=wysihtml5.lang.object(t.attributes||{}).clone(),g=wysihtml5.lang.object(f).merge(wysihtml5.lang.object(b||{}).clone()).get(),h={},i=wysihtml5.dom.getAttributes(a);for(c in g)if(/\*$/.test(c)){e=j(c.slice(0,-1),i);for(var l=0,m=e.length;m>l;l++)d=k(e[l],i[e[l]],g[c],a.nodeName),d!==!1&&(h[e[l]]=d)}else d=k(c,i[c],g[c],a.nodeName),d!==!1&&(h[c]=d);return h}function m(a,b,c,d){var e,f,g,h,i,j={},k=c.set_class,m=c.add_class,n=c.add_style,o=c.set_attributes,p=t.classes,q=0,s=[],u=[],v=[],y=[];if(o&&(j=wysihtml5.lang.object(o).clone()),j=wysihtml5.lang.object(j).merge(l(a,c.check_attributes)).get(),k&&s.push(k),m)for(h in m)i=x[m[h]],i&&(g=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof g&&s.push(g));if(n)for(h in n)i=w[n[h]],i&&(newStyle=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof newStyle&&u.push(newStyle));if("string"==typeof p&&"any"===p&&a.getAttribute("class"))if(t.classes_blacklist){for(y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],t.classes_blacklist[f]||v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}else j["class"]=a.getAttribute("class");else{for(d||(p["_wysihtml5-temp-placeholder"]=1,p._rangySelectionBoundary=1,p["wysiwyg-tmp-selected-cell"]=1),y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],p[f]&&v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}j["class"]&&d&&(j["class"]=j["class"].replace("wysiwyg-tmp-selected-cell",""),/^\s*$/g.test(j["class"])&&delete j["class"]),u.length&&(j.style=wysihtml5.lang.array(u).unique().join(" "));for(h in j)try{b.setAttribute(h,j[h])}catch(z){}j.src&&("undefined"!=typeof j.width&&b.setAttribute("width",j.width),"undefined"!=typeof j.height&&b.setAttribute("height",j.height))}function n(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")+b.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")}function o(a){return t.comments?a.ownerDocument.createComment(a.nodeValue):void 0}var p={1:f,3:n,8:o},q="span",r=/\s+/,s={tags:{},classes:{}},t={},u=["ADDRESS","BLOCKQUOTE","CENTER","DIR","DIV","DL","FIELDSET","FORM","H1","H2","H3","H4","H5","H6","ISINDEX","MENU","NOFRAMES","NOSCRIPT","OL","P","PRE","TABLE","UL"],v={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:|tel:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b){return b?b.replace(a,""):""}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),dimension:function(){var a=/\D*(\d+)(\.\d+)?\s?(%)?\D*/;return function(b){return b=(b||"").replace(a,"$1$2$3"),b||null}}(),any:function(){return function(a){return a}}()},w={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},x={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},y={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()},z={unwrap:function(a){wysihtml5.dom.unwrap(a)},remove:function(a){a.parentNode.removeChild(a)}};return c(a,b)},wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l=a.ownerDocument,m=l.createDocumentFragment(),n=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0});if(e)for(!n||b(n)||c(n)||d(m);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild;f=k.firstChild;)h=f===g,i=h&&!b(f)&&!c(f),m.appendChild(f),i&&d(m);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)m.appendChild(f);else{for(j=l.createElement("p");f=k.firstChild;)j.appendChild(f);m.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(m,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className="wysihtml5-sandbox",a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.element=d?this._bindElement(d):this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className="wysihtml5-sandbox",this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!=a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.getWindow=function(){return a.ownerDocument.defaultView},this.getDocument=function(){return a.ownerDocument},this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d){var e="placeholder",f=function(){var b=c.element.offsetWidth>0&&c.element.offsetHeight>0;c.hasPlaceholderSet()&&(c.clear(),c.element.focus(),b&&setTimeout(function(){var a=c.selection.getSelection();a.focusNode&&a.anchorNode||c.selection.selectNode(c.element.firstChild||c.element)},0)),c.placeholderSet=!1,a.removeClass(c.element,e)},g=function(){c.isEmpty()&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,e))};b.on("set_placeholder",g).on("unset_placeholder",f).on("focus:composer",f).on("paste:composer",f).on("blur:composer",g),g()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&wysihtml5.dom.isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},wysihtml5.dom.getAttributes=function(a){var b,c=!wysihtml5.browser.supportsGetAttributeCorrectly(),d=a.nodeName,e=[];for(b in a.attributes)(a.attributes.hasOwnProperty&&a.attributes.hasOwnProperty(b)||!a.attributes.hasOwnProperty&&Object.prototype.hasOwnProperty.call(a.attributes,b))&&a.attributes[b].specified&&("IMG"==d&&"src"==a.attributes[b].name.toLowerCase()&&wysihtml5.dom.isLoadedImage(a)===!0?e.src=a.src:wysihtml5.lang.array(["rowspan","colspan"]).contains(a.attributes[b].name.toLowerCase())&&c?1!==a.attributes[b].value&&(e[a.attributes[b].name]=a.attributes[b].value):e[a.attributes[b].name]=a.attributes[b].value);return e},wysihtml5.dom.isLoadedImage=function(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{query:"table"})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode(" ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{query:"tr"})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{query:"tr"})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{query:"tr"}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;
-break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*
\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV");d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){a.selection.setBookmark(c),b(e.innerHTML),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("
"==b||"
"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return k.observe(a,"mousedown",function(a){var b=wysihtml5.dom.getParentElement(a.target,{query:"td, th"});b&&d(b)}),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"}),l.table&&(e(),k.addClass(c,m),n=k.observe(a,"mousemove",g),o=k.observe(a,"mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){n.stop(),o.stop(),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){var c=k.observe(a.ownerDocument,"click",function(a){c.stop(),k.getParentElement(a.target,{query:"table"})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))})}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{query:"table"}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=null,o=null;return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(){var b;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(b=c.lastChild,a.dom.unwrap(c),this.setAfter(b)):c.parentNode.removeChild(c))}.bind(this),f=function(){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c){var d,e=rangy.createRange(this.doc),f=this.doc.documentElement.scrollTop||this.doc.body.scrollTop||this.doc.defaultView.pageYOffset,g=this.doc.documentElement.scrollLeft||this.doc.body.scrollLeft||this.doc.defaultView.pageXOffset;if(e.setStartAfter(b),e.setEndAfter(b),this.composer.element.focus(),this.doc.defaultView.scrollTo(g,f),d=this.setSelection(e),!d)if(c){var h=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(h,b.nextSibling),this.selectNode(h),setTimeout(function(){h&&h.parentNode&&h.parentNode.removeChild(h)},0)}else this.createTemporaryCaretSpaceAfter(b);return d},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{query:"li"},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},caretIsBeforeUneditable:function(){var b,c,d,e=this.getSelection(),f=e.anchorNode,g=e.anchorOffset,h=[];if(f)if(0===g){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode(this.unselectableClass?{leafClasses:[this.unselectableClass]}:!1):null;if(j)for(var k=this.getOwnUneditables(),l=0,m=k.length;m>l;l++)if(j===k[l])return k[l]}else{if(b=e.getRangeAt(0),b.setStart(b.startContainer,b.startOffset-1),b){c=b.getNodes([1,3]);for(var n=0,o=c.length;o>n;n++)c[n].parentNode&&c[n].parentNode===f&&h.push(c[n])}if(d=h.length>0?h[h.length-1]:null,d&&1===d.nodeType&&a.dom.hasClass(d,this.unselectableClass))return d}return!1},executeAndRestoreRangy:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.saveSelection(b);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(a,b){var c,d,e,f,g=this.getSelection();g.rangeCount>0&&(c=g.getRangeAt(0).cloneRange(),c.setEndAfter(a),d=c.extractContents(),a.parentNode.insertBefore(d,a.nextSibling),e=b.firstChild,f=b.lastChild,a.parentNode.insertBefore(b,a.nextSibling),e&&f&&(c.setStartBefore(e),c.setEndAfter(f),this.setSelection(c)))},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.doc.defaultView,b=a.getSelection();b.modify("move","left","lineboundary"),b.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.doc.defaultView,e=d.getSelection();e.modify("extend",b,"lineboundary"),c&&("left"===b?e.collapseToStart():"right"===b&&e.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.doc.defaultView||this.doc.parentWindow)},setSelection:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.getSelection(b);return c.setSingleRange(a),c&&c.anchorNode&&c.focusNode?c:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),wysihtml5.commands.bold={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"b")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"b")}},function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(d,e,f){var g=this.state(d,e);if(g){if((!f||!f.href)&&null!==g.length&&void 0!==g.length&&g.length>0){for(var h=0;hh;h++)d=b[h],e=c.getParentElement(d,{query:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(BLOCK_ELEMENTS),e=c.querySelectorAll(b.config.uneditableContainerClassname),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?BLOCK_ELEMENTS:l)&&(e=d),d=d.parentNode;return e}function e(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=k.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function f(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=k.renameElement(b,c(e)):k.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function g(b){for(var c=b.querySelectorAll(BLOCK_ELEMENTS)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function h(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function i(b,f,i,j){var k=f?a.lang.object(f).clone(!0):null;k&&(k.nodeName=k.nodeName||i||c(j)),h(b,j);var m,n,o,p=b.cloneRange(),q=p.startContainer,r=p.extractContents(),s=j.doc.createDocumentFragment(),t=!k||"BLOCKQUOTE"===i&&k.nodeName&&"BLOCKQUOTE"===k.nodeName,u=d(q,j.element,t);if(f&&f.nodeName&&"BLOCKQUOTE"===f.nodeName){var v=e(null,f,j);v.appendChild(r),s.appendChild(v),n=[v]}else{if(r.firstChild)for(;r.firstChild;)if(1==r.firstChild.nodeType&&r.firstChild.matches(BLOCK_ELEMENTS))if(f)e(r.firstChild,f,j),r.firstChild.matches(l)&&g(r.firstChild),s.appendChild(r.firstChild);else{g(r.firstChild),o=a.dom.unwrap(r.firstChild);for(var w=0,x=o.length;x>w;w++)s.appendChild(o[w]);s.childNodes.length>0&&s.appendChild(j.doc.createElement("BR"))}else if(f){for(m=e(null,k,j);r.firstChild&&(1!==r.firstChild.nodeType||!r.firstChild.matches(BLOCK_ELEMENTS));)1==r.firstChild.nodeType&&m.matches(l)&&g(r.firstChild),m.appendChild(r.firstChild);s.appendChild(m)}else 1==r.firstChild.nodeType&&g(r.firstChild),s.appendChild(r.firstChild);else s.appendChild(e(null,f,j));n=a.lang.array(s.childNodes).get()}return u?j.selection.splitElementAtCaret(u,s):p.insertNode(s),n}function j(b,c){var d=a.dom.getParentElement(b,{query:BLOCK_ELEMENTS},null,c.element);return d?d.nodeName:null}var k=a.dom,l="h1, h2, h3, h4, h5, h6, p, pre";BLOCK_ELEMENTS="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",a.commands.formatBlock={exec:function(c,d,e){var g,h,k,l,m,n=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow);for(var o in m)f(m[o],e,c)}if(!m){c.selection.isCollapsed()&&(k=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:BLOCK_ELEMENTS},null,c.element),k?(l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow),h=c.selection.createRange(),h.selectNode(k),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow),c.selection.selectLine())),g=c.selection.getOwnRanges();for(var p=g.length;p--;)n=n.concat(i(g[p],e,j(g[p].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(n[0]),h.setEndAfter(n[n.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:BLOCK_ELEMENTS})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=k.getParentElement(g[h],d||{query:BLOCK_ELEMENTS},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),wysihtml5.commands.formatCode={exec:function(a,b,c){var d,e,f,g=this.state(a);g?a.selection.executeAndRestore(function(){d=g.querySelector("code"),wysihtml5.dom.replaceWithChildNodes(g),d&&wysihtml5.dom.replaceWithChildNodes(d)}):(e=a.selection.getRange(),f=e.extractContents(),g=a.doc.createElement("pre"),d=a.doc.createElement("code"),c&&(d.className=c),g.appendChild(d),d.appendChild(f),e.insertNode(g),a.selection.selectNode(g))},state:function(a){var b=a.selection.getSelectedNode();return b&&b.nodeName&&"PRE"==b.nodeName&&b.firstChild&&b.firstChild.nodeName&&"CODE"==b.firstChild.nodeName?b:wysihtml5.dom.getParentElement(b,{query:"pre code"})}},function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange(),l=a.selection.getOwnRanges();return l&&0!=l.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(l),void(i?j||a.cleanUp():(k.setStart(l[0].startContainer,l[0].startOffset),k.setEnd(l[l.length-1].endContainer,l[l.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l,m=b.doc,n=d[f]||f;return a.dom.hasElementWithTagName(m,f)||a.dom.hasElementWithTagName(m,n)?g&&!a.dom.hasElementWithClassName(m,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?(l=c(f,g,h,i,j,b.element).isAppliedToRange(k),l&&l.elements?l.elements:!1):!1):!1}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),wysihtml5.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}},function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),wysihtml5.commands.insertOrderedList={exec:function(a,b){wysihtml5.commands.insertList.exec(a,b,"OL")},state:function(a,b){return wysihtml5.commands.insertList.state(a,b,"OL")}},wysihtml5.commands.insertUnorderedList={exec:function(a,b){wysihtml5.commands.insertList.exec(a,b,"UL")},state:function(a,b){return wysihtml5.commands.insertList.state(a,b,"UL")}},wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"}),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){var h=f(g,d);if(h.length)for(var i=h.length;i--;)a.dom.renameElement(h[i],c.toLowerCase());else{e=f(["OL","UL"],d);for(var j=e.length;j--;)a.dom.resolveList(e[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.uneditableContainerClassname),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),wysihtml5.commands.italic={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"i")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"i")}},function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),wysihtml5.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(){return!1}},wysihtml5.commands.underline={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"u")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"u")}},wysihtml5.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(){return!1}},wysihtml5.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"",f+="",e=0;e",d=0;d ";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(){return!1}},wysihtml5.commands.mergeTableCells={exec:function(a,b){a.tableSelection&&a.tableSelection.start&&a.tableSelection.end&&(this.state(a,b)?wysihtml5.dom.table.unmergeCell(a.tableSelection.start):wysihtml5.dom.table.mergeCellsBetween(a.tableSelection.start,a.tableSelection.end))},state:function(a){if(a.tableSelection){var b=a.tableSelection.start,c=a.tableSelection.end;if(b&&c&&b==c&&(wysihtml5.dom.getAttribute(b,"colspan")&&parseInt(wysihtml5.dom.getAttribute(b,"colspan"),10)>1||wysihtml5.dom.getAttribute(b,"rowspan")&&parseInt(wysihtml5.dom.getAttribute(b,"rowspan"),10)>1))return[b]}return!1}},wysihtml5.commands.addTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end);"before"==c||"above"==c?wysihtml5.dom.table.addCells(d.start,c):("after"==c||"below"==c)&&wysihtml5.dom.table.addCells(d.end,c),setTimeout(function(){a.tableSelection.select(d.start,d.end)},0)}},state:function(){return!1}},wysihtml5.commands.deleteTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d,e=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end),f=wysihtml5.dom.table.indexOf(e.start),g=a.tableSelection.table;wysihtml5.dom.table.removeCells(e.start,c),setTimeout(function(){d=wysihtml5.dom.table.findCell(g,f),d||("row"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row-1,col:f.col})),"column"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row,col:f.col-1}))),d&&a.tableSelection.select(d,d)},0)}},state:function(){return!1}},wysihtml5.commands.indentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPushLiLevel(b,a.selection):!1},state:function(){return!1},tryToPushLiLevel:function(a,b){var c,d,e,f,g,h=!1;return b.executeAndRestoreRangy(function(){for(var b=a.length;b--;)f=a[b],c="OL"===f.parentNode.nodeName?"OL":"UL",d=f.ownerDocument.createElement(c),e=wysihtml5.dom.domNode(f).prev({nodeTypes:[wysihtml5.ELEMENT_NODE]}),g=e?e.querySelector("ul, ol"):null,e&&(g?g.appendChild(f):(d.appendChild(f),e.appendChild(d)),h=!0)}),h}},wysihtml5.commands.outdentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPullLiLevel(b,a):!1},state:function(){return!1},tryToPullLiLevel:function(a,b){var c,d,e,f,g,h=!1,i=this;return b.selection.executeAndRestoreRangy(function(){for(var j=a.length;j--;)if(f=a[j],f.parentNode&&(c=f.parentNode,"OL"===c.tagName||"UL"===c.tagName)){if(h=!0,d=wysihtml5.dom.getParentElement(c.parentNode,{query:"ol, ul"},!1,b.element),e=wysihtml5.dom.getParentElement(c.parentNode,{query:"li"},!1,b.element),d&&e)f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g)),d.insertBefore(f,e.nextSibling);else{f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g));for(var k=f.childNodes.length;k--;)c.parentNode.insertBefore(f.childNodes[k],c.nextSibling);c.parentNode.insertBefore(document.createElement("br"),c.nextSibling),f.parentNode.removeChild(f)}0===c.childNodes.length&&c.parentNode.removeChild(c)}}),h},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}},function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){{var a,f=this;this.composer.sandbox.getDocument()}i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()
-},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){this.parent.parse(this.element)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>||<\/p>)*$/i.test(a)||""===a||"
"===a||"
"===a||"
"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.uneditableContainerClassname),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.composerClassName),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.uneditableContainerClassname),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.uneditableContainerClassname])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.uneditableContainerClassname])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(a,b){{var c=b.selection;b.element}if(c.isCollapsed())if(c.caretIsInTheBeginnig("li"))a.preventDefault(),b.commands.exec("outdentList");else if(c.caretIsInTheBeginnig())a.preventDefault();else{if(c.caretIsFirstInSelection()&&c.getPreviousNode()&&c.getPreviousNode().nodeName&&/^H\d$/gi.test(c.getPreviousNode().nodeName)){var d=c.getPreviousNode();if(a.preventDefault(),/^\s*$/.test(d.textContent||d.innerText))d.parentNode.removeChild(d);else{var e=d.ownerDocument.createRange();e.selectNodeContents(d),e.collapse(!1),c.setSelection(e)}}var f=c.caretIsBeforeUneditable();if(f){a.preventDefault();try{var g=new CustomEvent("wysihtml5:uneditable:delete");f.dispatchEvent(g)}catch(h){}f.parentNode.removeChild(f)}}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},h=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},i=function(){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},j=function(){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},k=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},l=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},m=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},n=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},o=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},p=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.uneditableContainerClassname+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},q=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},r=function(b){if(this.config.uneditableContainerClassname){var c=a.dom.getParentElement(b.target,{query:"."+this.config.uneditableContainerClassname},!1,this.element);c&&this.selection.setAfter(c)}},s=function(){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},t=function(b){var c,e,f=b.keyCode,i=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&i&&(this.commands.exec(i),b.preventDefault()),f===a.BACKSPACE_KEY&&g(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),h(this,this.element))},u=function(){setTimeout(function(){this.doc.querySelector(":focus")!==this.element&&this.focus()}.bind(this),0)},v=function(){setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],i.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||i.call(this)},250)),this.config.handleTables&&w.call(this),e(d,["drop","paste","mouseup","focus","keyup"],j.bind(this)),d.addEventListener("focus",k.bind(this),!1),d.addEventListener("blur",l.bind(this),!1),e(this.element,["drop","paste","beforepaste"],m.bind(this),!1),this.element.addEventListener("copy",n.bind(this),!1),this.element.addEventListener("mousedown",p.bind(this),!1),this.element.addEventListener("mouseover",q.bind(this),!1),this.element.addEventListener("click",r.bind(this),!1),this.element.addEventListener("drop",s.bind(this),!1),this.element.addEventListener("keyup",o.bind(this),!1),this.element.addEventListener("keydown",t.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1),!this.config.contentEditableMode&&c.hasIframeFocusIssue()&&(a.addEventListener("focus",u.bind(this),!1),a.addEventListener("blur",v.bind(this),!1))}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,composerClassName:"wysihtml5-editor",bodyClassName:"wysihtml5-supported",useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,uneditableContainerClassname:"wysihtml5-uneditable-container",copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.bodyClassName),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea||(this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer)),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.uneditableContainerClassname,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b,c=this;a.browser.supportsModenPaste()?this.on("paste:composer",function(d){d.preventDefault(),b=a.dom.getPastedHtml(d),b&&c._cleanAndPaste(b)}):this.on("beforepaste:composer",function(b){b.preventDefault(),a.dom.getPastedHtmlWithDiv(c.composer,function(a){a&&c._cleanAndPaste(a)})})},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.uneditableContainerClassname});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5),function(a){var b=a.dom,c="wysihtml5-command-dialog-opened",d="input, select, textarea",e="[data-wysihtml5-dialog-field]",f="data-wysihtml5-dialog-field";a.toolbar.Dialog=a.lang.Dispatcher.extend({constructor:function(a,b){this.link=a,this.container=b},_observe:function(){if(!this._observed){var e=this,f=function(a){var b=e._serialize();e.fire("save",b),e.hide(),a.preventDefault(),a.stopPropagation()};b.observe(e.link,"click",function(){b.hasClass(e.link,c)&&setTimeout(function(){e.hide()},0)}),b.observe(this.container,"keydown",function(b){var c=b.keyCode;c===a.ENTER_KEY&&f(b),c===a.ESCAPE_KEY&&(e.fire("cancel"),e.hide())}),b.delegate(this.container,"[data-wysihtml5-dialog-action=save]","click",f),b.delegate(this.container,"[data-wysihtml5-dialog-action=cancel]","click",function(a){e.fire("cancel"),e.hide(),a.preventDefault(),a.stopPropagation()});for(var g=this.container.querySelectorAll(d),h=0,i=g.length,j=function(){clearInterval(e.interval)};i>h;h++)b.observe(g[h],"change",j);this._observed=!0}},_serialize:function(){for(var a={},b=this.container.querySelectorAll(e),c=b.length,d=0;c>d;d++)a[b[d].getAttribute(f)]=b[d].value;return a},_interpolate:function(a){for(var b,c,d,g=document.querySelector(":focus"),h=this.container.querySelectorAll(e),i=h.length,j=0;i>j;j++)b=h[j],b!==g&&(a&&"hidden"===b.type||(c=b.getAttribute(f),d=this.elementToChange&&"boolean"!=typeof this.elementToChange?this.elementToChange.getAttribute(c)||"":b.defaultValue,b.value=d))},show:function(a){if(!b.hasClass(this.link,c)){var e=this,f=this.container.querySelector(d);if(this.elementToChange=a,this._observe(),this._interpolate(),a&&(this.interval=setInterval(function(){e._interpolate(!0)},500)),b.addClass(this.link,c),this.container.style.display="",this.fire("show"),f&&!a)try{f.focus()}catch(g){}}},hide:function(){clearInterval(this.interval),this.elementToChange=null,b.removeClass(this.link,c),this.container.style.display="none",this.fire("hide")}})}(wysihtml5),function(a){var b=a.dom,c={position:"relative"},d={left:0,margin:0,opacity:0,overflow:"hidden",padding:0,position:"absolute",top:0,zIndex:1},e={cursor:"inherit",fontSize:"50px",height:"50px",marginTop:"-25px",outline:0,padding:0,position:"absolute",right:"-4px",top:"50%"},f={"x-webkit-speech":"",speech:""};a.toolbar.Speech=function(g,h){var i=document.createElement("input");if(!a.browser.supportsSpeechApiOn(i))return void(h.style.display="none");var j=g.editor.textarea.element.getAttribute("lang");j&&(f.lang=j);var k=document.createElement("div");a.lang.object(d).merge({width:h.offsetWidth+"px",height:h.offsetHeight+"px"}),b.insert(i).into(k),b.insert(k).into(h),b.setStyles(e).on(i),b.setAttributes(f).on(i),b.setStyles(d).on(k),b.setStyles(c).on(h);var l="onwebkitspeechchange"in i?"webkitspeechchange":"speechchange";b.observe(i,l,function(){g.execCommand("insertText",i.value),i.value=""}),b.observe(i,"click",function(a){b.hasClass(h,"wysihtml5-command-disabled")&&a.preventDefault(),a.stopPropagation()})}}(wysihtml5),function(a){var b="wysihtml5-command-disabled",c="wysihtml5-commands-disabled",d="wysihtml5-command-active",e="wysihtml5-action-active",f=a.dom;a.toolbar.Toolbar=Base.extend({constructor:function(f,g,h){this.editor=f,this.container="string"==typeof g?document.getElementById(g):g,this.composer=f.composer,this._getLinks("command"),this._getLinks("action"),this._observe(),h&&this.show(),null!=f.config.classNameCommandDisabled&&(b=f.config.classNameCommandDisabled),null!=f.config.classNameCommandsDisabled&&(c=f.config.classNameCommandsDisabled),null!=f.config.classNameCommandActive&&(d=f.config.classNameCommandActive),null!=f.config.classNameActionActive&&(e=f.config.classNameActionActive);for(var i=this.container.querySelectorAll("[data-wysihtml5-command=insertSpeech]"),j=i.length,k=0;j>k;k++)new a.toolbar.Speech(this,i[k])},_getLinks:function(b){for(var c,d,e,f,g,h,i=this[b+"Links"]=a.lang.array(this.container.querySelectorAll("[data-wysihtml5-"+b+"]")).get(),j=i.length,k=0,l=this[b+"Mapping"]={};j>k;k++)c=i[k],e=c.getAttribute("data-wysihtml5-"+b),f=c.getAttribute("data-wysihtml5-"+b+"-value"),h=c.getAttribute("data-wysihtml5-"+b+"-blank-value"),d=this.container.querySelector("[data-wysihtml5-"+b+"-group='"+e+"']"),g=this._getDialog(c,e),l[e+":"+f]={link:c,group:d,name:e,value:f,tracksBlankValue:h,dialog:g,state:!1}},_getDialog:function(b,c){var d,e,f=this,g=this.container.querySelector("[data-wysihtml5-dialog='"+c+"']");return g&&(d=a.toolbar["Dialog_"+c]?new a.toolbar["Dialog_"+c](b,g):new a.toolbar.Dialog(b,g),d.on("show",function(){e=f.composer.selection.getBookmark(),f.editor.fire("show:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("save",function(a){e&&f.composer.selection.setBookmark(e),f._execCommand(c,a),f.editor.fire("save:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("cancel",function(){f.editor.focus(!1),f.editor.fire("cancel:dialog",{command:c,dialogContainer:g,commandLink:b})})),d},execCommand:function(a,b){if(!this.commandsDisabled){var c=this.commandMapping[a+":"+b];c&&c.dialog&&!c.state?c.dialog.show():this._execCommand(a,b)}},_execCommand:function(a,b){this.editor.focus(!1),this.composer.commands.exec(a,b),this._updateLinkStates()},execAction:function(a){var b=this.editor;"change_view"===a&&b.textarea&&(b.currentView===b.textarea?b.fire("change_view","composer"):b.fire("change_view","textarea")),"showSource"==a&&b.fire("showSource")},_observe:function(){for(var a=this,b=this.editor,d=this.container,e=this.commandLinks.concat(this.actionLinks),g=e.length,h=0;g>h;h++)"A"===e[h].nodeName?f.setAttributes({href:"javascript:;",unselectable:"on"}).on(e[h]):f.setAttributes({unselectable:"on"}).on(e[h]);f.delegate(d,"[data-wysihtml5-command], [data-wysihtml5-action]","mousedown",function(a){a.preventDefault()}),f.delegate(d,"[data-wysihtml5-command]","click",function(b){var c=this,d=c.getAttribute("data-wysihtml5-command"),e=c.getAttribute("data-wysihtml5-command-value");a.execCommand(d,e),b.preventDefault()}),f.delegate(d,"[data-wysihtml5-action]","click",function(b){var c=this.getAttribute("data-wysihtml5-action");a.execAction(c),b.preventDefault()}),b.on("interaction:composer",function(){a._updateLinkStates()}),b.on("focus:composer",function(){a.bookmark=null}),this.editor.config.handleTables&&(b.on("tableselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display=""}),b.on("tableunselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display="none"})),b.on("change_view",function(e){b.textarea&&setTimeout(function(){a.commandsDisabled="composer"!==e,a._updateLinkStates(),a.commandsDisabled?f.addClass(d,c):f.removeClass(d,c)},0)})},_updateLinkStates:function(){var c,g,h,i,j=this.commandMapping,k=(this.commandblankMapping,this.actionMapping);for(c in j)i=j[c],this.commandsDisabled?(g=!1,f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()):(g=this.composer.commands.state(i.name,i.value),f.removeClass(i.link,b),i.group&&f.removeClass(i.group,b)),(i.state!==g||i.tracksBlankValue)&&(i.state=g,g?i.tracksBlankValue?f.removeClass(i.link,d):(f.addClass(i.link,d),i.group&&f.addClass(i.group,d),i.dialog&&("object"==typeof g||a.lang.object(g).isArray()?(!i.dialog.multiselect&&a.lang.object(g).isArray()&&(g=1===g.length?g[0]:!0,i.state=g),i.dialog.show(g)):i.dialog.hide())):i.tracksBlankValue?f.addClass(i.link,d):(f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()));for(c in k)h=k[c],"change_view"===h.name&&(h.state=this.editor.currentView===this.editor.textarea,h.state?f.addClass(h.link,e):f.removeClass(h.link,e))},show:function(){this.container.style.display=""},hide:function(){this.container.style.display="none"}})}(wysihtml5),function(a){a.toolbar.Dialog_createTable=a.toolbar.Dialog.extend({show:function(a){this.base(a)}})}(wysihtml5),function(a){var b=(a.dom,"[data-wysihtml5-dialog-field]"),c="data-wysihtml5-dialog-field";a.toolbar.Dialog_foreColorStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){for(var a={},d=this.container.querySelectorAll(b),e=d.length,f=0;e>f;f++)a[d[f].getAttribute(c)]=d[f].value;return a},_interpolate:function(d){for(var e,f=document.querySelector(":focus"),g=this.container.querySelectorAll(b),h=g.length,i=0,j=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,k=j?j.getAttribute("style"):null,l=k?a.quirks.styleParser.parseColor(k,"color"):null;h>i;i++)e=g[i],e!==f&&(d&&"hidden"===e.type||"color"===e.getAttribute(c)&&(e.value=l?l[3]&&1!=l[3]?"rgba("+l[0]+","+l[1]+","+l[2]+","+l[3]+");":"rgb("+l[0]+","+l[1]+","+l[2]+");":"rgb(0,0,0);"))
-}})}(wysihtml5),function(a){a.dom;a.toolbar.Dialog_fontSizeStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){return{size:this.container.querySelector('[data-wysihtml5-dialog-field="size"]').value}},_interpolate:function(){var b=document.querySelector(":focus"),c=this.container.querySelector("[data-wysihtml5-dialog-field='size']"),d=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,e=d?d.getAttribute("style"):null,f=e?a.quirks.styleParser.parseFontSize(e):null;c&&c!==b&&f&&!/^\s*$/.test(f)&&(c.value=f)}})}(wysihtml5);
+break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*
\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV");d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){a.selection.setBookmark(c),b(e.innerHTML),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("
"==b||"
"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return a.addEventListener("mousedown",n),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"}),l.table&&(e(),k.addClass(c,m),a.addEventListener("mousemove",g),a.addEventListener("mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){a.removeEventListener("mousemove",g),a.removeEventListener("mouseup",h),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){a.ownerDocument.addEventListener("click",o)}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{query:"table"}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=function(a){var b=wysihtml5.dom.getParentElement(a.target,{query:"td, th"});b&&d(b)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(){var b;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(b=c.lastChild,a.dom.unwrap(c),this.setAfter(b)):c.parentNode.removeChild(c))}.bind(this),f=function(){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c){var d,e=rangy.createRange(this.doc),f=this.doc.documentElement.scrollTop||this.doc.body.scrollTop||this.doc.defaultView.pageYOffset,g=this.doc.documentElement.scrollLeft||this.doc.body.scrollLeft||this.doc.defaultView.pageXOffset;if(e.setStartAfter(b),e.setEndAfter(b),this.composer.element.focus(),this.doc.defaultView.scrollTo(g,f),d=this.setSelection(e),!d)if(c){var h=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(h,b.nextSibling),this.selectNode(h),setTimeout(function(){h&&h.parentNode&&h.parentNode.removeChild(h)},0)}else this.createTemporaryCaretSpaceAfter(b);return d},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{query:"li"},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},caretIsBeforeUneditable:function(){var b,c,d,e=this.getSelection(),f=e.anchorNode,g=e.anchorOffset,h=[];if(f)if(0===g){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode(this.unselectableClass?{leafClasses:[this.unselectableClass]}:!1):null;if(j)for(var k=this.getOwnUneditables(),l=0,m=k.length;m>l;l++)if(j===k[l])return k[l]}else{if(b=e.getRangeAt(0),b.setStart(b.startContainer,b.startOffset-1),b){c=b.getNodes([1,3]);for(var n=0,o=c.length;o>n;n++)c[n].parentNode&&c[n].parentNode===f&&h.push(c[n])}if(d=h.length>0?h[h.length-1]:null,d&&1===d.nodeType&&a.dom.hasClass(d,this.unselectableClass))return d}return!1},executeAndRestoreRangy:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.saveSelection(b);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(a,b){var c,d,e,f,g=this.getSelection();g.rangeCount>0&&(c=g.getRangeAt(0).cloneRange(),c.setEndAfter(a),d=c.extractContents(),a.parentNode.insertBefore(d,a.nextSibling),e=b.firstChild,f=b.lastChild,a.parentNode.insertBefore(b,a.nextSibling),e&&f&&(c.setStartBefore(e),c.setEndAfter(f),this.setSelection(c)))},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.doc.defaultView,b=a.getSelection();b.modify("move","left","lineboundary"),b.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.doc.defaultView,e=d.getSelection();e.modify("extend",b,"lineboundary"),c&&("left"===b?e.collapseToStart():"right"===b&&e.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.doc.defaultView||this.doc.parentWindow)},setSelection:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.getSelection(b);return c.setSingleRange(a),c&&c.anchorNode&&c.focusNode?c:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),wysihtml5.commands.bold={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"b")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"b")}},function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(d,e,f){var g=this.state(d,e);if(g){if((!f||!f.href)&&null!==g.length&&void 0!==g.length&&g.length>0){for(var h=0;hh;h++)d=b[h],e=c.getParentElement(d,{query:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(BLOCK_ELEMENTS),e=c.querySelectorAll(b.config.uneditableContainerClassname),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?BLOCK_ELEMENTS:l)&&(e=d),d=d.parentNode;return e}function e(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=k.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function f(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=k.renameElement(b,c(e)):k.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function g(b){for(var c=b.querySelectorAll(BLOCK_ELEMENTS)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function h(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function i(b,f,i,j){var k=f?a.lang.object(f).clone(!0):null;k&&(k.nodeName=k.nodeName||i||c(j)),h(b,j);var m,n,o,p=b.cloneRange(),q=p.startContainer,r=p.extractContents(),s=j.doc.createDocumentFragment(),t=!k||"BLOCKQUOTE"===i&&k.nodeName&&"BLOCKQUOTE"===k.nodeName,u=d(q,j.element,t);if(f&&f.nodeName&&"BLOCKQUOTE"===f.nodeName){var v=e(null,f,j);v.appendChild(r),s.appendChild(v),n=[v]}else{if(r.firstChild)for(;r.firstChild;)if(1==r.firstChild.nodeType&&r.firstChild.matches(BLOCK_ELEMENTS))if(f)e(r.firstChild,f,j),r.firstChild.matches(l)&&g(r.firstChild),s.appendChild(r.firstChild);else{g(r.firstChild),o=a.dom.unwrap(r.firstChild);for(var w=0,x=o.length;x>w;w++)s.appendChild(o[w]);s.childNodes.length>0&&s.appendChild(j.doc.createElement("BR"))}else if(f){for(m=e(null,k,j);r.firstChild&&(1!==r.firstChild.nodeType||!r.firstChild.matches(BLOCK_ELEMENTS));)1==r.firstChild.nodeType&&m.matches(l)&&g(r.firstChild),m.appendChild(r.firstChild);s.appendChild(m)}else 1==r.firstChild.nodeType&&g(r.firstChild),s.appendChild(r.firstChild);else s.appendChild(e(null,f,j));n=a.lang.array(s.childNodes).get()}return u?j.selection.splitElementAtCaret(u,s):p.insertNode(s),n}function j(b,c){var d=a.dom.getParentElement(b,{query:BLOCK_ELEMENTS},null,c.element);return d?d.nodeName:null}var k=a.dom,l="h1, h2, h3, h4, h5, h6, p, pre";BLOCK_ELEMENTS="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",a.commands.formatBlock={exec:function(c,d,e){var g,h,k,l,m,n=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow);for(var o in m)f(m[o],e,c)}if(!m){c.selection.isCollapsed()&&(k=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:BLOCK_ELEMENTS},null,c.element),k?(l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow),h=c.selection.createRange(),h.selectNode(k),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow),c.selection.selectLine())),g=c.selection.getOwnRanges();for(var p=g.length;p--;)n=n.concat(i(g[p],e,j(g[p].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(n[0]),h.setEndAfter(n[n.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:BLOCK_ELEMENTS})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=k.getParentElement(g[h],d||{query:BLOCK_ELEMENTS},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),wysihtml5.commands.formatCode={exec:function(a,b,c){var d,e,f,g=this.state(a);g?a.selection.executeAndRestore(function(){d=g.querySelector("code"),wysihtml5.dom.replaceWithChildNodes(g),d&&wysihtml5.dom.replaceWithChildNodes(d)}):(e=a.selection.getRange(),f=e.extractContents(),g=a.doc.createElement("pre"),d=a.doc.createElement("code"),c&&(d.className=c),g.appendChild(d),d.appendChild(f),e.insertNode(g),a.selection.selectNode(g))},state:function(a){var b=a.selection.getSelectedNode();return b&&b.nodeName&&"PRE"==b.nodeName&&b.firstChild&&b.firstChild.nodeName&&"CODE"==b.firstChild.nodeName?b:wysihtml5.dom.getParentElement(b,{query:"pre code"})}},function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange(),l=a.selection.getOwnRanges();return l&&0!=l.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(l),void(i?j||a.cleanUp():(k.setStart(l[0].startContainer,l[0].startOffset),k.setEnd(l[l.length-1].endContainer,l[l.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l,m=b.doc,n=d[f]||f;return a.dom.hasElementWithTagName(m,f)||a.dom.hasElementWithTagName(m,n)?g&&!a.dom.hasElementWithClassName(m,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?(l=c(f,g,h,i,j,b.element).isAppliedToRange(k),l&&l.elements?l.elements:!1):!1):!1}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),wysihtml5.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}},function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),wysihtml5.commands.insertOrderedList={exec:function(a,b){wysihtml5.commands.insertList.exec(a,b,"OL")},state:function(a,b){return wysihtml5.commands.insertList.state(a,b,"OL")}},wysihtml5.commands.insertUnorderedList={exec:function(a,b){wysihtml5.commands.insertList.exec(a,b,"UL")},state:function(a,b){return wysihtml5.commands.insertList.state(a,b,"UL")}},wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"}),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){var h=f(g,d);if(h.length)for(var i=h.length;i--;)a.dom.renameElement(h[i],c.toLowerCase());else{e=f(["OL","UL"],d);for(var j=e.length;j--;)a.dom.resolveList(e[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.uneditableContainerClassname),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),wysihtml5.commands.italic={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"i")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"i")}},function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),wysihtml5.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(){return!1}},wysihtml5.commands.underline={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"u")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"u")}},wysihtml5.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(){return!1}},wysihtml5.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"",f+="",e=0;e",d=0;d ";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(){return!1}},wysihtml5.commands.mergeTableCells={exec:function(a,b){a.tableSelection&&a.tableSelection.start&&a.tableSelection.end&&(this.state(a,b)?wysihtml5.dom.table.unmergeCell(a.tableSelection.start):wysihtml5.dom.table.mergeCellsBetween(a.tableSelection.start,a.tableSelection.end))},state:function(a){if(a.tableSelection){var b=a.tableSelection.start,c=a.tableSelection.end;if(b&&c&&b==c&&(wysihtml5.dom.getAttribute(b,"colspan")&&parseInt(wysihtml5.dom.getAttribute(b,"colspan"),10)>1||wysihtml5.dom.getAttribute(b,"rowspan")&&parseInt(wysihtml5.dom.getAttribute(b,"rowspan"),10)>1))return[b]}return!1}},wysihtml5.commands.addTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end);"before"==c||"above"==c?wysihtml5.dom.table.addCells(d.start,c):("after"==c||"below"==c)&&wysihtml5.dom.table.addCells(d.end,c),setTimeout(function(){a.tableSelection.select(d.start,d.end)},0)}},state:function(){return!1}},wysihtml5.commands.deleteTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d,e=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end),f=wysihtml5.dom.table.indexOf(e.start),g=a.tableSelection.table;wysihtml5.dom.table.removeCells(e.start,c),setTimeout(function(){d=wysihtml5.dom.table.findCell(g,f),d||("row"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row-1,col:f.col})),"column"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row,col:f.col-1}))),d&&a.tableSelection.select(d,d)},0)}},state:function(){return!1}},wysihtml5.commands.indentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPushLiLevel(b,a.selection):!1},state:function(){return!1},tryToPushLiLevel:function(a,b){var c,d,e,f,g,h=!1;return b.executeAndRestoreRangy(function(){for(var b=a.length;b--;)f=a[b],c="OL"===f.parentNode.nodeName?"OL":"UL",d=f.ownerDocument.createElement(c),e=wysihtml5.dom.domNode(f).prev({nodeTypes:[wysihtml5.ELEMENT_NODE]}),g=e?e.querySelector("ul, ol"):null,e&&(g?g.appendChild(f):(d.appendChild(f),e.appendChild(d)),h=!0)}),h}},wysihtml5.commands.outdentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPullLiLevel(b,a):!1},state:function(){return!1},tryToPullLiLevel:function(a,b){var c,d,e,f,g,h=!1,i=this;return b.selection.executeAndRestoreRangy(function(){for(var j=a.length;j--;)if(f=a[j],f.parentNode&&(c=f.parentNode,"OL"===c.tagName||"UL"===c.tagName)){if(h=!0,d=wysihtml5.dom.getParentElement(c.parentNode,{query:"ol, ul"},!1,b.element),e=wysihtml5.dom.getParentElement(c.parentNode,{query:"li"},!1,b.element),d&&e)f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g)),d.insertBefore(f,e.nextSibling);else{f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g));for(var k=f.childNodes.length;k--;)c.parentNode.insertBefore(f.childNodes[k],c.nextSibling);c.parentNode.insertBefore(document.createElement("br"),c.nextSibling),f.parentNode.removeChild(f)}0===c.childNodes.length&&c.parentNode.removeChild(c)}}),h},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}},function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){{var a,f=this;this.composer.sandbox.getDocument()}i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c
+},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){var a;this.selection&&(a=rangy.saveSelection(this.doc.defaultView||this.doc.parentWindow)),this.parent.parse(this.element),a&&rangy.restoreSelection(a)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>||<\/p>)*$/i.test(a)||""===a||"
"===a||"
"===a||"
"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.uneditableContainerClassname),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.composerClassName),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.uneditableContainerClassname),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.uneditableContainerClassname])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.uneditableContainerClassname])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(a,b){{var c=b.selection;b.element}if(c.isCollapsed())if(c.caretIsInTheBeginnig("li"))a.preventDefault(),b.commands.exec("outdentList");else if(c.caretIsInTheBeginnig())a.preventDefault();else{if(c.caretIsFirstInSelection()&&c.getPreviousNode()&&c.getPreviousNode().nodeName&&/^H\d$/gi.test(c.getPreviousNode().nodeName)){var d=c.getPreviousNode();if(a.preventDefault(),/^\s*$/.test(d.textContent||d.innerText))d.parentNode.removeChild(d);else{var e=d.ownerDocument.createRange();e.selectNodeContents(d),e.collapse(!1),c.setSelection(e)}}var f=c.caretIsBeforeUneditable();if(f){a.preventDefault();try{var g=new CustomEvent("wysihtml5:uneditable:delete");f.dispatchEvent(g)}catch(h){}f.parentNode.removeChild(f)}}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},h=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},i=function(){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},j=function(){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},k=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},l=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},m=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},n=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},o=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},p=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.uneditableContainerClassname+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},q=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},r=function(b){if(this.config.uneditableContainerClassname){var c=a.dom.getParentElement(b.target,{query:"."+this.config.uneditableContainerClassname},!1,this.element);c&&this.selection.setAfter(c)}},s=function(){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},t=function(b){var c,e,f=b.keyCode,i=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&i&&(this.commands.exec(i),b.preventDefault()),f===a.BACKSPACE_KEY&&g(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),h(this,this.element))},u=function(){setTimeout(function(){this.doc.querySelector(":focus")!==this.element&&this.focus()}.bind(this),0)},v=function(){setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],i.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||i.call(this)},250)),this.config.handleTables&&w.call(this),e(d,["drop","paste","mouseup","focus","keyup"],j.bind(this)),d.addEventListener("focus",k.bind(this),!1),d.addEventListener("blur",l.bind(this),!1),e(this.element,["drop","paste","beforepaste"],m.bind(this),!1),this.element.addEventListener("copy",n.bind(this),!1),this.element.addEventListener("mousedown",p.bind(this),!1),this.element.addEventListener("mouseover",q.bind(this),!1),this.element.addEventListener("click",r.bind(this),!1),this.element.addEventListener("drop",s.bind(this),!1),this.element.addEventListener("keyup",o.bind(this),!1),this.element.addEventListener("keydown",t.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1),!this.config.contentEditableMode&&c.hasIframeFocusIssue()&&(a.addEventListener("focus",u.bind(this),!1),a.addEventListener("blur",v.bind(this),!1))}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,composerClassName:"wysihtml5-editor",bodyClassName:"wysihtml5-supported",useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,uneditableContainerClassname:"wysihtml5-uneditable-container",copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.bodyClassName),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea||(this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer)),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.uneditableContainerClassname,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b,c=this;a.browser.supportsModenPaste()?this.on("paste:composer",function(d){d.preventDefault(),b=a.dom.getPastedHtml(d),b&&c._cleanAndPaste(b)}):this.on("beforepaste:composer",function(b){b.preventDefault(),a.dom.getPastedHtmlWithDiv(c.composer,function(a){a&&c._cleanAndPaste(a)})})},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.uneditableContainerClassname});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5),function(a){var b=a.dom,c="wysihtml5-command-dialog-opened",d="input, select, textarea",e="[data-wysihtml5-dialog-field]",f="data-wysihtml5-dialog-field";a.toolbar.Dialog=a.lang.Dispatcher.extend({constructor:function(a,b){this.link=a,this.container=b},_observe:function(){if(!this._observed){var e=this,f=function(a){var b=e._serialize();e.fire("save",b),e.hide(),a.preventDefault(),a.stopPropagation()};b.observe(e.link,"click",function(){b.hasClass(e.link,c)&&setTimeout(function(){e.hide()},0)}),b.observe(this.container,"keydown",function(b){var c=b.keyCode;c===a.ENTER_KEY&&f(b),c===a.ESCAPE_KEY&&(e.fire("cancel"),e.hide())}),b.delegate(this.container,"[data-wysihtml5-dialog-action=save]","click",f),b.delegate(this.container,"[data-wysihtml5-dialog-action=cancel]","click",function(a){e.fire("cancel"),e.hide(),a.preventDefault(),a.stopPropagation()});for(var g=this.container.querySelectorAll(d),h=0,i=g.length,j=function(){clearInterval(e.interval)};i>h;h++)b.observe(g[h],"change",j);this._observed=!0}},_serialize:function(){for(var a={},b=this.container.querySelectorAll(e),c=b.length,d=0;c>d;d++)a[b[d].getAttribute(f)]=b[d].value;return a},_interpolate:function(a){for(var b,c,d,g=document.querySelector(":focus"),h=this.container.querySelectorAll(e),i=h.length,j=0;i>j;j++)b=h[j],b!==g&&(a&&"hidden"===b.type||(c=b.getAttribute(f),d=this.elementToChange&&"boolean"!=typeof this.elementToChange?this.elementToChange.getAttribute(c)||"":b.defaultValue,b.value=d))},show:function(a){if(!b.hasClass(this.link,c)){var e=this,f=this.container.querySelector(d);if(this.elementToChange=a,this._observe(),this._interpolate(),a&&(this.interval=setInterval(function(){e._interpolate(!0)},500)),b.addClass(this.link,c),this.container.style.display="",this.fire("show"),f&&!a)try{f.focus()}catch(g){}}},hide:function(){clearInterval(this.interval),this.elementToChange=null,b.removeClass(this.link,c),this.container.style.display="none",this.fire("hide")}})}(wysihtml5),function(a){var b=a.dom,c={position:"relative"},d={left:0,margin:0,opacity:0,overflow:"hidden",padding:0,position:"absolute",top:0,zIndex:1},e={cursor:"inherit",fontSize:"50px",height:"50px",marginTop:"-25px",outline:0,padding:0,position:"absolute",right:"-4px",top:"50%"},f={"x-webkit-speech":"",speech:""};a.toolbar.Speech=function(g,h){var i=document.createElement("input");if(!a.browser.supportsSpeechApiOn(i))return void(h.style.display="none");var j=g.editor.textarea.element.getAttribute("lang");j&&(f.lang=j);var k=document.createElement("div");a.lang.object(d).merge({width:h.offsetWidth+"px",height:h.offsetHeight+"px"}),b.insert(i).into(k),b.insert(k).into(h),b.setStyles(e).on(i),b.setAttributes(f).on(i),b.setStyles(d).on(k),b.setStyles(c).on(h);var l="onwebkitspeechchange"in i?"webkitspeechchange":"speechchange";b.observe(i,l,function(){g.execCommand("insertText",i.value),i.value=""}),b.observe(i,"click",function(a){b.hasClass(h,"wysihtml5-command-disabled")&&a.preventDefault(),a.stopPropagation()})}}(wysihtml5),function(a){var b="wysihtml5-command-disabled",c="wysihtml5-commands-disabled",d="wysihtml5-command-active",e="wysihtml5-action-active",f=a.dom;a.toolbar.Toolbar=Base.extend({constructor:function(f,g,h){this.editor=f,this.container="string"==typeof g?document.getElementById(g):g,this.composer=f.composer,this._getLinks("command"),this._getLinks("action"),this._observe(),h&&this.show(),null!=f.config.classNameCommandDisabled&&(b=f.config.classNameCommandDisabled),null!=f.config.classNameCommandsDisabled&&(c=f.config.classNameCommandsDisabled),null!=f.config.classNameCommandActive&&(d=f.config.classNameCommandActive),null!=f.config.classNameActionActive&&(e=f.config.classNameActionActive);for(var i=this.container.querySelectorAll("[data-wysihtml5-command=insertSpeech]"),j=i.length,k=0;j>k;k++)new a.toolbar.Speech(this,i[k])},_getLinks:function(b){for(var c,d,e,f,g,h,i=this[b+"Links"]=a.lang.array(this.container.querySelectorAll("[data-wysihtml5-"+b+"]")).get(),j=i.length,k=0,l=this[b+"Mapping"]={};j>k;k++)c=i[k],e=c.getAttribute("data-wysihtml5-"+b),f=c.getAttribute("data-wysihtml5-"+b+"-value"),h=c.getAttribute("data-wysihtml5-"+b+"-blank-value"),d=this.container.querySelector("[data-wysihtml5-"+b+"-group='"+e+"']"),g=this._getDialog(c,e),l[e+":"+f]={link:c,group:d,name:e,value:f,tracksBlankValue:h,dialog:g,state:!1}},_getDialog:function(b,c){var d,e,f=this,g=this.container.querySelector("[data-wysihtml5-dialog='"+c+"']");return g&&(d=a.toolbar["Dialog_"+c]?new a.toolbar["Dialog_"+c](b,g):new a.toolbar.Dialog(b,g),d.on("show",function(){e=f.composer.selection.getBookmark(),f.editor.fire("show:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("save",function(a){e&&f.composer.selection.setBookmark(e),f._execCommand(c,a),f.editor.fire("save:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("cancel",function(){f.editor.focus(!1),f.editor.fire("cancel:dialog",{command:c,dialogContainer:g,commandLink:b})})),d},execCommand:function(a,b){if(!this.commandsDisabled){var c=this.commandMapping[a+":"+b];c&&c.dialog&&!c.state?c.dialog.show():this._execCommand(a,b)}},_execCommand:function(a,b){this.editor.focus(!1),this.composer.commands.exec(a,b),this._updateLinkStates()},execAction:function(a){var b=this.editor;"change_view"===a&&b.textarea&&(b.currentView===b.textarea?b.fire("change_view","composer"):b.fire("change_view","textarea")),"showSource"==a&&b.fire("showSource")},_observe:function(){for(var a=this,b=this.editor,d=this.container,e=this.commandLinks.concat(this.actionLinks),g=e.length,h=0;g>h;h++)"A"===e[h].nodeName?f.setAttributes({href:"javascript:;",unselectable:"on"}).on(e[h]):f.setAttributes({unselectable:"on"}).on(e[h]);f.delegate(d,"[data-wysihtml5-command], [data-wysihtml5-action]","mousedown",function(a){a.preventDefault()}),f.delegate(d,"[data-wysihtml5-command]","click",function(b){var c=this,d=c.getAttribute("data-wysihtml5-command"),e=c.getAttribute("data-wysihtml5-command-value");a.execCommand(d,e),b.preventDefault()}),f.delegate(d,"[data-wysihtml5-action]","click",function(b){var c=this.getAttribute("data-wysihtml5-action");a.execAction(c),b.preventDefault()}),b.on("interaction:composer",function(){a._updateLinkStates()}),b.on("focus:composer",function(){a.bookmark=null}),this.editor.config.handleTables&&(b.on("tableselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display=""}),b.on("tableunselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display="none"})),b.on("change_view",function(e){b.textarea&&setTimeout(function(){a.commandsDisabled="composer"!==e,a._updateLinkStates(),a.commandsDisabled?f.addClass(d,c):f.removeClass(d,c)},0)})},_updateLinkStates:function(){var c,g,h,i,j=this.commandMapping,k=(this.commandblankMapping,this.actionMapping);for(c in j)i=j[c],this.commandsDisabled?(g=!1,f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()):(g=this.composer.commands.state(i.name,i.value),f.removeClass(i.link,b),i.group&&f.removeClass(i.group,b)),(i.state!==g||i.tracksBlankValue)&&(i.state=g,g?i.tracksBlankValue?f.removeClass(i.link,d):(f.addClass(i.link,d),i.group&&f.addClass(i.group,d),i.dialog&&("object"==typeof g||a.lang.object(g).isArray()?(!i.dialog.multiselect&&a.lang.object(g).isArray()&&(g=1===g.length?g[0]:!0,i.state=g),i.dialog.show(g)):i.dialog.hide())):i.tracksBlankValue?f.addClass(i.link,d):(f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()));for(c in k)h=k[c],"change_view"===h.name&&(h.state=this.editor.currentView===this.editor.textarea,h.state?f.addClass(h.link,e):f.removeClass(h.link,e))},show:function(){this.container.style.display=""},hide:function(){this.container.style.display="none"}})}(wysihtml5),function(a){a.toolbar.Dialog_createTable=a.toolbar.Dialog.extend({show:function(a){this.base(a)}})}(wysihtml5),function(a){var b=(a.dom,"[data-wysihtml5-dialog-field]"),c="data-wysihtml5-dialog-field";a.toolbar.Dialog_foreColorStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){for(var a={},d=this.container.querySelectorAll(b),e=d.length,f=0;e>f;f++)a[d[f].getAttribute(c)]=d[f].value;
+return a},_interpolate:function(d){for(var e,f=document.querySelector(":focus"),g=this.container.querySelectorAll(b),h=g.length,i=0,j=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,k=j?j.getAttribute("style"):null,l=k?a.quirks.styleParser.parseColor(k,"color"):null;h>i;i++)e=g[i],e!==f&&(d&&"hidden"===e.type||"color"===e.getAttribute(c)&&(e.value=l?l[3]&&1!=l[3]?"rgba("+l[0]+","+l[1]+","+l[2]+","+l[3]+");":"rgb("+l[0]+","+l[1]+","+l[2]+");":"rgb(0,0,0);"))}})}(wysihtml5),function(a){a.dom;a.toolbar.Dialog_fontSizeStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){return{size:this.container.querySelector('[data-wysihtml5-dialog-field="size"]').value}},_interpolate:function(){var b=document.querySelector(":focus"),c=this.container.querySelector("[data-wysihtml5-dialog-field='size']"),d=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,e=d?d.getAttribute("style"):null,f=e?a.quirks.styleParser.parseFontSize(e):null;c&&c!==b&&f&&!/^\s*$/.test(f)&&(c.value=f)}})}(wysihtml5);
//# sourceMappingURL=wysihtml-toolbar.min.map
\ No newline at end of file
diff --git a/dist/wysihtml-toolbar.min.map b/dist/wysihtml-toolbar.min.map
index 3f39acb..07bdc1c 100644
--- a/dist/wysihtml-toolbar.min.map
+++ b/dist/wysihtml-toolbar.min.map
@@ -1 +1 @@
-{"version":3,"file":"wysihtml-toolbar.min.js","sources":["wysihtml-toolbar.js"],"names":["String","prototype","trim","rtrim","this","replace","Event","preventDefault","returnValue","stopPropagation","cancelBubble","Element","addEventListener","eventListeners","type","listener","self","wrapper","e","target","srcElement","currentTarget","handleEvent","call","wrapper2","document","readyState","attachEvent","push","object","window","removeEventListener","counter","length","eventListener","detachEvent","splice","HTMLDocument","Window","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","doc","body","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","createRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","shim","win","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","util","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","toArray","el","appendChild","childNodes","nodeType","arrayLike","arr","addListener","eventType","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","deprecationNotice","deprecated","replacement","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","previous","toSource","hidden","key","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","on","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","isPlainObject","isFunction","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","html","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","event","domNode","defaultNodeTypes","_isBlankText","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","ingoreEmpty","all","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","attributeValue","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","getAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","simulatePlaceholder","editor","placeholderText","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleSelectionMousedown","removeCellSelections","selection_class","moveHandler","handleMouseMove","upHandler","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","unparseColor","parseFontSize","_getCumulativeOffsetTop","top","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","which","ctrlKey","metaKey","minWidth","zIndex","notVisual","originalScrollTop","scrollTop","pageYOffset","originalScrollLeft","scrollLeft","pageXOffset","scrollTo","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","contentNodes","lastNode","prevLeaf","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","oldScrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","uneditableContainerClassname","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","styleRegExp","identifier","htmlApplier","strong","em","b","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertBlockQuote","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","innerLists","otherLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","keyCode","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","handleDeleteKeyPress","beforeUneditable","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","handleMouseDown","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","handleIframeFocus","handleIframeBlur","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml","CLASS_NAME_OPENED","SELECTOR_FORM_ELEMENTS","SELECTOR_FIELDS","ATTRIBUTE_FIELDS","Dialog","_observed","callbackWrapper","_serialize","formElements","_clearInterval","fields","_interpolate","avoidHiddenFields","field","fieldName","focusedElement","elementToChange","defaultValue","firstField","linkStyles","wrapperStyles","margin","opacity","padding","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","classNameCommandDisabled","classNameCommandsDisabled","classNameCommandActive","classNameActionActive","speechInputLinks","group","dialog","tracksBlankValue","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","commandValue","commandsDisabled","commandObj","commandMapping","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","actionMapping","commandblankMapping","multiselect","Dialog_createTable","Dialog_foreColorStyle","firstElement","Dialog_fontSizeStyle"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"wysihtml-toolbar.min.js","sources":["wysihtml-toolbar.js"],"names":["String","prototype","trim","rtrim","this","replace","Event","preventDefault","returnValue","stopPropagation","cancelBubble","Element","addEventListener","eventListeners","type","listener","self","wrapper","e","target","srcElement","currentTarget","handleEvent","call","wrapper2","document","readyState","attachEvent","push","object","window","removeEventListener","counter","length","eventListener","detachEvent","splice","HTMLDocument","Window","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","doc","body","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","createRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","shim","win","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","util","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","toArray","el","appendChild","childNodes","nodeType","arrayLike","arr","addListener","eventType","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","deprecationNotice","deprecated","replacement","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","previous","toSource","hidden","key","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","on","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","isPlainObject","isFunction","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","html","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","event","domNode","defaultNodeTypes","_isBlankText","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","ingoreEmpty","all","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","attributeValue","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","getAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","simulatePlaceholder","editor","placeholderText","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleMouseDown","handleSelectionMousedown","removeCellSelections","selection_class","handleMouseMove","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","unparseColor","parseFontSize","_getCumulativeOffsetTop","top","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","which","ctrlKey","metaKey","minWidth","zIndex","notVisual","originalScrollTop","scrollTop","pageYOffset","originalScrollLeft","scrollLeft","pageXOffset","scrollTo","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","contentNodes","lastNode","prevLeaf","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","oldScrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","uneditableContainerClassname","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","styleRegExp","identifier","htmlApplier","strong","em","b","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertBlockQuote","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","innerLists","otherLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","keyCode","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","handleDeleteKeyPress","beforeUneditable","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","handleIframeFocus","handleIframeBlur","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml","CLASS_NAME_OPENED","SELECTOR_FORM_ELEMENTS","SELECTOR_FIELDS","ATTRIBUTE_FIELDS","Dialog","_observed","callbackWrapper","_serialize","formElements","_clearInterval","fields","_interpolate","avoidHiddenFields","field","fieldName","focusedElement","elementToChange","defaultValue","firstField","linkStyles","wrapperStyles","margin","opacity","padding","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","classNameCommandDisabled","classNameCommandsDisabled","classNameCommandActive","classNameActionActive","speechInputLinks","group","dialog","tracksBlankValue","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","commandValue","commandsDisabled","commandObj","commandMapping","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","actionMapping","commandblankMapping","multiselect","Dialog_createTable","Dialog_foreColorStyle","firstElement","Dialog_fontSizeStyle"],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/wysihtml.js b/dist/wysihtml.js
index 03d2efa..7dd462d 100644
--- a/dist/wysihtml.js
+++ b/dist/wysihtml.js
@@ -1,7 +1,7 @@
// TODO: in future try to replace most inline compability checks with polyfills for code readability
// IE8 SUPPORT BLOCK
-// You can compile wuthout all this if IE8 is not needed
+// You can compile without all this if IE8 is not needed
// String trim for ie8
if (!String.prototype.trim) {
@@ -321,9 +321,10 @@ if ("document" in self) {
}(self));
- } else {
+ } else if ("DOMTokenList" in window) {
// There is full or partial native classList support, so just check if we need
// to normalize the add/remove and toggle APIs.
+ // DOMTokenList is expected to exist (removes conflicts with multiple polyfills present on site)
(function() {
"use strict";
@@ -376,7 +377,7 @@ if ("document" in self) {
}
;/**
- * @license wysihtml5x v0.5.0-beta2
+ * @license wysihtml5x v0.5.0-beta3
* https://github.com/Edicy/wysihtml5
*
* Author: Christopher Blum (https://github.com/tiff)
@@ -387,7 +388,7 @@ if ("document" in self) {
*
*/
var wysihtml5 = {
- version: "0.5.0-beta2",
+ version: "0.5.0-beta3",
// namespaces
commands: {},
@@ -9001,22 +9002,20 @@ wysihtml5.quirks.ensureProperClearing = (function() {
cells: null,
select: selectCells
},
- selection_class = "wysiwyg-tmp-selected-cell",
- moveHandler = null,
- upHandler = null;
+ selection_class = "wysiwyg-tmp-selected-cell";
function init () {
-
- dom.observe(editable, "mousedown", function(event) {
- var target = wysihtml5.dom.getParentElement(event.target, { query: "td, th" });
- if (target) {
- handleSelectionMousedown(target);
- }
- });
-
+ editable.addEventListener("mousedown", handleMouseDown);
return select;
}
+ var handleMouseDown = function(event) {
+ var target = wysihtml5.dom.getParentElement(event.target, { query: "td, th" });
+ if (target) {
+ handleSelectionMousedown(target);
+ }
+ };
+
function handleSelectionMousedown (target) {
select.start = target;
select.end = target;
@@ -9026,8 +9025,8 @@ wysihtml5.quirks.ensureProperClearing = (function() {
if (select.table) {
removeCellSelections();
dom.addClass(target, selection_class);
- moveHandler = dom.observe(editable, "mousemove", handleMouseMove);
- upHandler = dom.observe(editable, "mouseup", handleMouseUp);
+ editable.addEventListener("mousemove", handleMouseMove);
+ editable.addEventListener("mouseup", handleMouseUp);
editor.fire("tableselectstart").fire("tableselectstart:composer");
}
}
@@ -9052,7 +9051,7 @@ wysihtml5.quirks.ensureProperClearing = (function() {
function handleMouseMove (event) {
var curTable = null,
- cell = dom.getParentElement(event.target, { nodeName: "td, th" }),
+ cell = dom.getParentElement(event.target, { query: "td, th" }),
oldEnd;
if (cell && select.table && select.start) {
@@ -9074,25 +9073,27 @@ wysihtml5.quirks.ensureProperClearing = (function() {
}
function handleMouseUp (event) {
- moveHandler.stop();
- upHandler.stop();
+ editable.removeEventListener("mousemove", handleMouseMove);
+ editable.removeEventListener("mouseup", handleMouseUp);
editor.fire("tableselect").fire("tableselect:composer");
setTimeout(function() {
bindSideclick();
},0);
}
+ var sideClickHandler = function(event) {
+ editable.ownerDocument.removeEventListener("click", sideClickHandler);
+ if (dom.getParentElement(event.target, { query: "table" }) != select.table) {
+ removeCellSelections();
+ select.table = null;
+ select.start = null;
+ select.end = null;
+ editor.fire("tableunselect").fire("tableunselect:composer");
+ }
+ };
+
function bindSideclick () {
- var sideClickHandler = dom.observe(editable.ownerDocument, "click", function(event) {
- sideClickHandler.stop();
- if (dom.getParentElement(event.target, { query: "table" }) != select.table) {
- removeCellSelections();
- select.table = null;
- select.start = null;
- select.end = null;
- editor.fire("tableunselect").fire("tableunselect:composer");
- }
- });
+ editable.ownerDocument.addEventListener("click", sideClickHandler);
}
function selectCells (start, end) {
@@ -12965,7 +12966,14 @@ wysihtml5.views.View = Base.extend(
},
cleanUp: function() {
- this.parent.parse(this.element);
+ var bookmark;
+ if (this.selection) {
+ bookmark = rangy.saveSelection(this.doc.defaultView || this.doc.parentWindow);
+ }
+ this.parent.parse(this.element);
+ if (bookmark) {
+ rangy.restoreSelection(bookmark);
+ }
},
show: function() {
diff --git a/dist/wysihtml.min.js b/dist/wysihtml.min.js
index 9ed0ebc..e05cf50 100644
--- a/dist/wysihtml.min.js
+++ b/dist/wysihtml.min.js
@@ -1,9 +1,9 @@
-/*! wysihtml - v0.5.0-beta2 (2014-12-11) */
+/*! wysihtml - v0.5.0-beta3 (2014-12-17) */
-String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),!Element.prototype.addEventListener){var a=[],b=function(b,c){var d=this,e=function(a){a.target=a.srcElement,a.currentTarget=d,c.handleEvent?c.handleEvent(a):c.call(d,a)};if("DOMContentLoaded"==b){var f=function(a){"complete"==document.readyState&&e(a)};if(document.attachEvent("onreadystatechange",f),a.push({object:this,type:b,listener:c,wrapper:f}),"complete"==document.readyState){var g=new Event;g.srcElement=window,f(g)}}else this.attachEvent("on"+b,e),a.push({object:this,type:b,listener:c,wrapper:e})},c=function(b,c){for(var d=0;d>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),this.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(Element.prototype),"document"in self&&("classList"in document.createElement("_")?!function(){"use strict";var a=document.createElement("_");if(a.classList.add("c1","c2"),!a.classList.contains("c2")){var b=function(a){var b=DOMTokenList.prototype[a];DOMTokenList.prototype[a]=function(a){var c,d=arguments.length;for(c=0;d>c;c++)a=arguments[c],b.call(this,a)}};b("add"),b("remove")}if(a.classList.toggle("c3",!1),a.classList.contains("c3")){var c=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:c.call(this,a)}}a=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++co;++o)try{H[o](E)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a){a=a||window,l();for(var b=0,c=I.length;c>b;++b)I[b](a)}function n(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function o(a,b,c){var d=new n(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(E,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return B[a]=d,d}function p(){}function q(){}var r="object",s="function",t="undefined",u=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],v=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],w=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],x=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],y=d(a),z=d(b),A=d(c),B={},C=typeof window!=t&&typeof document!=t,D={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:y,areHostObjects:z,areHostProperties:A,isTextRange:e,getBody:f},E={version:"1.3.0-alpha.20140921",initialized:!1,isBrowser:C,supported:!0,util:D,features:{},modules:B,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==t?!0:rangyAutoInitialize}};E.fail=i,E.warn=j;var F;({}).hasOwnProperty?(D.extend=F=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&F(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},D.createOptions=function(a,b){var c={};return F(c,b),a&&F(c,a),c}):i("hasOwnProperty not supported"),C||i("Rangy can only run in a browser"),function(){var a;if(C){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),D.toArray=a}();var G;C&&(a(document,"addEventListener")?G=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?G=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),D.addListener=G);var H=[];E.init=l,E.addInitListener=function(a){E.initialized?a(E):H.push(a)};var I=[];E.addShimListener=function(a){I.push(a)},C&&(E.shim=E.createMissingNativeApi=m),n.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=B[b],!(a&&a instanceof n))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=o(a,c,b);E.initialized&&E.supported&&d.init()},E.createCoreModule=function(a,b,c){o(a,b,c)},E.RangePrototype=p,E.rangePrototype=new p,E.selectionPrototype=new q,E.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),E.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(O(a,b.startContainer)||O(a,b.endContainer))}function c(a){return a.document||P(a.startContainer)}function d(a){return new K(a.parentNode,N(a))}function e(a){return new K(a.parentNode,N(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return M(b)?c==b.length?I.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:R(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(y(a),y(b),c(b)!=c(a))throw new L("WRONG_DOCUMENT_ERR");var e=Q(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=Q(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach()),10==d.nodeType)throw new L("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(),c.stop)return}else for(d=I.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach()):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach()):a.remove(),10==b.nodeType)throw new L("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!M(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&M(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+I.inspectNode(a.startContainer)+":"+a.startOffset+", "+I.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&M(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||M(this.sc)?S(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||M(this.ec)?S(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,U(a,d))return e;e=e.parentNode}return null}}function p(a,b){if(cb(a,b))throw new L("INVALID_NODE_TYPE_ERR")}function q(a,b){if(!U(b,a.nodeType))throw new L("INVALID_NODE_TYPE_ERR")}function r(a,b){if(0>b||b>(M(a)?a.length:a.childNodes.length))throw new L("INDEX_SIZE_ERR")}function s(a,b){if(ab(a,!0)!==ab(b,!0))throw new L("WRONG_DOCUMENT_ERR")}function t(a){if(bb(a,!0))throw new L("NO_MODIFICATION_ALLOWED_ERR")}function u(a,b){if(!a)throw new L(b)}function v(a){return W&&I.isBrokenNode(a)||!U(Y,a.nodeType)&&!ab(a,!0)}function w(a,b){return b<=(M(a)?a.length:a.childNodes.length)}function x(a){return!!a.startContainer&&!!a.endContainer&&!v(a.startContainer)&&!v(a.endContainer)&&w(a.startContainer,a.startOffset)&&w(a.endContainer,a.endOffset)}function y(a){if(!x(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function z(a,b){y(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;M(e)&&f>0&&f0&&d=N(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function A(a){y(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function B(a){a.START_TO_START=ib,a.START_TO_END=jb,a.END_TO_END=kb,a.END_TO_START=lb,a.NODE_BEFORE=mb,a.NODE_AFTER=nb,a.NODE_BEFORE_AND_AFTER=ob,a.NODE_INSIDE=pb}function C(a){B(a),B(a.prototype)}function D(a,b){return function(){y(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=S(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,t),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function E(c,f){function g(a,b){return function(c){q(c,X),q(V(c),Y);var f=(a?d:e)(c);(b?h:i)(this,f.node,f.offset)}}function h(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((V(b)!=V(d)||1==Q(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function i(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((V(b)!=V(d)||-1==Q(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var l=function(){};l.prototype=a.rangePrototype,c.prototype=new l,J.extend(c.prototype,{setStart:function(a,b){p(a,!0),r(a,b),h(this,a,b)},setEnd:function(a,b){p(a,!0),r(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:g(!0,!0),setStartAfter:g(!1,!0),setEndBefore:g(!0,!1),setEndAfter:g(!1,!1),collapse:function(a){y(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){p(a,!0),f(this,a,0,a,T(a))},selectNode:function(a){p(a,!1),q(a,X);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:D(k,f),deleteContents:D(j,f),canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},splitBoundaries:function(){z(this)},splitBoundariesPreservingPositions:function(a){z(this,a)},normalizeBoundaries:function(){y(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=N(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(M(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&M(i)&&e(i)}h=!this.collapsed}if(h){if(M(a))0==b&&g(a);else if(bx",eb=3==db.firstChild.nodeType}catch(fb){}a.features.htmlParsingConforms=eb;var gb=eb?function(a){var b=this.startContainer,c=P(b);if(!b)throw new L("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:M(b)&&(d=I.parentElement(b)),d=null===d||"HTML"==d.nodeName&&I.isHtmlNamespace(P(d).documentElement)&&I.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,I.fragmentFromNodeChildren(d)}:function(a){var b=c(this),d=b.createElement("body");return d.innerHTML=a,I.fragmentFromNodeChildren(d)},hb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ib=0,jb=1,kb=2,lb=3,mb=0,nb=1,ob=2,pb=3;J.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){y(this),s(this.startContainer,b.startContainer);var c,d,e,f,g=a==lb||a==ib?"start":"end",h=a==jb||a==ib?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],Q(c,d,e,f)},insertNode:function(a){if(y(this),q(a,$),t(this.startContainer),O(a,this.startContainer))throw new L("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){y(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&M(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(q(a,_),!this.canSurroundContents())throw new L("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){y(this);for(var a,b=new H(c(this)),d=hb.length;d--;)a=hb[d],b[a]=this[a];return b},toString:function(){y(this);var a=this.startContainer;if(a===this.endContainer&&M(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){y(this);var b=a.parentNode,c=N(a);if(!b)throw new L("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?ob:mb:e>0?nb:pb},comparePoint:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)<0?-1:Q(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:gb,toHtml:function(){return A(this)},intersectsNode:function(a,b){if(y(this),u(a,"NOT_FOUND_ERR"),P(a)!==c(this))return!1;var d=a.parentNode,e=N(a);u(d,"NOT_FOUND_ERR");var f=Q(d,e,this.endContainer,this.endOffset),g=Q(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)>=0&&Q(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=Q(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=Q(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==Q(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==Q(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new L("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==pb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,T(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return y(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||I.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return H.rangesEqual(this,a)},isValid:function(){return x(this)},inspect:function(){return m(this)},detach:function(){}}),E(H,G),J.extend(H,{rangeProperties:hb,RangeIterator:n,copyComparisonConstants:C,createPrototypeRange:E,inspect:m,toHtml:A,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=H}),E.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)
+String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),!Element.prototype.addEventListener){var a=[],b=function(b,c){var d=this,e=function(a){a.target=a.srcElement,a.currentTarget=d,c.handleEvent?c.handleEvent(a):c.call(d,a)};if("DOMContentLoaded"==b){var f=function(a){"complete"==document.readyState&&e(a)};if(document.attachEvent("onreadystatechange",f),a.push({object:this,type:b,listener:c,wrapper:f}),"complete"==document.readyState){var g=new Event;g.srcElement=window,f(g)}}else this.attachEvent("on"+b,e),a.push({object:this,type:b,listener:c,wrapper:e})},c=function(b,c){for(var d=0;d>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),this.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(Element.prototype),"document"in self&&("classList"in document.createElement("_")?"DOMTokenList"in window&&!function(){"use strict";var a=document.createElement("_");if(a.classList.add("c1","c2"),!a.classList.contains("c2")){var b=function(a){var b=DOMTokenList.prototype[a];DOMTokenList.prototype[a]=function(a){var c,d=arguments.length;for(c=0;d>c;c++)a=arguments[c],b.call(this,a)}};b("add"),b("remove")}if(a.classList.toggle("c3",!1),a.classList.contains("c3")){var c=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:c.call(this,a)}}a=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++co;++o)try{H[o](E)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a){a=a||window,l();for(var b=0,c=I.length;c>b;++b)I[b](a)}function n(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function o(a,b,c){var d=new n(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(E,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return B[a]=d,d}function p(){}function q(){}var r="object",s="function",t="undefined",u=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],v=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],w=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],x=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],y=d(a),z=d(b),A=d(c),B={},C=typeof window!=t&&typeof document!=t,D={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:y,areHostObjects:z,areHostProperties:A,isTextRange:e,getBody:f},E={version:"1.3.0-alpha.20140921",initialized:!1,isBrowser:C,supported:!0,util:D,features:{},modules:B,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==t?!0:rangyAutoInitialize}};E.fail=i,E.warn=j;var F;({}).hasOwnProperty?(D.extend=F=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&F(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},D.createOptions=function(a,b){var c={};return F(c,b),a&&F(c,a),c}):i("hasOwnProperty not supported"),C||i("Rangy can only run in a browser"),function(){var a;if(C){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),D.toArray=a}();var G;C&&(a(document,"addEventListener")?G=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?G=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),D.addListener=G);var H=[];E.init=l,E.addInitListener=function(a){E.initialized?a(E):H.push(a)};var I=[];E.addShimListener=function(a){I.push(a)},C&&(E.shim=E.createMissingNativeApi=m),n.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=B[b],!(a&&a instanceof n))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=o(a,c,b);E.initialized&&E.supported&&d.init()},E.createCoreModule=function(a,b,c){o(a,b,c)},E.RangePrototype=p,E.rangePrototype=new p,E.selectionPrototype=new q,E.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),E.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(O(a,b.startContainer)||O(a,b.endContainer))}function c(a){return a.document||P(a.startContainer)}function d(a){return new K(a.parentNode,N(a))}function e(a){return new K(a.parentNode,N(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return M(b)?c==b.length?I.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:R(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(y(a),y(b),c(b)!=c(a))throw new L("WRONG_DOCUMENT_ERR");var e=Q(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=Q(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach()),10==d.nodeType)throw new L("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(),c.stop)return}else for(d=I.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach()):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach()):a.remove(),10==b.nodeType)throw new L("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!M(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&M(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+I.inspectNode(a.startContainer)+":"+a.startOffset+", "+I.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&M(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||M(this.sc)?S(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||M(this.ec)?S(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,U(a,d))return e;e=e.parentNode}return null}}function p(a,b){if(cb(a,b))throw new L("INVALID_NODE_TYPE_ERR")}function q(a,b){if(!U(b,a.nodeType))throw new L("INVALID_NODE_TYPE_ERR")}function r(a,b){if(0>b||b>(M(a)?a.length:a.childNodes.length))throw new L("INDEX_SIZE_ERR")}function s(a,b){if(ab(a,!0)!==ab(b,!0))throw new L("WRONG_DOCUMENT_ERR")}function t(a){if(bb(a,!0))throw new L("NO_MODIFICATION_ALLOWED_ERR")}function u(a,b){if(!a)throw new L(b)}function v(a){return W&&I.isBrokenNode(a)||!U(Y,a.nodeType)&&!ab(a,!0)}function w(a,b){return b<=(M(a)?a.length:a.childNodes.length)}function x(a){return!!a.startContainer&&!!a.endContainer&&!v(a.startContainer)&&!v(a.endContainer)&&w(a.startContainer,a.startOffset)&&w(a.endContainer,a.endOffset)}function y(a){if(!x(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function z(a,b){y(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;M(e)&&f>0&&f0&&d=N(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function A(a){y(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function B(a){a.START_TO_START=ib,a.START_TO_END=jb,a.END_TO_END=kb,a.END_TO_START=lb,a.NODE_BEFORE=mb,a.NODE_AFTER=nb,a.NODE_BEFORE_AND_AFTER=ob,a.NODE_INSIDE=pb}function C(a){B(a),B(a.prototype)}function D(a,b){return function(){y(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=S(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,t),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function E(c,f){function g(a,b){return function(c){q(c,X),q(V(c),Y);var f=(a?d:e)(c);(b?h:i)(this,f.node,f.offset)}}function h(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((V(b)!=V(d)||1==Q(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function i(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((V(b)!=V(d)||-1==Q(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var l=function(){};l.prototype=a.rangePrototype,c.prototype=new l,J.extend(c.prototype,{setStart:function(a,b){p(a,!0),r(a,b),h(this,a,b)},setEnd:function(a,b){p(a,!0),r(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:g(!0,!0),setStartAfter:g(!1,!0),setEndBefore:g(!0,!1),setEndAfter:g(!1,!1),collapse:function(a){y(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){p(a,!0),f(this,a,0,a,T(a))},selectNode:function(a){p(a,!1),q(a,X);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:D(k,f),deleteContents:D(j,f),canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},splitBoundaries:function(){z(this)},splitBoundariesPreservingPositions:function(a){z(this,a)},normalizeBoundaries:function(){y(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=N(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(M(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&M(i)&&e(i)}h=!this.collapsed}if(h){if(M(a))0==b&&g(a);else if(bx",eb=3==db.firstChild.nodeType}catch(fb){}a.features.htmlParsingConforms=eb;var gb=eb?function(a){var b=this.startContainer,c=P(b);if(!b)throw new L("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:M(b)&&(d=I.parentElement(b)),d=null===d||"HTML"==d.nodeName&&I.isHtmlNamespace(P(d).documentElement)&&I.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,I.fragmentFromNodeChildren(d)}:function(a){var b=c(this),d=b.createElement("body");return d.innerHTML=a,I.fragmentFromNodeChildren(d)},hb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ib=0,jb=1,kb=2,lb=3,mb=0,nb=1,ob=2,pb=3;J.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){y(this),s(this.startContainer,b.startContainer);var c,d,e,f,g=a==lb||a==ib?"start":"end",h=a==jb||a==ib?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],Q(c,d,e,f)},insertNode:function(a){if(y(this),q(a,$),t(this.startContainer),O(a,this.startContainer))throw new L("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){y(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&M(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(q(a,_),!this.canSurroundContents())throw new L("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){y(this);for(var a,b=new H(c(this)),d=hb.length;d--;)a=hb[d],b[a]=this[a];return b},toString:function(){y(this);var a=this.startContainer;if(a===this.endContainer&&M(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){y(this);var b=a.parentNode,c=N(a);if(!b)throw new L("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?ob:mb:e>0?nb:pb},comparePoint:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)<0?-1:Q(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:gb,toHtml:function(){return A(this)},intersectsNode:function(a,b){if(y(this),u(a,"NOT_FOUND_ERR"),P(a)!==c(this))return!1;var d=a.parentNode,e=N(a);u(d,"NOT_FOUND_ERR");var f=Q(d,e,this.endContainer,this.endOffset),g=Q(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)>=0&&Q(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=Q(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=Q(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==Q(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==Q(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new L("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==pb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,T(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return y(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||I.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return H.rangesEqual(this,a)},isValid:function(){return x(this)},inspect:function(){return m(this)},detach:function(){}}),E(H,G),J.extend(H,{rangeProperties:hb,RangeIterator:n,copyComparisonConstants:C,createPrototypeRange:E,inspect:m,toHtml:A,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=H}),E.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)
},k.collapse=function(a){this.nativeRange.collapse(a),d(this)},k.cloneRange=function(){return new c(this.nativeRange.cloneRange())},k.refresh=function(){d(this)},k.toString=function(){return this.nativeRange.toString()};var n=document.createTextNode("test");i(document).appendChild(n);var o=document.createRange();o.setStart(n,0),o.setEnd(n,0);try{o.setStart(n,1),k.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},k.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},l=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(p){k.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},k.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},l=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}k.setStartBefore=l("setStartBefore","setEndBefore"),k.setStartAfter=l("setStartAfter","setEndAfter"),k.setEndBefore=l("setEndBefore","setStartBefore"),k.setEndAfter=l("setEndAfter","setStartAfter"),k.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},o.selectNodeContents(n),o.setEnd(n,3);var q=document.createRange();q.selectNodeContents(n),q.setEnd(n,4),q.setStart(n,2),k.compareBoundaryPoints=-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var r=document.createElement("div");r.innerHTML="123";var s=r.firstChild,t=i(document);t.appendChild(r),o.setStart(s,1),o.setEnd(s,2),o.deleteContents(),"13"==s.data&&(k.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},k.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),t.removeChild(r),t=null,f.isHostMethod(o,"createContextualFragment")&&(k.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(n),k.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&l.parentNode.removeChild(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return l.parentNode.removeChild(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=hb;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;fh;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=bb.length;e--;)if(c=bb[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(bb.splice(e,1),!0):d;return"deleteAll"==b&&(bb.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);Q?(y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b}):O?(y=e,a.isSelectionValid=function(){return!0}):b.fail("Neither document.selection or window.getSelection() detected."),a.getNativeSelection=y;var R=y(),S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=M(document),j=i.appendChild(document.createElement("div"));j.contentEditable="false";var k=j.appendChild(document.createTextNode(" ")),l=document.createRange();if(l.setStart(k,1),l.collapse(!0),b.addRange(l),Y=1==b.rangeCount,b.removeAllRanges(),!d){var m=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(m&&parseInt(m[1])>=36)X=!1;else{var n=l.cloneRange();l.setStart(k,0),n.setEnd(k,3),n.setStart(k,2),b.addRange(l),b.addRange(n),X=2==b.rangeCount}}for(i.removeChild(j),b.removeAllRanges(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var ab;E(R,"getRangeAt")?ab=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(ab=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var bb=[],cb=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),bb.push({win:a,selection:b})),b};a.getSelection=cb,a.getIframeSelection=function(c){return b.deprecationNotice("getIframeSelection()","getSelection(iframeEl)"),a.getSelection(C.getIframeWindow(c))};var db=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){db.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var eb=function(a,b){Z(a.nativeSelection,b),a.refresh()};db.addRange=W?function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)eb(this,b);else{var e;X?e=this.rangeCount:(this.removeAllRanges(),e=0);var f=k(b).cloneRange();try{this.nativeSelection.addRange(f)}catch(g){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var i=ab(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,hb(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:function(a,b){c(b)&&V?eb(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},db.setRanges=function(a){if(_&&P&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;db.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},db.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},db.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}db.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fb;if(Q)fb=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fb=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],hb(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fb=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=ab(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}db.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fb(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var gb=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};db.removeRange=_&&P?function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else gb(this,a)}:function(a){gb(this,a)};var hb;!Q&&U&&J.implementsDomRange?(hb=g,db.isBackward=function(){return hb(this)}):hb=db.isBackward=function(){return!1},db.isBackwards=db.isBackward,db.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},db.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},db.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},db.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},db.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},db.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),a.parentNode.removeChild(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},db.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},db.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},db.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},db.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b))}),c},db.setStart=w(!0),db.setEnd=w(!1),a.rangePrototype.select=function(a){cb(this.getDocument()).setSingleRange(this,a)},db.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},db.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},db.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},db.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},db.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(db.getNativeTextRange=function(){var c;if(c=this.docSelection){var d=c.createRange();if(n(d))return d;throw b.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw b.createError("getNativeTextRange: selection contains no range")}),db.getName=function(){return"WrappedSelection"},db.inspect=function(){return x(this)},db.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=db,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return cb(a)}),a=null})});var J=!1,K=function(){J||(J=!0,!E.initialized&&E.config.autoInitialize&&l())};return C&&("complete"==document.readyState?K():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",K,!1),G(window,"load",K))),E},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){a.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(p)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),g.parentNode.removeChild(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString();return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:c,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(i.parentNode.removeChild(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),i.parentNode.removeChild(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[];b=b.slice(0),b.sort(f);for(var j=0,k=b.length;k>j;++j)i[j]=g(b[j],d);for(j=k-1;j>=0;--j)e=b[j],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[j].markerId,h)):(e.setEndBefore(c(i[j].endMarkerId,h)),e.setStartAfter(c(i[j].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],"backward"):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&d.parentNode.removeChild(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p="";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})})},this);var Base=function(){};Base.extend=function(a,b){var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return"object"==a?f:e.valueOf()},c.call(f,b),"function"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&"function"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\bbase\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return"object"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||"function"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=["constructor","toString","valueOf"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;aa:">"===b?a>d:"<="===b?d>=a:">="===b?a>=d:void 0:a===d:!0}var d=navigator.userAgent,e=document.createElement("div"),f=-1!==d.indexOf("Gecko")&&-1===d.indexOf("KHTML"),g=-1!==d.indexOf("AppleWebKit/"),h=-1!==d.indexOf("Chrome/"),i=-1!==d.indexOf("Opera/");return{USER_AGENT:d,supported:function(){var c=this.USER_AGENT.toLowerCase(),d="contentEditable"in e,f=document.execCommand&&document.queryCommandSupported&&document.queryCommandState,g=document.querySelector&&document.querySelectorAll,h=this.isIos()&&a(c)<5||this.isAndroid()&&b(c)<4||-1!==c.indexOf("opera mobi")||-1!==c.indexOf("hpwos/");return d&&f&&g&&!h},isTouchDevice:function(){return this.supportsEvent("touchmove")},isIos:function(){return/ipad|iphone|ipod/i.test(this.USER_AGENT)},isAndroid:function(){return-1!==this.USER_AGENT.indexOf("Android")},supportsSandboxedIframes:function(){return c()},throwsMixedContentWarningWhenIframeSrcIsEmpty:function(){return!("querySelector"in document)},displaysCaretInEmptyContentEditableCorrectly:function(){return c()},hasCurrentStyleProperty:function(){return"currentStyle"in e},insertsLineBreaksOnReturn:function(){return f},supportsPlaceholderAttributeOn:function(a){return"placeholder"in a},supportsEvent:function(a){return"on"+a in e||function(){return e.setAttribute("on"+a,"return;"),"function"==typeof e["on"+a]}()},supportsEventsInIframeCorrectly:function(){return!i},supportsHTML5Tags:function(a){var b=a.createElement("div"),c="foo";return b.innerHTML=c,b.innerHTML.toLowerCase()===c},supportsCommand:function(){var a={formatBlock:c(10,"<="),insertUnorderedList:c(),insertOrderedList:c()},b={insertHTML:f};return function(c,d){var e=a[d];if(!e){try{return c.queryCommandSupported(d)}catch(f){}try{return c.queryCommandEnabled(d)}catch(g){return!!b[d]}}return!1}}(),doesAutoLinkingInContentEditable:function(){return c()},canDisableAutoLinking:function(){return this.supportsCommand(document,"AutoUrlDetect")},clearsContentEditableCorrectly:function(){return f||i||g},supportsGetAttributeCorrectly:function(){var a=document.createElement("td");return"1"!=a.getAttribute("rowspan")},canSelectImagesInContentEditable:function(){return f||c()||i},autoScrollsToCaret:function(){return!g},autoClosesUnclosedTags:function(){var a,b,c=e.cloneNode(!1);return c.innerHTML="",b=c.innerHTML.toLowerCase(),a=""===b||""===b,this.autoClosesUnclosedTags=function(){return a},a},supportsNativeGetElementsByClassName:function(){return-1!==String(document.getElementsByClassName).indexOf("[native code]")},supportsSelectionModify:function(){return"getSelection"in window&&"modify"in window.getSelection()},needsSpaceAfterLineBreak:function(){return i},supportsSpeechApiOn:function(a){var b=d.match(/Chrome\/(\d+)/)||[void 0,0];return b[1]>=11&&("onwebkitspeechchange"in a||"speech"in a)},crashesWhenDefineProperty:function(a){return c(9)&&("XMLHttpRequest"===a||"XDomainRequest"===a)},doesAsyncFocus:function(){return c()},hasProblemsSettingCaretAfterImg:function(){return c()},hasUndoInContextMenu:function(){return f||h||i},hasInsertNodeIssue:function(){return i},hasIframeFocusIssue:function(){return c()},createsNestedInvalidMarkupAfterPaste:function(){return g},supportsMutationEvents:function(){return"MutationEvent"in window},supportsModenPaste:function(){return!("clipboardData"in window)},fixStyleKey:function(a){return"cssFloat"===a?"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat":a}}}(),wysihtml5.lang.array=function(a){return{contains:function(b){if(Array.isArray(b)){for(var c=b.length;c--;)if(-1!==wysihtml5.lang.array(a).indexOf(b[c]))return!0;return!1}return-1!==wysihtml5.lang.array(a).indexOf(b)},indexOf:function(b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},without:function(b){b=wysihtml5.lang.array(b);for(var c=[],d=0,e=a.length;e>d;d++)b.contains(a[d])||c.push(a[d]);return c},get:function(){for(var b=0,c=a.length,d=[];c>b;b++)d.push(a[b]);return d},map:function(b,c){if(Array.prototype.map)return a.map(b,c);for(var d=a.length>>>0,e=new Array(d),f=0;d>f;f++)e[f]=b.call(c,a[f],f,a);return e},unique:function(){for(var b=[],c=a.length,d=0;c>d;)wysihtml5.lang.array(b).contains(a[d])||b.push(a[d]),d++;return b}}},wysihtml5.lang.Dispatcher=Base.extend({on:function(a,b){return this.events=this.events||{},this.events[a]=this.events[a]||[],this.events[a].push(b),this},off:function(a,b){this.events=this.events||{};var c,d,e=0;if(a){for(c=this.events[a]||[],d=[];e\t"]/g,d={"&":"&","<":"<",">":">",'"':"""," ":" "};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(a,b){var f=e.replace(c,function(a){return d[a]});return a&&(f=f.replace(/(?:\r\n|\r|\n)/g,"
")),b&&(f=f.replace(/ /gi," ")),f}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return void e(b);
for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList;if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){return b.nodeType!==wysihtml5.ELEMENT_NODE&&(b=b.parentNode),a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(a,b,c,d){var e=function(c){for(var e=c.target,f=3===e.nodeType?e.parentNode:e,g=a.querySelectorAll(b),h=0,i=g.length;i>h;h++)g[h].contains(f)&&d.call(g[h],c)};return a.addEventListener(c,e,!1),{stop:function(){a.removeEventListener(c,e,!1)}}}}(wysihtml5),function(a){a.dom.domNode=function(b){var c=[a.ELEMENT_NODE,a.TEXT_NODE],d=function(b){return b.nodeType===a.TEXT_NODE&&/^\s*$/g.test(b.data)};return{prev:function(e){var f=b.previousSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).prev(e):f:null},next:function(e){var f=b.nextSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).next(e):f:null},lastLeafNode:function(c){var d;if(1!==b.nodeType)return b;if(d=b.lastChild,!d)return b;if(c&&c.leafClasses)for(var e=c.leafClasses.length;e--;)if(a.dom.hasClass(b,c.leafClasses[e]))return b;return a.dom.domNode(d).lastLeafNode(c)},test:function(c){var d;if(!c)return!1;if(1!==b.nodeType)return!1;if(c.query&&!b.matches(c.query))return!1;if(c.nodeName&&b.nodeName!==c.nodeName)return!1;if(c.className&&!b.classList.contains(c.className))return!1;if(c.classRegExp){var e=(b.className||"").match(c.classRegExp)||[];if(0===e.length)return!1}if(c.styleProperty&&c.styleProperty.length>0)for(var f=!1,g=Array.isArray(c.styleProperty)?c.styleProperty:[c.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),b.style[d]){if(!c.styleValue){f=!0;break}if(c.styleValue instanceof RegExp){if(b.style[d].trim().match(c.styleValue).length>0){f=!0;break}}else if(Array.isArray(c.styleValue)){if(c.styleValue.indexOf(b.style[d].trim())){f=!0;break}}else if(c.styleValue===b.style[d].trim()){f=!0;break}}if(!f)return!1}return!0}}}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){return function(a,b,c,d){for(c=c||50;c--&&a&&"BODY"!==a.nodeName&&(!d||a!==d);){if(wysihtml5.dom.domNode(a).test(b))return a;a=a.parentNode}return null}}(),wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a,b){var c=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b&&/^\s*$/.test(a.innerText||a.textContent)||c.push(a):c=c.concat(wysihtml5.dom.getTextNodes(a,b));return c},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},function(a){a.dom.lineBreaks=function(b){function c(a){return"BR"===a.nodeName}function d(b){return c(b)?!0:"block"===a.dom.getStyle("display").from(b)?!0:!1}return{add:function(){var c=b.ownerDocument,e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&!d(e)&&a.dom.insert(c.createElement("br")).after(b),f&&!d(f)&&a.dom.insert(c.createElement("br")).before(b)},remove:function(){var d=a.dom.domNode(b).next({ignoreBlankTexts:!0}),e=a.dom.domNode(b).prev({ignoreBlankTexts:!0});d&&c(d)&&d.parentNode.removeChild(d),e&&c(e)&&e.parentNode.removeChild(e)}}}}(wysihtml5),wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(a,b){function c(a,b){wysihtml5.lang.object(t).merge(s).merge(b.rules).get();var c,f,g,h=b.context||a.ownerDocument||document,i=h.createDocumentFragment(),j="string"==typeof a,k=!1;for(b.clearInternals===!0&&(k=!0),c=j?wysihtml5.dom.getAsDom(a,h):a,t.selectors&&e(c,t.selectors);c.firstChild;)g=c.firstChild,f=d(g,b.cleanUp,k,b.uneditableClass),f&&i.appendChild(f),g!==f&&c.removeChild(g);if(b.unjoinNbsps)for(var l=wysihtml5.dom.getTextNodes(i),m=l.length;m--;)l[m].nodeValue=l[m].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return c.innerHTML="",c.appendChild(i),j?wysihtml5.quirks.getCorrectInnerHTML(c):c}function d(a,b,c,e){var f,g,h,i,j=a.nodeType,k=a.childNodes,l=k.length,m=p[j],n=0;if(e&&1===j&&wysihtml5.dom.hasClass(a,e))return a;if(g=m&&m(a,c),!g){if(g===!1){for(f=a.ownerDocument.createDocumentFragment(),n=l;n--;)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,f.insertBefore(h,f.firstChild)));return i=wysihtml5.dom.getStyle("display").from(a),""===i&&(i=wysihtml5.lang.array(u).contains(a.tagName)?"block":""),wysihtml5.lang.array(["block","flex","table"]).contains(i)&&f.appendChild(a.ownerDocument.createElement("br")),wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||f.appendChild(a.ownerDocument.createTextNode(" "))),f.normalize&&f.normalize(),f}return null}for(n=0;l>n;n++)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,g.appendChild(h)));if(b&&g.nodeName.toLowerCase()===q&&(!g.childNodes.length||/^\s*$/gi.test(g.innerHTML)&&(c||"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className)||!g.attributes.length)){for(f=g.ownerDocument.createDocumentFragment();g.firstChild;)f.appendChild(g.firstChild);return f.normalize&&f.normalize(),f}return g.normalize&&g.normalize(),g}function e(a,b){var c,d,e;for(c in b)if(b.hasOwnProperty(c)){wysihtml5.lang.object(b[c]).isFunction()?d=b[c]:"string"==typeof b[c]&&z[b[c]]&&(d=z[b[c]]),e=a.querySelectorAll(c);for(var f=e.length;f--;)d(e[f])}}function f(a,b){var c,d,e,f=t.tags,h=a.nodeName.toLowerCase(),j=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(j&&"HTML"!=j&&(h=j+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||""===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in f){if(c=f[h],!c||c.remove)return null;if(c.unwrap)return!1;c="string"==typeof c?{rename_tag:c}:c}else{if(!a.firstChild)return null;c={rename_tag:q}}if(c.one_of_type&&!g(a,t,c.one_of_type,b)){if(!c.remove_action)return null;if("unwrap"===c.remove_action)return!1;if("rename"!==c.remove_action)return null;e=c.remove_action_rename_to||q}return d=a.ownerDocument.createElement(e||c.rename_tag||h),m(a,d,c,b),i(a,d,c),a=null,d.normalize&&d.normalize(),d}function g(a,b,c,d){var e,f;if("SPAN"===a.nodeName&&!d&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(e=b.type_definitions[f],h(a,e)))return!0;return!1}function h(a,b){var c,d,e,f,g,h=a.getAttribute("class"),i=a.getAttribute("style");if(b.methods)for(var j in b.methods)if(b.methods.hasOwnProperty(j)&&y[j]&&y[j](a))return!0;if(h&&b.classes){h=h.replace(/^\s+/g,"").replace(/\s+$/g,"").split(r),c=h.length;for(var k=0;c>k;k++)if(b.classes[h[k]])return!0}if(i&&b.styles){i=i.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var l=i.length;l--;)if(g=i[l].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=wysihtml5.dom.getAttribute(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function i(a,b,c){var d,e;if(c&&c.keep_styles)for(d in c.keep_styles)if(c.keep_styles.hasOwnProperty(d)){if(e="float"===d?a.style.styleFloat||a.style.cssFloat:a.style[d],c.keep_styles[d]instanceof RegExp&&!c.keep_styles[d].test(e))continue;"float"===d?b.style[a.style.styleFloat?"styleFloat":"cssFloat"]=e:a.style[d]&&(b.style[d]=e)}}function j(a,b){var c=[];for(var d in b)b.hasOwnProperty(d)&&0===d.indexOf(a)&&c.push(d);return c}function k(a,b,c,d){var e,f=v[c];return f&&(b||"alt"===a&&"IMG"==d)&&(e=f(b),"string"==typeof e)?e:!1}function l(a,b){var c,d,e,f=wysihtml5.lang.object(t.attributes||{}).clone(),g=wysihtml5.lang.object(f).merge(wysihtml5.lang.object(b||{}).clone()).get(),h={},i=wysihtml5.dom.getAttributes(a);for(c in g)if(/\*$/.test(c)){e=j(c.slice(0,-1),i);for(var l=0,m=e.length;m>l;l++)d=k(e[l],i[e[l]],g[c],a.nodeName),d!==!1&&(h[e[l]]=d)}else d=k(c,i[c],g[c],a.nodeName),d!==!1&&(h[c]=d);return h}function m(a,b,c,d){var e,f,g,h,i,j={},k=c.set_class,m=c.add_class,n=c.add_style,o=c.set_attributes,p=t.classes,q=0,s=[],u=[],v=[],y=[];if(o&&(j=wysihtml5.lang.object(o).clone()),j=wysihtml5.lang.object(j).merge(l(a,c.check_attributes)).get(),k&&s.push(k),m)for(h in m)i=x[m[h]],i&&(g=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof g&&s.push(g));if(n)for(h in n)i=w[n[h]],i&&(newStyle=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof newStyle&&u.push(newStyle));if("string"==typeof p&&"any"===p&&a.getAttribute("class"))if(t.classes_blacklist){for(y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],t.classes_blacklist[f]||v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}else j["class"]=a.getAttribute("class");else{for(d||(p["_wysihtml5-temp-placeholder"]=1,p._rangySelectionBoundary=1,p["wysiwyg-tmp-selected-cell"]=1),y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],p[f]&&v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}j["class"]&&d&&(j["class"]=j["class"].replace("wysiwyg-tmp-selected-cell",""),/^\s*$/g.test(j["class"])&&delete j["class"]),u.length&&(j.style=wysihtml5.lang.array(u).unique().join(" "));for(h in j)try{b.setAttribute(h,j[h])}catch(z){}j.src&&("undefined"!=typeof j.width&&b.setAttribute("width",j.width),"undefined"!=typeof j.height&&b.setAttribute("height",j.height))}function n(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")+b.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")}function o(a){return t.comments?a.ownerDocument.createComment(a.nodeValue):void 0}var p={1:f,3:n,8:o},q="span",r=/\s+/,s={tags:{},classes:{}},t={},u=["ADDRESS","BLOCKQUOTE","CENTER","DIR","DIV","DL","FIELDSET","FORM","H1","H2","H3","H4","H5","H6","ISINDEX","MENU","NOFRAMES","NOSCRIPT","OL","P","PRE","TABLE","UL"],v={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:|tel:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b){return b?b.replace(a,""):""}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),dimension:function(){var a=/\D*(\d+)(\.\d+)?\s?(%)?\D*/;return function(b){return b=(b||"").replace(a,"$1$2$3"),b||null}}(),any:function(){return function(a){return a}}()},w={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},x={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},y={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()},z={unwrap:function(a){wysihtml5.dom.unwrap(a)},remove:function(a){a.parentNode.removeChild(a)}};return c(a,b)},wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l=a.ownerDocument,m=l.createDocumentFragment(),n=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0});if(e)for(!n||b(n)||c(n)||d(m);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild;f=k.firstChild;)h=f===g,i=h&&!b(f)&&!c(f),m.appendChild(f),i&&d(m);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)m.appendChild(f);else{for(j=l.createElement("p");f=k.firstChild;)j.appendChild(f);m.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(m,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className="wysihtml5-sandbox",a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.element=d?this._bindElement(d):this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className="wysihtml5-sandbox",this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!=a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.getWindow=function(){return a.ownerDocument.defaultView},this.getDocument=function(){return a.ownerDocument},this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d){var e="placeholder",f=function(){var b=c.element.offsetWidth>0&&c.element.offsetHeight>0;c.hasPlaceholderSet()&&(c.clear(),c.element.focus(),b&&setTimeout(function(){var a=c.selection.getSelection();a.focusNode&&a.anchorNode||c.selection.selectNode(c.element.firstChild||c.element)},0)),c.placeholderSet=!1,a.removeClass(c.element,e)},g=function(){c.isEmpty()&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,e))};b.on("set_placeholder",g).on("unset_placeholder",f).on("focus:composer",f).on("paste:composer",f).on("blur:composer",g),g()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&wysihtml5.dom.isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},wysihtml5.dom.getAttributes=function(a){var b,c=!wysihtml5.browser.supportsGetAttributeCorrectly(),d=a.nodeName,e=[];for(b in a.attributes)(a.attributes.hasOwnProperty&&a.attributes.hasOwnProperty(b)||!a.attributes.hasOwnProperty&&Object.prototype.hasOwnProperty.call(a.attributes,b))&&a.attributes[b].specified&&("IMG"==d&&"src"==a.attributes[b].name.toLowerCase()&&wysihtml5.dom.isLoadedImage(a)===!0?e.src=a.src:wysihtml5.lang.array(["rowspan","colspan"]).contains(a.attributes[b].name.toLowerCase())&&c?1!==a.attributes[b].value&&(e[a.attributes[b].name]=a.attributes[b].value):e[a.attributes[b].name]=a.attributes[b].value);return e},wysihtml5.dom.isLoadedImage=function(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{query:"table"})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode(" ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{query:"tr"})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{query:"tr"})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{query:"tr"}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;
-break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*
\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV");d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){a.selection.setBookmark(c),b(e.innerHTML),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("
"==b||"
"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return k.observe(a,"mousedown",function(a){var b=wysihtml5.dom.getParentElement(a.target,{query:"td, th"});b&&d(b)}),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"}),l.table&&(e(),k.addClass(c,m),n=k.observe(a,"mousemove",g),o=k.observe(a,"mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){n.stop(),o.stop(),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){var c=k.observe(a.ownerDocument,"click",function(a){c.stop(),k.getParentElement(a.target,{query:"table"})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))})}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{query:"table"}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=null,o=null;return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(){var b;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(b=c.lastChild,a.dom.unwrap(c),this.setAfter(b)):c.parentNode.removeChild(c))}.bind(this),f=function(){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c){var d,e=rangy.createRange(this.doc),f=this.doc.documentElement.scrollTop||this.doc.body.scrollTop||this.doc.defaultView.pageYOffset,g=this.doc.documentElement.scrollLeft||this.doc.body.scrollLeft||this.doc.defaultView.pageXOffset;if(e.setStartAfter(b),e.setEndAfter(b),this.composer.element.focus(),this.doc.defaultView.scrollTo(g,f),d=this.setSelection(e),!d)if(c){var h=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(h,b.nextSibling),this.selectNode(h),setTimeout(function(){h&&h.parentNode&&h.parentNode.removeChild(h)},0)}else this.createTemporaryCaretSpaceAfter(b);return d},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{query:"li"},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},caretIsBeforeUneditable:function(){var b,c,d,e=this.getSelection(),f=e.anchorNode,g=e.anchorOffset,h=[];if(f)if(0===g){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode(this.unselectableClass?{leafClasses:[this.unselectableClass]}:!1):null;if(j)for(var k=this.getOwnUneditables(),l=0,m=k.length;m>l;l++)if(j===k[l])return k[l]}else{if(b=e.getRangeAt(0),b.setStart(b.startContainer,b.startOffset-1),b){c=b.getNodes([1,3]);for(var n=0,o=c.length;o>n;n++)c[n].parentNode&&c[n].parentNode===f&&h.push(c[n])}if(d=h.length>0?h[h.length-1]:null,d&&1===d.nodeType&&a.dom.hasClass(d,this.unselectableClass))return d}return!1},executeAndRestoreRangy:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.saveSelection(b);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(a,b){var c,d,e,f,g=this.getSelection();g.rangeCount>0&&(c=g.getRangeAt(0).cloneRange(),c.setEndAfter(a),d=c.extractContents(),a.parentNode.insertBefore(d,a.nextSibling),e=b.firstChild,f=b.lastChild,a.parentNode.insertBefore(b,a.nextSibling),e&&f&&(c.setStartBefore(e),c.setEndAfter(f),this.setSelection(c)))},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.doc.defaultView,b=a.getSelection();b.modify("move","left","lineboundary"),b.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.doc.defaultView,e=d.getSelection();e.modify("extend",b,"lineboundary"),c&&("left"===b?e.collapseToStart():"right"===b&&e.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.doc.defaultView||this.doc.parentWindow)},setSelection:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.getSelection(b);return c.setSingleRange(a),c&&c.anchorNode&&c.focusNode?c:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),wysihtml5.commands.bold={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"b")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"b")}},function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(d,e,f){var g=this.state(d,e);if(g){if((!f||!f.href)&&null!==g.length&&void 0!==g.length&&g.length>0){for(var h=0;hh;h++)d=b[h],e=c.getParentElement(d,{query:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(BLOCK_ELEMENTS),e=c.querySelectorAll(b.config.uneditableContainerClassname),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?BLOCK_ELEMENTS:l)&&(e=d),d=d.parentNode;return e}function e(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=k.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function f(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=k.renameElement(b,c(e)):k.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function g(b){for(var c=b.querySelectorAll(BLOCK_ELEMENTS)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function h(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function i(b,f,i,j){var k=f?a.lang.object(f).clone(!0):null;k&&(k.nodeName=k.nodeName||i||c(j)),h(b,j);var m,n,o,p=b.cloneRange(),q=p.startContainer,r=p.extractContents(),s=j.doc.createDocumentFragment(),t=!k||"BLOCKQUOTE"===i&&k.nodeName&&"BLOCKQUOTE"===k.nodeName,u=d(q,j.element,t);if(f&&f.nodeName&&"BLOCKQUOTE"===f.nodeName){var v=e(null,f,j);v.appendChild(r),s.appendChild(v),n=[v]}else{if(r.firstChild)for(;r.firstChild;)if(1==r.firstChild.nodeType&&r.firstChild.matches(BLOCK_ELEMENTS))if(f)e(r.firstChild,f,j),r.firstChild.matches(l)&&g(r.firstChild),s.appendChild(r.firstChild);else{g(r.firstChild),o=a.dom.unwrap(r.firstChild);for(var w=0,x=o.length;x>w;w++)s.appendChild(o[w]);s.childNodes.length>0&&s.appendChild(j.doc.createElement("BR"))}else if(f){for(m=e(null,k,j);r.firstChild&&(1!==r.firstChild.nodeType||!r.firstChild.matches(BLOCK_ELEMENTS));)1==r.firstChild.nodeType&&m.matches(l)&&g(r.firstChild),m.appendChild(r.firstChild);s.appendChild(m)}else 1==r.firstChild.nodeType&&g(r.firstChild),s.appendChild(r.firstChild);else s.appendChild(e(null,f,j));n=a.lang.array(s.childNodes).get()}return u?j.selection.splitElementAtCaret(u,s):p.insertNode(s),n}function j(b,c){var d=a.dom.getParentElement(b,{query:BLOCK_ELEMENTS},null,c.element);return d?d.nodeName:null}var k=a.dom,l="h1, h2, h3, h4, h5, h6, p, pre";BLOCK_ELEMENTS="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",a.commands.formatBlock={exec:function(c,d,e){var g,h,k,l,m,n=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow);for(var o in m)f(m[o],e,c)}if(!m){c.selection.isCollapsed()&&(k=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:BLOCK_ELEMENTS},null,c.element),k?(l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow),h=c.selection.createRange(),h.selectNode(k),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow),c.selection.selectLine())),g=c.selection.getOwnRanges();for(var p=g.length;p--;)n=n.concat(i(g[p],e,j(g[p].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(n[0]),h.setEndAfter(n[n.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:BLOCK_ELEMENTS})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=k.getParentElement(g[h],d||{query:BLOCK_ELEMENTS},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),wysihtml5.commands.formatCode={exec:function(a,b,c){var d,e,f,g=this.state(a);g?a.selection.executeAndRestore(function(){d=g.querySelector("code"),wysihtml5.dom.replaceWithChildNodes(g),d&&wysihtml5.dom.replaceWithChildNodes(d)}):(e=a.selection.getRange(),f=e.extractContents(),g=a.doc.createElement("pre"),d=a.doc.createElement("code"),c&&(d.className=c),g.appendChild(d),d.appendChild(f),e.insertNode(g),a.selection.selectNode(g))},state:function(a){var b=a.selection.getSelectedNode();return b&&b.nodeName&&"PRE"==b.nodeName&&b.firstChild&&b.firstChild.nodeName&&"CODE"==b.firstChild.nodeName?b:wysihtml5.dom.getParentElement(b,{query:"pre code"})}},function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange(),l=a.selection.getOwnRanges();return l&&0!=l.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(l),void(i?j||a.cleanUp():(k.setStart(l[0].startContainer,l[0].startOffset),k.setEnd(l[l.length-1].endContainer,l[l.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l,m=b.doc,n=d[f]||f;return a.dom.hasElementWithTagName(m,f)||a.dom.hasElementWithTagName(m,n)?g&&!a.dom.hasElementWithClassName(m,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?(l=c(f,g,h,i,j,b.element).isAppliedToRange(k),l&&l.elements?l.elements:!1):!1):!1}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),wysihtml5.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}},function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),wysihtml5.commands.insertOrderedList={exec:function(a,b){wysihtml5.commands.insertList.exec(a,b,"OL")},state:function(a,b){return wysihtml5.commands.insertList.state(a,b,"OL")}},wysihtml5.commands.insertUnorderedList={exec:function(a,b){wysihtml5.commands.insertList.exec(a,b,"UL")},state:function(a,b){return wysihtml5.commands.insertList.state(a,b,"UL")}},wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"}),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){var h=f(g,d);if(h.length)for(var i=h.length;i--;)a.dom.renameElement(h[i],c.toLowerCase());else{e=f(["OL","UL"],d);for(var j=e.length;j--;)a.dom.resolveList(e[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.uneditableContainerClassname),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),wysihtml5.commands.italic={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"i")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"i")}},function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),wysihtml5.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(){return!1}},wysihtml5.commands.underline={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"u")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"u")}},wysihtml5.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(){return!1}},wysihtml5.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"",f+="",e=0;e",d=0;d ";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(){return!1}},wysihtml5.commands.mergeTableCells={exec:function(a,b){a.tableSelection&&a.tableSelection.start&&a.tableSelection.end&&(this.state(a,b)?wysihtml5.dom.table.unmergeCell(a.tableSelection.start):wysihtml5.dom.table.mergeCellsBetween(a.tableSelection.start,a.tableSelection.end))},state:function(a){if(a.tableSelection){var b=a.tableSelection.start,c=a.tableSelection.end;if(b&&c&&b==c&&(wysihtml5.dom.getAttribute(b,"colspan")&&parseInt(wysihtml5.dom.getAttribute(b,"colspan"),10)>1||wysihtml5.dom.getAttribute(b,"rowspan")&&parseInt(wysihtml5.dom.getAttribute(b,"rowspan"),10)>1))return[b]}return!1}},wysihtml5.commands.addTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end);"before"==c||"above"==c?wysihtml5.dom.table.addCells(d.start,c):("after"==c||"below"==c)&&wysihtml5.dom.table.addCells(d.end,c),setTimeout(function(){a.tableSelection.select(d.start,d.end)},0)}},state:function(){return!1}},wysihtml5.commands.deleteTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d,e=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end),f=wysihtml5.dom.table.indexOf(e.start),g=a.tableSelection.table;wysihtml5.dom.table.removeCells(e.start,c),setTimeout(function(){d=wysihtml5.dom.table.findCell(g,f),d||("row"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row-1,col:f.col})),"column"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row,col:f.col-1}))),d&&a.tableSelection.select(d,d)},0)}},state:function(){return!1}},wysihtml5.commands.indentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPushLiLevel(b,a.selection):!1},state:function(){return!1},tryToPushLiLevel:function(a,b){var c,d,e,f,g,h=!1;return b.executeAndRestoreRangy(function(){for(var b=a.length;b--;)f=a[b],c="OL"===f.parentNode.nodeName?"OL":"UL",d=f.ownerDocument.createElement(c),e=wysihtml5.dom.domNode(f).prev({nodeTypes:[wysihtml5.ELEMENT_NODE]}),g=e?e.querySelector("ul, ol"):null,e&&(g?g.appendChild(f):(d.appendChild(f),e.appendChild(d)),h=!0)}),h}},wysihtml5.commands.outdentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPullLiLevel(b,a):!1},state:function(){return!1},tryToPullLiLevel:function(a,b){var c,d,e,f,g,h=!1,i=this;return b.selection.executeAndRestoreRangy(function(){for(var j=a.length;j--;)if(f=a[j],f.parentNode&&(c=f.parentNode,"OL"===c.tagName||"UL"===c.tagName)){if(h=!0,d=wysihtml5.dom.getParentElement(c.parentNode,{query:"ol, ul"},!1,b.element),e=wysihtml5.dom.getParentElement(c.parentNode,{query:"li"},!1,b.element),d&&e)f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g)),d.insertBefore(f,e.nextSibling);else{f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g));for(var k=f.childNodes.length;k--;)c.parentNode.insertBefore(f.childNodes[k],c.nextSibling);c.parentNode.insertBefore(document.createElement("br"),c.nextSibling),f.parentNode.removeChild(f)}0===c.childNodes.length&&c.parentNode.removeChild(c)}}),h},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}},function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){{var a,f=this;this.composer.sandbox.getDocument()}i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()
-},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){this.parent.parse(this.element)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>||<\/p>)*$/i.test(a)||""===a||"
"===a||"
"===a||"
"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.uneditableContainerClassname),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.composerClassName),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.uneditableContainerClassname),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.uneditableContainerClassname])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.uneditableContainerClassname])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(a,b){{var c=b.selection;b.element}if(c.isCollapsed())if(c.caretIsInTheBeginnig("li"))a.preventDefault(),b.commands.exec("outdentList");else if(c.caretIsInTheBeginnig())a.preventDefault();else{if(c.caretIsFirstInSelection()&&c.getPreviousNode()&&c.getPreviousNode().nodeName&&/^H\d$/gi.test(c.getPreviousNode().nodeName)){var d=c.getPreviousNode();if(a.preventDefault(),/^\s*$/.test(d.textContent||d.innerText))d.parentNode.removeChild(d);else{var e=d.ownerDocument.createRange();e.selectNodeContents(d),e.collapse(!1),c.setSelection(e)}}var f=c.caretIsBeforeUneditable();if(f){a.preventDefault();try{var g=new CustomEvent("wysihtml5:uneditable:delete");f.dispatchEvent(g)}catch(h){}f.parentNode.removeChild(f)}}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},h=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},i=function(){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},j=function(){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},k=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},l=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},m=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},n=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},o=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},p=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.uneditableContainerClassname+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},q=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},r=function(b){if(this.config.uneditableContainerClassname){var c=a.dom.getParentElement(b.target,{query:"."+this.config.uneditableContainerClassname},!1,this.element);c&&this.selection.setAfter(c)}},s=function(){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},t=function(b){var c,e,f=b.keyCode,i=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&i&&(this.commands.exec(i),b.preventDefault()),f===a.BACKSPACE_KEY&&g(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),h(this,this.element))},u=function(){setTimeout(function(){this.doc.querySelector(":focus")!==this.element&&this.focus()}.bind(this),0)},v=function(){setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],i.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||i.call(this)},250)),this.config.handleTables&&w.call(this),e(d,["drop","paste","mouseup","focus","keyup"],j.bind(this)),d.addEventListener("focus",k.bind(this),!1),d.addEventListener("blur",l.bind(this),!1),e(this.element,["drop","paste","beforepaste"],m.bind(this),!1),this.element.addEventListener("copy",n.bind(this),!1),this.element.addEventListener("mousedown",p.bind(this),!1),this.element.addEventListener("mouseover",q.bind(this),!1),this.element.addEventListener("click",r.bind(this),!1),this.element.addEventListener("drop",s.bind(this),!1),this.element.addEventListener("keyup",o.bind(this),!1),this.element.addEventListener("keydown",t.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1),!this.config.contentEditableMode&&c.hasIframeFocusIssue()&&(a.addEventListener("focus",u.bind(this),!1),a.addEventListener("blur",v.bind(this),!1))}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,composerClassName:"wysihtml5-editor",bodyClassName:"wysihtml5-supported",useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,uneditableContainerClassname:"wysihtml5-uneditable-container",copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.bodyClassName),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea||(this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer)),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.uneditableContainerClassname,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b,c=this;a.browser.supportsModenPaste()?this.on("paste:composer",function(d){d.preventDefault(),b=a.dom.getPastedHtml(d),b&&c._cleanAndPaste(b)}):this.on("beforepaste:composer",function(b){b.preventDefault(),a.dom.getPastedHtmlWithDiv(c.composer,function(a){a&&c._cleanAndPaste(a)})})},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.uneditableContainerClassname});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5);
+break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*
\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV");d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){a.selection.setBookmark(c),b(e.innerHTML),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("
"==b||"
"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return a.addEventListener("mousedown",n),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"}),l.table&&(e(),k.addClass(c,m),a.addEventListener("mousemove",g),a.addEventListener("mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){a.removeEventListener("mousemove",g),a.removeEventListener("mouseup",h),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){a.ownerDocument.addEventListener("click",o)}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{query:"table"}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=function(a){var b=wysihtml5.dom.getParentElement(a.target,{query:"td, th"});b&&d(b)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(){var b;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(b=c.lastChild,a.dom.unwrap(c),this.setAfter(b)):c.parentNode.removeChild(c))}.bind(this),f=function(){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c){var d,e=rangy.createRange(this.doc),f=this.doc.documentElement.scrollTop||this.doc.body.scrollTop||this.doc.defaultView.pageYOffset,g=this.doc.documentElement.scrollLeft||this.doc.body.scrollLeft||this.doc.defaultView.pageXOffset;if(e.setStartAfter(b),e.setEndAfter(b),this.composer.element.focus(),this.doc.defaultView.scrollTo(g,f),d=this.setSelection(e),!d)if(c){var h=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(h,b.nextSibling),this.selectNode(h),setTimeout(function(){h&&h.parentNode&&h.parentNode.removeChild(h)},0)}else this.createTemporaryCaretSpaceAfter(b);return d},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{query:"li"},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},caretIsBeforeUneditable:function(){var b,c,d,e=this.getSelection(),f=e.anchorNode,g=e.anchorOffset,h=[];if(f)if(0===g){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode(this.unselectableClass?{leafClasses:[this.unselectableClass]}:!1):null;if(j)for(var k=this.getOwnUneditables(),l=0,m=k.length;m>l;l++)if(j===k[l])return k[l]}else{if(b=e.getRangeAt(0),b.setStart(b.startContainer,b.startOffset-1),b){c=b.getNodes([1,3]);for(var n=0,o=c.length;o>n;n++)c[n].parentNode&&c[n].parentNode===f&&h.push(c[n])}if(d=h.length>0?h[h.length-1]:null,d&&1===d.nodeType&&a.dom.hasClass(d,this.unselectableClass))return d}return!1},executeAndRestoreRangy:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.saveSelection(b);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(a,b){var c,d,e,f,g=this.getSelection();g.rangeCount>0&&(c=g.getRangeAt(0).cloneRange(),c.setEndAfter(a),d=c.extractContents(),a.parentNode.insertBefore(d,a.nextSibling),e=b.firstChild,f=b.lastChild,a.parentNode.insertBefore(b,a.nextSibling),e&&f&&(c.setStartBefore(e),c.setEndAfter(f),this.setSelection(c)))},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.doc.defaultView,b=a.getSelection();b.modify("move","left","lineboundary"),b.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.doc.defaultView,e=d.getSelection();e.modify("extend",b,"lineboundary"),c&&("left"===b?e.collapseToStart():"right"===b&&e.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.doc.defaultView||this.doc.parentWindow)},setSelection:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.getSelection(b);return c.setSingleRange(a),c&&c.anchorNode&&c.focusNode?c:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),wysihtml5.commands.bold={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"b")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"b")}},function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(d,e,f){var g=this.state(d,e);if(g){if((!f||!f.href)&&null!==g.length&&void 0!==g.length&&g.length>0){for(var h=0;hh;h++)d=b[h],e=c.getParentElement(d,{query:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(BLOCK_ELEMENTS),e=c.querySelectorAll(b.config.uneditableContainerClassname),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?BLOCK_ELEMENTS:l)&&(e=d),d=d.parentNode;return e}function e(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=k.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function f(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=k.renameElement(b,c(e)):k.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function g(b){for(var c=b.querySelectorAll(BLOCK_ELEMENTS)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function h(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function i(b,f,i,j){var k=f?a.lang.object(f).clone(!0):null;k&&(k.nodeName=k.nodeName||i||c(j)),h(b,j);var m,n,o,p=b.cloneRange(),q=p.startContainer,r=p.extractContents(),s=j.doc.createDocumentFragment(),t=!k||"BLOCKQUOTE"===i&&k.nodeName&&"BLOCKQUOTE"===k.nodeName,u=d(q,j.element,t);if(f&&f.nodeName&&"BLOCKQUOTE"===f.nodeName){var v=e(null,f,j);v.appendChild(r),s.appendChild(v),n=[v]}else{if(r.firstChild)for(;r.firstChild;)if(1==r.firstChild.nodeType&&r.firstChild.matches(BLOCK_ELEMENTS))if(f)e(r.firstChild,f,j),r.firstChild.matches(l)&&g(r.firstChild),s.appendChild(r.firstChild);else{g(r.firstChild),o=a.dom.unwrap(r.firstChild);for(var w=0,x=o.length;x>w;w++)s.appendChild(o[w]);s.childNodes.length>0&&s.appendChild(j.doc.createElement("BR"))}else if(f){for(m=e(null,k,j);r.firstChild&&(1!==r.firstChild.nodeType||!r.firstChild.matches(BLOCK_ELEMENTS));)1==r.firstChild.nodeType&&m.matches(l)&&g(r.firstChild),m.appendChild(r.firstChild);s.appendChild(m)}else 1==r.firstChild.nodeType&&g(r.firstChild),s.appendChild(r.firstChild);else s.appendChild(e(null,f,j));n=a.lang.array(s.childNodes).get()}return u?j.selection.splitElementAtCaret(u,s):p.insertNode(s),n}function j(b,c){var d=a.dom.getParentElement(b,{query:BLOCK_ELEMENTS},null,c.element);return d?d.nodeName:null}var k=a.dom,l="h1, h2, h3, h4, h5, h6, p, pre";BLOCK_ELEMENTS="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",a.commands.formatBlock={exec:function(c,d,e){var g,h,k,l,m,n=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow);for(var o in m)f(m[o],e,c)}if(!m){c.selection.isCollapsed()&&(k=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:BLOCK_ELEMENTS},null,c.element),k?(l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow),h=c.selection.createRange(),h.selectNode(k),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.doc.defaultView||c.doc.parentWindow),c.selection.selectLine())),g=c.selection.getOwnRanges();for(var p=g.length;p--;)n=n.concat(i(g[p],e,j(g[p].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(n[0]),h.setEndAfter(n[n.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:BLOCK_ELEMENTS})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=k.getParentElement(g[h],d||{query:BLOCK_ELEMENTS},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),wysihtml5.commands.formatCode={exec:function(a,b,c){var d,e,f,g=this.state(a);g?a.selection.executeAndRestore(function(){d=g.querySelector("code"),wysihtml5.dom.replaceWithChildNodes(g),d&&wysihtml5.dom.replaceWithChildNodes(d)}):(e=a.selection.getRange(),f=e.extractContents(),g=a.doc.createElement("pre"),d=a.doc.createElement("code"),c&&(d.className=c),g.appendChild(d),d.appendChild(f),e.insertNode(g),a.selection.selectNode(g))},state:function(a){var b=a.selection.getSelectedNode();return b&&b.nodeName&&"PRE"==b.nodeName&&b.firstChild&&b.firstChild.nodeName&&"CODE"==b.firstChild.nodeName?b:wysihtml5.dom.getParentElement(b,{query:"pre code"})}},function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange(),l=a.selection.getOwnRanges();return l&&0!=l.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(l),void(i?j||a.cleanUp():(k.setStart(l[0].startContainer,l[0].startOffset),k.setEnd(l[l.length-1].endContainer,l[l.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l,m=b.doc,n=d[f]||f;return a.dom.hasElementWithTagName(m,f)||a.dom.hasElementWithTagName(m,n)?g&&!a.dom.hasElementWithClassName(m,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?(l=c(f,g,h,i,j,b.element).isAppliedToRange(k),l&&l.elements?l.elements:!1):!1):!1}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),wysihtml5.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}},function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),wysihtml5.commands.insertOrderedList={exec:function(a,b){wysihtml5.commands.insertList.exec(a,b,"OL")},state:function(a,b){return wysihtml5.commands.insertList.state(a,b,"OL")}},wysihtml5.commands.insertUnorderedList={exec:function(a,b){wysihtml5.commands.insertList.exec(a,b,"UL")},state:function(a,b){return wysihtml5.commands.insertList.state(a,b,"UL")}},wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"}),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){var h=f(g,d);if(h.length)for(var i=h.length;i--;)a.dom.renameElement(h[i],c.toLowerCase());else{e=f(["OL","UL"],d);for(var j=e.length;j--;)a.dom.resolveList(e[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.uneditableContainerClassname),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),wysihtml5.commands.italic={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"i")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"i")}},function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),wysihtml5.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(){return!1}},wysihtml5.commands.underline={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"u")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"u")}},wysihtml5.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(){return!1}},wysihtml5.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"",f+="",e=0;e",d=0;d ";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(){return!1}},wysihtml5.commands.mergeTableCells={exec:function(a,b){a.tableSelection&&a.tableSelection.start&&a.tableSelection.end&&(this.state(a,b)?wysihtml5.dom.table.unmergeCell(a.tableSelection.start):wysihtml5.dom.table.mergeCellsBetween(a.tableSelection.start,a.tableSelection.end))},state:function(a){if(a.tableSelection){var b=a.tableSelection.start,c=a.tableSelection.end;if(b&&c&&b==c&&(wysihtml5.dom.getAttribute(b,"colspan")&&parseInt(wysihtml5.dom.getAttribute(b,"colspan"),10)>1||wysihtml5.dom.getAttribute(b,"rowspan")&&parseInt(wysihtml5.dom.getAttribute(b,"rowspan"),10)>1))return[b]}return!1}},wysihtml5.commands.addTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end);"before"==c||"above"==c?wysihtml5.dom.table.addCells(d.start,c):("after"==c||"below"==c)&&wysihtml5.dom.table.addCells(d.end,c),setTimeout(function(){a.tableSelection.select(d.start,d.end)},0)}},state:function(){return!1}},wysihtml5.commands.deleteTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d,e=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end),f=wysihtml5.dom.table.indexOf(e.start),g=a.tableSelection.table;wysihtml5.dom.table.removeCells(e.start,c),setTimeout(function(){d=wysihtml5.dom.table.findCell(g,f),d||("row"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row-1,col:f.col})),"column"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row,col:f.col-1}))),d&&a.tableSelection.select(d,d)},0)}},state:function(){return!1}},wysihtml5.commands.indentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPushLiLevel(b,a.selection):!1},state:function(){return!1},tryToPushLiLevel:function(a,b){var c,d,e,f,g,h=!1;return b.executeAndRestoreRangy(function(){for(var b=a.length;b--;)f=a[b],c="OL"===f.parentNode.nodeName?"OL":"UL",d=f.ownerDocument.createElement(c),e=wysihtml5.dom.domNode(f).prev({nodeTypes:[wysihtml5.ELEMENT_NODE]}),g=e?e.querySelector("ul, ol"):null,e&&(g?g.appendChild(f):(d.appendChild(f),e.appendChild(d)),h=!0)}),h}},wysihtml5.commands.outdentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPullLiLevel(b,a):!1},state:function(){return!1},tryToPullLiLevel:function(a,b){var c,d,e,f,g,h=!1,i=this;return b.selection.executeAndRestoreRangy(function(){for(var j=a.length;j--;)if(f=a[j],f.parentNode&&(c=f.parentNode,"OL"===c.tagName||"UL"===c.tagName)){if(h=!0,d=wysihtml5.dom.getParentElement(c.parentNode,{query:"ol, ul"},!1,b.element),e=wysihtml5.dom.getParentElement(c.parentNode,{query:"li"},!1,b.element),d&&e)f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g)),d.insertBefore(f,e.nextSibling);else{f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g));for(var k=f.childNodes.length;k--;)c.parentNode.insertBefore(f.childNodes[k],c.nextSibling);c.parentNode.insertBefore(document.createElement("br"),c.nextSibling),f.parentNode.removeChild(f)}0===c.childNodes.length&&c.parentNode.removeChild(c)}}),h},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}},function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){{var a,f=this;this.composer.sandbox.getDocument()}i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c
+},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){var a;this.selection&&(a=rangy.saveSelection(this.doc.defaultView||this.doc.parentWindow)),this.parent.parse(this.element),a&&rangy.restoreSelection(a)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>||<\/p>)*$/i.test(a)||""===a||"
"===a||"
"===a||"
"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.uneditableContainerClassname),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.composerClassName),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.uneditableContainerClassname),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.uneditableContainerClassname])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.uneditableContainerClassname])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(a,b){{var c=b.selection;b.element}if(c.isCollapsed())if(c.caretIsInTheBeginnig("li"))a.preventDefault(),b.commands.exec("outdentList");else if(c.caretIsInTheBeginnig())a.preventDefault();else{if(c.caretIsFirstInSelection()&&c.getPreviousNode()&&c.getPreviousNode().nodeName&&/^H\d$/gi.test(c.getPreviousNode().nodeName)){var d=c.getPreviousNode();if(a.preventDefault(),/^\s*$/.test(d.textContent||d.innerText))d.parentNode.removeChild(d);else{var e=d.ownerDocument.createRange();e.selectNodeContents(d),e.collapse(!1),c.setSelection(e)}}var f=c.caretIsBeforeUneditable();if(f){a.preventDefault();try{var g=new CustomEvent("wysihtml5:uneditable:delete");f.dispatchEvent(g)}catch(h){}f.parentNode.removeChild(f)}}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},h=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},i=function(){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},j=function(){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},k=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},l=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},m=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},n=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},o=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},p=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.uneditableContainerClassname+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},q=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},r=function(b){if(this.config.uneditableContainerClassname){var c=a.dom.getParentElement(b.target,{query:"."+this.config.uneditableContainerClassname},!1,this.element);c&&this.selection.setAfter(c)}},s=function(){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},t=function(b){var c,e,f=b.keyCode,i=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&i&&(this.commands.exec(i),b.preventDefault()),f===a.BACKSPACE_KEY&&g(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),h(this,this.element))},u=function(){setTimeout(function(){this.doc.querySelector(":focus")!==this.element&&this.focus()}.bind(this),0)},v=function(){setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],i.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||i.call(this)},250)),this.config.handleTables&&w.call(this),e(d,["drop","paste","mouseup","focus","keyup"],j.bind(this)),d.addEventListener("focus",k.bind(this),!1),d.addEventListener("blur",l.bind(this),!1),e(this.element,["drop","paste","beforepaste"],m.bind(this),!1),this.element.addEventListener("copy",n.bind(this),!1),this.element.addEventListener("mousedown",p.bind(this),!1),this.element.addEventListener("mouseover",q.bind(this),!1),this.element.addEventListener("click",r.bind(this),!1),this.element.addEventListener("drop",s.bind(this),!1),this.element.addEventListener("keyup",o.bind(this),!1),this.element.addEventListener("keydown",t.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1),!this.config.contentEditableMode&&c.hasIframeFocusIssue()&&(a.addEventListener("focus",u.bind(this),!1),a.addEventListener("blur",v.bind(this),!1))}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,composerClassName:"wysihtml5-editor",bodyClassName:"wysihtml5-supported",useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,uneditableContainerClassname:"wysihtml5-uneditable-container",copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.bodyClassName),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea||(this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer)),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.uneditableContainerClassname,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b,c=this;a.browser.supportsModenPaste()?this.on("paste:composer",function(d){d.preventDefault(),b=a.dom.getPastedHtml(d),b&&c._cleanAndPaste(b)}):this.on("beforepaste:composer",function(b){b.preventDefault(),a.dom.getPastedHtmlWithDiv(c.composer,function(a){a&&c._cleanAndPaste(a)})})},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.uneditableContainerClassname});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5);
//# sourceMappingURL=wysihtml.min.map
\ No newline at end of file
diff --git a/dist/wysihtml.min.map b/dist/wysihtml.min.map
index c5ac166..3efe69b 100644
--- a/dist/wysihtml.min.map
+++ b/dist/wysihtml.min.map
@@ -1 +1 @@
-{"version":3,"file":"wysihtml.min.js","sources":["wysihtml.js"],"names":["String","prototype","trim","rtrim","this","replace","Event","preventDefault","returnValue","stopPropagation","cancelBubble","Element","addEventListener","eventListeners","type","listener","self","wrapper","e","target","srcElement","currentTarget","handleEvent","call","wrapper2","document","readyState","attachEvent","push","object","window","removeEventListener","counter","length","eventListener","detachEvent","splice","HTMLDocument","Window","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","doc","body","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","createRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","shim","win","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","util","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","toArray","el","appendChild","childNodes","nodeType","arrayLike","arr","addListener","eventType","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","deprecationNotice","deprecated","replacement","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","previous","toSource","hidden","key","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","on","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","isPlainObject","isFunction","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","html","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","event","domNode","defaultNodeTypes","_isBlankText","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","ingoreEmpty","all","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","attributeValue","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","getAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","simulatePlaceholder","editor","placeholderText","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleSelectionMousedown","removeCellSelections","selection_class","moveHandler","handleMouseMove","upHandler","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","unparseColor","parseFontSize","_getCumulativeOffsetTop","top","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","which","ctrlKey","metaKey","minWidth","zIndex","notVisual","originalScrollTop","scrollTop","pageYOffset","originalScrollLeft","scrollLeft","pageXOffset","scrollTo","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","contentNodes","lastNode","prevLeaf","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","oldScrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","uneditableContainerClassname","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","styleRegExp","identifier","htmlApplier","strong","em","b","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertBlockQuote","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","innerLists","otherLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","keyCode","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","handleDeleteKeyPress","beforeUneditable","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","handleMouseDown","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","handleIframeFocus","handleIframeBlur","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"wysihtml.min.js","sources":["wysihtml.js"],"names":["String","prototype","trim","rtrim","this","replace","Event","preventDefault","returnValue","stopPropagation","cancelBubble","Element","addEventListener","eventListeners","type","listener","self","wrapper","e","target","srcElement","currentTarget","handleEvent","call","wrapper2","document","readyState","attachEvent","push","object","window","removeEventListener","counter","length","eventListener","detachEvent","splice","HTMLDocument","Window","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","doc","body","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","createRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","shim","win","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","util","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","toArray","el","appendChild","childNodes","nodeType","arrayLike","arr","addListener","eventType","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","deprecationNotice","deprecated","replacement","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","previous","toSource","hidden","key","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","on","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","isPlainObject","isFunction","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","html","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","event","domNode","defaultNodeTypes","_isBlankText","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","ingoreEmpty","all","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","attributeValue","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","getAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","simulatePlaceholder","editor","placeholderText","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleMouseDown","handleSelectionMousedown","removeCellSelections","selection_class","handleMouseMove","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","unparseColor","parseFontSize","_getCumulativeOffsetTop","top","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","which","ctrlKey","metaKey","minWidth","zIndex","notVisual","originalScrollTop","scrollTop","pageYOffset","originalScrollLeft","scrollLeft","pageXOffset","scrollTo","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","contentNodes","lastNode","prevLeaf","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","oldScrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","uneditableContainerClassname","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","styleRegExp","identifier","htmlApplier","strong","em","b","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertBlockQuote","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","innerLists","otherLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","keyCode","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","handleDeleteKeyPress","beforeUneditable","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","handleIframeFocus","handleIframeBlur","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml"],"mappings":";;AAMKA,OAAOC,UAAUC,OACpB,WAEE,GAAIC,GAAQ,oCACZH,QAAOC,UAAUC,KAAO,WACtB,MAAOE,MAAKC,QAAQF,EAAO,QAOjC,WAWE,GAVKG,MAAML,UAAUM,iBACnBD,MAAML,UAAUM,eAAe,WAC7BH,KAAKI,aAAY,IAGhBF,MAAML,UAAUQ,kBACnBH,MAAML,UAAUQ,gBAAgB,WAC9BL,KAAKM,cAAa,KAGjBC,QAAQV,UAAUW,iBAAkB,CACvC,GAAIC,MAEAD,EAAiB,SAASE,EAAKC,GACjC,GAAIC,GAAKZ,KACLa,EAAQ,SAASC,GACnBA,EAAEC,OAAOD,EAAEE,WACXF,EAAEG,cAAcL,EACZD,EAASO,YACXP,EAASO,YAAYJ,GAErBH,EAASQ,KAAKP,EAAKE,GAGvB,IAAU,oBAANJ,EAA0B,CAC5B,GAAIU,GAAS,SAASN,GACK,YAArBO,SAASC,YACXT,EAAQC,GAMZ,IAHAO,SAASE,YAAY,qBAAqBH,GAC1CX,EAAee,MAAMC,OAAOzB,KAAKU,KAAKA,EAAKC,SAASA,EAASE,QAAQO,IAE5C,YAArBC,SAASC,WAAwB,CACnC,GAAIR,GAAE,GAAIZ,MACVY,GAAEE,WAAWU,OACbN,EAASN,QAGXd,MAAKuB,YAAY,KAAKb,EAAKG,GAC3BJ,EAAee,MAAMC,OAAOzB,KAAKU,KAAKA,EAAKC,SAASA,EAASE,QAAQA,KAGrEc,EAAoB,SAASjB,EAAKC,GAEpC,IADA,GAAIiB,GAAQ,EACLA,EAAQnB,EAAeoB,QAAQ,CACpC,GAAIC,GAAcrB,EAAemB,EACjC,IAAIE,EAAcL,QAAQzB,MAAQ8B,EAAcpB,MAAMA,GAAQoB,EAAcnB,UAAUA,EAAU,CACpF,oBAAND,EACFV,KAAK+B,YAAY,qBAAqBD,EAAcjB,SAEpDb,KAAK+B,YAAY,KAAKrB,EAAKoB,EAAcjB,SAE3CJ,EAAeuB,OAAOJ,EAAS,EAC/B,SAEAA,GAGNrB,SAAQV,UAAUW,iBAAiBA,EACnCD,QAAQV,UAAU8B,oBAAoBA,EAClCM,eACFA,aAAapC,UAAUW,iBAAiBA,EACxCyB,aAAapC,UAAU8B,oBAAoBA,GAEzCO,SACFA,OAAOrC,UAAUW,iBAAiBA,EAClC0B,OAAOrC,UAAU8B,oBAAoBA,OAMvCQ,OAAOC,gBAAkBD,OAAOE,0BAA4BF,OAAOE,yBAAyB9B,QAAQV,UAAW,iBAAmBsC,OAAOE,yBAAyB9B,QAAQV,UAAW,eAAeyC,MACvM,WACC,GAAIC,GAAYJ,OAAOE,yBAAyB9B,QAAQV,UAAW,YACnEsC,QAAOC,eAAe7B,QAAQV,UAAW,eAEvCyC,IAAK,WACJ,MAAOC,GAAUD,IAAInB,KAAKnB,OAE3BwC,IAAK,SAASC,GACb,MAAOF,GAAUC,IAAIrB,KAAKnB,KAAMyC,SAQjCC,MAAMC,UACRD,MAAMC,QAAU,SAASC,GACvB,MAA+C,mBAAxCT,OAAOtC,UAAUgD,SAAS1B,KAAKyB,KAKrCF,MAAM7C,UAAUiD,UACnBJ,MAAM7C,UAAUiD,QAAU,SAASC,EAAEC,GACnC,IAAI,GAAIC,GAAEjD,KAAK6B,OAAOqB,EAAE,GAAGC,EAAEH,IAAI,IAAKC,EAAEE,GAAID,EAAElD,OAAOiD,KAAKF,EAAEE,EAAEC,GAC9D,MAAOA,KAMNE,SAASvD,UAAUwD,OACtBD,SAASvD,UAAUwD,KAAO,SAASC,GACjC,GAAoB,kBAATtD,MAGT,KAAM,IAAIuD,WAAU,uEAGtB,IAAIC,GAAUd,MAAM7C,UAAU4D,MAAMtC,KAAKuC,UAAW,GAChDC,EAAU3D,KACV4D,EAAU,aACVC,EAAU,WACR,MAAOF,GAAQG,MAAM9D,eAAgB4D,IAAQN,EACpCtD,KACAsD,EACFE,EAAMO,OAAOrB,MAAM7C,UAAU4D,MAAMtC,KAAKuC,aAMrD,OAHAE,GAAK/D,UAAYG,KAAKH,UACtBgE,EAAOhE,UAAY,GAAI+D,GAEhBC,IAKX7D,KAAKO,SAAW,SAASyD,GACvBA,EAAiBC,QAAUD,EAAiBC,SAC5CD,EAAiBE,iBACjBF,EAAiBG,oBACjBH,EAAiBI,mBACjBJ,EAAiBK,kBACjBL,EAAiBM,uBACjB,SAAUC,GAER,IADA,GAAIC,GAAOxE,KAAMyE,GAASD,EAAKE,YAAcF,EAAKnD,UAAUsD,iBAAiBJ,GAAWK,EAAI,GACrFH,IAAQG,IAAMH,EAAMG,IAAMJ,IACjC,QAASC,EAAMG,KAEjBrE,QAAQV,WAKN,YAAce,QAEV,aAAeS,UAASwD,cAAc,KAyJjC,gBAAkBnD,UAK1B,WACC,YAEA,IAAIoD,GAAczD,SAASwD,cAAc,IAMzC,IAJAC,EAAYC,UAAUC,IAAI,KAAM,OAI3BF,EAAYC,UAAUE,SAAS,MAAO,CACzC,GAAIC,GAAe,SAASC,GAC1B,GAAIC,GAAWC,aAAaxF,UAAUsF,EAEtCE,cAAaxF,UAAUsF,GAAU,SAASG,GACxC,GAAIV,GAAGW,EAAM7B,UAAU7B,MAEvB,KAAK+C,EAAI,EAAOW,EAAJX,EAASA,IACnBU,EAAQ5B,UAAUkB,GAClBQ,EAASjE,KAAKnB,KAAMsF,IAI1BJ,GAAa,OACbA,EAAa,UAOf,GAJAJ,EAAYC,UAAUS,OAAO,MAAM,GAI/BV,EAAYC,UAAUE,SAAS,MAAO,CACxC,GAAIQ,GAAUJ,aAAaxF,UAAU2F,MAErCH,cAAaxF,UAAU2F,OAAS,SAASF,EAAOI,GAC9C,MAAI,KAAKhC,aAAc1D,KAAKiF,SAASK,KAAYI,EACxCA,EAEAD,EAAQtE,KAAKnB,KAAMsF,IAMhCR,EAAc,SAxMf,SAASa,GACR,YACA,IAAM,WAAaA,GAAnB,CAEA,GACEC,GAAgB,YAChBC,EAAY,YACZC,EAAeH,EAAKpF,QAAQsF,GAC5BE,EAAS5D,OACT6D,EAAUpG,OAAOiG,GAAW/F,MAAQ,WAClC,MAAOE,MAAKC,QAAQ,aAAc,KAEpCgG,EAAavD,MAAMmD,GAAW/C,SAAW,SAASoD,GAIhD,IAHA,GACEtB,GAAI,EACJW,EAAMvF,KAAK6B,OACF0D,EAAJX,EAASA,IACd,GAAIA,IAAK5E,OAAQA,KAAK4E,KAAOsB,EAC3B,MAAOtB,EAGX,OAAO,IAETuB,EAAQ,SAASzF,EAAM0F,GACrBpG,KAAKqG,KAAO3F,EACZV,KAAKsG,KAAOC,aAAa7F,GACzBV,KAAKoG,QAAUA,GAEjBI,EAAwB,SAASzB,EAAWO,GAC1C,GAAc,KAAVA,EACF,KAAM,IAAIa,GACR,aAAc,6CAGlB,IAAI,KAAKM,KAAKnB,GACZ,KAAM,IAAIa,GACR,wBAAyB,uCAG7B,OAAOF,GAAW9E,KAAK4D,EAAWO,IAEpCoB,EAAY,SAASC,GAMnB,IALA,GACEC,GAAiBZ,EAAQ7E,KAAKwF,EAAKE,aAAa,UAAY,IAC5DC,EAAUF,EAAiBA,EAAeG,MAAM,UAChDnC,EAAI,EACJW,EAAMuB,EAAQjF,OACL0D,EAAJX,EAASA,IACd5E,KAAKwB,KAAKsF,EAAQlC,GAEpB5E,MAAKgH,iBAAmB,WACtBL,EAAKM,aAAa,QAASjH,KAAK6C,cAGpCqE,EAAiBR,EAAUb,MAC3BsB,EAAkB,WAChB,MAAO,IAAIT,GAAU1G,MA4EzB,IAxEAmG,EAAMN,GAAauB,MAAMvB,GACzBqB,EAAehB,KAAO,SAAStB,GAC7B,MAAO5E,MAAK4E,IAAM,MAEpBsC,EAAejC,SAAW,SAASK,GAEjC,MADAA,IAAS,GACqC,KAAvCkB,EAAsBxG,KAAMsF,IAErC4B,EAAelC,IAAM,WACnB,GAIEM,GAHA+B,EAAS3D,UACTkB,EAAI,EACJ0C,EAAID,EAAOxF,OACJ0F,GAAU,CACnB,GACEjC,GAAQ+B,EAAOzC,GAAK,GACuB,KAAvC4B,EAAsBxG,KAAMsF,KAC9BtF,KAAKwB,KAAK8D,GACViC,GAAU,WAGL3C,EAAI0C,EAETC,IACFvH,KAAKgH,oBAGTE,EAAeM,OAAS,WACtB,GAIElC,GACAmC,EAJAJ,EAAS3D,UACTkB,EAAI,EACJ0C,EAAID,EAAOxF,OACJ0F,GAAU,CAEnB,GAGE,KAFAjC,EAAQ+B,EAAOzC,GAAK,GACpB6C,EAAQjB,EAAsBxG,KAAMsF,GACnB,KAAVmC,GACLzH,KAAKgC,OAAOyF,EAAO,GACnBF,GAAU,EACVE,EAAQjB,EAAsBxG,KAAMsF,WAG/BV,EAAI0C,EAETC,IACFvH,KAAKgH,oBAGTE,EAAe1B,OAAS,SAASF,EAAOI,GACtCJ,GAAS,EAET,IACEoC,GAAS1H,KAAKiF,SAASK,GACvBH,EAASuC,EACThC,KAAU,GAAQ,SAClBA,KAAU,GAAS,KAMrB,OAJIP,IACFnF,KAAKmF,GAAQG,GAGXI,KAAU,GAAQA,KAAU,EACvBA,GAECgC,GAGZR,EAAerE,SAAW,WACxB,MAAO7C,MAAK2H,KAAK,MAGf5B,EAAO3D,eAAgB,CACzB,GAAIwF,IACFtF,IAAK6E,EACLU,YAAY,EACZC,cAAc,EAEhB,KACE/B,EAAO3D,eAAe0D,EAAcF,EAAegC,GACnD,MAAOG,GACW,cAAdA,EAAGC,SACLJ,EAAkBC,YAAa,EAC/B9B,EAAO3D,eAAe0D,EAAcF,EAAegC,SAG9C7B,GAAOF,GAAWoC,kBAC3BnC,EAAamC,iBAAiBrC,EAAeuB,KAG/CvG,MAoEN,IAAIsH,YACFC,QAAS,cAGTC,YACAC,OACAC,UACAC,WACAC,QACAC,aACAC,SAEAC,gBAAiB,IACjBC,wBAAyB,UAEzBC,eAAgB,aAEhBC,aAAc,EACdC,UAAc,EAEdC,cAAgB,EAChBC,UAAgB,GAChBC,WAAgB,GAChBC,UAAgB,GAChBC,QAAgB,EAChBC,WAAgB,KAYlB,SAAUC,EAASC,GACM,kBAAVC,SAAwBA,OAAOC,IAEtCD,OAAOF,GACiB,mBAAVI,SAA2C,gBAAXC,SAE9CD,OAAOC,QAAUL,IAGjBC,EAAKK,MAAQN,KAElB,WAwBC,QAASO,GAAaC,EAAGC,GACrB,GAAIC,SAAWF,GAAEC,EACjB,OAAOC,IAAKC,KAAgBD,GAAKE,IAAUJ,EAAEC,KAAa,WAALC,EAGzD,QAASG,GAAaL,EAAGC,GACrB,cAAiBD,GAAEC,IAAMG,IAAUJ,EAAEC,IAGzC,QAASK,GAAeN,EAAGC,GACvB,aAAcD,GAAEC,IAAMM,EAI1B,QAASC,GAA2BC,GAChC,MAAO,UAAST,EAAGU,GAEf,IADA,GAAI5F,GAAI4F,EAAM3I,OACP+C,KACH,IAAK2F,EAAST,EAAGU,EAAM5F,IACnB,OAAO,CAGf,QAAO,GASf,QAAS6F,GAAYC,GACjB,MAAOA,IAASC,EAAeD,EAAOE,IAAqBC,EAAkBH,EAAOI,GAGxF,QAASC,GAAQC,GACb,MAAOb,GAAaa,EAAK,QAAUA,EAAIC,KAAOD,EAAIE,qBAAqB,QAAQ,GAkCnF,QAASC,GAAWC,SACLC,UAAWhB,GAAaR,EAAawB,QAAS,QACrDA,QAAQC,IAAIF,GAIpB,QAASG,GAAWH,EAAKI,GACjBC,GAAaD,EACbE,MAAMN,GAEND,EAAWC,GAInB,QAASO,GAAKC,GACVC,EAAIC,aAAc,EAClBD,EAAIE,WAAY,EAChBR,EAAW,uDAAyDK,EAAQC,EAAIG,OAAOC,aAK3F,QAASC,GAAKd,GACVG,EAAW,kBAAoBH,EAAKS,EAAIG,OAAOG,aA+FnD,QAASC,GAAarE,GAClB,MAAOA,GAAG3B,SAAW2B,EAAGsE,aAAezM,OAAOmI,GAIlD,QAASuE,KACL,GAAKb,IAAaI,EAAIC,YAAtB,CAGA,GAAIS,GACAC,GAAqB,EAAOC,GAAsB,CAIlD5C,GAAaxI,SAAU,iBACvBkL,EAAYlL,SAASqL,cACjB/B,EAAe4B,EAAWI,IAAoB9B,EAAkB0B,EAAWK,KAC3EJ,GAAqB,GAI7B,IAAIvB,GAAOF,EAAQ1J,SACnB,KAAK4J,GAAuC,QAA/BA,EAAK4B,SAASC,cAEvB,WADAnB,GAAK,wBAWT,IAPIV,GAAQpB,EAAaoB,EAAM,qBAC3BsB,EAAYtB,EAAK8B,kBACbtC,EAAY8B,KACZE,GAAsB,KAIzBD,IAAuBC,EAExB,WADAd,GAAK,4CAITE,GAAIC,aAAc,EAClBD,EAAImB,UACAR,mBAAoBA,EACpBC,oBAAqBA,EAIzB,IAAI/C,GAAQuD,CACZ,KAAK,GAAIC,KAAcC,IACbzD,EAASyD,EAAQD,aAAwBE,IAC3C1D,EAAO4C,KAAK5C,EAAQmC,EAK5B,KAAK,GAAIjH,GAAI,EAAGW,EAAM8H,EAAcxL,OAAY0D,EAAJX,IAAWA,EACnD,IACIyI,EAAczI,GAAGiH,GACnB,MAAO9D,GACLkF,EAAe,+DAAiEb,EAAarE,GAC7FoD,EAAW8B,KAuBvB,QAASK,GAAKC,GACVA,EAAMA,GAAO7L,OACb4K,GAGA,KAAK,GAAI1H,GAAI,EAAGW,EAAMiI,EAAc3L,OAAY0D,EAAJX,IAAWA,EACnD4I,EAAc5I,GAAG2I,GAQzB,QAASH,GAAO/G,EAAMoH,EAAcC,GAChC1N,KAAKqG,KAAOA,EACZrG,KAAKyN,aAAeA,EACpBzN,KAAK8L,aAAc,EACnB9L,KAAK+L,WAAY,EACjB/L,KAAK0N,YAAcA,EA6CvB,QAASC,GAAatH,EAAMoH,EAAcG,GACtC,GAAIC,GAAY,GAAIT,GAAO/G,EAAMoH,EAAc,SAAS/D,GACpD,IAAKA,EAAOoC,YAAa,CACrBpC,EAAOoC,aAAc,CACrB,KACI8B,EAAS/B,EAAKnC,GACdA,EAAOqC,WAAY,EACrB,MAAOhE,GACL,GAAIkF,GAAe,WAAa5G,EAAO,qBAAuB+F,EAAarE,EAC3EoD,GAAW8B,GACPlF,EAAG+F,OACH3C,EAAWpD,EAAG+F,UAM9B,OADAX,GAAQ9G,GAAQwH,EACTA,EA8BX,QAASE,MAIT,QAASC,MAvZT,GAAI9D,GAAS,SAAUD,EAAW,WAAYI,EAAY,YAItDuC,GAAsB,iBAAkB,cAAe,eAAgB,YAAa,YACpF,2BAGAD,GAAmB,WAAY,iBAAkB,gBAAiB,SAAU,eAC5E,cAAe,WAAY,aAAc,qBAAsB,wBAAyB,iBACxF,kBAAmB,gBAAiB,aAAc,mBAAoB,aAAc,WAAY,UAEhG7B,GAAuB,iBAAkB,eAAgB,cAAe,gBAAiB,WAAY,QAGrGF,GAAoB,WAAY,mBAAoB,YAAa,oBAAqB,gBAAiB,SACvG,cAAe,yBAiCfD,EAAiBL,EAA2BT,GAC5CoE,EAAiB3D,EAA2BH,GAC5CU,EAAoBP,EAA2BF,GAU/C+C,KAEA1B,QAAoB/J,SAAU2I,SAAoBhJ,WAAYgJ,EAE9D6D,GACArE,aAAcA,EACdM,aAAcA,EACdC,eAAgBA,EAChBO,eAAgBA,EAChBsD,eAAgBA,EAChBpD,kBAAmBA,EACnBJ,YAAaA,EACbM,QAASA,GAGTc,GACA1D,QAAS,uBACT2D,aAAa,EACbL,UAAWA,EACXM,WAAW,EACXmC,KAAMA,EACNlB,YACAG,QAASA,EACTnB,QACIC,aAAa,EACbE,aAAa,EACbgC,iBAAiB,EACjBC,qBAAwBC,sBAAuBhE,GAAa,EAAOgE,qBAwB3ExC,GAAIF,KAAOA,EAMXE,EAAIK,KAAOA,CAGX,IAAIoC,QACGC,gBACHL,EAAKI,OAASA,EAAS,SAASE,EAAKhE,EAAOiE,GACxC,GAAI3E,GAAGC,CACP,KAAK,GAAInF,KAAK4F,GACNA,EAAM+D,eAAe3J,KACrBkF,EAAI0E,EAAI5J,GACRmF,EAAIS,EAAM5F,GACN6J,GAAc,OAAN3E,GAA0B,gBAALA,IAAuB,OAANC,GAA0B,gBAALA,IACnEuE,EAAOxE,EAAGC,GAAG,GAEjByE,EAAI5J,GAAKmF,EAOjB,OAHIS,GAAM+D,eAAe,cACrBC,EAAI3L,SAAW2H,EAAM3H,UAElB2L,GAGXN,EAAKQ,cAAgB,SAASC,EAAcC,GACxC,GAAIC,KAKJ,OAJAP,GAAOO,EAASD,GACZD,GACAL,EAAOO,EAASF,GAEbE,IAGXlD,EAAK,gCAIJF,GACDE,EAAK,mCAIT,WACI,GAAImD,EAEJ,IAAIrD,EAAW,CACX,GAAIsD,GAAK1N,SAASwD,cAAc,MAChCkK,GAAGC,YAAY3N,SAASwD,cAAc,QACtC,IAAIpB,MAAWA,KACf,KACoD,GAA5CA,EAAMtC,KAAK4N,EAAGE,WAAY,GAAG,GAAGC,WAChCJ,EAAU,SAASK,GACf,MAAO1L,GAAMtC,KAAKgO,EAAW,KAGvC,MAAOrO,KAGRgO,IACDA,EAAU,SAASK,GAEf,IAAK,GADDC,MACKxK,EAAI,EAAGW,EAAM4J,EAAUtN,OAAY0D,EAAJX,IAAWA,EAC/CwK,EAAIxK,GAAKuK,EAAUvK,EAEvB,OAAOwK,KAIflB,EAAKY,QAAUA,IAKnB,IAAIO,EACA5D,KACI5B,EAAaxI,SAAU,oBACvBgO,EAAc,SAASb,EAAKc,EAAW3O,GACnC6N,EAAIhO,iBAAiB8O,EAAW3O,GAAU,IAEvCkJ,EAAaxI,SAAU,eAC9BgO,EAAc,SAASb,EAAKc,EAAW3O,GACnC6N,EAAIjN,YAAY,KAAO+N,EAAW3O,IAGtCgL,EAAK,0EAGTuC,EAAKmB,YAAcA,EAGvB,IAAIhC,KAmEJxB,GAAIS,KAAOA,EAGXT,EAAI0D,gBAAkB,SAAS5O,GACvBkL,EAAIC,YACJnL,EAASkL,GAETwB,EAAc7L,KAAKb,GAI3B,IAAI6M,KAEJ3B,GAAI2D,gBAAkB,SAAS7O,GAC3B6M,EAAchM,KAAKb,IAanB8K,IACAI,EAAIyB,KAAOzB,EAAI4D,uBAAyBnC,GAW5CF,EAAOvN,WACHyM,KAAM,WAEF,IAAK,GAA6CoD,GAAgBxC,EAD9DyC,EAAsB3P,KAAKyN,iBACtB7I,EAAI,EAAGW,EAAMoK,EAAoB9N,OAAwC0D,EAAJX,IAAWA,EAAG,CAIxF,GAHAsI,EAAayC,EAAoB/K,GAEjC8K,EAAiBvC,EAAQD,KACpBwC,GAAoBA,YAA0BtC,IAC/C,KAAM,IAAIhG,OAAM,oBAAsB8F,EAAa,cAKvD,IAFAwC,EAAepD,QAEVoD,EAAe3D,UAChB,KAAM,IAAI3E,OAAM,oBAAsB8F,EAAa,mBAK3DlN,KAAK0N,YAAY1N,OAGrB2L,KAAM,SAASC,GAGX,KAFA5L,MAAK8L,aAAc,EACnB9L,KAAK+L,WAAY,EACX,GAAI3E,OAAM,WAAapH,KAAKqG,KAAO,qBAAuBuF,IAGpEM,KAAM,SAASd,GACXS,EAAIK,KAAK,UAAYlM,KAAKqG,KAAO,KAAO+E,IAG5CwE,kBAAmB,SAASC,EAAYC,GACpCjE,EAAIK,KAAK,eAAiB2D,EAAa,cAAgB7P,KAAKqG,KAAO,6BAC/DyJ,EAAc,aAGtBC,YAAa,SAAS3E,GAClB,MAAO,IAAIhE,OAAM,kBAAoBpH,KAAKqG,KAAO,YAAc+E,KAwBvES,EAAI8B,aAAe,SAAStH,GAExB,GAAIuH,GAAUH,CACU,IAApB/J,UAAU7B,QACV+L,EAAWlK,UAAU,GACrB+J,OAEAG,EAAWlK,UAAU,GACrB+J,EAAe/J,UAAU,GAG7B,IAAIgG,GAASiE,EAAatH,EAAMoH,EAAcG,EAG1C/B,GAAIC,aAAeD,EAAIE,WACvBrC,EAAO4C,QAIfT,EAAImE,iBAAmB,SAAS3J,EAAMoH,EAAcG,GAChDD,EAAatH,EAAMoH,EAAcG,IAQrC/B,EAAIkC,eAAiBA,EACrBlC,EAAIoE,eAAiB,GAAIlC,GAGzBlC,EAAIqE,mBAAqB,GAAIlC,GAK7BnC,EAAImE,iBAAiB,aAAe,SAASnE,EAAKnC,GAoD9C,QAASyG,GAAgB3L,GACrB,GAAI4L,EACJ,cAAc5L,GAAK6L,cAAgBC,GAAuC,QAA5BF,EAAK5L,EAAK6L,eAAgC,gCAAND,EAGtF,QAASG,GAAc/L,GACnB,GAAIgM,GAAShM,EAAKE,UAClB,OAA2B,IAAnB8L,EAAOtB,SAAiBsB,EAAS,KAG7C,QAASC,GAAajM,GAElB,IADA,GAAII,GAAI,EACAJ,EAAOA,EAAKkM,mBACd9L,CAEN,OAAOA,GAGX,QAAS+L,GAAcnM,GACnB,OAAQA,EAAK0K,UACT,IAAK,GACL,IAAK,IACD,MAAO,EACX,KAAK,GACL,IAAK,GACD,MAAO1K,GAAK3C,MAChB,SACI,MAAO2C,GAAKyK,WAAWpN,QAInC,QAAS+O,GAAkBC,EAAOC,GAC9B,GAAoBC,GAAhBC,IACJ,KAAKD,EAAIF,EAAOE,EAAGA,EAAIA,EAAErM,WACrBsM,EAAUxP,KAAKuP,EAGnB,KAAKA,EAAID,EAAOC,EAAGA,EAAIA,EAAErM,WACrB,GAAIuM,EAAcD,EAAWD,GACzB,MAAOA,EAIf,OAAO,MAGX,QAASG,GAAaC,EAAUC,EAAYC,GAExC,IADA,GAAIN,GAAIM,EAAiBD,EAAaA,EAAW1M,WAC1CqM,GAAG,CACN,GAAIA,IAAMI,EACN,OAAO,CAEPJ,GAAIA,EAAErM,WAGd,OAAO,EAGX,QAAS4M,GAAiBH,EAAUC,GAChC,MAAOF,GAAaC,EAAUC,GAAY,GAG9C,QAASG,GAAqB/M,EAAM2M,EAAUE,GAE1C,IADA,GAAItH,GAAGgH,EAAIM,EAAiB7M,EAAOA,EAAKE,WACjCqM,GAAG,CAEN,GADAhH,EAAIgH,EAAErM,WACFqF,IAAMoH,EACN,MAAOJ,EAEXA,GAAIhH,EAER,MAAO,MAGX,QAASyH,GAAoBhN,GACzB,GAAIwF,GAAIxF,EAAK0K,QACb,OAAY,IAALlF,GAAe,GAALA,GAAe,GAALA,EAG/B,QAASyH,GAAoBjN,GACzB,IAAKA,EACD,OAAO,CAEX,IAAIwF,GAAIxF,EAAK0K,QACb,OAAY,IAALlF,GAAe,GAALA,EAGrB,QAAS0H,GAAYlN,EAAMmN,GACvB,GAAIC,GAAWD,EAAcE,YAAarB,EAASmB,EAAcjN,UAMjE,OALIkN,GACApB,EAAOsB,aAAatN,EAAMoN,GAE1BpB,EAAOxB,YAAYxK,GAEhBA,EAIX,QAASuN,GAAcvN,EAAMiD,EAAOuK,GAChC,GAAIC,GAAUzN,EAAK0N,WAAU,EAM7B,IALAD,EAAQE,WAAW,EAAG1K,GACtBjD,EAAK2N,WAAW1K,EAAOjD,EAAK3C,OAAS4F,GACrCiK,EAAYO,EAASzN,GAGjBwN,EACA,IAAK,GAAWI,GAAPxN,EAAI,EAAawN,EAAWJ,EAAoBpN,MAEjDwN,EAAS5N,MAAQA,GAAQ4N,EAASC,OAAS5K,GAC3C2K,EAAS5N,KAAOyN,EAChBG,EAASC,QAAU5K,GAGd2K,EAAS5N,MAAQA,EAAKE,YAAc0N,EAASC,OAAS5B,EAAajM,MACtE4N,EAASC,MAIvB,OAAOJ,GAGX,QAASK,GAAY9N,GACjB,GAAqB,GAAjBA,EAAK0K,SACL,MAAO1K,EACJ,UAAWA,GAAK+N,eAAiBjC,EACpC,MAAO9L,GAAK+N,aACT,UAAW/N,GAAKnD,UAAYiP,EAC/B,MAAO9L,GAAKnD,QACT,IAAImD,EAAKE,WACZ,MAAO4N,GAAY9N,EAAKE,WAExB,MAAMgF,GAAOqG,YAAY,2CAIjC,QAASyC,GAAUhO,GACf,GAAIwG,GAAMsH,EAAY9N,EACtB,UAAWwG,GAAIyH,aAAenC,EAC1B,MAAOtF,GAAIyH,WACR,UAAWzH,GAAI0H,cAAgBpC,EAClC,MAAOtF,GAAI0H,YAEX,MAAMhJ,GAAOqG,YAAY,uCAIjC,QAAS4C,GAAkBC,GACvB,SAAWA,GAASC,iBAAmBvC,EACnC,MAAOsC,GAASC,eACb,UAAWD,GAASE,eAAiBxC,EACxC,MAAOsC,GAASE,cAAczR,QAE9B,MAAMqI,GAAOqG,YAAY,kEAIjC,QAASgD,GAAgBH,GACrB,SAAWA,GAASE,eAAiBxC,EACjC,MAAOsC,GAASE,aACb,UAAWF,GAASC,iBAAmBvC,EAC1C,MAAOsC,GAASC,gBAAgBJ,WAEhC,MAAM/I,GAAOqG,YAAY,8DAKjC,QAASiD,GAASxE,GACd,MAAOA,IAAON,EAAKrE,aAAa2E,EAAK,eAAiBN,EAAK/D,aAAaqE,EAAK,YAGjF,QAASyE,GAAmBzE,EAAK9E,EAAQwJ,GACrC,GAAIlI,EAiBJ,IAfKwD,EAKIN,EAAK9D,eAAeoE,EAAK,YAC9BxD,EAAuB,GAAhBwD,EAAIU,UAA8C,UAA7BV,EAAI2E,QAAQrG,cACpC6F,EAAkBnE,GAAO8D,EAAY9D,GAIpCwE,EAASxE,KACdxD,EAAMwD,EAAInN,UAXV2J,EAAM3J,UAcL2J,EACD,KAAMtB,GAAOqG,YAAYmD,EAAa,oDAG1C,OAAOlI,GAGX,QAASoI,GAAiB5O,GAEtB,IADA,GAAIgM,GACKA,EAAShM,EAAKE,YACnBF,EAAOgM,CAEX,OAAOhM,GAGX,QAAS6O,GAAcC,EAAOC,EAASC,EAAOC,GAE1C,GAAIC,GAAOnK,EAAMoK,EAAQC,EAAQ7C,CACjC,IAAIuC,GAASE,EAET,MAAOD,KAAYE,EAAU,EAAeA,EAAVF,EAAqB,GAAK,CACzD,IAAMG,EAAQnC,EAAqBiC,EAAOF,GAAO,GAEpD,MAAOC,IAAW9C,EAAaiD,GAAS,GAAK,CAC1C,IAAMA,EAAQnC,EAAqB+B,EAAOE,GAAO,GAEpD,MAAO/C,GAAaiD,GAASD,EAAW,GAAK,CAG7C,IADAlK,EAAOqH,EAAkB0C,EAAOE,IAC3BjK,EACD,KAAM,IAAInC,OAAM,qDAOpB,IAHAuM,EAAUL,IAAU/J,EAAQA,EAAOgI,EAAqB+B,EAAO/J,GAAM,GACrEqK,EAAUJ,IAAUjK,EAAQA,EAAOgI,EAAqBiC,EAAOjK,GAAM,GAEjEoK,IAAWC,EAEX,KAAMlK,GAAOqG,YAAY,kEAGzB,KADAgB,EAAIxH,EAAKsK,WACF9C,GAAG,CACN,GAAIA,IAAM4C,EACN,MAAO,EACJ,IAAI5C,IAAM6C,EACb,MAAO,EAEX7C,GAAIA,EAAEc,aAWtB,QAASiC,GAAatP,GAClB,GAAIuM,EACJ,KAEI,MADAA,GAAIvM,EAAKE,YACF,EACT,MAAO5D,GACL,OAAO,GAgBf,QAASiT,GAAYvP,GACjB,IAAKA,EACD,MAAO,WAEX,IAAIwP,GAAmBF,EAAatP,GAChC,MAAO,eAEX,IAAIgN,EAAoBhN,GACpB,MAAO,IAAMA,EAAKyP,KAAO,GAE7B,IAAqB,GAAjBzP,EAAK0K,SAAe,CACpB,GAAIgF,GAAS1P,EAAK2P,GAAK,QAAU3P,EAAK2P,GAAK,IAAM,EACjD,OAAO,IAAM3P,EAAKqI,SAAWqH,EAAS,WAAazD,EAAajM,GAAQ,WAAaA,EAAKyK,WAAWpN,OAAS,MAAQ2C,EAAK4P,WAAa,6BAA6B3Q,MAAM,EAAG,IAAM,IAExL,MAAOe,GAAKqI,SAGhB,QAASwH,GAAyB7P,GAE9B,IADA,GAA2D8P,GAAvDC,EAAWjC,EAAY9N,GAAMgQ,yBACxBF,EAAQ9P,EAAKqP,YAClBU,EAASvF,YAAYsF,EAEzB,OAAOC,GAgBX,QAASE,GAAalL,GAClBvJ,KAAKuJ,KAAOA,EACZvJ,KAAK0U,MAAQnL,EAiCjB,QAASoL,GAAepL,GACpB,MAAO,IAAIkL,GAAalL,GAG5B,QAASqL,GAAYpQ,EAAM6N,GACvBrS,KAAKwE,KAAOA,EACZxE,KAAKqS,OAASA,EAiBlB,QAAS9L,GAAasO,GAClB7U,KAAKsG,KAAOtG,KAAK6U,GACjB7U,KAAK6U,SAAWA,EAChB7U,KAAKoG,QAAU,iBAAmBpG,KAAK6U,SApa3C,GAAIvE,GAAQ,YACRpC,EAAOrC,EAAIqC,IAGVA,GAAKvD,eAAetJ,UAAW,yBAA0B,gBAAiB,oBAC3EqI,EAAOiC,KAAK,2CAGXuC,EAAKrE,aAAaxI,SAAU,yBAC7BqI,EAAOiC,KAAK,+CAGhB,IAAIoD,GAAK1N,SAASwD,cAAc,MAC3BqJ,GAAKvD,eAAeoE,GAAK,eAAgB,cAAe,eACpDb,EAAKD,eAAec,GAAK,kBAAmB,cAAe,aAAc,iBAC9ErF,EAAOiC,KAAK,qCAIXuC,EAAK9D,eAAe2E,EAAI,cACzBrF,EAAOiC,KAAK,wCAGhB,IAAImJ,GAAWzT,SAAS0T,eAAe,OAClC7G,GAAKvD,eAAemK,GAAW,YAAa,aAAc,aAAc,aAAc,eAClF5G,EAAKD,eAAec,GAAK,kBAAmB,cAAe,aAAc,iBACzEb,EAAKrD,kBAAkBiK,GAAW,WACvCpL,EAAOiC,KAAK,sCAQhB,IAAIsF,GAKA,SAAS7B,EAAK4F,GAEV,IADA,GAAIpQ,GAAIwK,EAAIvN,OACL+C,KACH,GAAIwK,EAAIxK,KAAOoQ,EACX,OAAO,CAGf,QAAO,GA0PXhB,GAAkB,GAYtB,WACI,GAAIjF,GAAK1N,SAASwD,cAAc,IAChCkK,GAAGqF,UAAY,GACf,IAAIU,GAAW/F,EAAG8E,UAClB9E,GAAGqF,UAAY,OACfJ,EAAkBF,EAAagB,GAE/BjJ,EAAImB,SAASgH,gBAAkBA,IA8BnC,IAAIiB,SACOvT,QAAOwT,kBAAoB5E,EAClC2E,EAA2B,SAASlG,EAAIoG,GACpC,MAAO3C,GAAUzD,GAAImG,iBAAiBnG,EAAI,MAAMoG,UAEtC9T,UAAS+T,gBAAgBC,cAAgB/E,EACvD2E,EAA2B,SAASlG,EAAIoG,GACpC,MAAOpG,GAAGsG,aAAaF,IAG3BzL,EAAOiC,KAAK,yDAQhB8I,EAAa5U,WACTyV,SAAU,KAEVC,QAAS,WACL,QAASvV,KAAK0U,OAGlBc,KAAM,WACF,GACIlB,GAAOkB,EADPzE,EAAI/Q,KAAKsV,SAAWtV,KAAK0U,KAE7B,IAAI1U,KAAKsV,SAEL,GADAhB,EAAQvD,EAAE8C,WAEN7T,KAAK0U,MAAQJ,MACV,CAEH,IADAkB,EAAO,KACCzE,IAAM/Q,KAAKuJ,QAAWiM,EAAOzE,EAAEc,cACnCd,EAAIA,EAAErM,UAEV1E,MAAK0U,MAAQc,EAGrB,MAAOxV,MAAKsV,UAGhBG,OAAQ,WACJzV,KAAKsV,SAAWtV,KAAK0U,MAAQ1U,KAAKuJ,KAAO,OAajDqL,EAAY/U,WACR6V,OAAQ,SAASC,GACb,QAASA,GAAO3V,KAAKwE,OAASmR,EAAInR,MAAQxE,KAAKqS,QAAUsD,EAAItD,QAGjEuD,QAAS,WACL,MAAO,gBAAkB7B,EAAY/T,KAAKwE,MAAQ,IAAMxE,KAAKqS,OAAS,MAG1ExP,SAAU,WACN,MAAO7C,MAAK4V,YAUpBrP,EAAa1G,WACTgW,eAAgB,EAChBC,sBAAuB,EACvBC,mBAAoB,EACpBC,4BAA6B,EAC7BC,cAAe,EACfC,kBAAmB,EACnBC,kBAAmB,GACnBC,sBAAuB,IAG3B7P,EAAa1G,UAAUgD,SAAW,WAC9B,MAAO7C,MAAKoG,SAGhByF,EAAIxD,KACA4I,cAAeA,EACfd,gBAAiBA,EACjBI,cAAeA,EACfE,aAAcA,EACdE,cAAeA,EACfC,kBAAmBA,EACnBM,aAAcA,EACdI,iBAAkBA,EAClBC,qBAAsBA,EACtBC,oBAAqBA,EACrBC,oBAAqBA,EACrBC,YAAaA,EACbK,cAAeA,EACfO,YAAaA,EACbE,UAAWA,EACXO,gBAAiBA,EACjBJ,kBAAmBA,EACnB5H,QAASmD,EAAKnD,QACdiI,SAAUA,EACVC,mBAAoBA,EACpBG,iBAAkBA,EAClBC,cAAeA,EACfS,aAAcA,EACdC,YAAaA,EACbkB,yBAA0BA,EAC1BZ,yBAA0BA,EAC1BM,eAAgBA,EAChBC,YAAaA,GAGjB/I,EAAItF,aAAeA,IAMvBsF,EAAImE,iBAAiB,YAAa,WAAY,SAASnE,GAsBnD,QAASwK,GAA2B7R,EAAMkG,GACtC,MAAyB,IAAjBlG,EAAK0K,WACLoC,EAAiB9M,EAAMkG,EAAM4L,iBAAmBhF,EAAiB9M,EAAMkG,EAAM6L,eAGzF,QAASC,GAAiB9L,GACtB,MAAOA,GAAMrJ,UAAYiR,EAAY5H,EAAM4L,gBAG/C,QAASG,GAAsBjS,GAC3B,MAAO,IAAIoQ,GAAYpQ,EAAKE,WAAY+L,EAAajM,IAGzD,QAASkS,GAAqBlS,GAC1B,MAAO,IAAIoQ,GAAYpQ,EAAKE,WAAY+L,EAAajM,GAAQ,GAGjE,QAASmS,GAAqBnS,EAAMuM,EAAGjH,GACnC,GAAI8M,GAAqC,IAAjBpS,EAAK0K,SAAiB1K,EAAKqP,WAAarP,CAYhE,OAXIgN,GAAoBT,GAChBjH,GAAKiH,EAAElP,OACPwG,EAAIqJ,YAAYlN,EAAMuM,GAEtBA,EAAErM,WAAWoN,aAAatN,EAAW,GAALsF,EAASiH,EAAIgB,EAAchB,EAAGjH,IAE3DA,GAAKiH,EAAE9B,WAAWpN,OACzBkP,EAAE/B,YAAYxK,GAEduM,EAAEe,aAAatN,EAAMuM,EAAE9B,WAAWnF,IAE/B8M,EAGX,QAASC,GAAgBC,EAAQC,EAAQC,GAIrC,GAHAC,EAAiBH,GACjBG,EAAiBF,GAEbP,EAAiBO,IAAWP,EAAiBM,GAC7C,KAAM,IAAIvQ,GAAa,qBAG3B,IAAI2Q,GAAkB7D,EAAcyD,EAAOR,eAAgBQ,EAAOK,YAAaJ,EAAOR,aAAcQ,EAAOK,WACvGC,EAAgBhE,EAAcyD,EAAOP,aAAcO,EAAOM,UAAWL,EAAOT,eAAgBS,EAAOI,YAEvG,OAAOH,GAA4C,GAAnBE,GAAwBG,GAAiB,EAAsB,EAAlBH,GAAuBG,EAAgB,EAGxH,QAASC,GAAaC,GAElB,IAAK,GADDC,GACKhT,EAAwEiT,EAAlEC,EAAOlB,EAAiBe,EAAS7M,OAAO8J,yBAAuChQ,EAAO+S,EAAS/B,QAAU,CASpH,GARAgC,EAAoBD,EAASI,6BAC7BnT,EAAOA,EAAK0N,WAAWsF,GACnBA,IACAC,EAAcF,EAASK,qBACvBpT,EAAKwK,YAAYsI,EAAaG,IAC9BA,EAAYhC,UAGK,IAAjBjR,EAAK0K,SACL,KAAM,IAAI3I,GAAa,wBAE3BmR,GAAK1I,YAAYxK,GAErB,MAAOkT,GAGX,QAASG,GAAeC,EAAeC,EAAMC,GACzC,GAAIC,GAAIlH,CACRiH,GAAgBA,IAAmBE,MAAM,EACzC,KAAK,GAAI1T,GAAM2T,EAAkB3T,EAAOsT,EAActC,QAClD,GAAIsC,EAAcH,6BAA8B,CAC5C,GAAII,EAAKvT,MAAU,EAEf,YADAwT,EAAcE,MAAO,EAQrB,IAHAC,EAAmBL,EAAcF,qBACjCC,EAAeM,EAAkBJ,EAAMC,GACvCG,EAAiB1C,SACbuC,EAAcE,KACd,WAOR,KADAD,EAAK5P,EAAIsM,eAAenQ,GACfuM,EAAIkH,EAAGzC,QACZ,GAAIuC,EAAKhH,MAAO,EAEZ,YADAiH,EAAcE,MAAO,GAQzC,QAASE,GAAcb,GAEnB,IADA,GAAIE,GACGF,EAAS/B,QACR+B,EAASI,8BACTF,EAAcF,EAASK,qBACvBQ,EAAcX,GACdA,EAAYhC,UAEZ8B,EAAS/P,SAKrB,QAAS6Q,GAAed,GACpB,IAAK,GAAI/S,GAAwEiT,EAAlEC,EAAOlB,EAAiBe,EAAS7M,OAAO8J,yBAAuChQ,EAAO+S,EAAS/B,QAAU,CAUpH,GARI+B,EAASI,8BACTnT,EAAOA,EAAK0N,WAAU,GACtBuF,EAAcF,EAASK,qBACvBpT,EAAKwK,YAAYqJ,EAAeZ,IAChCA,EAAYhC,UAEZ8B,EAAS/P,SAEQ,IAAjBhD,EAAK0K,SACL,KAAM,IAAI3I,GAAa,wBAE3BmR,GAAK1I,YAAYxK,GAErB,MAAOkT,GAGX,QAASY,GAAgB5N,EAAO6N,EAAWC,GACvC,GAAyDC,GAArDC,KAAqBH,IAAaA,EAAU1W,QAC5C8W,IAAiBH,CACjBE,KACAD,EAAQ,GAAIG,QAAO,KAAOL,EAAU5Q,KAAK,KAAO,MAGpD,IAAIlD,KAsBJ,OArBAoT,GAAe,GAAIgB,GAAcnO,GAAO,GAAQ,SAASlG,GACrD,KAAIkU,IAAoBD,EAAMhS,KAAKjC,EAAK0K,WAGpCyJ,IAAiBH,EAAOhU,IAA5B,CAKA,GAAIsU,GAAKpO,EAAM4L,cACf,IAAI9R,GAAQsU,IAAMtH,EAAoBsH,IAAOpO,EAAMyM,aAAe2B,EAAGjX,OAArE,CAIA,GAAIkX,GAAKrO,EAAM6L,YACX/R,IAAQuU,GAAMvH,EAAoBuH,IAA0B,GAAnBrO,EAAM0M,WAInD3S,EAAMjD,KAAKgD,OAERC,EAGX,QAASmR,GAAQlL,GACb,GAAIrE,GAAgC,mBAAjBqE,GAAMsO,QAA0B,QAAUtO,EAAMsO,SACnE,OAAO,IAAM3S,EAAO,IAAMgC,EAAI0L,YAAYrJ,EAAM4L,gBAAkB,IAAM5L,EAAMyM,YAAc,KACpF9O,EAAI0L,YAAYrJ,EAAM6L,cAAgB,IAAM7L,EAAM0M,UAAY,KAO1E,QAASyB,GAAcnO,EAAOuO,GAK1B,GAJAjZ,KAAK0K,MAAQA,EACb1K,KAAKiZ,gCAAkCA,GAGlCvO,EAAMwO,UAAW,CAClBlZ,KAAK8Y,GAAKpO,EAAM4L,eAChBtW,KAAKmZ,GAAKzO,EAAMyM,YAChBnX,KAAK+Y,GAAKrO,EAAM6L,aAChBvW,KAAKoZ,GAAK1O,EAAM0M,SAChB,IAAI7N,GAAOmB,EAAM2O,uBAEbrZ,MAAK8Y,KAAO9Y,KAAK+Y,IAAMvH,EAAoBxR,KAAK8Y,KAChD9Y,KAAKsZ,2BAA4B,EACjCtZ,KAAKuZ,OAASvZ,KAAKwZ,MAAQxZ,KAAK0U,MAAQ1U,KAAK8Y,KAE7C9Y,KAAKuZ,OAASvZ,KAAK0U,MAAS1U,KAAK8Y,KAAOvP,GAASiI,EAAoBxR,KAAK8Y,IACxCvH,EAAqBvR,KAAK8Y,GAAIvP,GAAM,GAAlEvJ,KAAK8Y,GAAG7J,WAAWjP,KAAKmZ,IAC5BnZ,KAAKwZ,MAASxZ,KAAK+Y,KAAOxP,GAASiI,EAAoBxR,KAAK+Y,IACtBxH,EAAqBvR,KAAK+Y,GAAIxP,GAAM,GAAtEvJ,KAAK+Y,GAAG9J,WAAWjP,KAAKoZ,GAAK,KAqG7C,QAASK,GAAqBlB,GAC1B,MAAO,UAAS/T,EAAM6M,GAElB,IADA,GAAIrH,GAAG+G,EAAIM,EAAiB7M,EAAOA,EAAKE,WACjCqM,GAAG,CAEN,GADA/G,EAAI+G,EAAE7B,SACF+B,EAAcsH,EAAWvO,GACzB,MAAO+G,EAEXA,GAAIA,EAAErM,WAEV,MAAO,OAQf,QAASgV,GAAsClV,EAAMmV,GACjD,GAAIC,GAAiCpV,EAAMmV,GACvC,KAAM,IAAIpT,GAAa,yBAI/B,QAASsT,GAAoBrV,EAAMsV,GAC/B,IAAK7I,EAAc6I,EAActV,EAAK0K,UAClC,KAAM,IAAI3I,GAAa,yBAI/B,QAASwT,GAAkBvV,EAAM6N,GAC7B,GAAa,EAATA,GAAcA,GAAUb,EAAoBhN,GAAQA,EAAK3C,OAAS2C,EAAKyK,WAAWpN,QAClF,KAAM,IAAI0E,GAAa,kBAI/B,QAASyT,GAA6BnJ,EAAOC,GACzC,GAAImJ,GAA+BpJ,GAAO,KAAUoJ,GAA+BnJ,GAAO,GACtF,KAAM,IAAIvK,GAAa,sBAI/B,QAAS2T,GAAsB1V,GAC3B,GAAI2V,GAAoB3V,GAAM,GAC1B,KAAM,IAAI+B,GAAa,+BAI/B,QAAS6T,GAAW5V,EAAMqQ,GACtB,IAAKrQ,EACD,KAAM,IAAI+B,GAAasO,GAI/B,QAASwF,GAAS7V,GACd,MAAQwP,IAAmB3L,EAAIyL,aAAatP,KACvCyM,EAAcqJ,EAAwB9V,EAAK0K,YAAc+K,GAA+BzV,GAAM,GAGvG,QAAS+V,GAAc/V,EAAM6N,GACzB,MAAOA,KAAWb,EAAoBhN,GAAQA,EAAK3C,OAAS2C,EAAKyK,WAAWpN,QAGhF,QAAS2Y,GAAa9P,GAClB,QAAUA,EAAM4L,kBAAoB5L,EAAM6L,eACjC8D,EAAS3P,EAAM4L,kBACf+D,EAAS3P,EAAM6L,eAChBgE,EAAc7P,EAAM4L,eAAgB5L,EAAMyM,cAC1CoD,EAAc7P,EAAM6L,aAAc7L,EAAM0M,WAGpD,QAASH,GAAiBvM,GACtB,IAAK8P,EAAa9P,GACd,KAAM,IAAItD,OAAM,6DAA+DsD,EAAMkL,UAAY,KAyFzG,QAAS6E,GAAqB/P,EAAOsH,GACjCiF,EAAiBvM,EAEjB,IAAIoO,GAAKpO,EAAM4L,eAAgB6C,EAAKzO,EAAMyM,YAAa4B,EAAKrO,EAAM6L,aAAc6C,EAAK1O,EAAM0M,UACvFsD,EAAgB5B,IAAOC,CAEvBvH,GAAoBuH,IAAOK,EAAK,GAAKA,EAAKL,EAAGlX,QAC7CkQ,EAAcgH,EAAIK,EAAIpH,GAGtBR,EAAoBsH,IAAOK,EAAK,GAAKA,EAAKL,EAAGjX,SAC7CiX,EAAK/G,EAAc+G,EAAIK,EAAInH,GACvB0I,GACAtB,GAAMD,EACNJ,EAAKD,GACEC,GAAMD,EAAGpU,YAAc0U,GAAM3I,EAAaqI,IACjDM,IAEJD,EAAK,GAETzO,EAAMiQ,eAAe7B,EAAIK,EAAIJ,EAAIK,GAGrC,QAASwB,GAAYlQ,GACjBuM,EAAiBvM,EACjB,IAAImQ,GAAYnQ,EAAM2O,wBAAwB3U,WAAWwN,WAAU,EAEnE,OADA2I,GAAU7L,YAAatE,EAAMoQ,iBACtBD,EAAUzG,UA8WrB,QAAS2G,GAAgCvM,GACrCA,EAAIwM,eAAiBC,GACrBzM,EAAI0M,aAAeC,GACnB3M,EAAI4M,WAAaC,GACjB7M,EAAI8M,aAAeC,GAEnB/M,EAAIgN,YAAcC,GAClBjN,EAAIkN,WAAaC,GACjBnN,EAAIoN,sBAAwBC,GAC5BrN,EAAIsN,YAAcC,GAGtB,QAASC,GAAwBC,GAC7BlB,EAAgCkB,GAChClB,EAAgCkB,EAAYpc,WAGhD,QAASqc,GAA0BC,EAASC,GACxC,MAAO,YACHnF,EAAiBjX,KAEjB,IAKIwE,GAAM6X,EALNvD,EAAK9Y,KAAKsW,eAAgB6C,EAAKnZ,KAAKmX,YAAa5N,EAAOvJ,KAAKqZ,wBAE7D9B,EAAW,GAAIsB,GAAc7Y,MAAM,EAInC8Y,KAAOvP,IACP/E,EAAO+M,EAAqBuH,EAAIvP,GAAM,GACtC8S,EAAW3F,EAAqBlS,GAChCsU,EAAKuD,EAAS7X,KACd2U,EAAKkD,EAAShK,QAIlBwF,EAAeN,EAAU2C,GAEzB3C,EAAS+E,OAGT,IAAIlc,GAAc+b,EAAQ5E,EAM1B,OALAA,GAAS9B,SAGT2G,EAAgBpc,KAAM8Y,EAAIK,EAAIL,EAAIK,GAE3B/Y,GAIf,QAASmc,GAAqBN,EAAaG,GACvC,QAASI,GAA4BC,EAAUC,GAC3C,MAAO,UAASlY,GACZqV,EAAoBrV,EAAMmY,GAC1B9C,EAAoBzG,EAAiB5O,GAAO8V,EAE5C,IAAI+B,IAAYI,EAAWhG,EAAwBC,GAAsBlS,IACxEkY,EAAUE,EAAgBC,GAAa7c,KAAMqc,EAAS7X,KAAM6X,EAAShK,SAI9E,QAASuK,GAAclS,EAAOlG,EAAM6N,GAChC,GAAI0G,GAAKrO,EAAM6L,aAAc6C,EAAK1O,EAAM0M,WACpC5S,IAASkG,EAAM4L,gBAAkBjE,IAAW3H,EAAMyM,gBAG9C/D,EAAiB5O,IAAS4O,EAAiB2F,IAA8C,GAAvC1F,EAAc7O,EAAM6N,EAAQ0G,EAAIK,MAClFL,EAAKvU,EACL4U,EAAK/G,GAET+J,EAAgB1R,EAAOlG,EAAM6N,EAAQ0G,EAAIK,IAIjD,QAASyD,GAAYnS,EAAOlG,EAAM6N,GAC9B,GAAIyG,GAAKpO,EAAM4L,eAAgB6C,EAAKzO,EAAMyM,aACtC3S,IAASkG,EAAM6L,cAAgBlE,IAAW3H,EAAM0M,cAG5ChE,EAAiB5O,IAAS4O,EAAiB0F,IAA8C,IAAvCzF,EAAc7O,EAAM6N,EAAQyG,EAAIK,MAClFL,EAAKtU,EACL2U,EAAK9G,GAET+J,EAAgB1R,EAAOoO,EAAIK,EAAI3U,EAAM6N,IAK7C,GAAIyK,GAAI,YACRA,GAAEjd,UAAYgM,EAAIoE,eAClBgM,EAAYpc,UAAY,GAAIid,GAE5B5O,EAAKI,OAAO2N,EAAYpc,WACpBkd,SAAU,SAASvY,EAAM6N,GACrBqH,EAAsClV,GAAM,GAC5CuV,EAAkBvV,EAAM6N,GAExBuK,EAAc5c,KAAMwE,EAAM6N,IAG9B2K,OAAQ,SAASxY,EAAM6N,GACnBqH,EAAsClV,GAAM,GAC5CuV,EAAkBvV,EAAM6N,GAExBwK,EAAY7c,KAAMwE,EAAM6N,IAW5BsI,eAAgB,WACZ,GAAIsC,GAAOvZ,UACPoV,EAAKmE,EAAK,GAAI9D,EAAK8D,EAAK,GAAIlE,EAAKD,EAAIM,EAAKD,CAE9C,QAAQ8D,EAAKpb,QACT,IAAK,GACDuX,EAAK6D,EAAK,EACV,MACJ,KAAK,GACDlE,EAAKkE,EAAK,GACV7D,EAAK6D,EAAK,GAIlBb,EAAgBpc,KAAM8Y,EAAIK,EAAIJ,EAAIK,IAGtC8D,YAAa,SAAS1Y,EAAM6N,EAAQqK,GAChC1c,KAAK,OAAS0c,EAAU,QAAU,QAAQlY,EAAM6N,IAGpD8K,eAAgBX,GAA4B,GAAM,GAClDY,cAAeZ,GAA4B,GAAO,GAClDa,aAAcb,GAA4B,GAAM,GAChDc,YAAad,GAA4B,GAAO,GAEhDe,SAAU,SAASb,GACfzF,EAAiBjX,MACb0c,EACAN,EAAgBpc,KAAMA,KAAKsW,eAAgBtW,KAAKmX,YAAanX,KAAKsW,eAAgBtW,KAAKmX,aAEvFiF,EAAgBpc,KAAMA,KAAKuW,aAAcvW,KAAKoX,UAAWpX,KAAKuW,aAAcvW,KAAKoX,YAIzFoG,mBAAoB,SAAShZ,GACzBkV,EAAsClV,GAAM,GAE5C4X,EAAgBpc,KAAMwE,EAAM,EAAGA,EAAMmM,EAAcnM,KAGvDiZ,WAAY,SAASjZ,GACjBkV,EAAsClV,GAAM,GAC5CqV,EAAoBrV,EAAMmY,EAE1B,IAAIe,GAAQjH,EAAsBjS,GAAOmZ,EAAMjH,EAAqBlS,EACpE4X,GAAgBpc,KAAM0d,EAAMlZ,KAAMkZ,EAAMrL,OAAQsL,EAAInZ,KAAMmZ,EAAItL,SAGlEuL,gBAAiB1B,EAA0B7D,EAAgB+D,GAE3DyB,eAAgB3B,EAA0B9D,EAAegE,GAEzD0B,oBAAqB,WACjB7G,EAAiBjX,MACjBka,EAAsBla,KAAKsW,gBAC3B4D,EAAsBla,KAAKuW,aAI3B,IAAIgB,GAAW,GAAIsB,GAAc7Y,MAAM,GACnC+d,EAAqBxG,EAASgC,QAAUlD,EAA2BkB,EAASgC,OAAQvZ,OAC/EuX,EAASiC,OAASnD,EAA2BkB,EAASiC,MAAOxZ,KAEtE,OADAuX,GAAS9B,UACDsI,GAGZC,gBAAiB,WACbvD,EAAqBza,OAGzBie,mCAAoC,SAASjM,GACzCyI,EAAqBza,KAAMgS,IAG/BkM,oBAAqB,WACjBjH,EAAiBjX,KAEjB,IAAI8Y,GAAK9Y,KAAKsW,eAAgB6C,EAAKnZ,KAAKmX,YAAa4B,EAAK/Y,KAAKuW,aAAc6C,EAAKpZ,KAAKoX,UAEnF+G,EAAe,SAAS3Z,GACxB,GAAI4Z,GAAU5Z,EAAKqN,WACfuM,IAAWA,EAAQlP,UAAY1K,EAAK0K,WACpC6J,EAAKvU,EACL4U,EAAK5U,EAAK3C,OACV2C,EAAK6Z,WAAWD,EAAQnK,MACxBmK,EAAQ1Z,WAAW4Z,YAAYF,KAInCG,EAAgB,SAAS/Z,GACzB,GAAI4Z,GAAU5Z,EAAKkM,eACnB,IAAI0N,GAAWA,EAAQlP,UAAY1K,EAAK0K,SAAU,CAC9C4J,EAAKtU,CACL,IAAIga,GAAaha,EAAK3C,MAItB,IAHAsX,EAAKiF,EAAQvc,OACb2C,EAAKia,WAAW,EAAGL,EAAQnK,MAC3BmK,EAAQ1Z,WAAW4Z,YAAYF,GAC3BtF,GAAMC,EACNK,GAAMD,EACNJ,EAAKD,MACF,IAAIC,GAAMvU,EAAKE,WAAY,CAC9B,GAAIga,GAAYjO,EAAajM,EACzB4U,IAAMsF,GACN3F,EAAKvU,EACL4U,EAAKoF,GACEpF,EAAKsF,GACZtF,OAMZuF,GAAiB,CAErB,IAAInN,EAAoBuH,GAChBA,EAAGlX,QAAUuX,GACb+E,EAAapF,OAEd,CACH,GAAIK,EAAK,EAAG,CACR,GAAIwF,GAAU7F,EAAG9J,WAAWmK,EAAK,EAC7BwF,IAAWpN,EAAoBoN,IAC/BT,EAAaS,GAGrBD,GAAkB3e,KAAKkZ,UAG3B,GAAIyF,GACA,GAAInN,EAAoBsH,GACV,GAANK,GACAoF,EAAczF,OAGlB,IAAIK,EAAKL,EAAG7J,WAAWpN,OAAQ,CAC3B,GAAIgd,GAAY/F,EAAG7J,WAAWkK,EAC1B0F,IAAarN,EAAoBqN,IACjCN,EAAcM,QAK1B/F,GAAKC,EACLI,EAAKC,CAGTgD,GAAgBpc,KAAM8Y,EAAIK,EAAIJ,EAAIK,IAGtC0F,gBAAiB,SAASta,EAAM6N,GAC5BqH,EAAsClV,GAAM,GAC5CuV,EAAkBvV,EAAM6N,GACxBrS,KAAK2a,eAAenW,EAAM6N,MAIlC2J,EAAwBC,GAM5B,QAAS8C,GAAiCrU,GACtCA,EAAMwO,UAAaxO,EAAM4L,iBAAmB5L,EAAM6L,cAAgB7L,EAAMyM,cAAgBzM,EAAM0M,UAC9F1M,EAAM2O,wBAA0B3O,EAAMwO,UAClCxO,EAAM4L,eAAiBjO,EAAIuI,kBAAkBlG,EAAM4L,eAAgB5L,EAAM6L,cAGjF,QAASyI,GAAiBtU,EAAO4L,EAAgBa,EAAaZ,EAAca,GACxE1M,EAAM4L,eAAiBA,EACvB5L,EAAMyM,YAAcA,EACpBzM,EAAM6L,aAAeA,EACrB7L,EAAM0M,UAAYA,EAClB1M,EAAMrJ,SAAWgH,EAAIiK,YAAYgE,GAEjCyI,EAAiCrU,GAGrC,QAASuU,GAAMjU,GACXhL,KAAKsW,eAAiBtL,EACtBhL,KAAKmX,YAAc,EACnBnX,KAAKuW,aAAevL,EACpBhL,KAAKoX,UAAY,EACjBpX,KAAKqB,SAAW2J,EAChB+T,EAAiC/e,MAhpCrC,GAAIqI,GAAMwD,EAAIxD,IACV6F,EAAOrC,EAAIqC,KACX0G,EAAcvM,EAAIuM,YAClBrO,EAAesF,EAAItF,aAEnBiL,EAAsBnJ,EAAImJ,oBAC1Bf,EAAepI,EAAIoI,aACnBa,EAAmBjJ,EAAIiJ,iBACvBgB,EAAcjK,EAAIiK,YAClBe,EAAgBhL,EAAIgL,cACpBtB,EAAgB1J,EAAI0J,cACpBR,EAAuBlJ,EAAIkJ,qBAC3BZ,EAAgBtI,EAAIsI,cACpBM,EAAgB5I,EAAI4I,cACpBmC,EAAmB/K,EAAI+K,iBACvBY,EAAkBnI,EAAImB,SAASgH,eA0MnC6E,GAAchZ,WACVyV,SAAU,KACVZ,MAAO,KACP6E,OAAQ,KACRC,MAAO,KACPF,2BAA2B,EAE3BgD,MAAO,WACHtc,KAAKsV,SAAW,KAChBtV,KAAK0U,MAAQ1U,KAAKuZ,QAGtBhE,QAAS,WACL,QAASvV,KAAK0U,OAGlBc,KAAM,WAEF,GAAI0J,GAAUlf,KAAKsV,SAAWtV,KAAK0U,KAenC,OAdIwK,KACAlf,KAAK0U,MAASwK,IAAYlf,KAAKwZ,MAAS0F,EAAQrN,YAAc,KAG1DL,EAAoB0N,IAAYlf,KAAKiZ,kCACjCiG,IAAYlf,KAAK+Y,KAChBmG,EAAUA,EAAQhN,WAAU,IAAOC,WAAWnS,KAAKoZ,GAAI8F,EAAQrd,OAAS7B,KAAKoZ,IAE9EpZ,KAAKsV,WAAatV,KAAK8Y,KACtBoG,EAAUA,EAAQhN,WAAU,IAAOC,WAAW,EAAGnS,KAAKmZ,MAK5D+F,GAGX1X,OAAQ,WACJ,GAA6BkW,GAAOC,EAAhCuB,EAAUlf,KAAKsV,UAEf9D,EAAoB0N,IAAaA,IAAYlf,KAAK8Y,IAAMoG,IAAYlf,KAAK+Y,GAOrEmG,EAAQxa,YACRwa,EAAQxa,WAAW4Z,YAAYY,IAPnCxB,EAASwB,IAAYlf,KAAK8Y,GAAM9Y,KAAKmZ,GAAK,EAC1CwE,EAAOuB,IAAYlf,KAAK+Y,GAAM/Y,KAAKoZ,GAAK8F,EAAQrd,OAC5C6b,GAASC,GACTuB,EAAQ/M,WAAWuL,EAAOC,EAAMD,KAW5C/F,2BAA4B,WACxB,GAAIuH,GAAUlf,KAAKsV,QACnB,OAAOe,GAA2B6I,EAASlf,KAAK0K,QAGpDkN,mBAAoB,WAChB,GAAIuH,EACJ,IAAInf,KAAKsZ,0BACL6F,EAAWnf,KAAK0K,MAAM0U,aACtBD,EAAS5B,UAAS,OACf,CACH4B,EAAW,GAAIF,GAAMzI,EAAiBxW,KAAK0K,OAC3C,IAAIwU,GAAUlf,KAAKsV,SACfgB,EAAiB4I,EAAS/H,EAAc,EAAGZ,EAAe2I,EAAS9H,EAAYzG,EAAcuO,EAE7F5N,GAAiB4N,EAASlf,KAAK8Y,MAC/BxC,EAAiBtW,KAAK8Y,GACtB3B,EAAcnX,KAAKmZ,IAEnB7H,EAAiB4N,EAASlf,KAAK+Y,MAC/BxC,EAAevW,KAAK+Y,GACpB3B,EAAYpX,KAAKoZ,IAGrB4F,EAAiBG,EAAU7I,EAAgBa,EAAaZ,EAAca,GAE1E,MAAO,IAAIyB,GAAcsG,EAAUnf,KAAKiZ,kCAG5CxD,OAAQ,WACJzV,KAAK0K,MAAQ1K,KAAKsV,SAAWtV,KAAK0U,MAAQ1U,KAAKuZ,OAASvZ,KAAKwZ,MAAQxZ,KAAK8Y,GAAK9Y,KAAKmZ,GAAKnZ,KAAK+Y,GAAK/Y,KAAKoZ,GAAK,MAMrH,IAAIuD,IAAwB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAC1CrC,GAA0B,EAAG,EAAG,IAChC+E,GAAqB,EAAG,EAAG,GAAI,IAC/BC,GAAuB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7CC,GAAqB,EAAG,EAAG,EAAG,EAAG,EAAG,GAgBpCtF,GAAiCR,GAAuB,EAAG,KAC3DU,GAAsBV,EAAqB4F,GAC3CzF,GAAmCH,GAAuB,EAAG,GAAI,KAgEjE+F,GAAUne,SAASwD,cAAc,SACjC4a,IAAsB,CAC1B,KACID,GAAQpL,UAAY,WACpBqL,GAAsD,GAA/BD,GAAQ3L,WAAW3E,SAC5C,MAAOpO,KAIT+K,EAAImB,SAASyS,oBAAsBA,EAEnC,IAAIC,IAA2BD,GAM3B,SAASE,GAEL,GAAInb,GAAOxE,KAAKsW,eACZtL,EAAMsH,EAAY9N,EAItB,KAAKA,EACD,KAAM,IAAI+B,GAAa,oBAK3B,IAAIwI,GAAK,IAuCT,OApCqB,IAAjBvK,EAAK0K,SACLH,EAAKvK,EAGEgN,EAAoBhN,KAC3BuK,EAAK1G,EAAIkI,cAAc/L,IAcvBuK,EARO,OAAPA,GACe,QAAfA,EAAGlC,UACHxE,EAAI8H,gBAAgBmC,EAAYvD,GAAIqG,kBACpC/M,EAAI8H,gBAAgBpB,GAKf/D,EAAInG,cAAc,QAElBkK,EAAGmD,WAAU,GAOtBnD,EAAGqF,UAAYuL,EAQRtX,EAAIgM,yBAAyBtF,IAKxC,SAAS4Q,GACL,GAAI3U,GAAMwL,EAAiBxW,MACvB+O,EAAK/D,EAAInG,cAAc,OAG3B,OAFAkK,GAAGqF,UAAYuL,EAERtX,EAAIgM,yBAAyBtF,IAmCxC6Q,IAAmB,iBAAkB,cAAe,eAAgB,YAAa,YACjF,2BAEA3E,GAAM,EAAGE,GAAM,EAAGE,GAAM,EAAGE,GAAM,EACjCE,GAAM,EAAGE,GAAM,EAAGE,GAAQ,EAAGE,GAAM,CAEvC7N,GAAKI,OAAOzC,EAAIoE,gBACZ4P,sBAAuB,SAASC,EAAKpV,GACjCuM,EAAiBjX,MACjBga,EAA6Bha,KAAKsW,eAAgB5L,EAAM4L,eAExD,IAAIhD,GAAOC,EAASC,EAAOC,EACvBsM,EAAWD,GAAOvE,IAAOuE,GAAO7E,GAAO,QAAU,MACjD+E,EAAWF,GAAO3E,IAAO2E,GAAO7E,GAAO,QAAU,KAKrD,OAJA3H,GAAQtT,KAAK+f,EAAU,aACvBxM,EAAUvT,KAAK+f,EAAU,UACzBvM,EAAQ9I,EAAMsV,EAAU,aACxBvM,EAAU/I,EAAMsV,EAAU,UACnB3M,EAAcC,EAAOC,EAASC,EAAOC,IAGhDwM,WAAY,SAASzb,GAKjB,GAJAyS,EAAiBjX,MACjB6Z,EAAoBrV,EAAM8a,GAC1BpF,EAAsBla,KAAKsW,gBAEvBhF,EAAiB9M,EAAMxE,KAAKsW,gBAC5B,KAAM,IAAI/P,GAAa,wBAO3B,IAAIqQ,GAAoBD,EAAqBnS,EAAMxE,KAAKsW,eAAgBtW,KAAKmX,YAC7EnX,MAAKmd,eAAevG,IAGxBkE,cAAe,WACX7D,EAAiBjX,KAEjB,IAAIkgB,GAAOxI,CACX,IAAI1X,KAAKkZ,UACL,MAAO1C,GAAiBxW,MAAMwU,wBAE9B,IAAIxU,KAAKsW,iBAAmBtW,KAAKuW,cAAgB/E,EAAoBxR,KAAKsW,gBAKtE,MAJA4J,GAAQlgB,KAAKsW,eAAepE,WAAU,GACtCgO,EAAMjM,KAAOiM,EAAMjM,KAAKxQ,MAAMzD,KAAKmX,YAAanX,KAAKoX,WACrDM,EAAOlB,EAAiBxW,MAAMwU,yBAC9BkD,EAAK1I,YAAYkR,GACVxI,CAEP,IAAIH,GAAW,GAAIsB,GAAc7Y,MAAM,EAI3C,OAHIkgB,GAAQ5I,EAAaC,GACrBA,EAAS9B,SAENyK,GAIfpC,oBAAqB,WACjB7G,EAAiBjX,MACjBka,EAAsBla,KAAKsW,gBAC3B4D,EAAsBla,KAAKuW,aAI3B,IAAIgB,GAAW,GAAIsB,GAAc7Y,MAAM,GACnC+d,EAAqBxG,EAASgC,QAAWlD,EAA2BkB,EAASgC,OAAQvZ,OAChFuX,EAASiC,OAASnD,EAA2BkB,EAASiC,MAAOxZ,KAEtE,OADAuX,GAAS9B,UACDsI,GAGZoC,iBAAkB,SAAS3b,GAGvB,GAFAqV,EAAoBrV,EAAM+a,IAErBvf,KAAK8d,sBACN,KAAM,IAAIvX,GAAa,oBAI3B,IAAI6Z,GAAUpgB,KAAK4d,iBAGnB,IAAIpZ,EAAK6b,gBACL,KAAO7b,EAAK8b,WACR9b,EAAK8Z,YAAY9Z,EAAK8b,UAK9B3J,GAAqBnS,EAAMxE,KAAKsW,eAAgBtW,KAAKmX,aACrD3S,EAAKwK,YAAYoR,GAEjBpgB,KAAKyd,WAAWjZ,IAGpB4a,WAAY,WACRnI,EAAiBjX,KAGjB,KAFA,GACgCugB,GAD5B7V,EAAQ,GAAIuU,GAAMzI,EAAiBxW,OACnC4E,EAAIgb,GAAgB/d,OACjB+C,KACH2b,EAAOX,GAAgBhb,GACvB8F,EAAM6V,GAAQvgB,KAAKugB,EAEvB,OAAO7V,IAGX7H,SAAU,WACNoU,EAAiBjX,KACjB,IAAI8Y,GAAK9Y,KAAKsW,cACd,IAAIwC,IAAO9Y,KAAKuW,cAAgB/E,EAAoBsH,GAChD,MAAuB,IAAfA,EAAG5J,UAAgC,GAAf4J,EAAG5J,SAAiB4J,EAAG7E,KAAKxQ,MAAMzD,KAAKmX,YAAanX,KAAKoX,WAAa,EAElG,IAAIoJ,MAAgBjJ,EAAW,GAAIsB,GAAc7Y,MAAM,EAQvD,OAPA6X,GAAeN,EAAU,SAAS/S,IAET,GAAjBA,EAAK0K,UAAkC,GAAjB1K,EAAK0K,WAC3BsR,EAAUhf,KAAKgD,EAAKyP,QAG5BsD,EAAS9B,SACF+K,EAAU7Y,KAAK,KAO9B8Y,YAAa,SAASjc,GAClByS,EAAiBjX,KAEjB,IAAIwQ,GAAShM,EAAKE,WACdga,EAAYjO,EAAajM,EAE7B,KAAKgM,EACD,KAAM,IAAIjK,GAAa,gBAG3B,IAAI2Q,GAAkBlX,KAAK0gB,aAAalQ,EAAQkO,GAC5CrH,EAAgBrX,KAAK0gB,aAAalQ,EAAQkO,EAAY,EAE1D,OAAsB,GAAlBxH,EACQG,EAAgB,EAAKwE,GAAQJ,GAE7BpE,EAAgB,EAAKsE,GAAMI,IAI3C2E,aAAc,SAASlc,EAAM6N,GAKzB,MAJA4E,GAAiBjX,MACjBoa,EAAW5V,EAAM,yBACjBwV,EAA6BxV,EAAMxE,KAAKsW,gBAEpCjD,EAAc7O,EAAM6N,EAAQrS,KAAKsW,eAAgBtW,KAAKmX,aAAe,EAC9D,GACA9D,EAAc7O,EAAM6N,EAAQrS,KAAKuW,aAAcvW,KAAKoX,WAAa,EACjE,EAEJ,GAGXsI,yBAA0BA,GAE1BiB,OAAQ,WACJ,MAAO/F,GAAY5a,OAKvB4gB,eAAgB,SAASpc,EAAMwS,GAG3B,GAFAC,EAAiBjX,MACjBoa,EAAW5V,EAAM,iBACb8N,EAAY9N,KAAUgS,EAAiBxW,MACvC,OAAO,CAGX,IAAIwQ,GAAShM,EAAKE,WAAY2N,EAAS5B,EAAajM,EACpD4V,GAAW5J,EAAQ,gBAEnB,IAAI0G,GAAkB7D,EAAc7C,EAAQ6B,EAAQrS,KAAKuW,aAAcvW,KAAKoX,WACxEC,EAAgBhE,EAAc7C,EAAQ6B,EAAS,EAAGrS,KAAKsW,eAAgBtW,KAAKmX,YAEhF,OAAOH,GAA4C,GAAnBE,GAAwBG,GAAiB,EAAsB,EAAlBH,GAAuBG,EAAgB,GAGxHwJ,eAAgB,SAASrc,EAAM6N,GAK3B,MAJA4E,GAAiBjX,MACjBoa,EAAW5V,EAAM,yBACjBwV,EAA6BxV,EAAMxE,KAAKsW,gBAEhCjD,EAAc7O,EAAM6N,EAAQrS,KAAKsW,eAAgBtW,KAAKmX,cAAgB,GACtE9D,EAAc7O,EAAM6N,EAAQrS,KAAKuW,aAAcvW,KAAKoX,YAAc,GAM9E0J,gBAAiB,SAASpW,GACtB,MAAOmM,GAAgB7W,KAAM0K,GAAO,IAIxCqW,yBAA0B,SAASrW,GAC/B,MAAOmM,GAAgB7W,KAAM0K,GAAO,IAGxCsW,aAAc,SAAStW,GACnB,GAAI1K,KAAK8gB,gBAAgBpW,GAAQ,CAC7B,GAAIwM,GAAkB7D,EAAcrT,KAAKsW,eAAgBtW,KAAKmX,YAAazM,EAAM4L,eAAgB5L,EAAMyM,aACnGE,EAAgBhE,EAAcrT,KAAKuW,aAAcvW,KAAKoX,UAAW1M,EAAM6L,aAAc7L,EAAM0M,WAE3F6J,EAAoBjhB,KAAKof,YAO7B,OANuB,IAAnBlI,GACA+J,EAAkBlE,SAASrS,EAAM4L,eAAgB5L,EAAMyM,aAEtC,GAAjBE,GACA4J,EAAkBjE,OAAOtS,EAAM6L,aAAc7L,EAAM0M,WAEhD6J,EAEX,MAAO,OAGXC,MAAO,SAASxW,GACZ,GAAI1K,KAAK+gB,yBAAyBrW,GAAQ,CACtC,GAAIyW,GAAanhB,KAAKof,YAOtB,OANqG,IAAjG/L,EAAc3I,EAAM4L,eAAgB5L,EAAMyM,YAAanX,KAAKsW,eAAgBtW,KAAKmX,cACjFgK,EAAWpE,SAASrS,EAAM4L,eAAgB5L,EAAMyM,aAEyC,GAAzF9D,EAAc3I,EAAM6L,aAAc7L,EAAM0M,UAAWpX,KAAKuW,aAAcvW,KAAKoX,YAC3E+J,EAAWnE,OAAOtS,EAAM6L,aAAc7L,EAAM0M,WAEzC+J,EAEP,KAAM,IAAI5a,GAAa,4BAI/B6a,aAAc,SAAS5c,EAAM6c,GACzB,MAAIA,GACOrhB,KAAK4gB,eAAepc,GAAM,GAE1BxE,KAAKygB,YAAYjc,IAASuX,IAIzCuF,qBAAsB,SAAS9c,GAC3B,MAAOxE,MAAK0gB,aAAalc,EAAM,IAAM,GAAKxE,KAAK0gB,aAAalc,EAAMmM,EAAcnM,KAAU,GAG9F+c,cAAe,SAAS7W,GACpB,GAAIsW,GAAehhB,KAAKghB,aAAatW,EACrC,OAAwB,QAAjBsW,GAAyBtW,EAAMgL,OAAOsL,IAGjDQ,iBAAkB,SAAShd,GACvB,GAAIid,GAAYzhB,KAAKof,YACrBqC,GAAUhE,WAAWjZ,EACrB,IAAIkd,GAAYD,EAAUE,UAAU,GACpC,IAAID,EAAU7f,OAAS,EAAG,CACtB4f,EAAU1E,SAAS2E,EAAU,GAAI,EACjC,IAAIE,GAAeF,EAAUG,KAE7B,OADAJ,GAAUzE,OAAO4E,EAAcA,EAAa/f,QACrC7B,KAAKuhB,cAAcE,GAE1B,MAAOzhB,MAAKshB,qBAAqB9c,IAIzCmd,SAAU,SAASpJ,EAAWC,GAE1B,MADAvB,GAAiBjX,MACVsY,EAAgBtY,KAAMuY,EAAWC,IAG5ClG,YAAa,WACT,MAAOkE,GAAiBxW,OAG5B8hB,eAAgB,SAAStd,GACrBxE,KAAKqd,aAAa7Y,GAClBxE,KAAKud,UAAS,IAGlBwE,cAAe,SAASvd,GACpBxE,KAAKod,cAAc5Y,GACnBxE,KAAKud,UAAS,IAGlByE,YAAa,SAASC,GAClB,GAAIjX,GAAMwL,EAAiBxW,MACvBkiB,EAAoBrW,EAAIa,YAAY1B,EACxCiX,GAAgBA,GAAiB5Z,EAAI0C,QAAQC,GAC7CkX,EAAkB1E,mBAAmByE,EACrC,IAAIvX,GAAQ1K,KAAKghB,aAAakB,GAC1BxE,EAAQ,EAAGC,EAAM,CAOrB,OANIjT,KACAwX,EAAkBlF,OAAOtS,EAAM4L,eAAgB5L,EAAMyM,aACrDuG,EAAQwE,EAAkBrf,WAAWhB,OACrC8b,EAAMD,EAAQhT,EAAM7H,WAAWhB,SAI/B6b,MAAOA,EACPC,IAAKA,EACLsE,cAAeA,IAIvBE,eAAgB,SAASC,GACrB,GAAIH,GAAgBG,EAASH,cACzBI,EAAY,CAChBriB,MAAK+c,SAASkF,EAAe,GAC7BjiB,KAAKud,UAAS,EAId,KAHA,GAAiC/Y,GAC7B8d,EAAe1d,EAAGqK,EADlBsT,GAAaN,GAAsBO,GAAa,EAAOtK,GAAO,GAG1DA,IAAS1T,EAAO+d,EAAUV,QAC9B,GAAqB,GAAjBrd,EAAK0K,SACLoT,EAAgBD,EAAY7d,EAAK3C,QAC5B2gB,GAAcJ,EAAS1E,OAAS2E,GAAaD,EAAS1E,OAAS4E,IAChEtiB,KAAK+c,SAASvY,EAAM4d,EAAS1E,MAAQ2E,GACrCG,GAAa,GAEbA,GAAcJ,EAASzE,KAAO0E,GAAaD,EAASzE,KAAO2E,IAC3DtiB,KAAKgd,OAAOxY,EAAM4d,EAASzE,IAAM0E,GACjCnK,GAAO,GAEXmK,EAAYC,MAIZ,KAFArT,EAAazK,EAAKyK,WAClBrK,EAAIqK,EAAWpN,OACR+C,KACH2d,EAAU/gB,KAAKyN,EAAWrK,KAM1CoU,QAAS,WACL,MAAO,YAGXtD,OAAQ,SAAShL,GACb,MAAOuU,GAAMwD,YAAYziB,KAAM0K,IAGnCgY,QAAS,WACL,MAAOlI,GAAaxa,OAGxB4V,QAAS,WACL,MAAOA,GAAQ5V,OAGnByV,OAAQ,eAoTZ8G,EAAqB0C,EAAOD,GAE5B9Q,EAAKI,OAAO2Q,GACRW,gBAAiBA,GACjB/G,cAAeA,EACfmD,wBAAyBA,EACzBO,qBAAsBA,EACtB3G,QAASA,EACT+K,OAAQ/F,EACRpE,iBAAkBA,EAClBiM,YAAa,SAASE,EAAIC,GACtB,MAAOD,GAAGrM,iBAAmBsM,EAAGtM,gBAC5BqM,EAAGxL,cAAgByL,EAAGzL,aACtBwL,EAAGpM,eAAiBqM,EAAGrM,cACvBoM,EAAGvL,YAAcwL,EAAGxL,aAIhCvL,EAAIgX,SAAW5D,IAMnBpT,EAAImE,iBAAiB,gBAAiB,YAAa,SAASnE,EAAKnC,GAC7D,GAAIoZ,GAAcC,EACd1a,EAAMwD,EAAIxD,IACV6F,EAAOrC,EAAIqC,KACX0G,EAAcvM,EAAIuM,YAClBiO,EAAWhX,EAAIgX,SACf9X,EAAU1C,EAAI0C,QACdkI,EAAqB5K,EAAI4K,mBACzBzB,EAAsBnJ,EAAImJ,mBAkQ9B,IA7PI3F,EAAImB,SAASR,qBAKb,WAII,QAASwW,GAAsBtY,GAE3B,IADA,GAAgC6V,GAA5B3b,EAAIgb,EAAgB/d,OACjB+C,KACH2b,EAAOX,EAAgBhb,GACvB8F,EAAM6V,GAAQ7V,EAAMuY,YAAY1C,EAGpC7V,GAAMwO,UAAaxO,EAAM4L,iBAAmB5L,EAAM6L,cAAgB7L,EAAMyM,cAAgBzM,EAAM0M,UAGlG,QAAS8L,GAAkBxY,EAAO4L,EAAgBa,EAAaZ,EAAca,GACzE,GAAI+L,GAAczY,EAAM4L,iBAAmBA,GAAkB5L,EAAMyM,aAAeA,EAC9EiM,EAAY1Y,EAAM6L,eAAiBA,GAAgB7L,EAAM0M,WAAaA,EACtEiM,GAAwB3Y,EAAMgL,OAAOhL,EAAMuY,cAG3CE,GAAcC,GAAYC,KAC1B3Y,EAAMsS,OAAOzG,EAAca,GAC3B1M,EAAMqS,SAASzG,EAAgBa,IArBvC,GAAImM,GAyBA9G,EAxBAoD,EAAkBiD,EAASjD,eA0B/BkD,GAAe,SAASpY,GACpB,IAAKA,EACD,KAAMhB,GAAOqG,YAAY,wCAE7B/P,MAAKijB,YAAcvY,EACnBsY,EAAsBhjB,OAG1B6iB,EAAStG,qBAAqBuG,EAAcI,GAE5CI,EAAaR,EAAajjB,UAE1ByjB,EAAW7F,WAAa,SAASjZ,GAC7BxE,KAAKijB,YAAYxF,WAAWjZ,GAC5Bwe,EAAsBhjB,OAG1BsjB,EAAWxI,cAAgB,WACvB,MAAO9a,MAAKijB,YAAYnI,iBAM5BwI,EAAWnD,iBAAmB,SAAS3b,GACnCxE,KAAKijB,YAAY9C,iBAAiB3b,GAClCwe,EAAsBhjB;EAG1BsjB,EAAW/F,SAAW,SAASb,GAC3B1c,KAAKijB,YAAY1F,SAASb,GAC1BsG,EAAsBhjB,OAG1BsjB,EAAWlE,WAAa,WACpB,MAAO,IAAI0D,GAAa9iB,KAAKijB,YAAY7D,eAG7CkE,EAAWC,QAAU,WACjBP,EAAsBhjB,OAG1BsjB,EAAWzgB,SAAW,WAClB,MAAO7C,MAAKijB,YAAYpgB,WAK5B,IAAI2gB,GAAeniB,SAAS0T,eAAe,OAC3ChK,GAAQ1J,UAAU2N,YAAYwU,EAC9B,IAAI9Y,GAAQrJ,SAASqL,aAOrBhC,GAAMqS,SAASyG,EAAc,GAC7B9Y,EAAMsS,OAAOwG,EAAc,EAE3B,KACI9Y,EAAMqS,SAASyG,EAAc,GAE7BF,EAAWvG,SAAW,SAASvY,EAAM6N,GACjCrS,KAAKijB,YAAYlG,SAASvY,EAAM6N,GAChC2Q,EAAsBhjB,OAG1BsjB,EAAWtG,OAAS,SAASxY,EAAM6N,GAC/BrS,KAAKijB,YAAYjG,OAAOxY,EAAM6N,GAC9B2Q,EAAsBhjB,OAG1Bwc,EAA8B,SAASnW,GACnC,MAAO,UAAS7B,GACZxE,KAAKijB,YAAY5c,GAAM7B,GACvBwe,EAAsBhjB,QAIhC,MAAM+H,GAEJub,EAAWvG,SAAW,SAASvY,EAAM6N,GACjC,IACIrS,KAAKijB,YAAYlG,SAASvY,EAAM6N,GAClC,MAAOtK,GACL/H,KAAKijB,YAAYjG,OAAOxY,EAAM6N,GAC9BrS,KAAKijB,YAAYlG,SAASvY,EAAM6N,GAEpC2Q,EAAsBhjB,OAG1BsjB,EAAWtG,OAAS,SAASxY,EAAM6N,GAC/B,IACIrS,KAAKijB,YAAYjG,OAAOxY,EAAM6N,GAChC,MAAOtK,GACL/H,KAAKijB,YAAYlG,SAASvY,EAAM6N,GAChCrS,KAAKijB,YAAYjG,OAAOxY,EAAM6N,GAElC2Q,EAAsBhjB,OAG1Bwc,EAA8B,SAASnW,EAAMod,GACzC,MAAO,UAASjf,GACZ,IACIxE,KAAKijB,YAAY5c,GAAM7B,GACzB,MAAOuD,GACL/H,KAAKijB,YAAYQ,GAAcjf,GAC/BxE,KAAKijB,YAAY5c,GAAM7B,GAE3Bwe,EAAsBhjB,QAKlCsjB,EAAWnG,eAAiBX,EAA4B,iBAAkB,gBAC1E8G,EAAWlG,cAAgBZ,EAA4B,gBAAiB,eACxE8G,EAAWjG,aAAeb,EAA4B,eAAgB,kBACtE8G,EAAWhG,YAAcd,EAA4B,cAAe,iBAMpE8G,EAAW9F,mBAAqB,SAAShZ,GACrCxE,KAAK2a,eAAenW,EAAM,EAAG6D,EAAIsI,cAAcnM,KAQnDkG,EAAM8S,mBAAmBgG,GACzB9Y,EAAMsS,OAAOwG,EAAc,EAE3B,IAAIE,GAASriB,SAASqL,aACtBgX,GAAOlG,mBAAmBgG,GAC1BE,EAAO1G,OAAOwG,EAAc,GAC5BE,EAAO3G,SAASyG,EAAc,GAM1BF,EAAWzD,sBAJgD,IAA3DnV,EAAMmV,sBAAsBnV,EAAMwQ,aAAcwI,IACe,GAA3DhZ,EAAMmV,sBAAsBnV,EAAM4Q,aAAcoI,GAGjB,SAAShjB,EAAMgK,GAO9C,MANAA,GAAQA,EAAMuY,aAAevY,EACzBhK,GAAQgK,EAAMwQ,aACdxa,EAAOgK,EAAM4Q,aACN5a,GAAQgK,EAAM4Q,eACrB5a,EAAOgK,EAAMwQ,cAEVlb,KAAKijB,YAAYpD,sBAAsBnf,EAAMgK,IAGrB,SAAShK,EAAMgK,GAC9C,MAAO1K,MAAKijB,YAAYpD,sBAAsBnf,EAAMgK,EAAMuY,aAAevY,GAQjF,IAAIqE,GAAK1N,SAASwD,cAAc,MAChCkK,GAAGqF,UAAY,KACf,IAAIU,GAAW/F,EAAG8E,WACd5I,EAAOF,EAAQ1J,SACnB4J,GAAK+D,YAAYD,GAEjBrE,EAAMqS,SAASjI,EAAU,GACzBpK,EAAMsS,OAAOlI,EAAU,GACvBpK,EAAMmT,iBAEe,MAAjB/I,EAASb,OAGTqP,EAAWzF,eAAiB,WACxB7d,KAAKijB,YAAYpF,iBACjBmF,EAAsBhjB,OAG1BsjB,EAAW1F,gBAAkB,WACzB,GAAIlG,GAAO1X,KAAKijB,YAAYrF,iBAE5B,OADAoF,GAAsBhjB,MACf0X,IAKfzM,EAAKqT,YAAYvP,GACjB9D,EAAO,KAKHiD,EAAKrE,aAAaa,EAAO,8BACzB4Y,EAAW5D,yBAA2B,SAASC,GAC3C,MAAO3f,MAAKijB,YAAYvD,yBAAyBC,KAOzD5U,EAAQ1J,UAAUid,YAAYkF,GAE9BF,EAAWtK,QAAU,WACjB,MAAO,gBAGXnN,EAAIiX,aAAeA,EAEnBjX,EAAI8X,kBAAoB,SAAS3Y,GAE7B,MADAA,GAAMiI,EAAmBjI,EAAKtB,EAAQ,qBAC/BsB,EAAI0B,kBAKnBb,EAAImB,SAASP,oBAAqB,CAelC,GAAImX,GAA+B,SAASC,GACxC,GAAIC,GAAWD,EAAUtT,gBACrB7F,EAAQmZ,EAAUE,WACtBrZ,GAAM6S,UAAS,EACf,IAAIyG,GAAUtZ,EAAM6F,eACpB7F,GAAQmZ,EAAUE,YAClBrZ,EAAM6S,UAAS,EACf,IAAI0G,GAAQvZ,EAAM6F,gBACd2T,EAAqBF,GAAWC,EAASD,EAAU3b,EAAIuI,kBAAkBoT,EAASC,EAEtF,OAAOC,IAAqBJ,EAAWI,EAAoB7b,EAAIuI,kBAAkBkT,EAAUI,IAG3FC,EAAuB,SAASN,GAChC,MAA8D,IAAvDA,EAAUO,iBAAiB,aAAcP,IAOhDQ,EAA+B,SAASR,EAAWS,EAA4B5H,EAAS6H,EAAaC,GACrG,GAAIC,GAAeZ,EAAUE,WAC7BU,GAAalH,SAASb,EACtB,IAAIgI,GAAmBD,EAAalU,eAWpC,IAPKlI,EAAIiJ,iBAAiBgT,EAA4BI,KAClDA,EAAmBJ,IAMlBI,EAAiBC,YAAa,CAC/B,GAAIhP,GAAM,GAAIf,GAAY8P,EAAiBhgB,WAAY2D,EAAIoI,aAAaiU,GACxE,QACIE,iBAAkBjP,EAClBkP,UACInG,UAAW/I,EAAItD,OACfqS,iBAAkB/O,EAAInR,OAKlC,GAAIsgB,GAAczc,EAAIiK,YAAYoS,GAAkB7f,cAAc,OAI9DigB,GAAYpgB,YACZogB,EAAYpgB,WAAW4Z,YAAYwG,EAavC,KAVA,GAAIC,GACAC,EAAcpT,EAAUgT,EAAkBK,EAD9BC,EAAwBxI,EAAU,eAAiB,aAE/DgB,EAAS8G,GAAaA,EAAUE,kBAAoBA,EAAoBF,EAAU9F,UAAY,EAC9FyG,EAAiBT,EAAiBzV,WAAWpN,OAC7C8b,EAAMwH,EAINzG,EAAYf,IAEH,CAQT,GAPIe,GAAayG,EACbT,EAAiB1V,YAAY8V,GAE7BJ,EAAiB5S,aAAagT,EAAaJ,EAAiBzV,WAAWyP,IAE3E+F,EAAaW,kBAAkBN,GAC/BC,EAAaN,EAAaL,iBAAiBc,EAAuBrB,GAChD,GAAdkB,GAAmBrH,GAASC,EAC5B,KACG,IAAkB,IAAdoH,EAAkB,CACzB,GAAIpH,GAAOD,EAAQ,EAEf,KAEAA,GAAQgB,MAGZf,GAAOA,GAAOD,EAAQ,EAAKA,EAAQgB,CAEvCA,GAAY2G,KAAKC,OAAO5H,EAAQC,GAAO,GACvC+G,EAAiBpG,YAAYwG,GAQjC,GAFAG,EAAeH,EAAYjT,YAET,IAAdkT,GAAoBE,GAAgBzT,EAAoByT,GAAe,CAIvER,EAAac,YAAY7I,EAAU,aAAe,WAAYmH,EAE9D,IAAIxR,EAEJ,IAAI,SAAS5L,KAAKwe,EAAahR,MAAO,CA+BlC,GAAIuR,GAAYf,EAAaV,YACzB0B,EAAcD,EAAUE,KAAKzlB,QAAQ,QAAS,MAAM4B,MAGxD,KADAwQ,EAASmT,EAAUG,UAAU,YAAaF,GACoC,KAArEV,EAAaS,EAAUpB,iBAAiB,aAAcoB,KAC3DnT,IACAmT,EAAUG,UAAU,YAAa,OAGrCtT,GAASoS,EAAaiB,KAAK7jB,MAE/B+iB,GAAmB,GAAIhQ,GAAYqQ,EAAc5S,OAKjD2S,IAAgBT,IAAgB7H,IAAYoI,EAAYpU,gBACxDkB,GAAY2S,GAAe7H,IAAYoI,EAAYjT,YAE/C+S,EADAhT,GAAYJ,EAAoBI,GACb,GAAIgD,GAAYhD,EAAU,GACtCoT,GAAgBxT,EAAoBwT,GACxB,GAAIpQ,GAAYoQ,EAAcA,EAAa/Q,KAAKpS,QAEhD,GAAI+S,GAAY8P,EAAkBrc,EAAIoI,aAAaqU,GAO9E,OAFAA,GAAYpgB,WAAW4Z,YAAYwG,IAG/BF,iBAAkBA,EAClBC,UACInG,UAAWA,EACXgG,iBAAkBA,KAQ1BkB,EAA0B,SAAShB,EAAkBlI,GACrD,GAAIuI,GAAcY,EAEdf,EAAa7V,EAFiB6W,EAAiBlB,EAAiBvS,OAChErH,EAAM3C,EAAIiK,YAAYsS,EAAiBpgB,MACdigB,EAAe1Z,EAAQC,GAAK+B,kBACrDgZ,EAAiBvU,EAAoBoT,EAAiBpgB,KAqC1D,OAnCIuhB,IACAd,EAAeL,EAAiBpgB,KAChCqhB,EAAiBZ,EAAavgB,aAE9BuK,EAAa2V,EAAiBpgB,KAAKyK,WACnCgW,EAAgBa,EAAiB7W,EAAWpN,OAAUoN,EAAW6W,GAAkB,KACnFD,EAAiBjB,EAAiBpgB,MAItCsgB,EAAc9Z,EAAInG,cAAc,QAIhCigB,EAAY1Q,UAAY,UAIpB6Q,EACAY,EAAe/T,aAAagT,EAAaG,GAEzCY,EAAe7W,YAAY8V,GAG/BL,EAAaW,kBAAkBN,GAC/BL,EAAalH,UAAUb,GAGvBmJ,EAAevH,YAAYwG,GAGvBiB,GACAtB,EAAa/H,EAAU,YAAc,WAAW,YAAaoJ,GAG1DrB,EAQX1B,GAAmB,SAASc,GACxB7jB,KAAK6jB,UAAYA,EACjB7jB,KAAKujB,WAGTR,EAAiBljB,UAAY,GAAIgjB,GAASxhB,UAE1C0hB,EAAiBljB,UAAU0jB,QAAU,WACjC,GAAI7F,GAAOC,EAAKqI,EAGZC,EAAwBrC,EAA6B5jB,KAAK6jB,UAE1DM,GAAqBnkB,KAAK6jB,WAC1BlG,EAAMD,EAAQ2G,EAA6BrkB,KAAK6jB,UAAWoC,GAAuB,GAC9E,GAAMrB,kBAEVoB,EAAgB3B,EAA6BrkB,KAAK6jB,UAAWoC,GAAuB,GAAM,GAC1FvI,EAAQsI,EAAcpB,iBAKtBjH,EAAM0G,EAA6BrkB,KAAK6jB,UAAWoC,GAAuB,GAAO,EAC7ED,EAAcnB,UAAUD,kBAGhC5kB,KAAK+c,SAASW,EAAMlZ,KAAMkZ,EAAMrL,QAChCrS,KAAKgd,OAAOW,EAAInZ,KAAMmZ,EAAItL,SAG9B0Q,EAAiBljB,UAAUmZ,QAAU,WACjC,MAAO,oBAGX6J,EAAS7G,wBAAwB+G,EAEjC,IAAImD,GAAmB,SAASxb,GAC5B,GAAIA,EAAMwO,UACN,MAAO0M,GAAwB,GAAIhR,GAAYlK,EAAM4L,eAAgB5L,EAAMyM,cAAc,EAEzF,IAAIgP,GAAaP,EAAwB,GAAIhR,GAAYlK,EAAM4L,eAAgB5L,EAAMyM,cAAc,GAC/FiP,EAAWR,EAAwB,GAAIhR,GAAYlK,EAAM6L,aAAc7L,EAAM0M,YAAY,GACzFyM,EAAY9Y,EAAS8X,EAASrM,iBAAiB9L,IAASqC,iBAG5D,OAFA8W,GAAU0B,YAAY,eAAgBY,GACtCtC,EAAU0B,YAAY,WAAYa,GAC3BvC,EAcf,IAVAd,EAAiBmD,iBAAmBA,EAEpCnD,EAAiBljB,UAAUwmB,YAAc,WACrC,MAAOH,GAAiBlmB,OAG5B6L,EAAIkX,iBAAmBA,GAIlBlX,EAAImB,SAASR,oBAAsBX,EAAIG,OAAOmC,gBAAiB,CAEhE,GAAImY,GAAY,SAAUtjB,GAAK,MAAOA,GAAE,mBAAsBI,SAChC,oBAAnBkjB,GAAUrH,QACjBqH,EAAUrH,MAAQ8D,GAGtBlX,EAAI8X,kBAAoB,SAAS3Y,GAE7B,MADAA,GAAMiI,EAAmBjI,EAAKtB,EAAQ,qBAC/BqB,EAAQC,GAAK+B,mBAGxBlB,EAAIiX,aAAeC,GAI3BlX,EAAIa,YAAc,SAAS1B,GAEvB,MADAA,GAAMiI,EAAmBjI,EAAKtB,EAAQ,eAC/B,GAAImC,GAAIiX,aAAajX,EAAI8X,kBAAkB3Y,KAGtDa,EAAI0a,iBAAmB,SAASvb,GAE5B,MADAA,GAAMiI,EAAmBjI,EAAKtB,EAAQ,oBAC/B,GAAImZ,GAAS7X,IAGxBa,EAAI2a,kBAAoB,SAAS5T,GAE7B,MADAlJ,GAAOkG,kBAAkB,sBAAuB,yBACzC/D,EAAIa,YAAYkG,IAG3B/G,EAAI4a,uBAAyB,SAAS7T,GAElC,MADAlJ,GAAOkG,kBAAkB,2BAA4B,8BAC9C/D,EAAI0a,iBAAiB3T,IAGhC/G,EAAI2D,gBAAgB,SAASjC,GACzB,GAAIvC,GAAMuC,EAAIlM,QACgB,oBAAnB2J,GAAI0B,cACX1B,EAAI0B,YAAc,WACd,MAAOb,GAAIa,YAAY1B,KAG/BA,EAAMuC,EAAM,SAQpB1B,EAAImE,iBAAiB,oBAAqB,WAAY,gBAAiB,SAASnE,EAAKnC,GAuBjF,QAASgd,GAAoBC,GACzB,MAAsB,gBAAPA,GAAmB,kBAAkBlgB,KAAKkgB,KAASA,EAGtE,QAASnU,GAAUjF,EAAK2F,GACpB,GAAK3F,EAEE,CAAA,GAAIlF,EAAI2K,SAASzF,GACpB,MAAOA,EACJ,IAAIA,YAAeqZ,GACtB,MAAOrZ,GAAIA,GAEX,IAAIvC,GAAM3C,EAAI4K,mBAAmB1F,EAAK7D,EAAQwJ,EAC9C,OAAO7K,GAAImK,UAAUxH,GAPrB,MAAOtJ,QAWf,QAASmlB,GAAgBC,GACrB,MAAOtU,GAAUsU,EAAU,mBAAmBC,eAGlD,QAASC,GAAgBF,GACrB,MAAOtU,GAAUsU,EAAU,mBAAmBzlB,SAASoH,UAG3D,QAASwe,GAAuBC,GAC5B,GAAIC,IAAW,CAIf,OAHID,GAAIE,aACJD,EAAmG,GAAvF9e,EAAIgL,cAAc6T,EAAIE,WAAYF,EAAIG,aAAcH,EAAII,UAAWJ,EAAIK,cAEhFJ,EAqKX,QAASK,GAA8BN,EAAKxc,EAAOyc,GAC/C,GAAIM,GAAeN,EAAW,MAAQ,QAASO,EAAcP,EAAW,QAAU,KAClFD,GAAIE,WAAa1c,EAAM+c,EAAe,aACtCP,EAAIG,aAAe3c,EAAM+c,EAAe,UACxCP,EAAII,UAAY5c,EAAMgd,EAAc,aACpCR,EAAIK,YAAc7c,EAAMgd,EAAc,UAG1C,QAASC,GAAwCT,GAC7C,GAAIU,GAAYV,EAAIW,eACpBX,GAAIE,WAAaQ,EAAUR,WAC3BF,EAAIG,aAAeO,EAAUP,aAC7BH,EAAII,UAAYM,EAAUN,UAC1BJ,EAAIK,YAAcK,EAAUL,YAGhC,QAASO,GAAqBZ,GAC1BA,EAAIE,WAAaF,EAAII,UAAY,KACjCJ,EAAIG,aAAeH,EAAIK,YAAc,EACrCL,EAAIa,WAAa,EACjBb,EAAI3C,aAAc,EAClB2C,EAAIc,QAAQnmB,OAAS,EAGzB,QAASomB,GAAevd,GACpB,GAAIuY,EAUJ,OATIvY,aAAiBmY,IACjBI,EAAcpX,EAAI8X,kBAAkBjZ,EAAM4H,eAC1C2Q,EAAYjG,OAAOtS,EAAM6L,aAAc7L,EAAM0M,WAC7C6L,EAAYlG,SAASrS,EAAM4L,eAAgB5L,EAAMyM,cAC1CzM,YAAiBoY,GACxBG,EAAcvY,EAAMuY,YACbjW,EAASR,oBAAuB9B,YAAiBrC,GAAImK,UAAU9H,EAAM4L,gBAAgB2I,QAC5FgE,EAAcvY,GAEXuY,EAGX,QAASiF,GAA2BC,GAChC,IAAKA,EAAWtmB,QAAoC,GAA1BsmB,EAAW,GAAGjZ,SACpC,OAAO,CAEX,KAAK,GAAItK,GAAI,EAAGW,EAAM4iB,EAAWtmB,OAAY0D,EAAJX,IAAWA,EAChD,IAAKyD,EAAI6I,aAAaiX,EAAW,GAAIA,EAAWvjB,IAC5C,OAAO,CAGf,QAAO,EAGX,QAASwjB,GAA0B1d,GAC/B,GAAIjG,GAAQiG,EAAMiX,UAClB,KAAKuG,EAA2BzjB,GAC5B,KAAMiF,GAAOqG,YAAY,oCAAsCrF,EAAMkL,UAAY,uCAErF,OAAOnR,GAAM,GAIjB,QAASgG,GAAYC,GACjB,QAASA,GAA8B,mBAAdA,GAAMgb,KAGnC,QAAS2C,GAAoBnB,EAAKxc,GAE9B,GAAI4d,GAAe,GAAIxF,GAAapY,EACpCwc,GAAIc,SAAWM,GAEfd,EAA8BN,EAAKoB,GAAc,GACjDpB,EAAIa,WAAa,EACjBb,EAAI3C,YAAc+D,EAAapP,UAGnC,QAASqP,GAAuBrB,GAG5B,GADAA,EAAIc,QAAQnmB,OAAS,EACQ,QAAzBqlB,EAAIsB,aAAa9nB,KACjBonB,EAAqBZ,OAClB,CACH,GAAIuB,GAAevB,EAAIsB,aAAa9b,aACpC,IAAIjC,EAAYge,GAIZJ,EAAoBnB,EAAKuB,OACtB,CACHvB,EAAIa,WAAaU,EAAa5mB,MAE9B,KAAK,GADD6I,GAAOM,EAAMsH,EAAYmW,EAAaviB,KAAK,IACtCtB,EAAI,EAAGA,EAAIsiB,EAAIa,aAAcnjB,EAClC8F,EAAQmB,EAAIa,YAAY1B,GACxBN,EAAM+S,WAAWgL,EAAaviB,KAAKtB,IACnCsiB,EAAIc,QAAQxmB,KAAKkJ,EAErBwc,GAAI3C,YAAgC,GAAlB2C,EAAIa,YAAmBb,EAAIc,QAAQ,GAAG9O,UACxDsO,EAA8BN,EAAKA,EAAIc,QAAQd,EAAIa,WAAa,IAAI,KAKhF,QAASW,GAA2BxB,EAAKxc,GAQrC,IAAK,GAPD+d,GAAevB,EAAIsB,aAAa9b,cAChCic,EAAeP,EAA0B1d,GAIzCM,EAAMsH,EAAYmW,EAAaviB,KAAK,IACpC0iB,EAAkB7d,EAAQC,GAAK6d,qBAC1BjkB,EAAI,EAAGW,EAAMkjB,EAAa5mB,OAAY0D,EAAJX,IAAWA,EAClDgkB,EAAgB5jB,IAAIyjB,EAAaviB,KAAKtB,GAE1C,KACIgkB,EAAgB5jB,IAAI2jB,GACtB,MAAO5gB,GACL,KAAM2B,GAAOqG,YAAY,iHAE7B6Y,EAAgBE,SAGhBP,EAAuBrB,GAgC3B,QAASN,GAAiBne,EAAW+f,EAAcjb,GAC/CvN,KAAK6nB,gBAAkBpf,EACvBzI,KAAKwoB,aAAeA,EACpBxoB,KAAKgoB,WACLhoB,KAAKuN,IAAMA,EACXvN,KAAKujB,UAKT,QAASwF,GAAiB7B,GACtBA,EAAI3Z,IAAM2Z,EAAIE,WAAaF,EAAII,UAAYJ,EAAIc,QAAU,KACzDd,EAAIa,WAAab,EAAIG,aAAeH,EAAIK,YAAc,EACtDL,EAAI8B,UAAW,EAKnB,QAASC,GAAqB1b,EAAK2b,GAE/B,IADA,GAAsCC,GAAQjC,EAA1CtiB,EAAIwkB,GAAsBvnB,OACvB+C,KAGH,GAFAukB,EAASC,GAAsBxkB,GAC/BsiB,EAAMiC,EAAO1gB,UACC,aAAVygB,EACAH,EAAiB7B,OACd,IAAIiC,EAAO5b,KAAOA,EACrB,MAAc,UAAV2b,GACAE,GAAsBpnB,OAAO4C,EAAG,IACzB,GAEAsiB,CAOnB,OAHc,aAAVgC,IACAE,GAAsBvnB,OAAS,GAE5B,KAkCX,QAASwnB,GAAuBnC,EAAKoC,GAIjC,IAAK,GAAWva,GAFZ/D,EAAMsH,EAAYgX,EAAO,GAAGhT,gBAC5BmS,EAAe1d,EAAQC,GAAK6d,qBACvBjkB,EAAI,EAAOW,EAAM+jB,EAAOznB,OAAY0D,EAAJX,IAAWA,EAAG,CACnDmK,EAAKqZ,EAA0BkB,EAAO1kB,GACtC,KACI6jB,EAAazjB,IAAI+J,GACnB,MAAOhH,GACL,KAAM2B,GAAOqG,YAAY,2HAGjC0Y,EAAaK,SAGbP,EAAuBrB,GAqT3B,QAASqC,GAAyBrC,EAAK1iB,GACnC,GAAI0iB,EAAI3Z,IAAIlM,UAAYiR,EAAY9N,GAChC,KAAM,IAAI+B,GAAa,sBA+F/B,QAASijB,GAAuB9M,GAC5B,MAAO,UAASlY,EAAM6N,GAClB,GAAI3H,EACA1K,MAAK+nB,YACLrd,EAAQ1K,KAAKypB,WAAW,GACxB/e,EAAM,OAASgS,EAAU,QAAU,QAAQlY,EAAM6N,KAEjD3H,EAAQmB,EAAIa,YAAY1M,KAAKuN,IAAIlM,UACjCqJ,EAAMiQ,eAAenW,EAAM6N,IAE/BrS,KAAK0pB,eAAehf,EAAO1K,KAAK2pB,eAkFxC,QAAS/T,GAAQsR,GACb,GAAI0C,MACAC,EAAS,GAAIjV,GAAYsS,EAAIE,WAAYF,EAAIG,cAC7CyC,EAAQ,GAAIlV,GAAYsS,EAAII,UAAWJ,EAAIK,aAC3ClhB,EAA8B,kBAAf6gB,GAAIlO,QAAyBkO,EAAIlO,UAAY,WAEhE,IAA6B,mBAAlBkO,GAAIa,WACX,IAAK,GAAInjB,GAAI,EAAGW,EAAM2hB,EAAIa,WAAgBxiB,EAAJX,IAAWA,EAC7CglB,EAAchlB,GAAKie,EAASjN,QAAQsR,EAAIuC,WAAW7kB,GAG3D,OAAO,IAAMyB,EAAO,YAAcujB,EAAcjiB,KAAK,MAC7C,aAAekiB,EAAOjU,UAAY,YAAckU,EAAMlU,UAAY,IAn8B9E/J,EAAIG,OAAO+d,sBAAuB,CAElC,IASIC,GACAC,EAVAC,EAAU,UACVC,EAAS,SACT9hB,EAAMwD,EAAIxD,IACV6F,EAAOrC,EAAIqC,KACXrE,EAAeqE,EAAKrE,aACpBgZ,EAAWhX,EAAIgX,SACfC,EAAejX,EAAIiX,aACnBvc,EAAesF,EAAItF,aACnBqO,EAAcvM,EAAIuM,YAGlB5H,EAAWnB,EAAImB,SACfod,EAAU,UACV9X,EAAcjK,EAAIiK,YAClBvH,EAAU1C,EAAI0C,QACd0X,EAAcI,EAASJ,YAwCvB4H,EAA4BxgB,EAAanI,OAAQ,gBACjD4oB,EAAyBpc,EAAK/D,aAAa9I,SAAU,YAEzD2L,GAASqd,0BAA4BA,EACrCrd,EAASsd,uBAAyBA,CAElC,IAAIC,GAAuBD,KAA4BD,GAA6Bxe,EAAIG,OAAOmC,gBAE3Foc,IACAP,EAAqBhD,EACrBnb,EAAI2e,iBAAmB,SAAS1D,GAC5B,GAAI9b,GAAMwH,EAAUsU,EAAU,oBAAoBzlB,SAAUumB,EAAY5c,EAAIvC,SAG5E,OAA0B,QAAlBmf,EAAUlnB,MAAkB4R,EAAYsV,EAAUlb,cAAc6D,kBAAoBvF,IAEzFqf,GACPL,EAAqBnD,EACrBhb,EAAI2e,iBAAmB,WACnB,OAAO,IAGX9gB,EAAOiC,KAAK,iEAGhBE,EAAIme,mBAAqBA,CAEzB,IAAIS,GAAgBT,IAChBzd,EAAYV,EAAI8X,kBAAkBtiB,UAClC4J,EAAOF,EAAQ1J,UAGfqpB,EAA6Bxc,EAAKrD,kBAAkB4f,GACnD,aAAc,YAAa,eAAgB,eAEhDzd,GAAS0d,2BAA6BA,CAGtC,IAAIC,GAAqB9gB,EAAa4gB,EAAe,SACrDzd,GAAS2d,mBAAqBA,CAG9B,IAAIC,SAAiCH,GAAc1C,YAAcoC,CACjEnd,GAAS4d,uBAAyBA,CAElC,IAAIC,IAAkC,EAClCC,GAA0C,EAE1CC,EAA2BJ,EAC3B,SAAS9C,EAAiBnd,GACtB,GAAIM,GAAM6X,EAASrM,iBAAiB9L,GAChC0b,EAAWva,EAAIa,YAAY1B,EAC/Bob,GAAStH,gBAAgBpU,EAAM6L,aAAc7L,EAAM0M,WACnDyQ,EAAgBmD,SAAS/C,EAAe7B,IACxCyB,EAAgBvZ,OAAO5D,EAAM4L,eAAgB5L,EAAMyM,cACnD,IAEJjJ,GAAKvD,eAAe8f,GAAgB,WAAY,aAAc,2BACnDA,GAAc1C,YAAcoC,GAAUnd,EAASR,qBAE1D,WAQI,GAAI0a,GAAMxlB,OAAOqlB,cACjB,IAAIG,EAAK,CAML,IAAK,GAJD+D,GAA8B/D,EAAIa,WAClCmD,EAA8BD,EAA8B,EAC5DE,KACAC,EAA4BnE,EAAuBC,GAC9CtiB,EAAI,EAAOqmB,EAAJrmB,IAAmCA,EAC/CumB,EAAwBvmB,GAAKsiB,EAAIuC,WAAW7kB,EAIhD,IAAIqG,GAAOF,EAAQ1J,UACfgqB,EAASpgB,EAAK+D,YAAa3N,SAASwD,cAAc,OACtDwmB,GAAOC,gBAAkB,OACzB,IAAIxW,GAAWuW,EAAOrc,YAAa3N,SAAS0T,eAAe,QAGvD4N,EAAKthB,SAASqL,aASlB,IAPAiW,EAAG5F,SAASjI,EAAU,GACtB6N,EAAGpF,UAAS,GACZ2J,EAAI8D,SAASrI,GACbmI,EAA6D,GAAlB5D,EAAIa,WAC/Cb,EAAIqE,mBAGCL,EAA4B,CAM7B,GAAIM,GAAc9pB,OAAO+pB,UAAUC,WAAWC,MAAM,iBACpD,IAAIH,GAAeI,SAASJ,EAAY,KAAO,GAC3CX,GAAkC,MAC/B,CACH,GAAIjI,GAAKD,EAAGvD,YACZuD,GAAG5F,SAASjI,EAAU,GACtB8N,EAAG5F,OAAOlI,EAAU,GACpB8N,EAAG7F,SAASjI,EAAU,GACtBoS,EAAI8D,SAASrI,GACbuE,EAAI8D,SAASpI,GACbiI,EAAqD,GAAlB3D,EAAIa,YAQ/C,IAHA9c,EAAKqT,YAAY+M,GACjBnE,EAAIqE,kBAEC3mB,EAAI,EAAOqmB,EAAJrmB,IAAmCA,EAClC,GAALA,GAAUwmB,EACNL,EACAA,EAAyB7D,EAAKiE,EAAwBvmB,KAEtDiH,EAAIK,KAAK,yJACTgb,EAAI8D,SAASG,EAAwBvmB,KAGzCsiB,EAAI8D,SAASG,EAAwBvmB,QAOzDoI,EAAS6d,gCAAkCA,EAC3C7d,EAAS8d,wCAA0CA,CAGnD,IAAoCe,GAAhCC,GAAyB,CAEzB7gB,IAAQpB,EAAaoB,EAAM,wBAC3B4gB,EAAmB5gB,EAAK4d,qBACpB3a,EAAKrD,kBAAkBghB,GAAmB,OAAQ,UAClDC,GAAyB,IAGjC9e,EAAS8e,uBAAyBA,EAI9B7B,EADAS,EACuB,SAASxD,GAC5B,MAAOA,GAAIE,aAAeF,EAAII,WAAaJ,EAAIG,eAAiBH,EAAIK,aAGjD,SAASL,GAC5B,MAAOA,GAAIa,WAAab,EAAIuC,WAAWvC,EAAIa,WAAa,GAAG7O,WAAY,EA6H/E,IAAI6S,GAEAliB,GAAa4gB,EAAe,cAI5BsB,GAAsB,SAAS7E,EAAKzf,GAChC,IACI,MAAOyf,GAAIuC,WAAWhiB,GACxB,MAAOM,GACL,MAAO,QAGR2iB,IACPqB,GAAsB,SAAS7E,GAC3B,GAAIlc,GAAMsH,EAAY4U,EAAIE,YACtB1c,EAAQmB,EAAIa,YAAY1B,EAS5B,OARAN,GAAMiQ,eAAeuM,EAAIE,WAAYF,EAAIG,aAAcH,EAAII,UAAWJ,EAAIK,aAItE7c,EAAMwO,YAAclZ,KAAKukB,aACzB7Z,EAAMiQ,eAAeuM,EAAII,UAAWJ,EAAIK,YAAaL,EAAIE,WAAYF,EAAIG,cAGtE3c,IAYfkc,EAAiB/mB,UAAYgM,EAAIqE,kBAQjC,IAAIkZ,OAwBArC,GAAe,SAASxZ,GAExB,GAAIA,GAAOA,YAAeqZ,GAEtB,MADArZ,GAAIgW,UACGhW,CAGXA,GAAMiF,EAAUjF,EAAK,qBAErB,IAAI2Z,GAAM+B,EAAqB1b,GAC3Bqa,EAAYoC,EAAmBzc,GAAMye,EAAS1B,EAAyBtD,EAAgBzZ,GAAO,IASlG,OARI2Z,IACAA,EAAIW,gBAAkBD,EACtBV,EAAIsB,aAAewD,EACnB9E,EAAI3D,YAEJ2D,EAAM,GAAIN,GAAiBgB,EAAWoE,EAAQze,GAC9C6b,GAAsB5nB,MAAQ+L,IAAKA,EAAK9E,UAAWye,KAEhDA,EAGXrb,GAAIkb,aAAeA,GAEnBlb,EAAIogB,mBAAqB,SAASrZ,GAE9B,MADAlJ,GAAOkG,kBAAkB,uBAAwB,0BAC1C/D,EAAIkb,aAAa1e,EAAI0K,gBAAgBH,IAGhD,IAAIsZ,IAAWtF,EAAiB/mB,SAqBhC,KAAK0qB,GAAwBG,GAA8Bxc,EAAKvD,eAAe8f,GAAgB,kBAAmB,aAAc,CAC5HyB,GAASX,gBAAkB,WACvBvrB,KAAK6nB,gBAAgB0D,kBACrBzD,EAAqB9nB,MAGzB,IAAImsB,IAAmB,SAASjF,EAAKxc,GACjCqgB,EAAyB7D,EAAIW,gBAAiBnd,GAC9Cwc,EAAI3D,UAIJ2I,IAASlB,SADTJ,EACoB,SAASlgB,EAAO0hB,GAChC,GAAIN,GAA0BxB,GAA0BtqB,KAAKwoB,aAAa9nB,MAAQ0pB,EAC9E1B,EAA2B1oB,KAAM0K,OAEjC,IAAIgc,EAAoB0F,IAAczB,EAClCwB,GAAiBnsB,KAAM0K,OACpB,CACH,GAAI2hB,EACAxB,GACAwB,EAAqBrsB,KAAK+nB,YAE1B/nB,KAAKurB,kBACLc,EAAqB,EAKzB,IAAIC,GAAoBrE,EAAevd,GAAO0U,YAC9C,KACIpf,KAAK6nB,gBAAgBmD,SAASsB,GAChC,MAAOvkB,IAMT,GAFA/H,KAAK+nB,WAAa/nB,KAAK6nB,gBAAgBE,WAEnC/nB,KAAK+nB,YAAcsE,EAAqB,EAAG,CAK3C,GAAIxgB,EAAIG,OAAO+d,qBAAsB,CACjC,GAAI9G,GAAc8I,GAAoB/rB,KAAK6nB,gBAAiB7nB,KAAK+nB,WAAa,EAC1E9E,KAAgBR,EAAYQ,EAAavY,KAEzCA,EAAQ,GAAIoY,GAAaG,IAGjCjjB,KAAKgoB,QAAQhoB,KAAK+nB,WAAa,GAAKrd,EACpC8c,EAA8BxnB,KAAM0K,EAAO6hB,GAAoBvsB,KAAK6nB,kBACpE7nB,KAAKukB,YAAc0F,EAAqBjqB,UAGxCA,MAAKujB,YAMD,SAAS7Y,EAAO0hB,GAC5B1F,EAAoB0F,IAAczB,EAClCwB,GAAiBnsB,KAAM0K,IAEvB1K,KAAK6nB,gBAAgBmD,SAAS/C,EAAevd,IAC7C1K,KAAKujB,YAKjB2I,GAASM,UAAY,SAASlD,GAC1B,GAAIwC,GAA0BxB,GAA0BhB,EAAOznB,OAAS,EACpEwnB,EAAuBrpB,KAAMspB,OAC1B,CACHtpB,KAAKurB,iBACL,KAAK,GAAI3mB,GAAI,EAAGW,EAAM+jB,EAAOznB,OAAY0D,EAAJX,IAAWA,EAC5C5E,KAAKgrB,SAAS1B,EAAO1kB,UAI9B,CAAA,KAAIiF,EAAa4gB,EAAe,UAAY5gB,EAAa0C,EAAW,WAChEuf,GAA0BvB,GAqDjC,MADA7gB,GAAOiC,KAAK,yDACL,CAnDPugB,IAASX,gBAAkB,WAEvB,IAII,GAHAvrB,KAAKwoB,aAAaiE,QAGY,QAA1BzsB,KAAKwoB,aAAa9nB,KAAgB,CAGlC,GAAIsK,EACJ,IAAIhL,KAAKonB,WACLpc,EAAMsH,EAAYtS,KAAKonB,gBACpB,IAAIpnB,KAAKwoB,aAAa9nB,MAAQ0pB,EAAS,CAC1C,GAAI3B,GAAezoB,KAAKwoB,aAAa9b,aACjC+b,GAAa5mB,SACbmJ,EAAMsH,EAAamW,EAAaviB,KAAK,KAG7C,GAAI8E,EAAK,CACL,GAAI6Y,GAAY9Y,EAAQC,GAAK+B,iBAC7B8W,GAAUiF,SACV9oB,KAAKwoB,aAAaiE,UAG5B,MAAM1kB,IACR+f,EAAqB9nB,OAGzBksB,GAASlB,SAAW,SAAStgB,GACrB1K,KAAKwoB,aAAa9nB,MAAQ0pB,EAC1B1B,EAA2B1oB,KAAM0K,IAEjCmB,EAAIkX,iBAAiBmD,iBAAiBxb,GAAOoe,SAC7C9oB,KAAKgoB,QAAQ,GAAKtd,EAClB1K,KAAK+nB,WAAa,EAClB/nB,KAAKukB,YAAcvkB,KAAKgoB,QAAQ,GAAG9O,UACnCsO,EAA8BxnB,KAAM0K,GAAO,KAInDwhB,GAASM,UAAY,SAASlD,GAC1BtpB,KAAKurB,iBACL,IAAIxD,GAAauB,EAAOznB,MACpBkmB,GAAa,EACbsB,EAAuBrpB,KAAMspB,GACtBvB,GACP/nB,KAAKgrB,SAAS1B,EAAO,KAQjC4C,GAASzC,WAAa,SAAShiB,GAC3B,GAAY,EAARA,GAAaA,GAASzH,KAAK+nB,WAC3B,KAAM,IAAIxhB,GAAa,iBAGvB,OAAOvG,MAAKgoB,QAAQvgB,GAAO2X,aAInC,IAAIsN,GAEJ,IAAInC,EACAmC,GAAmB,SAASxF,GACxB,GAAIxc,EACAmB,GAAI2e,iBAAiBtD,EAAI3Z,KACzB7C,EAAQwc,EAAIsB,aAAa9b,eAEzBhC,EAAQK,EAAQmc,EAAI3Z,IAAIlM,UAAU0L,kBAClCrC,EAAM6S,UAAS,IAGf2J,EAAIsB,aAAa9nB,MAAQ0pB,EACzB7B,EAAuBrB,GAChBzc,EAAYC,GACnB2d,EAAoBnB,EAAKxc,GAEzBod,EAAqBZ,QAG1B,IAAIrd,EAAa4gB,EAAe,qBAAwBA,GAAc1C,YAAcoC,EACvFuC,GAAmB,SAASxF,GACxB,GAAI4E,GAA0BxB,GAA0BpD,EAAIsB,aAAa9nB,MAAQ0pB,EAC7E7B,EAAuBrB,OAGvB,IADAA,EAAIc,QAAQnmB,OAASqlB,EAAIa,WAAab,EAAIW,gBAAgBE,WACtDb,EAAIa,WAAY,CAChB,IAAK,GAAInjB,GAAI,EAAGW,EAAM2hB,EAAIa,WAAgBxiB,EAAJX,IAAWA,EAC7CsiB,EAAIc,QAAQpjB,GAAK,GAAIiH,GAAIiX,aAAaoE,EAAIW,gBAAgB4B,WAAW7kB,GAEzE4iB,GAA8BN,EAAKA,EAAIc,QAAQd,EAAIa,WAAa,GAAIwE,GAAoBrF,EAAIW,kBAC5FX,EAAI3C,YAAc0F,EAAqB/C,OAEvCY,GAAqBZ,QAI9B,CAAA,IAAIwD,SAAqCD,GAAclG,aAAe2F,SAAkB3d,GAAU2M,WAAagR,IAAWld,EAASR,mBAetI,MADA9C,GAAOiC,KAAK,mFACL,CAdP+gB,IAAmB,SAASxF,GACxB,GAAIxc,GAAOkd,EAAYV,EAAIW,eACvBD,GAAUR,YACV1c,EAAQqhB,GAAoBnE,EAAW,GACvCV,EAAIc,SAAWtd,GACfwc,EAAIa,WAAa,EACjBJ,EAAwCT,GACxCA,EAAI3C,YAAc0F,EAAqB/C,IAEvCY,EAAqBZ,IAQjCgF,GAAS3I,QAAU,SAASoJ,GACxB,GAAIC,GAAYD,EAAkB3sB,KAAKgoB,QAAQvkB,MAAM,GAAK,KACtDopB,EAAgB7sB,KAAKonB,WAAY0F,EAAkB9sB,KAAKqnB,YAG5D,IADAqF,GAAiB1sB,MACb2sB,EAAiB,CAEjB,GAAI/nB,GAAIgoB,EAAU/qB,MAClB,IAAI+C,GAAK5E,KAAKgoB,QAAQnmB,OAClB,OAAO,CAKX,IAAI7B,KAAKonB,YAAcyF,GAAiB7sB,KAAKqnB,cAAgByF,EACzD,OAAO,CAIX,MAAOloB,KACH,IAAK6d,EAAYmK,EAAUhoB,GAAI5E,KAAKgoB,QAAQpjB,IACxC,OAAO,CAGf,QAAO,GAKf,IAAImoB,IAAsB,SAAS7F,EAAKxc,GACpC,GAAI4e,GAASpC,EAAI8F,cACjB9F,GAAIqE,iBACJ,KAAK,GAAI3mB,GAAI,EAAGW,EAAM+jB,EAAOznB,OAAY0D,EAAJX,IAAWA,EACvC6d,EAAY/X,EAAO4e,EAAO1kB,KAC3BsiB,EAAI8D,SAAS1B,EAAO1kB,GAGvBsiB,GAAIa,YACLD,EAAqBZ,GAKzBgF,IAASe,YADTnB,GAA0BxB,EACH,SAAS5f,GAC5B,GAAI1K,KAAKwoB,aAAa9nB,MAAQ0pB,EAAS,CASnC,IAAK,GADDrb,GAPA0Z,EAAezoB,KAAKwoB,aAAa9b,cACjCic,EAAeP,EAA0B1d,GAIzCM,EAAMsH,EAAYmW,EAAaviB,KAAK,IACpC0iB,EAAkB7d,EAAQC,GAAK6d,qBAC3BqE,GAAU,EACTtoB,EAAI,EAAGW,EAAMkjB,EAAa5mB,OAAY0D,EAAJX,IAAWA,EAClDmK,EAAK0Z,EAAaviB,KAAKtB,GACnBmK,IAAO4Z,GAAgBuE,EACvBtE,EAAgB5jB,IAAIyjB,EAAaviB,KAAKtB,IAEtCsoB,GAAU,CAGlBtE,GAAgBE,SAGhBP,EAAuBvoB,UAEvB+sB,IAAoB/sB,KAAM0K,IAIX,SAASA,GAC5BqiB,GAAoB/sB,KAAM0K,GAKlC,IAAI6hB,KACChC,GAAwBG,GAA8B1d,EAASR,oBAChE+f,GAAsBtF,EAEtBiF,GAASvC,WAAa,WAClB,MAAO4C,IAAoBvsB,QAG/BusB,GAAsBL,GAASvC,WAAa,WACxC,OAAO,GAKfuC,GAASiB,YAAcjB,GAASvC,WAKhCuC,GAASrpB,SAAW,WAEhB,IAAK,GADDuqB,MACKxoB,EAAI,EAAGW,EAAMvF,KAAK+nB,WAAgBxiB,EAAJX,IAAWA,EAC9CwoB,EAAWxoB,GAAK,GAAK5E,KAAKgoB,QAAQpjB,EAEtC,OAAOwoB,GAAWzlB,KAAK,KAU3BukB,GAAS3O,SAAW,SAAS/Y,EAAM6N,GAC/BkX,EAAyBvpB,KAAMwE,EAC/B,IAAIkG,GAAQmB,EAAIa,YAAYlI,EAC5BkG,GAAMoU,gBAAgBta,EAAM6N,GAC5BrS,KAAK0pB,eAAehf,GACpB1K,KAAKukB,aAAc,GAGvB2H,GAASmB,gBAAkB,WACvB,IAAIrtB,KAAK+nB,WAIL,KAAM,IAAIxhB,GAAa,oBAHvB,IAAImE,GAAQ1K,KAAKgoB,QAAQ,EACzBhoB,MAAKud,SAAS7S,EAAM4L,eAAgB5L,EAAMyM,cAMlD+U,GAASoB,cAAgB,WACrB,IAAIttB,KAAK+nB,WAIL,KAAM,IAAIxhB,GAAa,oBAHvB,IAAImE,GAAQ1K,KAAKgoB,QAAQhoB,KAAK+nB,WAAa,EAC3C/nB,MAAKud,SAAS7S,EAAM6L,aAAc7L,EAAM0M,YAQhD8U,GAASqB,kBAAoB,SAAS/oB,GAClC+kB,EAAyBvpB,KAAMwE,EAC/B,IAAIkG,GAAQmB,EAAIa,YAAYlI,EAC5BkG,GAAM8S,mBAAmBhZ,GACzBxE,KAAK0pB,eAAehf,IAGxBwhB,GAASsB,mBAAqB,WAE1B,GAAI1B,GAA0BxB,GAA0BtqB,KAAKwoB,aAAa9nB,MAAQ0pB,EAAS,CAGvF,IAFA,GACIqD,GADAhF,EAAezoB,KAAKwoB,aAAa9b,cAE9B+b,EAAa5mB,QAChB4rB,EAAUhF,EAAaviB,KAAK,GAC5BuiB,EAAajhB,OAAOimB,GACpBA,EAAQ/oB,WAAW4Z,YAAYmP,EAEnCztB,MAAKujB,cACF,IAAIvjB,KAAK+nB,WAAY,CACxB,GAAIuB,GAAStpB,KAAKgtB,cAClB,IAAI1D,EAAOznB,OAAQ,CACf7B,KAAKurB,iBACL,KAAK,GAAI3mB,GAAI,EAAGW,EAAM+jB,EAAOznB,OAAY0D,EAAJX,IAAWA,EAC5C0kB,EAAO1kB,GAAGiZ,gBAId7d,MAAKgrB,SAAS1B,EAAO/jB,EAAM,OAMvC2mB,GAASwB,UAAY,SAAS3V,EAAM3X,GAChC,IAAK,GAAIwE,GAAI,EAAGW,EAAMvF,KAAKgoB,QAAQnmB,OAAY0D,EAAJX,IAAWA,EAClD,GAAKmT,EAAM/X,KAAKypB,WAAW7kB,IACvB,MAAOxE,IAKnB8rB,GAASc,aAAe,WACpB,GAAI1D,KAIJ,OAHAtpB,MAAK0tB,UAAU,SAAShjB,GACpB4e,EAAO9nB,KAAKkJ,KAET4e,GAGX4C,GAASxC,eAAiB,SAAShf,EAAO0hB,GACtCpsB,KAAKurB,kBACLvrB,KAAKgrB,SAAStgB,EAAO0hB,IAGzBF,GAASyB,sBAAwB,SAASza,EAAY0a,GAClD,GAAIC,KAIJ,OAHA7tB,MAAK0tB,UAAW,SAAShjB,GACrBmjB,EAAQrsB,KAAMkJ,EAAMwI,GAAYpP,MAAM4G,EAAOkjB,MAE1CC,GAiBX3B,GAASnP,SAAWyM,GAAuB,GAC3C0C,GAASlP,OAASwM,GAAuB,GAGzC3d,EAAIoE,eAAe6Y,OAAS,SAASsD,GACjCrF,GAAc/mB,KAAKsS,eAAgBoX,eAAe1pB,KAAMosB,IAG5DF,GAAS4B,gBAAkB,SAAS/V,GAChC,GAAIuR,MACAnC,EAAWnnB,KAAK2pB,YAEpB3pB,MAAK0tB,UAAU,SAAShjB,GACpBqN,EAAKrN,GACL4e,EAAO9nB,KAAKkJ,KAGhB1K,KAAKurB,kBACDpE,GAA6B,GAAjBmC,EAAOznB,OACnB7B,KAAKgrB,SAAS1B,EAAO,GAAI,YAEzBtpB,KAAKwsB,UAAUlD,IAIvB4C,GAAS9K,aAAe,SAAS5c,EAAM6c,GACnC,MAAOrhB,MAAK0tB,UAAW,SAAShjB,GAC5B,MAAOA,GAAM0W,aAAa5c,EAAM6c,KACjC,KAAU,GAGjB6K,GAASlK,YAAc,SAASC,GAC5B,OACIkF,SAAUnnB,KAAK2pB,aACfoE,eAAgB/tB,KAAK2tB,sBAAsB,eAAgB1L,MAInEiK,GAAS/J,eAAiB,SAASC,GAE/B,IAAK,GAAW4L,GAAetjB,EAD3BujB,KACKrpB,EAAI,EAAyBopB,EAAgB5L,EAAS2L,eAAenpB,MAC1E8F,EAAQmB,EAAIa,YAAY1M,KAAKuN,KAC7B7C,EAAMyX,eAAe6L,GACrBC,EAAUzsB,KAAKkJ,EAEf0X,GAAS+E,SACTnnB,KAAK0pB,eAAeuE,EAAU,GAAI,YAElCjuB,KAAKwsB,UAAUyB,IAIvB/B,GAASvL,OAAS,WACd,GAAIuN,KAIJ,OAHAluB,MAAK0tB,UAAU,SAAShjB,GACpBwjB,EAAW1sB,KAAMqhB,EAASlC,OAAOjW,MAE9BwjB,EAAWvmB,KAAK,KAGvBqF,EAASP,sBACTyf,GAASiC,mBAAqB,WAC1B,GAAIjH,EACJ,IAAMA,EAAMlnB,KAAKwoB,aAAgB,CAC7B,GAAI9d,GAAQwc,EAAIxa,aAChB,IAAIjC,EAAYC,GACZ,MAAOA,EAEP,MAAMhB,GAAOqG,YAAY,wDAE1B,GAAI/P,KAAK+nB,WAAa,EACzB,MAAOlc,GAAIkX,iBAAiBmD,iBAAkBlmB,KAAKypB,WAAW,GAE9D,MAAM/f,GAAOqG,YAAY,qDAoBrCmc,GAASlT,QAAU,WACf,MAAO,oBAGXkT,GAAStW,QAAU,WACf,MAAOA,GAAQ5V,OAGnBksB,GAASzW,OAAS,WACdwT,EAAqBjpB,KAAKuN,IAAK,UAC/Bwb,EAAiB/oB,OAGrB4mB,EAAiBwH,UAAY,WACzBnF,EAAqB,KAAM,cAG/BrC,EAAiBhR,QAAUA,EAC3BgR,EAAiBF,oBAAsBA,EAEvC7a,EAAIwiB,UAAYzH,EAEhB/a,EAAIqE,mBAAqBgc,GAEzBrgB,EAAI2D,gBAAgB,SAASjC,GACM,mBAApBA,GAAIwZ,eACXxZ,EAAIwZ,aAAe,WACf,MAAOA,IAAaxZ,KAG5BA,EAAM,QAQd,IAAI+gB,IAAW,EAEXC,EAAc,WACTD,IACDA,GAAW,GACNziB,EAAIC,aAAeD,EAAIG,OAAOoC,gBAC/B9B,KAmBZ,OAdIb,KAE2B,YAAvBpK,SAASC,WACTitB,KAEI1kB,EAAaxI,SAAU,qBACvBA,SAASb,iBAAiB,mBAAoB+tB,GAAa,GAI/Dlf,EAAY3N,OAAQ,OAAQ6sB,KAI7B1iB,GACR7L,MAcH,SAAUsJ,EAASC,GACM,kBAAVC,SAAwBA,OAAOC,IAEtCD,QAAQ,gBAAiBF,GACD,mBAAVI,SAA2C,gBAAXC,SAE9CD,OAAOC,QAAUL,EAASklB,QAAQ,UAGlCllB,EAAQC,EAAKK,QAElB,SAASA,GACRA,EAAM+D,aAAa,eAAgB,gBAAiB,SAAS9B,EAAKnC,GAK9D,QAAS+kB,GAAKta,EAAInJ,GACd,OAAQA,GAAO3J,UAAUqtB,eAAeva,GAG5C,QAASwa,GAA0BjkB,EAAOkkB,GACtC,GACIC,GADAC,EAAW,uBAAyB,GAAIC,MAAU,KAAO,GAAK1J,KAAK2J,UAAUvrB,MAAM,GAEnFuH,EAAM3C,EAAIiK,YAAY5H,EAAM4L,gBAG5B2Y,EAAgBvkB,EAAM0U,YAY1B,OAXA6P,GAAc1R,SAASqR,GAGvBC,EAAW7jB,EAAInG,cAAc,QAC7BgqB,EAAS1a,GAAK2a,EACdD,EAASK,MAAMC,WAAa,IAC5BN,EAASK,MAAME,QAAU,OACzBP,EAASQ,UAAY,yBACrBR,EAAS7f,YAAYhE,EAAI+J,eAAeua,IAExCL,EAAchP,WAAW4O,GAClBA,EAGX,QAASU,GAAiBvkB,EAAKN,EAAOokB,EAAUF,GAC5C,GAAIC,GAAWJ,EAAKK,EAAU9jB,EAC1B6jB,IACAnkB,EAAMkkB,EAAU,iBAAmB,gBAAgBC,GACnDA,EAASnqB,WAAW4Z,YAAYuQ,IAEhCnlB,EAAOwC,KAAK,8DAIpB,QAASsjB,GAAc7M,EAAIC,GACvB,MAAOA,GAAG/C,sBAAsB8C,EAAG3H,eAAgB2H,GAGvD,QAAS8M,GAAU/kB,EAAOyc,GACtB,GAAInD,GAASC,EAAOjZ,EAAMa,EAAIgX,SAASrM,iBAAiB9L,GAAQgb,EAAOhb,EAAM7H,UAE7E,OAAI6H,GAAMwO,WACN+K,EAAQ0K,EAA0BjkB,GAAO,IAErCrJ,SAAU2J,EACV8jB,SAAU7K,EAAM9P,GAChB+E,WAAW,KAGf+K,EAAQ0K,EAA0BjkB,GAAO,GACzCsZ,EAAU2K,EAA0BjkB,GAAO,IAGvCrJ,SAAU2J,EACV0kB,cAAe1L,EAAQ7P,GACvBwb,YAAa1L,EAAM9P,GACnB+E,WAAW,EACXiO,SAAUA,EACVtkB,SAAU,WACN,MAAO,mBAAqB6iB,EAAO,iBAAmBhb,EAAM7H,WAAa,OAMzF,QAAS+sB,GAAaC,EAAWC,GAC7B,GAAI9kB,GAAM6kB,EAAUxuB,QACI,oBAAbyuB,KACPA,GAAY,EAEhB,IAAIplB,GAAQmB,EAAIa,YAAY1B,EAC5B,IAAI6kB,EAAU3W,UAAW,CACrB,GAAI2V,GAAWJ,EAAKoB,EAAUf,SAAU9jB,EACxC,IAAI6jB,EAAU,CACVA,EAASK,MAAME,QAAU,QACzB,IAAIpK,GAAe6J,EAASne,eAGxBsU,IAAyC,GAAzBA,EAAa9V,UAC7B2f,EAASnqB,WAAW4Z,YAAYuQ,GAChCnkB,EAAMoU,gBAAgBkG,EAAcA,EAAanjB,UAEjD6I,EAAMoX,eAAe+M,GACrBA,EAASnqB,WAAW4Z,YAAYuQ,QAGpCnlB,GAAOwC,KAAK,kEAGhBqjB,GAAiBvkB,EAAKN,EAAOmlB,EAAUH,eAAe,GACtDH,EAAiBvkB,EAAKN,EAAOmlB,EAAUF,aAAa,EAOxD,OAJIG,IACAplB,EAAMwT,sBAGHxT,EAGX,QAASqlB,GAAWzG,EAAQnC,GACxB,GAAqBzc,GAAOM,EAAxBglB,IAGJ1G,GAASA,EAAO7lB,MAAM,GACtB6lB,EAAO2G,KAAKT,EAEZ,KAAK,GAAI5qB,GAAI,EAAGW,EAAM+jB,EAAOznB,OAAY0D,EAAJX,IAAWA,EAC5CorB,EAAWprB,GAAK6qB,EAAUnG,EAAO1kB,GAAIuiB,EAKzC,KAAKviB,EAAIW,EAAM,EAAGX,GAAK,IAAKA,EACxB8F,EAAQ4e,EAAO1kB,GACfoG,EAAMa,EAAIgX,SAASrM,iBAAiB9L,GAChCA,EAAMwO,UACNxO,EAAMqX,cAAc0M,EAAKuB,EAAWprB,GAAGkqB,SAAU9jB,KAEjDN,EAAM2S,aAAaoR,EAAKuB,EAAWprB,GAAG+qB,YAAa3kB,IACnDN,EAAM0S,cAAcqR,EAAKuB,EAAWprB,GAAG8qB,cAAe1kB,IAI9D,OAAOglB,GAGX,QAASE,GAAc3iB,GACnB,IAAK1B,EAAI2e,iBAAiBjd,GAEtB,MADA7D,GAAOwC,KAAK,0HACL,IAEX,IAAIgb,GAAMrb,EAAIkb,aAAaxZ,GACvB+b,EAASpC,EAAI8F,eACb7F,EAA6B,GAAjBmC,EAAOznB,QAAeqlB,EAAIyC,aAEtCqG,EAAaD,EAAWzG,EAAQnC,EASpC,OANIA,GACAD,EAAIwC,eAAeJ,EAAO,GAAI,YAE9BpC,EAAIsF,UAAUlD,IAId/b,IAAKA,EACLyiB,WAAYA,EACZG,UAAU,GAIlB,QAASC,GAAcJ,GAOnB,IAAK,GAND1G,MAIAvB,EAAaiI,EAAWnuB,OAEnB+C,EAAImjB,EAAa,EAAGnjB,GAAK,EAAGA,IACjC0kB,EAAO1kB,GAAKgrB,EAAaI,EAAWprB,IAAI,EAG5C,OAAO0kB,GAGX,QAAS+G,GAAiBC,EAAgBC,GACtC,IAAKD,EAAeH,SAAU,CAC1B,GAAIH,GAAaM,EAAeN,WAC5B9I,EAAMrb,EAAIkb,aAAauJ,EAAe/iB,KACtC+b,EAAS8G,EAAcJ,GAAajI,EAAaiI,EAAWnuB,MAE9C,IAAdkmB,GAAmBwI,GAAqB1kB,EAAImB,SAAS2d,oBAAsBqF,EAAW,GAAG7I,UACzFD,EAAIqE,kBACJrE,EAAI8D,SAAS1B,EAAO,IAAI,IAExBpC,EAAIsF,UAAUlD,GAGlBgH,EAAeH,UAAW,GAIlC,QAASK,GAAoBxlB,EAAK8jB,GAC9B,GAAID,GAAWJ,EAAKK,EAAU9jB,EAC1B6jB,IACAA,EAASnqB,WAAW4Z,YAAYuQ,GAIxC,QAAS4B,GAAcH,GAEnB,IAAK,GAAoCT,GADrCG,EAAaM,EAAeN,WACvBprB,EAAI,EAAGW,EAAMyqB,EAAWnuB,OAAuB0D,EAAJX,IAAWA,EAC3DirB,EAAYG,EAAWprB,GACnBirB,EAAU3W,UACVsX,EAAoBF,EAAetlB,IAAK6kB,EAAUf,WAElD0B,EAAoBF,EAAetlB,IAAK6kB,EAAUH,eAClDc,EAAoBF,EAAetlB,IAAK6kB,EAAUF,cA3M9D,GAAItnB,GAAMwD,EAAIxD,IAEVinB,EAAiB,GA8MrBzjB,GAAIqC,KAAKI,OAAOzC,GACZ4jB,UAAWA,EACXG,aAAcA,EACdG,WAAYA,EACZK,cAAeA,EACfF,cAAeA,EACfG,iBAAkBA,EAClBG,oBAAqBA,EACrBC,cAAeA,OAIxBzwB,KAMH,IAAI0wB,MAAO,YAIXA,MAAKpiB,OAAS,SAASqiB,EAAWC,GACjC,GAAItiB,GAASoiB,KAAK7wB,UAAUyO,MAG5BoiB,MAAKG,cAAe,CACpB,IAAIC,GAAQ,GAAI9wB,KAChBsO,GAAOnN,KAAK2vB,EAAOH,GAClBG,EAAMC,KAAO,mBAGPL,MAAKG,YAIZ,IAAI5U,GAAc6U,EAAM7U,YACpB+U,EAAQF,EAAM7U,YAAc,WAC/B,IAAKyU,KAAKG,aACT,GAAI7wB,KAAKixB,eAAiBjxB,KAAKic,aAAe+U,EAC7ChxB,KAAKixB,eAAgB,EACrBhV,EAAYnY,MAAM9D,KAAM0D,iBACjB1D,MAAKixB,kBACN,IAAoB,MAAhBvtB,UAAU,GACpB,OAAQA,UAAU,GAAG4K,QAAUA,GAAQnN,KAAKuC,UAAU,GAAIotB,GAmB7D,OAbAE,GAAM7f,SAAWnR,KACjBgxB,EAAM1iB,OAAStO,KAAKsO,OACpB0iB,EAAME,QAAUlxB,KAAKkxB,QACrBF,EAAMG,UAAYnxB,KAAKmxB,UACvBH,EAAMnxB,UAAYixB,EAClBE,EAAMnuB,SAAW7C,KAAK6C,SACtBmuB,EAAMI,QAAU,SAAS1wB,GAExB,MAAgB,UAARA,EAAoBswB,EAAQ/U,EAAYmV,WAEjD9iB,EAAOnN,KAAK6vB,EAAOJ,GAEM,kBAAdI,GAAM1kB,MAAoB0kB,EAAM1kB,OACpC0kB,GAGRN,KAAK7wB,WACJyO,OAAQ,SAAS+iB,EAAQC,GACxB,GAAI5tB,UAAU7B,OAAS,EAAG,CACzB,GAAIsP,GAAWnR,KAAKqxB,EACpB,IAAIlgB,GAA6B,kBAATmgB,MAErBngB,EAASigB,SAAWjgB,EAASigB,WAAaE,EAAMF,YAClD,WAAW3qB,KAAK6qB,GAAQ,CAExB,GAAInsB,GAASmsB,EAAMF,SAEnBE,GAAQ,WACP,GAAIC,GAAWvxB,KAAK+wB,MAAQL,KAAK7wB,UAAUkxB,IAC3C/wB,MAAK+wB,KAAO5f,CACZ,IAAI/Q,GAAc+E,EAAOrB,MAAM9D,KAAM0D,UAErC,OADA1D,MAAK+wB,KAAOQ,EACLnxB,GAGRkxB,EAAMF,QAAU,SAAS1wB,GACxB,MAAgB,UAARA,EAAoB4wB,EAAQnsB,GAErCmsB,EAAMzuB,SAAW6tB,KAAK7tB,SAEvB7C,KAAKqxB,GAAUC,MACT,IAAID,EAAQ,CAClB,GAAI/iB,GAASoiB,KAAK7wB,UAAUyO,MAEvBoiB,MAAKG,cAA+B,kBAAR7wB,QAChCsO,EAAStO,KAAKsO,QAAUA,EAOzB,KALA,GAAIwiB,IAASU,SAAU,MAEnBC,GAAU,cAAe,WAAY,WAErC7sB,EAAI8rB,KAAKG,aAAe,EAAI,EACzBa,EAAMD,EAAO7sB,MACfysB,EAAOK,IAAQZ,EAAMY,IACxBpjB,EAAOnN,KAAKnB,KAAM0xB,EAAKL,EAAOK,GAKhC,KAAK,GAAIA,KAAOL,GACVP,EAAMY,IAAMpjB,EAAOnN,KAAKnB,KAAM0xB,EAAKL,EAAOK,IAGjD,MAAO1xB,QAKT0wB,KAAOA,KAAKpiB,QACX2N,YAAa,WACZjc,KAAKsO,OAAO5K,UAAU,OAGvByN,SAAUhP,OACVgG,QAAS,MAET+oB,QAAS,SAASzvB,EAAQkwB,EAAOC,GAChC,IAAK,GAAIF,KAAOjwB,GACaowB,SAAxB7xB,KAAKH,UAAU6xB,IAClBC,EAAMxwB,KAAKywB,EAASnwB,EAAOiwB,GAAMA,EAAKjwB,IAKzC0vB,UAAW,WACV,IAAK,GAAIvsB,GAAI,EAAGA,EAAIlB,UAAU7B,OAAQ+C,IACV,kBAAhBlB,WAAUkB,GAEpBlB,UAAUkB,GAAG5E,KAAKH,WAGlBG,KAAKH,UAAUyO,OAAO5K,UAAUkB,GAGlC,OAAO5E,OAGR6C,SAAU,WACT,MAAOjD,QAAOI,KAAKoxB,cAKrBlpB,UAAU4pB,QAAU,WASlB,QAASC,GAAWC,GAClB,QAAU,mBAAmBvrB,KAAKurB,IAAcA,EAAUrG,MAAM,gCAAmCkG,OAAW,IAAI,GAGpH,QAASI,GAAeD,GACtB,QAASA,EAAUrG,MAAM,mBAAqBkG,OAAW,IAAI,GAG/D,QAASK,GAAK/pB,EAASgqB,GACrB,GACIC,GADAC,EAAK,EAaT,OAVyB,+BAArB5G,UAAU6G,QACZF,EAAK,GAAIxZ,QAAO,8BACc,YAArB6S,UAAU6G,UACnBF,EAAK,GAAIxZ,QAAO,uCAGdwZ,GAAsC,MAAhCA,EAAGG,KAAK9G,UAAUuG,aAC1BK,EAAKG,WAAW5Z,OAAO6Z,KAGd,KAAPJ,GAAoB,EACnBlqB,EACAgqB,EACY,MAAbA,EAAqCE,EAAVlqB,EACd,MAAbgqB,EAA2BhqB,EAAUkqB,EACxB,OAAbF,EAAuCE,GAAXlqB,EACf,OAAbgqB,EAA4BhqB,GAAWkqB,EAA3C,OAJwBlqB,IAAYkqB,GADb,EA/BzB,GAAIL,GAAcvG,UAAUuG,UACxBltB,EAAczD,SAASwD,cAAc,OAErC6tB,EAAoD,KAAtCV,EAAUlvB,QAAQ,UAAyD,KAA/BkvB,EAAUlvB,QAAQ,SAC5E6vB,EAAoD,KAAtCX,EAAUlvB,QAAQ,gBAChC8vB,EAAoD,KAAtCZ,EAAUlvB,QAAQ,WAChC+vB,EAAoD,KAAtCb,EAAUlvB,QAAQ,SAiCpC,QAEEgwB,WAAYd,EAUZjmB,UAAW,WACT,GAAIimB,GAA8BhyB,KAAK8yB,WAAWhmB,cAE9CimB,EAA8B,mBAAqBjuB,GAEnDkuB,EAA8B3xB,SAAS4xB,aAAe5xB,SAAS6xB,uBAAyB7xB,SAAS8xB,kBAEjGC,EAA8B/xB,SAASgyB,eAAiBhyB,SAASsD,iBAEjE2uB,EAA+BtzB,KAAKuzB,SAAWxB,EAAWC,GAAa,GAAOhyB,KAAKwzB,aAAevB,EAAeD,GAAa,GAA0C,KAApCA,EAAUlvB,QAAQ,eAAwD,KAAhCkvB,EAAUlvB,QAAQ,SACpM,OAAOiwB,IACFC,GACAI,IACCE,GAGRG,cAAe,WACb,MAAOzzB,MAAK0zB,cAAc,cAG5BH,MAAO,WACL,MAAO,oBAAsB9sB,KAAKzG,KAAK8yB,aAGzCU,UAAW,WACT,MAA8C,KAAvCxzB,KAAK8yB,WAAWhwB,QAAQ,YAYjC6wB,yBAA0B,WACxB,MAAOzB,MAQT0B,8CAA+C,WAC7C,QAAS,iBAAmBvyB,YAO9BwyB,6CAA8C,WAC5C,MAAO3B,MAQT4B,wBAAyB,WACvB,MAAO,gBAAkBhvB,IAM3BivB,0BAA2B,WACzB,MAAOrB,IAGTsB,+BAAgC,SAASvG,GACvC,MAAO,eAAiBA,IAG1BiG,cAAe,SAASO,GACtB,MAAO,KAAOA,IAAanvB,IAAe,WAExC,MADAA,GAAYmC,aAAa,KAAOgtB,EAAW,WACM,kBAAnCnvB,GAAY,KAAOmvB,OAOrCC,gCAAiC,WAC/B,OAAQrB,GAWVsB,kBAAmB,SAASvC,GAC1B,GAAInE,GAAUmE,EAAQ/sB,cAAc,OAChCuvB,EAAU,wBAEd,OADA3G,GAAQrZ,UAAYggB,EACb3G,EAAQrZ,UAAUtH,gBAAkBsnB,GAe7CC,gBAAiB,WAEf,GAAIC,IAEFC,YAAwBrC,EAAK,GAAI,MAIjCsC,oBAAwBtC,IACxBuC,kBAAwBvC,KAItBnmB,GACF2oB,WAAchC,EAGhB,OAAO,UAAS1nB,EAAK2pB,GACnB,GAAIC,GAAUN,EAAcK,EAC5B,KAAKC,EAAS,CAEZ,IACE,MAAO5pB,GAAIkoB,sBAAsByB,GACjC,MAAME,IAER,IACE,MAAO7pB,GAAI8pB,oBAAoBH,GAC/B,MAAMI,GACN,QAAShpB,EAAU4oB,IAGvB,OAAO,MAcXK,iCAAkC,WAChC,MAAO9C,MAOT+C,sBAAuB,WACrB,MAAOj1B,MAAKq0B,gBAAgBhzB,SAAU,kBAOxC6zB,+BAAgC,WAC9B,MAAOxC,IAAWG,GAAWF,GAM/BwC,8BAA+B,WAC7B,GAAIC,GAAK/zB,SAASwD,cAAc,KAChC,OAAqC,KAA9BuwB,EAAGvuB,aAAa,YAOzBwuB,iCAAkC,WAChC,MAAO3C,IAAWR,KAAUW,GAM9ByC,mBAAoB,WAClB,OAAQ3C,GAMV4C,uBAAwB,WACtB,GACIn1B,GACAgU,EAFAohB,EAAoB1wB,EAAYoN,WAAU,EAW9C,OAPAsjB,GAAkBphB,UAAY,iBAC9BA,EAA8BohB,EAAkBphB,UAAUtH,cAC1D1M,EAA4C,uBAAdgU,GAAoD,uBAAdA,EAGpEpU,KAAKu1B,uBAAyB,WAAa,MAAOn1B,IAE3CA,GAMTq1B,qCAAsC,WACpC,MAA4E,KAArE71B,OAAOyB,SAASq0B,wBAAwB5yB,QAAQ,kBAOzD6yB,wBAAyB,WACvB,MAAO,gBAAkBj0B,SAAU,UAAYA,QAAOqlB,gBAMxD6O,yBAA0B,WACxB,MAAO/C,IAaTgD,oBAAqB,SAASC,GAC5B,GAAIC,GAAgB/D,EAAUrG,MAAM,mBAAqBkG,OAAW,EACpE,OAAOkE,GAAc,IAAM,KAAO,wBAA0BD,IAAS,UAAYA,KAQnFE,0BAA2B,SAASC,GAClC,MAAO/D,GAAK,KAAoB,mBAAb+D,GAA8C,mBAAbA,IAMtDC,eAAgB,WACd,MAAOhE,MAMTiE,gCAAiC,WAC/B,MAAOjE,MAGTkE,qBAAsB,WACpB,MAAO1D,IAAWE,GAAYC,GAShCwD,mBAAoB,WAClB,MAAOxD,IAMTyD,oBAAqB,WACnB,MAAOpE,MAWTqE,qCAAsC,WACpC,MAAO5D,IAGT6D,uBAAwB,WACpB,MAAQ,iBAAmB90B,SAQ/B+0B,mBAAoB,WAClB,QAAS,iBAAmB/0B,UAK9Bg1B,YAAa,SAAShF,GACpB,MAAY,aAARA,EACM,cAAgBrwB,UAASwD,cAAc,OAAOqqB,MAAS,aAAe,WAEzEwC,OAIZxpB,UAAUM,KAAKmuB,MAAQ,SAASvnB,GAC/B,OAUEnK,SAAU,SAAS2xB,GACjB,GAAIl0B,MAAMC,QAAQi0B,GAAS,CACzB,IAAK,GAAIhyB,GAAIgyB,EAAO/0B,OAAQ+C,KAC1B,GAAqD,KAAjDsD,UAAUM,KAAKmuB,MAAMvnB,GAAKtM,QAAQ8zB,EAAOhyB,IAC3C,OAAO,CAGX,QAAO,EAEP,MAAqD,KAA9CsD,UAAUM,KAAKmuB,MAAMvnB,GAAKtM,QAAQ8zB,IAY7C9zB,QAAS,SAAS8zB,GACd,GAAIxnB,EAAItM,QACN,MAAOsM,GAAItM,QAAQ8zB,EAEnB,KAAK,GAAIhyB,GAAE,EAAG/C,EAAOuN,EAAIvN,OAAUA,EAAF+C,EAAUA,IACzC,GAAIwK,EAAIxK,KAAOgyB,EAAU,MAAOhyB,EAElC,OAAO,IAWbiyB,QAAS,SAASC,GAChBA,EAAmB5uB,UAAUM,KAAKmuB,MAAMG,EAIxC,KAHA,GAAIC,MACAnyB,EAAU,EACV/C,EAAUuN,EAAIvN,OACTA,EAAF+C,EAAUA,IACVkyB,EAAiB7xB,SAASmK,EAAIxK,KACjCmyB,EAAOv1B,KAAK4N,EAAIxK,GAGpB,OAAOmyB,IAUTz0B,IAAK,WAIH,IAHA,GAAIsC,GAAW,EACX/C,EAAWuN,EAAIvN,OACfm1B,KACKn1B,EAAF+C,EAAUA,IACfoyB,EAASx1B,KAAK4N,EAAIxK,GAEpB,OAAOoyB,IAaTC,IAAK,SAASC,EAAUC,GACtB,GAAIz0B,MAAM7C,UAAUo3B,IAClB,MAAO7nB,GAAI6nB,IAAIC,EAAUC,EAKzB,KAHA,GAAI5xB,GAAM6J,EAAIvN,SAAW,EACrBu1B,EAAI,GAAI10B,OAAM6C,GACdX,EAAI,EACGW,EAAJX,EAASA,IACbwyB,EAAExyB,GAAKsyB,EAAS/1B,KAAKg2B,EAAS/nB,EAAIxK,GAAIA,EAAGwK,EAE5C,OAAOgoB,IAUXC,OAAQ,WAKN,IAJA,GAAIC,MACAC,EAAMnoB,EAAIvN,OACV21B,EAAM,EAEGD,EAANC,GACAtvB,UAAUM,KAAKmuB,MAAMW,GAAMryB,SAASmK,EAAIooB,KAC3CF,EAAK91B,KAAK4N,EAAIooB,IAEhBA,GAEF,OAAOF,MAKZpvB,UAAUM,KAAKivB,WAAa/G,KAAKpiB,QAEhCopB,GAAI,SAASzD,EAAW0D,GAItB,MAHA33B,MAAK43B,OAAS53B,KAAK43B,WACnB53B,KAAK43B,OAAO3D,GAAaj0B,KAAK43B,OAAO3D,OACrCj0B,KAAK43B,OAAO3D,GAAWzyB,KAAKm2B,GACrB33B,MAGT63B,IAAK,SAAS5D,EAAW0D,GACvB33B,KAAK43B,OAAS53B,KAAK43B,UACnB,IACIE,GACAC,EAFAnzB,EAAI,CAGR,IAAIqvB,EAAW,CAGb,IAFA6D,EAAc93B,KAAK43B,OAAO3D,OAC1B8D,KACOnzB,EAAEkzB,EAASj2B,OAAQ+C,IACpBkzB,EAASlzB,KAAO+yB,GAAWA,GAC7BI,EAAYv2B,KAAKs2B,EAASlzB,GAG9B5E,MAAK43B,OAAO3D,GAAa8D,MAGzB/3B,MAAK43B,SAEP,OAAO53B,OAGTg4B,KAAM,SAAS/D,EAAWgE,GACxBj4B,KAAK43B,OAAS53B,KAAK43B,UAGnB,KAFA,GAAIE,GAAW93B,KAAK43B,OAAO3D,OACvBrvB,EAAW,EACRA,EAAEkzB,EAASj2B,OAAQ+C,IACxBkzB,EAASlzB,GAAGzD,KAAKnB,KAAMi4B,EAEzB,OAAOj4B,OAITk4B,QAAS,WACP,MAAOl4B,MAAK03B,GAAG5zB,MAAM9D,KAAM0D,YAI7By0B,cAAe,WACb,MAAOn4B,MAAK63B,IAAI/zB,MAAM9D,KAAM0D,cAG/BwE,UAAUM,KAAK/G,OAAS,SAAS+M,GAChC,OAME4pB,MAAO,SAASC,GACd,IAAK,GAAIzzB,KAAKyzB,GACZ7pB,EAAI5J,GAAKyzB,EAASzzB,EAEpB,OAAO5E,OAGTsC,IAAK,WACH,MAAOkM,IAUT0R,MAAO,SAASzR,GACd,GACI7J,GADA0zB,IAGJ,IAAY,OAAR9pB,IAAiBtG,UAAUM,KAAK/G,OAAO+M,GAAK+pB,gBAC9C,MAAO/pB,EAGT,KAAK5J,IAAK4J,GACLA,EAAID,eAAe3J,KAElB0zB,EAAO1zB,GADL6J,EACUvG,UAAUM,KAAK/G,OAAO+M,EAAI5J,IAAIsb,MAAMzR,GAEpCD,EAAI5J,GAItB,OAAO0zB,IAQT31B,QAAS,WACP,MAA+C,mBAAxCR,OAAOtC,UAAUgD,SAAS1B,KAAKqN,IAQxCgqB,WAAY,WACV,MAA+C,sBAAxCr2B,OAAOtC,UAAUgD,SAAS1B,KAAKqN,IAGxC+pB,cAAe,WACb,MAA+C,oBAAxCp2B,OAAOtC,UAAUgD,SAAS1B,KAAKqN,MAI3C,WACC,GAAIiqB,GAAoB,OACpBC,EAAoB,OACpBC,EAAoB,YACpBC,GACEC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,UAEX/wB,WAAUM,KAAK0wB,OAAS,SAASC,GAE/B,MADAA,GAAMv5B,OAAOu5B,IAOXr5B,KAAM,WACJ,MAAOq5B,GAAIl5B,QAAQw4B,EAAmB,IAAIx4B,QAAQy4B,EAAiB,KAQrEU,YAAa,SAASC,GACpB,IAAK,GAAIz0B,KAAKy0B,GACZF,EAAMn5B,KAAKC,QAAQ,KAAO2E,EAAI,KAAK00B,GAAGD,EAAKz0B,GAE7C,OAAOu0B,IAQTl5B,QAAS,SAASs5B,GAChB,OACED,GAAI,SAASr5B,GACX,MAAOk5B,GAAIpyB,MAAMwyB,GAAQ5xB,KAAK1H,MAUpCu5B,WAAY,SAASC,EAAYC,GAC/B,GAAIC,GAAOR,EAAIl5B,QAAQ04B,EAAgB,SAAS11B,GAAK,MAAO21B,GAAW31B,IAOvE,OANIw2B,KACFE,EAAOA,EAAK15B,QAAQ,kBAAmB,WAErCy5B,IACFC,EAAOA,EAAK15B,QAAQ,OAAQ,YAEvB05B,QAef,SAAUzxB,GAoBR,QAAS0xB,GAASnM,EAASoM,GACzB,MAAIC,GAA8BrM,EAASoM,GAClCpM,GAGLA,IAAYA,EAAQlb,cAAc6C,kBACpCqY,EAAUA,EAAQlb,cAActH,MAG3B8uB,EAAWtM,EAASoM,IAO7B,QAASG,GAAoBb,GAC3B,MAAOA,GAAIl5B,QAAQg6B,EAAa,SAAStO,EAAOuO,GAC9C,GAAIC,IAAeD,EAAIvO,MAAMyO,QAA8B,IAAM,GAC7DC,EAAcC,EAASH,EAC3BD,GAAMA,EAAIj6B,QAAQm6B,EAAuB,IAErCF,EAAInzB,MAAMszB,GAASx4B,OAASq4B,EAAInzB,MAAMozB,GAAat4B,SACrDq4B,GAAYC,EACZA,EAAc,GAEhB,IAAII,GAAaL,EACbM,EAAaN,CASjB,OARIA,GAAIr4B,OAAS44B,IACfD,EAAaA,EAAWE,OAAO,EAAGD,GAAsB,OAG7B,SAAzBF,EAAQG,OAAO,EAAG,KACpBH,EAAU,UAAYA,GAGjB,YAAcA,EAAU,KAAOC,EAAa,OAASL,IAQhE,QAASQ,GAAgB/I,GACvB,GAAIgJ,GAAchJ,EAAQiJ,sBAI1B,OAHKD,KACHA,EAAchJ,EAAQiJ,uBAAyBjJ,EAAQ/sB,cAAc,QAEhE+1B,EAMT,QAASE,GAAmBhmB,GAC1B,GAAIpQ,GAAcoQ,EAASpQ,WACvBq2B,EAAc7yB,EAAUM,KAAK0wB,OAAOpkB,EAASb,MAAMulB,aACnDoB,EAAcD,EAAgBj2B,EAAW6N,cAO7C,KAHAqoB,EAAYxmB,UAAY,gBAAkB4lB,EAAoBe,GAC9DH,EAAYtc,YAAYsc,EAAY/mB,YAE7B+mB,EAAY/mB,YAEjBnP,EAAWoN,aAAa8oB,EAAY/mB,WAAYiB,EAElDpQ,GAAW4Z,YAAYxJ,GAGzB,QAASglB,GAA8Bt1B,EAAMq1B,GAE3C,IADA,GAAIhtB,GACGrI,EAAKE,YAAY,CAGtB,GAFAF,EAAOA,EAAKE,WACZmI,EAAWrI,EAAKqI,SACZrI,EAAK6qB,WAAannB,EAAUM,KAAKmuB,MAAMnyB,EAAK6qB,UAAUtoB,MAAM,MAAM9B,SAAS40B,GAC7E,OAAO,CAET,IAAImB,EAAe/1B,SAAS4H,GAC1B,OAAO,CACF,IAAiB,SAAbA,EACT,OAAO,EAGX,OAAO,EAGT,QAASktB,GAAWtM,EAASoM,GAC3B,KAAImB,EAAe/1B,SAASwoB,EAAQ5gB,WAIhC4gB,EAAQ4B,WAAannB,EAAUM,KAAKmuB,MAAMlJ,EAAQ4B,UAAUtoB,MAAM,MAAM9B,SAAS40B,IAArF,CAIA,GAAIpM,EAAQve,WAAahH,EAAUa,WAAa0kB,EAAQxZ,KAAK0X,MAAMsO,GAEjE,WADAa,GAAmBrN,EAQrB;IAJA,GAAIxe,GAAoB/G,EAAUM,KAAKmuB,MAAMlJ,EAAQxe,YAAY3M,MAC7D24B,EAAoBhsB,EAAWpN,OAC/B+C,EAAoB,EAEfq2B,EAAFr2B,EAAoBA,IACzBm1B,EAAW9qB,EAAWrK,GAAIi1B,EAG5B,OAAOpM,IAlIT,GAGIuN,GAAwB9yB,EAAUM,KAAKmuB,OAAO,OAAQ,MAAO,IAAK,SAAU,OAAQ,QAAS,UAW7FsD,EAAwB,oCACxBG,EAAwB,oBACxBK,EAAwB,IACxBH,GAA0BY,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAoHvDlzB,GAAUG,IAAIuxB,SAAWA,EAGzB1xB,EAAUG,IAAIuxB,SAASK,YAAcA,GACpC/xB,WACF,SAAUA,GACT,GAAI2D,GAAM3D,EAAUG,GAEpBwD,GAAIwvB,SAAW,SAAS5N,EAAS4B,GAC/B,GAAItqB,GAAY0oB,EAAQ1oB,SACxB,OAAIA,GACKA,EAAUC,IAAIqqB,QAEnBxjB,EAAIyvB,SAAS7N,EAAS4B,KAG1B5B,EAAQ4B,WAAa,IAAMA,KAG7BxjB,EAAI0vB,YAAc,SAAS9N,EAAS4B,GAClC,GAAItqB,GAAY0oB,EAAQ1oB,SACxB,OAAIA,GACKA,EAAUyC,OAAO6nB,QAG1B5B,EAAQ4B,UAAY5B,EAAQ4B,UAAUpvB,QAAQ,GAAI2Y,QAAO,WAAayW,EAAY,YAAa,OAGjGxjB,EAAIyvB,SAAW,SAAS7N,EAAS4B,GAC/B,GAAItqB,GAAY0oB,EAAQ1oB,SACxB,IAAIA,EACF,MAAOA,GAAUE,SAASoqB,EAG5B,IAAImM,GAAmB/N,EAAQ4B,SAC/B,OAAQmM,GAAiB35B,OAAS,IAAM25B,GAAoBnM,GAAa,GAAIzW,QAAO,UAAYyW,EAAY,WAAW5oB,KAAK+0B,MAE7HtzB,WACFA,UAAUG,IAAIpD,SAAW,WACxB,GAAImQ,GAAkB/T,SAAS+T,eAC/B,OAAIA,GAAgBnQ,SACX,SAAS4V,EAAW4S,GAIzB,MAHIA,GAAQve,WAAahH,UAAUY,eACjC2kB,EAAUA,EAAQ/oB,YAEbmW,IAAc4S,GAAW5S,EAAU5V,SAASwoB,IAE5CrY,EAAgBqmB,wBAClB,SAAS5gB,EAAW4S,GAEzB,SAAuD,GAA7C5S,EAAU4gB,wBAAwBhO,KAHzC,UAiCTvlB,UAAUG,IAAIqzB,cAAgB,WAC5B,QAASC,GAAgB3wB,EAAK4wB,GAC5B,GAAIC,GAAW7wB,EAAInG,cAAc,KAEjC,OADA+2B,GAAK5sB,YAAY6sB,GACVA,EAGT,QAASC,GAAY9wB,EAAKtK,GACxB,MAAOsK,GAAInG,cAAcnE,GAG3B,QAASg7B,GAAcjO,EAASsO,EAAUC,GACxC,GAAyB,OAArBvO,EAAQ5gB,UAA0C,OAArB4gB,EAAQ5gB,UAA0C,SAArB4gB,EAAQ5gB,SAEpE,MAAO4gB,EAGT,IAIIxe,GACAgsB,EACAgB,EACAC,EACAx3B,EACAy3B,EACAC,EACAC,EACAz3B,EAZAoG,EAAoByiB,EAAQlb,cAC5BqpB,EAAoBE,EAAY9wB,EAAK+wB,GACrCO,EAAoB7O,EAAQ9oB,iBAAiB,MAC7C43B,EAAoBD,EAAWz6B,MAYnC,KAAK+C,EAAE,EAAK23B,EAAF33B,EAAoBA,IAE5B,IADAs3B,EAAYI,EAAW13B,IACfF,EAAaw3B,EAAUx3B,aAAeA,IAAe+oB,GAAW/oB,EAAW4b,YAAc4b,GAAW,CAC1G,GAA2D,UAAvDh0B,UAAUG,IAAIm0B,SAAS,WAAWC,KAAK/3B,GAAyB,CAClEA,EAAW4Z,YAAY4d,EACvB,OAEFh0B,UAAUG,IAAIq0B,OAAOR,GAAWS,MAAMT,EAAUx3B,YAOpD,IAHAuK,EAAoB/G,UAAUM,KAAKmuB,MAAMlJ,EAAQxe,YAAY3M,MAC7D24B,EAAoBhsB,EAAWpN,OAE1B+C,EAAE,EAAKq2B,EAAFr2B,EAAoBA,IAC5By3B,EAAoBA,GAAmBV,EAAgB3wB,EAAK4wB,GAC5DK,EAAoBhtB,EAAWrK,GAC/Bu3B,EAA0E,UAAtDj0B,UAAUG,IAAIm0B,SAAS,WAAWC,KAAKR,GAC3DG,EAA2C,OAAvBH,EAAUpvB,UAG1BsvB,GAAoBH,GAAoB9zB,UAAUG,IAAIizB,SAASW,EAAWD,GAQ1EI,EAEFC,EAAkBA,EAAgBxoB,WAAa,KAAOwoB,EAIxDA,EAAgBrtB,YAAYitB,IAZ1BI,EAAkBA,EAAgBxoB,WAAa8nB,EAAgB3wB,EAAK4wB,GAAQS,EAC5EA,EAAgBrtB,YAAYitB,GAC5BI,EAAkB,KAkBtB,OAL0B,KAAtBptB,EAAWpN,QACb85B,EAAgB3wB,EAAK4wB,GAGvBnO,EAAQ/oB,WAAWk4B,aAAahB,EAAMnO,GAC/BmO,EAGT,MAAOF,MAiBTxzB,UAAUG,IAAIw0B,eAAiB,SAASC,GACtC,OACEL,KAAM,SAASM,GACb,OACEC,GAAI,SAASC,GAIX,IAHA,GAAIC,GACAt4B,EAAY,EACZ/C,EAAYi7B,EAAiBj7B,OACxBA,EAAF+C,EAAUA,IACfs4B,EAAYJ,EAAiBl4B,GACgB,mBAAlCm4B,GAAkBG,IAAgE,KAAjCH,EAAkBG,KAC5ED,EAAgBC,GAAaH,EAAkBG,GAGnD,QAASC,MAAOz5B,UAAU05B,aAyBpC,SAAU/0B,GASR,GAAIg1B,IAAyB,qBAAsB,kBAAmB,iBAAkB,cAEpFC,EAAiC,SAAS7P,GAC5C,MAAI8P,GAAsB9P,GAChB7B,SAASvjB,EAAIm0B,SAAS,SAASC,KAAKhP,GAAU,IAAMA,EAAQ+P,aAE/D,GAGLD,EAAwB,SAAS9P,GAGnC,IAFA,GAAI7oB,GAAU,EACV/C,EAAUw7B,EAAsBx7B,OAC3BA,EAAF+C,EAAUA,IACf,GAA6D,eAAzDyD,EAAIm0B,SAASa,EAAsBz4B,IAAI63B,KAAKhP,GAC9C,MAAO4P,GAAsBz4B,GAKnCyD,GAAIo1B,WAAa,SAASC,GACxB,OACEjB,KAAM,SAAShP,GACT6P,EAA+B7P,KACjCiQ,EAAex1B,UAAUM,KAAKmuB,MAAM+G,GAAc7G,QAAQwG,GAO5D,KAJA,GAGIpH,GAHA0H,EAAU,GACV97B,EAAU67B,EAAa77B,OACvB+C,EAAU,EAEL/C,EAAF+C,EAAUA,IACfqxB,EAAWyH,EAAa94B,GACxB+4B,GAAW1H,EAAW,IAAM5tB,EAAIm0B,SAASvG,GAAUwG,KAAKhP,GAAW,GAGrE,QACEuP,GAAI,SAASvP,GAEX,MADAplB,GAAIu1B,UAAUD,GAASjG,GAAGjK,IACjB0P,MAAOz5B,UAAU05B,cAMnCl1B,UAAUG,KASb,SAAUH,GACRA,EAAUG,IAAIw1B,SAAW,SAAShjB,EAAWtW,EAAU0vB,EAAW0D,GAChE,GAAIT,GAAW,SAAS4G,GAKtB,IAAK,GAJD/8B,GAAS+8B,EAAM/8B,OACf0sB,EAA+B,IAApB1sB,EAAOmO,SAAkBnO,EAAO2D,WAAa3D,EACxDkD,EAAW4W,EAAUlW,iBAAiBJ,GAEjCK,EAAI,EAAG2yB,EAAMtzB,EAAQpC,OAAY01B,EAAJ3yB,EAASA,IACzCX,EAAQW,GAAGK,SAASwoB,IACtBkK,EAAQx2B,KAAK8C,EAAQW,GAAIk5B,GAM/B,OADAjjB,GAAUra,iBAAiByzB,EAAWiD,GAAU,IAE9Chf,KAAM,WACJ2C,EAAUlZ,oBAAoBsyB,EAAWiD,GAAU,OAIxDhvB,WAEH,SAAUA,GACRA,EAAUG,IAAI01B,QAAU,SAASv5B,GAC/B,GAAIw5B,IAAoB91B,EAAUY,aAAcZ,EAAUa,WAEtDk1B,EAAe,SAASz5B,GAC1B,MAAOA,GAAK0K,WAAahH,EAAUa,WAAa,SAAWtC,KAAKjC,EAAKyP,MAGvE,QAGEiqB,KAAM,SAASrvB,GACb,GAAIsvB,GAAW35B,EAAKkM,gBAChB0tB,EAASvvB,GAAWA,EAAQ0J,UAAa1J,EAAQ0J,UAAYylB,CAEjE,OAAKG,IAKDj2B,EAAUM,KAAKmuB,MAAMyH,GAAOn5B,SAASk5B,EAASjvB,WAC/CL,GAAWA,EAAQwvB,kBAAoBJ,EAAaE,GAE9Cj2B,EAAUG,IAAI01B,QAAQI,GAAUD,KAAKrvB,GAGvCsvB,EAVE,MAcX3oB,KAAM,SAAS3G,GACb,GAAI+C,GAAWpN,EAAKqN,YAChBusB,EAASvvB,GAAWA,EAAQ0J,UAAa1J,EAAQ0J,UAAYylB,CAEjE,OAAKpsB,IAKD1J,EAAUM,KAAKmuB,MAAMyH,GAAOn5B,SAAS2M,EAAS1C,WAC/CL,GAAWA,EAAQwvB,kBAAoBJ,EAAarsB,GAE9C1J,EAAUG,IAAI01B,QAAQnsB,GAAU4D,KAAK3G,GAGvC+C,EAVE,MAgBX0sB,aAAc,SAASzvB,GACrB,GAAIyR,EAGJ,IAAsB,IAAlB9b,EAAK0K,SACP,MAAO1K,EAKT,IADA8b,EAAY9b,EAAK8b,WACZA,EACH,MAAO9b,EAIT,IAAIqK,GAAWA,EAAQ0vB,YACrB,IAAK,GAAI35B,GAAIiK,EAAQ0vB,YAAY18B,OAAQ+C,KACvC,GAAIsD,EAAUG,IAAIizB,SAAS92B,EAAMqK,EAAQ0vB,YAAY35B,IACnD,MAAOJ,EAKb,OAAO0D,GAAUG,IAAI01B,QAAQzd,GAAWge,aAAazvB,IAsBvDpI,KAAM,SAAS+3B,GACb,GAAIje,EAGJ,KAAKie,EACH,OAAO,CAIT,IAAsB,IAAlBh6B,EAAK0K,SACP,OAAO,CAGT,IAAIsvB,EAAWC,QACRj6B,EAAKP,QAAQu6B,EAAWC,OAC3B,OAAO,CAIX,IAAID,EAAW3xB,UAAYrI,EAAKqI,WAAa2xB,EAAW3xB,SACtD,OAAO,CAGT,IAAI2xB,EAAWnP,YAAc7qB,EAAKO,UAAUE,SAASu5B,EAAWnP,WAC9D,OAAO,CAIT,IAAImP,EAAWE,YAAa,CAC1B,GAAIz6B,IAAWO,EAAK6qB,WAAa,IAAI1D,MAAM6S,EAAWE,gBACtD,IAAuB,IAAnBz6B,EAAQpC,OACV,OAAO,EAKX,GAAI28B,EAAWG,eAAiBH,EAAWG,cAAc98B,OAAS,EAGhE,IAAK,GAFD+8B,IAAc,EACdC,EAAUn8B,MAAMC,QAAQ67B,EAAWG,eAAkBH,EAAWG,eAAiBH,EAAWG,eACvFG,EAAI,EAAGC,EAAYF,EAAOh9B,OAAYk9B,EAAJD,EAAeA,IAAK,CAG7D,GADAve,EAAOrY,EAAU4pB,QAAQ4E,YAAYmI,EAAOC,IACxCt6B,EAAK0qB,MAAM3O,GAAO,CACpB,IAAIie,EAAWQ,WAqBR,CACLJ,GAAc,CACd,OArBA,GAAIJ,EAAWQ,qBAAsBpmB,SAEnC,GAAIpU,EAAK0qB,MAAM3O,GAAMzgB,OAAO6rB,MAAM6S,EAAWQ,YAAYn9B,OAAS,EAAG,CACnE+8B,GAAc,CACd,YAEG,IAAIl8B,MAAMC,QAAQ67B,EAAWQ,aAElC,GAAIR,EAAWQ,WAAWl8B,QAAQ0B,EAAK0qB,MAAM3O,GAAMzgB,QAAS,CAC1D8+B,GAAc,CACd,YAIF,IAAIJ,EAAWQ,aAAex6B,EAAK0qB,MAAM3O,GAAMzgB,OAAQ,CACrD8+B,GAAc,CACd,QAQR,IAAKA,EACH,OAAO,EAKb,OAAO,MAKZ12B,WAYHA,UAAUG,IAAI42B,SAAW,WAEvB,GAAIC,GAAiB,SAASvF,EAAM/H,GAClC,GAAIgJ,GAAchJ,EAAQ/sB,cAAc,MACxC+1B,GAAY1L,MAAME,QAAU,OAC5BwC,EAAQ3mB,KAAK+D,YAAY4rB,EAEzB,KAAMA,EAAYxmB,UAAYulB,EAAQ,MAAM74B,IAE5C,MADA8wB,GAAQ3mB,KAAKqT,YAAYsc,GAClBA,GAMLuE,EAA4B,SAASvN,GACvC,IAAIA,EAAQwN,6BAAZ,CAGA,IAAK,GAAIx6B,GAAE,EAAG/C,EAAOw9B,EAAex9B,OAAUA,EAAF+C,EAAUA,IACpDgtB,EAAQ/sB,cAAcw6B,EAAez6B,GAEvCgtB,GAAQwN,8BAA+B,IAQrCC,GACF,OAAQ,UAAW,QAAS,QAAS,MAAO,SAAU,UAAW,WAAY,UAAW,aACxF,SAAU,SAAU,SAAU,SAAU,SAAU,OAAQ,QAAS,MAAO,SAAU,WACpF,KAAM,KAAM,OAAQ,MAAO,UAAW,SAAU,UAAW,OAAQ,QAAS,QAAS,MAGvF,OAAO,UAAS1F,EAAM/H,GACpBA,EAAUA,GAAWvwB,QACrB,IAAIu5B,EAWJ,OAVqB,gBAAX,IAAuBjB,EAAKzqB,UACpC0rB,EAAchJ,EAAQ/sB,cAAc,OACpC+1B,EAAY5rB,YAAY2qB,IACfzxB,UAAU4pB,QAAQqC,kBAAkBvC,IAC7CgJ,EAAchJ,EAAQ/sB,cAAc,OACpC+1B,EAAYxmB,UAAYulB,IAExBwF,EAA0BvN,GAC1BgJ,EAAcsE,EAAevF,EAAM/H,IAE9BgJ,MAoBX1yB,UAAUG,IAAIi3B,iBAAmB,WAE/B,MAAO,UAAS96B,EAAMg6B,EAAYe,EAAQ1kB,GAExC,IADA0kB,EAASA,GAAU,GACZA,KAAY/6B,GAA0B,SAAlBA,EAAKqI,YAAyBgO,GAAarW,IAASqW,IAAY,CACzF,GAAI3S,UAAUG,IAAI01B,QAAQv5B,GAAMiC,KAAK+3B,GACnC,MAAOh6B,EAETA,GAAOA,EAAKE,WAEd,MAAO,UAaXwD,UAAUG,IAAIm0B,SAAW,WAMvB,QAASgD,GAASrG,GAChB,MAAOA,GAAIl5B,QAAQw/B,EAAkB,SAAS9T,GAC5C,MAAOA,GAAM+T,OAAO,GAAGC,gBAP3B,GAAIC,IACEC,QAAU,cAAgBx+B,UAASwD,cAAc,OAAOqqB,MAAS,aAAe,YAElFuQ,EAAmB,UAQvB,OAAO,UAASxJ,GACd,OACEwG,KAAM,SAAShP,GACb,GAAIA,EAAQve,WAAahH,UAAUY,aAAnC,CAIA,GAAIkC,GAAoByiB,EAAQlb,cAC5ButB,EAAoBF,EAAqB3J,IAAauJ,EAASvJ,GAC/D/G,EAAoBzB,EAAQyB,MAC5B7Z,EAAoBoY,EAAQpY,aAC5B2pB,EAAoB9P,EAAM4Q,EAC9B,IAAId,EACF,MAAOA,EAQT,IAAI3pB,EACF,IACE,MAAOA,GAAayqB,GACpB,MAAMh/B,IAKV,GAEIi/B,GACA3/B,EAHAmN,EAAsBvC,EAAIyH,aAAezH,EAAI0H,aAC7CstB,GAAoC,WAAb/J,GAAsC,UAAbA,IAA8C,aAArBxI,EAAQ5gB,QAIrF,OAAIU,GAAI2H,kBAGF8qB,IACFD,EAAmB7Q,EAAM+Q,SACzB/Q,EAAM+Q,SAAW,UAEnB7/B,EAAcmN,EAAI2H,iBAAiBuY,EAAS,MAAMyS,iBAAiBjK,GAC/D+J,IACF9Q,EAAM+Q,SAAWF,GAAoB,IAEhC3/B,GAXT,cAiBP8H,UAAUG,IAAI83B,aAAe,SAAS37B,EAAM47B,GAC3C,GAAIC,KACJ,KAAK77B,EAAKA,EAAKqP,WAAWrP,EAAKA,EAAKA,EAAKqN,YAClB,GAAjBrN,EAAK0K,SACFkxB,GAAgB,QAAU35B,KAAKjC,EAAKjC,WAAaiC,EAAK87B,cACzDD,EAAI7+B,KAAKgD,GAGX67B,EAAMA,EAAIt8B,OAAOmE,UAAUG,IAAI83B,aAAa37B,EAAM47B,GAGtD,OAAOC,IAWTn4B,UAAUG,IAAIk4B,sBAAwB,WAIpC,QAASC,GAAuBx1B,GAC9B,MAAOA,GAAIy1B,wBAA0Bz1B,EAAIy1B,sBAAwBC,KAJnE,GAAIC,MACAD,EAAsB,CAM1B,OAAO,UAAS11B,EAAKmI,GACnB,GAAIue,GAAc8O,EAAuBx1B,GAAO,IAAMmI,EAClDytB,EAAcD,EAAWjP,EAK7B,OAJKkP,KACHA,EAAaD,EAAWjP,GAAO1mB,EAAIE,qBAAqBiI,IAGnDytB,EAAW/+B,OAAS,MAa/B,SAAUqG,GAIR,QAASs4B,GAAuBx1B,GAC9B,MAAOA,GAAIy1B,wBAA0Bz1B,EAAIy1B,sBAAwBC,KAJnE,GAAIC,MACAD,EAAsB,CAM1Bx4B,GAAUG,IAAIw4B,wBAA0B,SAAS71B,EAAKqkB,GAGpD,IAAKnnB,EAAU4pB,QAAQ2D,uCACrB,QAASzqB,EAAIqoB,cAAc,IAAMhE,EAGnC,IAAIqC,GAAc8O,EAAuBx1B,GAAO,IAAMqkB,EAClDuR,EAAcD,EAAWjP,EAK7B,OAJKkP,KACHA,EAAaD,EAAWjP,GAAO1mB,EAAI0qB,uBAAuBrG,IAGrDuR,EAAW/+B,OAAS,IAE5BqG,WACFA,UAAUG,IAAIq0B,OAAS,SAASoE,GAC/B,OACEnE,MAAO,SAASlP,GACdA,EAAQ/oB,WAAWoN,aAAagvB,EAAiBrT,EAAQ5b,cAG3DkvB,OAAQ,SAAStT,GACfA,EAAQ/oB,WAAWoN,aAAagvB,EAAiBrT,IAGnDuT,KAAM,SAASvT,GACbA,EAAQze,YAAY8xB,MAIzB54B,UAAUG,IAAI44B,UAAY,SAASC,GAGlC,MAFAA,GAAQA,EAAMv5B,KAAK,OAGjBq5B,KAAM,SAASh2B,GACb,GAAIm2B,GAAen2B,EAAInG,cAAc,QACrCs8B,GAAazgC,KAAO,WAEhBygC,EAAaC,WACfD,EAAaC,WAAWzD,QAAUuD,EAElCC,EAAanyB,YAAYhE,EAAI+J,eAAemsB,GAG9C,IAAIG,GAAOr2B,EAAIqoB,cAAc,YAC7B,IAAIgO,EAEF,WADAA,GAAK38B,WAAWoN,aAAaqvB,EAAcE,EAG3C,IAAIC,GAAOt2B,EAAIqoB,cAAc,OACzBiO,IACFA,EAAKtyB,YAAYmyB,MAO3B,SAAUj5B,GACRA,EAAUG,IAAIi0B,WAAa,SAAS93B,GAElC,QAAS+8B,GAAaxwB,GACpB,MAAsB,OAAfA,EAAElE,SAOX,QAAS20B,GAA2B/T,GAClC,MAAI8T,GAAa9T,IACR,EAG+C,UAApDvlB,EAAUG,IAAIm0B,SAAS,WAAWC,KAAKhP,IAClC,GAGF,EAGT,OAOEzoB,IAAK,WACH,GAAIgG,GAAkBxG,EAAK+N,cACzBV,EAAkB3J,EAAUG,IAAI01B,QAAQv5B,GAAMgR,MAAM6oB,kBAAkB,IACtE3tB,EAAkBxI,EAAUG,IAAI01B,QAAQv5B,GAAM05B,MAAMG,kBAAkB,GAEpExsB,KAAgB2vB,EAA2B3vB,IAC7C3J,EAAUG,IAAIq0B,OAAO1xB,EAAInG,cAAc,OAAO83B,MAAMn4B,GAElDkM,IAAoB8wB,EAA2B9wB,IACjDxI,EAAUG,IAAIq0B,OAAO1xB,EAAInG,cAAc,OAAOk8B,OAAOv8B,IAQzDgD,OAAQ,WACN,GAAIqK,GAAkB3J,EAAUG,IAAI01B,QAAQv5B,GAAMgR,MAAM6oB,kBAAkB,IACtE3tB,EAAkBxI,EAAUG,IAAI01B,QAAQv5B,GAAM05B,MAAMG,kBAAkB,GAEtExsB,IAAe0vB,EAAa1vB,IAC9BA,EAAYnN,WAAW4Z,YAAYzM,GAEjCnB,GAAmB6wB,EAAa7wB,IAClCA,EAAgBhM,WAAW4Z,YAAY5N,OAK9CxI,WAMHA,UAAUG,IAAI6vB,QAAU,SAASzK,EAASgU,EAAY9J,GACpD8J,EAAoC,gBAAjB,IAA6BA,GAAcA,CAO9D,KALA,GAAIC,GACAzN,EACArvB,EAAU,EACV/C,EAAU4/B,EAAW5/B,OAEhBA,EAAF+C,EAAUA,IACfqvB,EAAYwN,EAAW78B,GACnB6oB,EAAQjtB,iBACVitB,EAAQjtB,iBAAiByzB,EAAW0D,GAAS,IAE7C+J,EAAiB,SAAS5D,GAClB,UAAYA,KAChBA,EAAM/8B,OAAS+8B,EAAM98B,YAEvB88B,EAAM39B,eAAiB29B,EAAM39B,gBAAkB,WAC7CH,KAAKI,aAAc,GAErB09B,EAAMz9B,gBAAkBy9B,EAAMz9B,iBAAmB,WAC/CL,KAAKM,cAAe,GAEtBq3B,EAAQx2B,KAAKssB,EAASqQ,IAExBrQ,EAAQlsB,YAAY,KAAO0yB,EAAWyN,GAI1C,QACExpB,KAAM,WAIJ,IAHA,GAAI+b,GACArvB,EAAU,EACV/C,EAAU4/B,EAAW5/B,OAChBA,EAAF+C,EAAUA,IACfqvB,EAAYwN,EAAW78B,GACnB6oB,EAAQ9rB,oBACV8rB,EAAQ9rB,oBAAoBsyB,EAAW0D,GAAS,GAEhDlK,EAAQ1rB,YAAY,KAAOkyB,EAAWyN,MA0DhDx5B,UAAUG,IAAIs5B,MAAQ,SAASC,EAAuBC,GA6BnD,QAASF,GAAMG,EAAe91B,GAC7B9D,UAAUM,KAAK/G,OAAOsgC,GAAc3J,MAAM4J,GAAc5J,MAAMpsB,EAAOk1B,OAAO5+B,KAE5E,IAIImrB,GACAxb,EACA4B,EANA+d,EAAgB5lB,EAAO4lB,SAAWkQ,EAAcvvB,eAAiBlR,SACjEkT,EAAgBqd,EAAQpd,yBACxBytB,EAA0C,gBAApB,GACtBC,GAAiB,CAmBrB,KAdIl2B,EAAOk2B,kBAAmB,IAC5BA,GAAiB,GAIjBzU,EADEwU,EACQ/5B,UAAUG,IAAI42B,SAAS6C,EAAelQ,GAEtCkQ,EAGRC,EAAaI,WACfC,EAAoB3U,EAASsU,EAAaI,WAGrC1U,EAAQ5Z,YACbA,EAAa4Z,EAAQ5Z,WACrB5B,EAAUowB,EAASxuB,EAAY7H,EAAOs2B,QAASJ,EAAgBl2B,EAAOgwB,iBAClE/pB,GACFsC,EAASvF,YAAYiD,GAEnB4B,IAAe5B,GACjBwb,EAAQnP,YAAYzK,EAIxB,IAAI7H,EAAOu2B,YAGT,IAAK,GADDC,GAAWt6B,UAAUG,IAAI83B,aAAa5rB,GACjCxD,EAAIyxB,EAAS3gC,OAAQkP,KAC5ByxB,EAASzxB,GAAGgqB,UAAYyH,EAASzxB,GAAGgqB,UAAU96B,QAAQ,uBAAwB,MAUlF,OALAwtB,GAAQrZ,UAAY,GAGpBqZ,EAAQze,YAAYuF,GAEb0tB,EAAW/5B,UAAUI,OAAOm6B,oBAAoBhV,GAAWA,EAGpE,QAAS4U,GAASK,EAASJ,EAASJ,EAAgBlG,GAClD,GAKIznB,GACAtC,EACA0wB,EACAC,EARAC,EAAkBH,EAAQxzB,SAC1B4zB,EAAkBJ,EAAQzzB,WAC1B8zB,EAAkBD,EAAUjhC,OAC5BsD,EAAkB69B,EAAkBH,GACpCj+B,EAAkB,CAOtB,IAAIo3B,GAAmC,IAAhB6G,GAAqB36B,UAAUG,IAAIizB,SAASoH,EAAS1G,GACxE,MAAO0G,EAMX,IAHAzwB,EAAU9M,GAAUA,EAAOu9B,EAASR,IAG/BjwB,EAAS,CACV,GAAIA,KAAY,EAAO,CAInB,IAFAsC,EAAWmuB,EAAQnwB,cAAciC,yBAE5B5P,EAAIm+B,EAAiBn+B,KACpBk+B,EAAUl+B,KACZ+9B,EAAWN,EAASS,EAAUl+B,GAAI09B,EAASJ,EAAgBlG,GACvD2G,IACEG,EAAUl+B,KAAO+9B,GACnB/9B,IAEF2P,EAASzC,aAAa6wB,EAAUpuB,EAASV,aAiC/C,OA5BA+uB,GAAc16B,UAAUG,IAAIm0B,SAAS,WAAWC,KAAKiG,GAEjC,KAAhBE,IAEFA,EAAc16B,UAAUM,KAAKmuB,MAAMsM,GAAeh+B,SAASy9B,EAAQvvB,SAAW,QAAU,IAEtFjL,UAAUM,KAAKmuB,OAAO,QAAS,OAAQ,UAAU1xB,SAAS29B,IAC5DruB,EAASvF,YAAY0zB,EAAQnwB,cAAc1N,cAAc,OAIvDqD,UAAUM,KAAKmuB,OACf,MAAO,MAAO,IACd,QAAS,KAAM,KACf,KAAM,KAAM,KACZ,KAAM,KACN,SAAU,SAAU,UACpB,KAAM,KAAM,KAAM,KAAM,KAAM,OAC/B1xB,SAASy9B,EAAQ71B,SAASC,gBAAkB41B,EAAQh+B,WAAW4b,YAAcoiB,IAEvEA,EAAQ7wB,aAAgD,IAAjC6wB,EAAQ7wB,YAAY3C,UAAmB,MAAQzI,KAAKi8B,EAAQ7wB,YAAYkpB,YAClGxmB,EAASvF,YAAY0zB,EAAQnwB,cAAcwC,eAAe,OAI5DR,EAASub,WACXvb,EAASub,YAEJvb,EAGT,MAAO,MAKb,IAAK3P,EAAE,EAAKm+B,EAAFn+B,EAAmBA,IACvBk+B,EAAUl+B,KACZ+9B,EAAWN,EAASS,EAAUl+B,GAAI09B,EAASJ,EAAgBlG,GACvD2G,IACEG,EAAUl+B,KAAO+9B,GACnB/9B,IAEFqN,EAAQjD,YAAY2zB,IAM1B,IAAIL,GACArwB,EAAQpF,SAASC,gBAAkBo2B,KACjCjxB,EAAQhD,WAAWpN,QACnB,UAAY4E,KAAKwL,EAAQmC,aAAe8tB,GAAyC,gCAAtBQ,EAAQrT,WAAqE,2BAAtBqT,EAAQrT,aAC1Hpd,EAAQkxB,WAAWthC,QACnB,CAEJ,IADA0S,EAAWtC,EAAQM,cAAciC,yBAC1BvC,EAAQ4B,YACbU,EAASvF,YAAYiD,EAAQ4B,WAK/B,OAHIU,GAASub,WACXvb,EAASub,YAEJvb,EAMT,MAHItC,GAAQ6d,WACV7d,EAAQ6d,YAEH7d,EAGT,QAASmwB,GAAqB3U,EAAS2V,GACrC,GAAIlc,GAAK/hB,EAAQk+B,CAEjB,KAAKnc,IAAOkc,GACV,GAAIA,EAAc70B,eAAe2Y,GAAM,CACjChf,UAAUM,KAAK/G,OAAO2hC,EAAclc,IAAMsR,aAC5CrzB,EAASi+B,EAAclc,GACiB,gBAAxBkc,GAAclc,IAAsBoc,EAAuBF,EAAclc,MACzF/hB,EAASm+B,EAAuBF,EAAclc,KAEhDmc,EAAM5V,EAAQ9oB,iBAAiBuiB,EAC/B,KAAK,GAAItiB,GAAIy+B,EAAIxhC,OAAQ+C,KACvBO,EAAOk+B,EAAIz+B,KAMnB,QAAS2+B,GAAeb,EAASR,GAC/B,GAAIsB,GACAvxB,EAIAwxB,EAHAC,EAAc3B,EAAa4B,KAC3B92B,EAAc61B,EAAQ71B,SAASC,cAC/B82B,EAAclB,EAAQkB,SAO1B,IAAIlB,EAAQmB,WACV,MAAO,KAIT,IAFAnB,EAAQmB,WAAa,EAEK,mBAAtBnB,EAAQrT,UACV,MAAO,KAyBT,IAhBIuU,GAA0B,QAAbA,IACf/2B,EAAW+2B,EAAY,IAAM/2B,GAO3B,aAAe61B,KACZx6B,UAAU4pB,QAAQyD,0BACE,MAArBmN,EAAQ71B,UACsC,SAA9C61B,EAAQoB,UAAUrgC,MAAM,IAAIqJ,gBAC9BD,EAAW,QAIXA,IAAY62B,GAAU,CAExB,GADAF,EAAOE,EAAS72B,IACX22B,GAAQA,EAAKh8B,OAChB,MAAO,KACF,IAAIg8B,EAAKO,OACd,OAAO,CAETP,GAAwB,gBAAX,IAAwBQ,WAAYR,GAASA,MACrD,CAAA,IAAId,EAAQ7uB,WAIjB,MAAO,KAHP2vB,IAASQ,WAAYd,GAOvB,GAAIM,EAAKS,cAAgBC,EAAWxB,EAASX,EAAcyB,EAAKS,YAAa/B,GAAiB,CAC5F,IAAIsB,EAAKW,cASP,MAAO,KARP,IAA2B,WAAvBX,EAAKW,cACP,OAAO,CACF,IAA2B,WAAvBX,EAAKW,cAGd,MAAO,KAFPV,GAAYD,EAAKY,yBAA2BlB,EAgBlD,MAPAjxB,GAAUywB,EAAQnwB,cAAc1N,cAAc4+B,GAAaD,EAAKQ,YAAcn3B,GAC9Ew3B,EAAkB3B,EAASzwB,EAASuxB,EAAMtB,GAC1CoC,EAAc5B,EAASzwB,EAASuxB,GAEhCd,EAAU,KAENzwB,EAAQ6d,WAAa7d,EAAQ6d,YAC1B7d,EAGT,QAASiyB,GAAWxB,EAASxB,EAAO9C,EAAO8D,GACzC,GAAIqC,GAAY7jC,CAGhB,IAAyB,SAArBgiC,EAAQ71B,WAAwBq1B,IAAyC,gCAAtBQ,EAAQrT,WAAqE,2BAAtBqT,EAAQrT,WACpH,OAAO,CAGT,KAAK3uB,IAAQ09B,GACX,GAAIA,EAAM7vB,eAAe7N,IAASwgC,EAAMsD,kBAAoBtD,EAAMsD,iBAAiB9jC,KACjF6jC,EAAarD,EAAMsD,iBAAiB9jC,GAChC+jC,EAAU/B,EAAS6B,IACrB,OAAO,CAIb,QAAO,EAaT,QAASE,GAAU/B,EAAS6B,GAE1B,GAEIG,GAAejiC,EAAgBM,EAAG4hC,EAAoBC,EAFtDC,EAAcnC,EAAQ77B,aAAa,SACnCi+B,EAAcpC,EAAQ77B,aAAa,QAIvC,IAAI09B,EAAWQ,QACb,IAAK,GAAIC,KAAKT,GAAWQ,QACvB,GAAIR,EAAWQ,QAAQx2B,eAAey2B,IAAMC,EAAgBD,IAEtDC,EAAgBD,GAAGtC,GACrB,OAAO,CAOf,IAAImC,GAAeN,EAAWz9B,QAAS,CACrC+9B,EAAcA,EAAY5kC,QAAQ,QAAS,IAAIA,QAAQ,QAAS,IAAI8G,MAAMm+B,GAC1ER,EAAgBG,EAAYhjC,MAC5B,KAAK,GAAI+C,GAAI,EAAO8/B,EAAJ9/B,EAAmBA,IACjC,GAAI2/B,EAAWz9B,QAAQ+9B,EAAYjgC,IACjC,OAAO,EAMb,GAAIkgC,GAAcP,EAAW1F,OAAQ,CAEnCiG,EAAaA,EAAW/9B,MAAM,IAC9B,KAAKtE,IAAK8hC,GAAW1F,OACnB,GAAI0F,EAAW1F,OAAOtwB,eAAe9L,GACnC,IAAK,GAAI0iC,GAAKL,EAAWjjC,OAAQsjC,KAG/B,GAFAP,EAAYE,EAAWK,GAAIp+B,MAAM,KAE7B69B,EAAU,GAAG3kC,QAAQ,MAAO,IAAI6M,gBAAkBrK,IAChD8hC,EAAW1F,OAAOp8B,MAAO,GAAiC,IAAzB8hC,EAAW1F,OAAOp8B,IAAYyF,UAAUM,KAAKmuB,MAAM4N,EAAW1F,OAAOp8B,IAAIwC,SAAS2/B,EAAU,GAAG3kC,QAAQ,MAAO,IAAI6M,gBACrJ,OAAO,EASnB,GAAIy3B,EAAWa,MACX,IAAKriC,IAAKwhC,GAAWa,MACjB,GAAIb,EAAWa,MAAM72B,eAAexL,KAChC4hC,EAAOz8B,UAAUG,IAAIxB,aAAa67B,EAAS3/B,GACtB,gBAAX,IACF4hC,EAAKpL,OAAOgL,EAAWa,MAAMriC,IAAM,IACnC,OAAO,CAM3B,QAAO,EAGT,QAASuhC,GAAc5B,EAASzwB,EAASuxB,GACvC,GAAI/gC,GAAG4iC,CACP,IAAG7B,GAAQA,EAAK8B,YACd,IAAK7iC,IAAK+gC,GAAK8B,YACb,GAAI9B,EAAK8B,YAAY/2B,eAAe9L,GAAI,CAGtC,GAFA4iC,EAAW,UAAN5iC,EAAiBigC,EAAQxT,MAAMqW,YAAc7C,EAAQxT,MAAMsW,SAAW9C,EAAQxT,MAAMzsB,GAErF+gC,EAAK8B,YAAY7iC,YAAcmW,UAAY4qB,EAAK8B,YAAY7iC,GAAGgE,KAAK4+B,GACtE,QAEQ,WAAN5iC,EAEFwP,EAAQid,MAAOwT,EAAQxT,MAAgB,WAAI,aAAc,YAAcmW,EAC7D3C,EAAQxT,MAAMzsB,KACvBwP,EAAQid,MAAMzsB,GAAK4iC,IAO9B,QAASI,GAA4BC,EAAWvC,GAC9C,GAAIwC,KACJ,KAAK,GAAIhB,KAAQxB,GACXA,EAAW50B,eAAeo2B,IAAqC,IAA5BA,EAAK7hC,QAAQ4iC,IAClDC,EAAiBnkC,KAAKmjC,EAG1B,OAAOgB,GAGT,QAASC,GAAgBC,EAAeC,EAAgB5yB,EAAYrG,GAClE,GACIk5B,GADA5gC,EAAS6gC,EAAsB9yB,EAGnC,OAAI/N,KACE2gC,GAAqC,QAAlBD,GAAuC,OAAZh5B,KAChDk5B,EAAoB5gC,EAAO2gC,GACO,gBAAxB,IACDC,GAKN,EAGT,QAASE,GAAiBvD,EAASwD,GACjC,GAIIL,GAAeM,EAAUC,EAJzBC,EAAoBn+B,UAAUM,KAAK/G,OAAOsgC,EAAaoB,gBAAkBjjB,QACzEomB,EAAoBp+B,UAAUM,KAAK/G,OAAO4kC,GAAkBjO,MAAOlwB,UAAUM,KAAK/G,OAAOykC,OAAwBhmB,SAAS5d,MAC1H6gC,KACAoD,EAAoBr+B,UAAUG,IAAIm+B,cAAc9D,EAGpD,KAAKmD,IAAiBS,GACpB,GAAI,MAAQ7/B,KAAKo/B,GAAgB,CAE/BO,EAAqBX,EAA4BI,EAAcpiC,MAAM,EAAE,IAAK8iC,EAC5E,KAAK,GAAI3hC,GAAI,EAAG6hC,EAAOL,EAAmBvkC,OAAY4kC,EAAJ7hC,EAAUA,IAE1DuhC,EAAWP,EAAgBQ,EAAmBxhC,GAAI2hC,EAAcH,EAAmBxhC,IAAK0hC,EAAgBT,GAAgBnD,EAAQ71B,UAC5Hs5B,KAAa,IACfhD,EAAWiD,EAAmBxhC,IAAMuhC,OAIxCA,GAAWP,EAAgBC,EAAeU,EAAcV,GAAgBS,EAAgBT,GAAgBnD,EAAQ71B,UAC5Gs5B,KAAa,IACfhD,EAAW0C,GAAiBM,EAKlC,OAAOhD,GAIT,QAASkB,GAAkB3B,EAASzwB,EAASuxB,EAAMtB,GACjD,GAWIwC,GAEAgC,EACAC,EACAd,EACA1gC,EAhBAg+B,KACAyD,EAAsBpD,EAAKqD,UAC3BxL,EAAsBmI,EAAKsD,UAC3BC,EAAsBvD,EAAKwD,UAC3BC,EAAsBzD,EAAK0D,eAC3BC,EAAsBpF,EAAaj7B,QACnClC,EAAsB,EACtBkC,KACA+3B,KACAuI,KACAC,IAmBJ,IAXIJ,IACF9D,EAAaj7B,UAAUM,KAAK/G,OAAOwlC,GAAe/mB,SAIpDijB,EAAaj7B,UAAUM,KAAK/G,OAAO0hC,GAAY/K,MAAM6N,EAAiBvD,EAAUc,EAAK8D,mBAAmBhlC,MAEpGskC,GACF9/B,EAAQtF,KAAKolC,GAGXvL,EACF,IAAKwK,IAAiBxK,GACpBl2B,EAASoiC,EAAgBlM,EAASwK,IAC7B1gC,IAGLwhC,EAAWxhC,EAAO+C,UAAUG,IAAIxB,aAAa67B,EAASmD,IAC7B,gBAAf,IACR/+B,EAAQtF,KAAKmlC,GAKnB,IAAII,EACF,IAAKlB,IAAiBkB,GACpB5hC,EAASqiC,EAAgBT,EAASlB,IAC7B1gC,IAILsiC,SAAWtiC,EAAO+C,UAAUG,IAAIxB,aAAa67B,EAASmD,IAC7B,gBAAf,WACRhH,EAAOr9B,KAAKimC,UAMlB,IAA+B,gBAArB,IAAoD,QAAnBN,GAA4BzE,EAAQ77B,aAAa,SAC1F,GAAIk7B,EAAa2F,kBAAmB,CAOlC,IANAL,EAAa3E,EAAQ77B,aAAa,SAC9BwgC,IACFvgC,EAAUA,EAAQ/C,OAAOsjC,EAAWtgC,MAAMm+B,KAG5CR,EAAgB59B,EAAQjF,OACf6iC,EAAF9/B,EAAiBA,IACtB8hC,EAAe5/B,EAAQlC,GAClBm9B,EAAa2F,kBAAkBhB,IAClCU,EAAW5lC,KAAKklC,EAIhBU,GAAWvlC,SACbshC,EAAW,SAAWj7B,UAAUM,KAAKmuB,MAAMyQ,GAAY/P,SAAS1vB,KAAK,UAIvEw7B,GAAW,SAAWT,EAAQ77B,aAAa,aAExC,CAcL,IAZKq7B,IACHiF,EAAe,+BAAiC,EAChDA,EAAwC,wBAAI,EAC5CA,EAAe,6BAA+B,GAIhDE,EAAa3E,EAAQ77B,aAAa,SAC9BwgC,IACFvgC,EAAUA,EAAQ/C,OAAOsjC,EAAWtgC,MAAMm+B,KAE5CR,EAAgB59B,EAAQjF,OACf6iC,EAAF9/B,EAAiBA,IACtB8hC,EAAe5/B,EAAQlC,GACnBuiC,EAAeT,IACjBU,EAAW5lC,KAAKklC,EAIhBU,GAAWvlC,SACbshC,EAAW,SAAWj7B,UAAUM,KAAKmuB,MAAMyQ,GAAY/P,SAAS1vB,KAAK,MAKrEw7B,EAAW,UAAYjB,IACzBiB,EAAW,SAAWA,EAAW,SAASljC,QAAQ,4BAA6B,IAC3E,SAAWwG,KAAK08B,EAAW,iBACtBA,GAAW,UAIlBtE,EAAOh9B,SACTshC,EAAkB,MAAIj7B,UAAUM,KAAKmuB,MAAMkI,GAAQxH,SAAS1vB,KAAK,KAInE,KAAKk+B,IAAiB1C,GAIpB,IACElxB,EAAQhL,aAAa4+B,EAAe1C,EAAW0C,IAC/C,MAAM/kC,IAKNqiC,EAAWwE,MACoB,mBAAtBxE,GAAgB,OACzBlxB,EAAQhL,aAAa,QAASk8B,EAAWyE,OAET,mBAAvBzE,GAAiB,QAC1BlxB,EAAQhL,aAAa,SAAUk8B,EAAW0E,SAKhD,QAASC,GAAYpF,GACnB,GAAI7wB,GAAc6wB,EAAQ7wB,WAC1B,KAAIA,GAAeA,EAAY3C,WAAahH,UAAUa,UAG/C,CAEL,GAAIkL,GAAOyuB,EAAQzuB,KAAKhU,QAAQiI,UAAUU,wBAAyB,GACnE,OAAO85B,GAAQnwB,cAAcwC,eAAed,GAJ5CpC,EAAYoC,KAAOyuB,EAAQzuB,KAAKhU,QAAQiI,UAAUU,wBAAyB,IAAMiJ,EAAYoC,KAAKhU,QAAQiI,UAAUU,wBAAyB,IAQjJ,QAASm/B,GAAerF,GACtB,MAAIX,GAAaiG,SACRtF,EAAQnwB,cAAc01B,cAAcvF,EAAQ3H,WADrD,OA1lBF,GAAIiI,IACEkF,EAAK3E,EACL4E,EAAKL,EACLM,EAAKL,GAGP7E,EAAsB,OACtBgC,EAAsB,MACtBlD,GAAwB2B,QAAU78B,YAClCi7B,KACAkB,GAAuB,UAAW,aAAc,SAAU,MAAO,MAAO,KAAM,WACvD,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,UAAW,OACvD,WAAY,WAAY,KAAM,IAAK,MAAM,QAAS,MAolBzE+C,GACF9L,IAAK,WACH,GAAImO,GAAU,eACd,OAAO,UAASvC,GACd,MAAKA,IAAmBA,EAAena,MAAM0c,GAGtCvC,EAAe7lC,QAAQooC,EAAS,SAAS1c,GAC9C,MAAOA,GAAM7e,gBAHN,SAQb66B,IAAK,WACH,GAAIU,GAAU,oBACd,OAAO,UAASvC,GACd,MAAKA,IAAmBA,EAAena,MAAM0c,GAGtCvC,EAAe7lC,QAAQooC,EAAS,SAAS1c,GAC9C,MAAOA,GAAM7e,gBAHN,SAQbw7B,KAAM,WACJ,GAAID,GAAU,mCACd,OAAO,UAASvC,GACd,MAAKA,IAAmBA,EAAena,MAAM0c,GAGtCvC,EAAe7lC,QAAQooC,EAAS,SAAS1c,GAC9C,MAAOA,GAAM7e,gBAHN,SAQby7B,IAAK,WACH,GAAIF,GAAU,iBACd,OAAO,UAASvC,GACd,MAAKA,GAGEA,EAAe7lC,QAAQooC,EAAS,IAF9B,OAObG,QAAS,WACP,GAAIH,GAAU,KACd,OAAO,UAASvC,GAEd,MADAA,IAAkBA,GAAkB,IAAI7lC,QAAQooC,EAAS,IAClDvC,GAAkB,SAK7B2C,UAAW,WACT,GAAIJ,GAAU,4BACd,OAAO,UAASvC,GAEd,MADAA,IAAkBA,GAAkB,IAAI7lC,QAAQooC,EAAS,UAClDvC,GAAkB,SAI7B4C,IAAK,WACH,MAAO,UAAS5C,GACd,MAAOA,QAMT0B,GACFmB,WAAY,WACV,GAAIC,IACFC,KAAU,oBACVC,MAAU,qBACVC,OAAU,sBAEZ,OAAO,UAASjD,GACd,MAAO8C,GAAQhpC,OAAOkmC,GAAgBh5B,oBAMxCy6B,GACFyB,UAAW,WACT,GAAIJ,IACFC,KAAQ,qBACRC,MAAQ,sBAEV,OAAO,UAAShD,GACd,MAAO8C,GAAQhpC,OAAOkmC,GAAgBh5B,mBAI1C67B,WAAY,WACV,GAAIC,IACFC,KAAU,0BACVC,MAAU,2BACVC,OAAU,4BACVE,QAAU,6BAEZ,OAAO,UAASnD,GACd,MAAO8C,GAAQhpC,OAAOkmC,GAAgBh5B,mBAI1Co8B,SAAU,WACR,GAAIN,IACFC,KAAQ,qBACRC,MAAQ,sBACRK,KAAQ,qBACR9I,IAAQ,qBAEV,OAAO,UAASyF,GACd,MAAO8C,GAAQhpC,OAAOkmC,GAAgBh5B,mBAI1Cs8B,UAAW,WACT,GAAIR,IACFV,EAAK,6BACLmB,EAAK,0BACLlB,EAAK,2BACLmB,EAAK,0BACLC,EAAK,4BACLC,EAAK,6BACLC,EAAK,6BACLC,IAAK,4BACLC,IAAK,2BAEP,OAAO,UAAS7D,GACd,MAAO8C,GAAQhpC,OAAOkmC,GAAgBpG,OAAO,SAM/CuF,GACF2E,mBAAoB,WAClB,GAAIC,GAEAC,GAAmB,MAAO,QAAS,UAAW,KAAM,SAAU,WAC3C,QAAS,QAAS,SAAU,SAAU,QAAS,QAC/C,MAAO,QAAS,SAAU,SAAS,WAAY,SAEtE,OAAO,UAAS/6B,GAId,GADA86B,GAAO96B,EAAGxM,WAAawM,EAAGuxB,aAAargC,QAAQ,MAAO,IAClD4pC,GAAOA,EAAIhoC,OAAS,EACtB,OAAO,CAIT,KAAK,GAAI+C,GAAIklC,EAAgBjoC,OAAQ+C,KACnC,GAAImK,EAAGskB,cAAcyW,EAAgBllC,IACnC,OAAO,CAKX,OAAImK,GAAGyuB,aAAezuB,EAAGyuB,YAAc,GAAKzuB,EAAGg7B,cAAgBh7B,EAAGg7B,aAAe,GACxE,GAGF,OAKTzG,GACFS,OAAQ,SAAUtW,GAChBvlB,UAAUG,IAAI07B,OAAOtW,IAGvBjmB,OAAQ,SAAUimB,GAChBA,EAAQ/oB,WAAW4Z,YAAYmP,IAInC,OAAOkU,GAAMC,EAAuBC,IAStC35B,UAAUG,IAAI2hC,qBAAuB,SAASxlC,GAK5C,IAJA,GAAIy3B,GACAhtB,EAAoB/G,UAAUM,KAAKmuB,MAAMnyB,EAAKyK,YAAY3M,MAC1D24B,EAAoBhsB,EAAWpN,OAC/B+C,EAAoB,EACfq2B,EAAFr2B,EAAoBA,IACzBq3B,EAAYhtB,EAAWrK,GACnBq3B,EAAU/sB,WAAahH,UAAUa,WAAgC,KAAnBkzB,EAAUhoB,MAC1DgoB,EAAUv3B,WAAW4Z,YAAY2d,IA6BvC/zB,UAAUG,IAAI4hC,cAAgB,SAASxc,EAASyc,GAG9C,IAFA,GACIr2B,GADAs2B,EAAa1c,EAAQlb,cAAc1N,cAAcqlC,GAE9Cr2B,EAAa4Z,EAAQ5Z,YAC1Bs2B,EAAWn7B,YAAY6E,EAIzB,OAFA3L,WAAUG,IAAIw0B,gBAAgB,QAAS,cAAcJ,KAAKhP,GAASuP,GAAGmN,GACtE1c,EAAQ/oB,WAAWk4B,aAAauN,EAAY1c,GACrC0c,GAeTjiC,UAAUG,IAAI+hC,sBAAwB,SAAS5lC,GAC7C,GAAKA,EAAKE,WAAV,CAIA,IAAKF,EAAKqP,WAER,WADArP,GAAKE,WAAW4Z,YAAY9Z,EAK9B,KADA,GAAI+P,GAAW/P,EAAK+N,cAAciC,yBAC3BhQ,EAAKqP,YACVU,EAASvF,YAAYxK,EAAKqP,WAE5BrP,GAAKE,WAAWk4B,aAAaroB,EAAU/P,GACvCA,EAAO+P,EAAW,OAwBpB,SAAUlM,GACR,QAASgiC,GAAgB7lC,GACvB,MAA8C,UAAvC6D,EAAIm0B,SAAS,WAAWC,KAAKj4B,GAGtC,QAAS+8B,GAAa/8B,GACpB,MAAyB,OAAlBA,EAAKqI,SAGd,QAASy9B,GAAiB7c,GACxB,GAAIyO,GAAYzO,EAAQlb,cAAc1N,cAAc,KACpD4oB,GAAQze,YAAYktB,GAGtB,QAASqO,GAAY3O,EAAM4O,GACzB,GAAK5O,EAAK/uB,SAAS8e,MAAM,kBAAzB,CAIA,GAGI9X,GACAyM,EACAmqB,EACAC,EACAC,EACA9O,EARA7wB,EAAkB4wB,EAAKrpB,cACvBgC,EAAkBvJ,EAAIwJ,yBACtB9D,EAAkBxI,UAAUG,IAAI01B,QAAQnC,GAAMsC,MAAMG,kBAAkB,GAQ1E,IAAImM,EAMF,KAJI95B,GAAoB25B,EAAgB35B,IAAqB6wB,EAAa7wB,IACxE45B,EAAiB/1B,GAGZsnB,EAAYD,EAAKgP,mBAAqBhP,EAAK/nB,YAAa,CAE7D,IADAyM,EAAYub,EAASvb,UACdzM,EAAagoB,EAAShoB,YAC3B42B,EAAwB52B,IAAeyM,EAEvCoqB,EAAwBD,IAAgBJ,EAAgBx2B,KAAgB0tB,EAAa1tB,GACrFU,EAASvF,YAAY6E,GACjB62B,GACFJ,EAAiB/1B,EAIrBsnB,GAASn3B,WAAW4Z,YAAYud,OAGlC,MAAOA,EAAYD,EAAKgP,mBAAqBhP,EAAK/nB,YAAa,CAC7D,GAAIgoB,EAASxI,eAAiBwI,EAASxI,cAAc,4DACnD,KAAOxf,EAAagoB,EAAShoB,YAC3BU,EAASvF,YAAY6E,OAElB,CAEL,IADA82B,EAAY3/B,EAAInG,cAAc,KACvBgP,EAAagoB,EAAShoB,YAC3B82B,EAAU37B,YAAY6E,EAExBU,GAASvF,YAAY27B,GAEvB9O,EAASn3B,WAAW4Z,YAAYud,GAIpCD,EAAKl3B,WAAWk4B,aAAaroB,EAAUqnB,IAGzCvzB,EAAIkiC,YAAcA,GACjBriC,UAAUG,KAuBb,SAAUH,GACR,GAGI8C,GAAsB3J,SAItBwpC,GACE,SAAU,MAAO,SAAU,eAAgB,SAC3C,eAAgB,gBAAiB,iBAAkB,aAKrDC,GACE,OAAQ,QAAS,aAAc,kBAC/B,QAAS,UAAW,SACpB,eAAgB,cAChB,iBAAkB,kBAKpBC,GACE,WACA,QAAS,OAAQ,QAGvB7iC,GAAUG,IAAI2iC,QAAUta,KAAKpiB,QAG3B2N,YAAa,SAASgvB,EAAej/B,GACnChM,KAAKk3B,SAAW+T,GAAiB/iC,EAAUW,eAC3C7I,KAAKgM,OAAW9D,EAAUM,KAAK/G,WAAW22B,MAAMpsB,GAAQ1J,MACxDtC,KAAKkrC,aAAiBlrC,KAAKmrC,iBAG7BC,WAAY,SAAS3d,GACK,gBAAd,KACRA,EAAUziB,EAAI0jB,eAAejB,IAG/BA,EAAQze,YAAYhP,KAAKkrC,eAG3BG,UAAW,WACT,MAAOrrC,MAAKkrC,cAGd14B,UAAW,WACTxS,KAAKsrC,eAGPh5B,YAAa,WACXtS,KAAKsrC,eAGPC,QAAS,WACP,GAAIC,GAASxrC,KAAKqrC,WAClBG,GAAO9mC,WAAW4Z,YAAYktB,IAGhCF,YAAa,WACX,KAAM,IAAIlkC,OAAM,uDAsBlB+jC,cAAe,WACb,GAAIM,GAASzrC,KACTwrC,EAASxgC,EAAInG,cAAc,SA6B/B,OA5BA2mC,GAAOnc,UAAY,oBACnBnnB,EAAUG,IAAI4+B,eACZyE,SAAsB,aACtBC,kBAAsB,OACtBC,YAAsB,EACtBhE,MAAsB,EACtBC,OAAsB,EACtBgE,YAAsB,EACtBC,aAAsB,IACrBpU,GAAG8T,GAGFtjC,EAAU4pB,QAAQ8B,kDACpB4X,EAAO7D,IAAM,8BAGf6D,EAAOO,OAAS,WACdP,EAAOQ,mBAAqBR,EAAOO,OAAS,KAC5CN,EAAKQ,cAAcT,IAGrBA,EAAOQ,mBAAqB,WACtB,kBAAkBvlC,KAAK+kC,EAAOlqC,cAChCkqC,EAAOQ,mBAAqBR,EAAOO,OAAS,KAC5CN,EAAKQ,cAAcT,KAIhBA,GAMTS,cAAe,SAAST,GAEtB,GAAKtjC,EAAUG,IAAIpD,SAAS+F,EAAIoK,gBAAiBo2B,GAAjD,CAIA,GAAIC,GAAiBzrC,KACjBksC,EAAiBV,EAAO14B,cACxBq5B,EAAiBX,EAAO14B,cAAczR,SACtC+qC,EAAiBphC,EAAIqhC,cAAgBrhC,EAAIohC,SAAW,QACpDE,EAAiBtsC,KAAKusC,UACpBH,QAAcA,EACdI,YAAcxsC,KAAKgM,OAAOwgC,aAkBhC,IAdAL,EAAeM,KAAK,YAAa,WACjCN,EAAeO,MAAMJ,GACrBH,EAAeQ,QAEf3sC,KAAKwS,UAAY,WAAa,MAAOg5B,GAAO14B,eAC5C9S,KAAKsS,YAAc,WAAa,MAAOk5B,GAAO14B,cAAczR,UAK5D6qC,EAAaU,QAAU,SAAS3/B,EAAc4/B,EAAUC,GACtD,KAAM,IAAI1lC,OAAM,sBAAwB6F,EAAc4/B,EAAUC,KAG7D5kC,EAAU4pB,QAAQ6B,2BAA4B,CAOjD,GAAI/uB,GAAG/C,CACP,KAAK+C,EAAE,EAAG/C,EAAOgpC,EAAiBhpC,OAAUA,EAAF+C,EAAUA,IAClD5E,KAAK+sC,OAAOb,EAAcrB,EAAiBjmC,GAE7C,KAAKA,EAAE,EAAG/C,EAAOipC,EAAkBjpC,OAAUA,EAAF+C,EAAUA,IACnD5E,KAAK+sC,OAAOb,EAAcpB,EAAkBlmC,GAAIsD,EAAUW,eAE5D,KAAKjE,EAAE,EAAG/C,EAAOkpC,EAAmBlpC,OAAUA,EAAF+C,EAAUA,IACpD5E,KAAK+sC,OAAOZ,EAAgBpB,EAAmBnmC,GAIjD5E,MAAK+sC,OAAOZ,EAAgB,SAAU,IAAI,GAG5CnsC,KAAKgtC,QAAS,EAGdC,WAAW,WAAaxB,EAAKvU,SAASuU,IAAU,KAGlDc,SAAU,SAASW,GACjB,GAGIrrC,GAHA2qC,EAAcU,EAAaV,YAC3B7S,EAAc,GACd/0B,EAAc,CAGlB,IADA4nC,EAAsC,gBAAlB,IAA8BA,GAAeA,EAG/D,IADA3qC,EAAS2qC,EAAY3qC,OACZA,EAAF+C,EAAUA,IACf+0B,GAAQ,gCAAkC6S,EAAY5nC,GAAK,IAK/D,OAFAsoC,GAAaV,YAAc7S,EAEpBzxB,EAAUM,KAAK0wB,OACpB,mGAGAE,YAAY8T,IAShBH,OAAQ,SAAStrC,EAAQw0B,EAAU3E,EAAO6b,GACxC,IAAM1rC,EAAOw0B,GAAY3E,EAAS,MAAMxwB,IAExC,IAAMW,EAAOwG,iBAAiBguB,EAAU,WAAa,MAAO3E,KAAa,MAAMxwB,IAC/E,GAAIqsC,EACF,IAAM1rC,EAAO2rC,iBAAiBnX,EAAU,cAAkB,MAAMn1B,IAGlE,IAAKoH,EAAU4pB,QAAQkE,0BAA0BC,GAC/C,IACE,GAAIjqB,IACF1J,IAAK,WAAa,MAAOgvB,IAEvB6b,KACFnhC,EAAOxJ,IAAM,cAEfL,OAAOC,eAAeX,EAAQw0B,EAAUjqB,GACxC,MAAMlL,SAIboH,WACF,SAAUA,GACT,GAAI8C,GAAM3J,QACV6G,GAAUG,IAAIglC,oBAAsB3c,KAAKpiB,QACrCg/B,mBAAoB,WAClB,MAAOttC,MAAKytB,SAGdjb,UAAW,WACT,MAAOxS,MAAKytB,QAAQlb,cAAcE,aAGpCH,YAAa,WACX,MAAOtS,MAAKytB,QAAQlb,eAGtB0J,YAAa,SAASgvB,EAAej/B,EAAQsf,GAC3CtrB,KAAKk3B,SAAW+T,GAAiB/iC,EAAUW,eAC3C7I,KAAKgM,OAAW9D,EAAUM,KAAK/G,WAAW22B,MAAMpsB,GAAQ1J,MAEpDtC,KAAKytB,QADLnC,EACetrB,KAAKutC,aAAajiB,GAElBtrB,KAAKwtC,kBAK1BA,eAAgB,WACd,GAAI/f,GAAUziB,EAAInG,cAAc,MAGhC,OAFA4oB,GAAQ4B,UAAY,oBACpBrvB,KAAKytC,aAAahgB,GACXA,GAIT8f,aAAc,SAASjiB,GAGrB,MAFAA,GAAgB+D,UAAa/D,EAAgB+D,WAA0C,IAA7B/D,EAAgB+D,UAAmB/D,EAAgB+D,UAAY,qBAAuB,oBAChJrvB,KAAKytC,aAAaniB,GAAiB,GAC5BA,GAGTmiB,aAAc,SAAShgB,EAASigB,GAC5B,GAAIjC,GAAOzrC,IACb,KAAK0tC,EAAe,CAChB,GAAIpB,GAActsC,KAAKusC,UACvB9e,GAAQrZ,UAAYk4B,EAGxBtsC,KAAKwS,UAAY,WAAa,MAAOib,GAAQlb,cAAcE,aAC3DzS,KAAKsS,YAAc,WAAa,MAAOmb,GAAQlb,eAU/CvS,KAAKgtC,QAAS,EAEdC,WAAW,WAAaxB,EAAKvU,SAASuU,IAAU,IAGlDc,SAAU,WACR,MAAO,OAIZrkC,WACF,WACC,GAAI0gC,IACFvZ,UAAa,QAEfnnB,WAAUG,IAAI4+B,cAAgB,SAAS9D,GACrC,OACEzL,GAAI,SAASjK,GACX,IAAK,GAAI7oB,KAAKu+B,GACZ1V,EAAQxmB,aAAa2hC,EAAQhkC,IAAMA,EAAGu+B,EAAWv+B,UAM1DsD,UAAUG,IAAIu1B,UAAY,SAASiB,GAClC,OACEnH,GAAI,SAASjK,GACX,GAAIyB,GAAQzB,EAAQyB,KACpB,IAAuB,gBAAb,GAER,YADAA,EAAMyO,SAAW,IAAMkB,EAGzB,KAAK,GAAIj6B,KAAKi6B,GACF,UAANj6B,GACFsqB,EAAMsW,SAAW3G,EAAOj6B,GACxBsqB,EAAMqW,WAAa1G,EAAOj6B,IAE1BsqB,EAAMtqB,GAAKi6B,EAAOj6B,MAoB5B,SAAUyD,GACRA,EAAIslC,oBAAsB,SAASC,EAAQjoC,EAAMkoC,GAC/C,GAAIC,GAAa,cACbC,EAAQ,WACN,GAAIC,GAAsBroC,EAAK8nB,QAAQ+P,YAAc,GAAK73B,EAAK8nB,QAAQsc,aAAe,CAClFpkC,GAAKsoC,sBACPtoC,EAAKuoC,QACLvoC,EAAK8nB,QAAQ3D,QACTkkB,GACFf,WAAW,WACT,GAAI/lB,GAAMvhB,EAAK8C,UAAUse,cACpBG,GAAII,WAAcJ,EAAIE,YACzBzhB,EAAK8C,UAAUgV,WAAW9X,EAAK8nB,QAAQ5Z,YAAclO,EAAK8nB,UAE3D,IAGP9nB,EAAKwoC,gBAAiB,EACtB9lC,EAAIkzB,YAAY51B,EAAK8nB,QAASqgB,IAEhCtrC,EAAM,WACAmD,EAAKyoC,YACPzoC,EAAKwoC,gBAAiB,EACtBxoC,EAAK0oC,SAASR,GACdxlC,EAAIgzB,SAAS11B,EAAK8nB,QAASqgB,IAInCF,GACGlW,GAAG,kBAAmBl1B,GACtBk1B,GAAG,oBAAqBqW,GACxBrW,GAAG,iBAAkBqW,GACrBrW,GAAG,iBAAkBqW,GACrBrW,GAAG,gBAAiBl1B,GAEvBA,MAED0F,UAAUG,KACZ,SAAUA,GACT,GAAI+M,GAAkB/T,SAAS+T,eAC3B,gBAAiBA,IACnB/M,EAAIimC,eAAiB,SAAS7gB,EAAS/H,GACrC+H,EAAQ6S,YAAc5a,GAGxBrd,EAAIkmC,eAAiB,SAAS9gB,GAC5B,MAAOA,GAAQ6S,cAER,aAAelrB,IACxB/M,EAAIimC,eAAiB,SAAS7gB,EAAS/H,GACrC+H,EAAQlrB,UAAYmjB,GAGtBrd,EAAIkmC,eAAiB,SAAS9gB,GAC5B,MAAOA,GAAQlrB,aAGjB8F,EAAIimC,eAAiB,SAAS7gB,EAAS/H,GACrC+H,EAAQsN,UAAYrV,GAGtBrd,EAAIkmC,eAAiB,SAAS9gB,GAC5B,MAAOA,GAAQsN,aAGlB7yB,UAAUG,KAYbH,UAAUG,IAAIxB,aAAe,SAASrC,EAAMqhC,GAC1C,GAAI2I,IAAyBtmC,UAAU4pB,QAAQqD,+BAC/C0Q,GAAgBA,EAAc/4B,aAC9B,IAAID,GAAWrI,EAAKqI,QACpB,IAAgB,OAAZA,GAAsC,OAAjBg5B,GAA0B39B,UAAUG,IAAIomC,cAAcjqC,MAAU,EAKvF,MAAOA,GAAKmjC,GACP,IAAI6G,GAAyB,aAAehqC,GAAM,CAEvD,GAAIs/B,GAAiBt/B,EAAKs/B,UAAUh3B,cAEhC4hC,EAAkE,IAAjD5K,EAAUhhC,QAAQ,IAAM+iC,EAAiB,IAE9D,OAAO6I,GAAelqC,EAAKqC,aAAag/B,GAAiB,KAEzD,MAAOrhC,GAAKqC,aAAag/B,IAa7B39B,UAAUG,IAAIm+B,cAAgB,SAAShiC,GACrC,GAGImgC,GAHA6J,GAAyBtmC,UAAU4pB,QAAQqD,gCAC3CtoB,EAAWrI,EAAKqI,SAChBs2B,IAGJ,KAAKwB,IAAQngC,GAAK2+B,YACX3+B,EAAK2+B,WAAW50B,gBAAkB/J,EAAK2+B,WAAW50B,eAAeo2B,KAAYngC,EAAK2+B,WAAW50B,gBAAkBpM,OAAOtC,UAAU0O,eAAepN,KAAKqD,EAAK2+B,WAAYwB,KACpKngC,EAAK2+B,WAAWwB,GAAMgK,YACR,OAAZ9hC,GAAiE,OAA5CrI,EAAK2+B,WAAWwB,GAAMt+B,KAAKyG,eAA0B5E,UAAUG,IAAIomC,cAAcjqC,MAAU,EAClH2+B,EAAgB,IAAI3+B,EAAKmjC,IAChBz/B,UAAUM,KAAKmuB,OAAO,UAAW,YAAY1xB,SAAST,EAAK2+B,WAAWwB,GAAMt+B,KAAKyG,gBAAkB0hC,EACxE,IAAhChqC,EAAK2+B,WAAWwB,GAAMrT,QACxB6R,EAAW3+B,EAAK2+B,WAAWwB,GAAMt+B,MAAQ7B,EAAK2+B,WAAWwB,GAAMrT,OAGjE6R,EAAW3+B,EAAK2+B,WAAWwB,GAAMt+B,MAAQ7B,EAAK2+B,WAAWwB,GAAMrT,MAKvE,OAAO6R,IAMTj7B,UAAUG,IAAIomC,cAAgB,SAAUjqC,GACtC,IACE,MAAOA,GAAKoqC,WAAapqC,EAAKL,mBAAmB,gBACjD,MAAMrD,GACN,GAAI0D,EAAKoqC,UAAgC,aAApBpqC,EAAKlD,WACxB,OAAO,IAIZ,SAAU4G,GA2BP,QAAS2mC,GAAYjT,EAAM6C,GAGvB,IAAK,GADDqQ,GADAC,KAEKjuC,EAAI,EAAGyE,EAAMq2B,EAAK/5B,OAAY0D,EAAJzE,EAASA,IAExC,GADAguC,EAAIlT,EAAK96B,GAAG6D,iBAAiB85B,GAEzB,IAAI,GAAI75B,GAAIkqC,EAAEjtC,OAAQ+C,IAAKmqC,EAAIC,QAAQF,EAAElqC,KAGjD,MAAOmqC,GAGX,QAASE,GAAclgC,GACnBA,EAAGrK,WAAW4Z,YAAYvP,GAG9B,QAAS2C,GAAYw9B,EAAej9B,GAChCi9B,EAAcxqC,WAAWoN,aAAaG,EAASi9B,EAAcr9B,aAGjE,QAASD,GAASpN,EAAM2qC,GAEpB,IADA,GAAI1hB,GAAUjpB,EAAKqN,YACO,GAAnB4b,EAAQve,UAEX,GADAue,EAAUA,EAAQ5b,aACbs9B,GAAOA,GAAO1hB,EAAQta,QAAQrG,cAC/B,MAAO2gB,EAGf,OAAO,MArDX,GAAI5hB,GAAM3D,EAAUG,IAEhB+mC,EAAU,SAASC,GACrBrvC,KAAK+O,GAAKsgC,EACVrvC,KAAKsvC,WAAW,EAChBtvC,KAAKuvC,WAAW,EAChBvvC,KAAKwvC,UAAU,EACfxvC,KAAKyvC,SAAS,EACdzvC,KAAK0vC,UAAU,EACf1vC,KAAK2vC,SAAS,EACd3vC,KAAK4vC,QAAQ,EACb5vC,KAAK6vC,kBACL7vC,KAAK8vC,UAAW,GAGdC,EAAsB,SAAUV,EAAMW,GAClCX,GACArvC,KAAKqvC,KAAOA,EACZrvC,KAAKgwC,MAAQnkC,EAAIyzB,iBAAiB+P,GAAQ5Q,MAAO,WAC1CuR,IACPhwC,KAAKgwC,MAAQA,EACbhwC,KAAKqvC,KAAOrvC,KAAKgwC,MAAMrrC,iBAAiB,UAAU,IAmC1DorC,GAAoBlwC,WAEhBowC,oBAAqB,SAASZ,EAAMpY,EAAK/zB,EAAGD,EAAGitC,EAAOC,GAKlD,IAAK,GAJDC,MACAC,EAAOntC,GAAK,EAAU0oB,SAASukB,EAAO,IAAM,EAAI,GAChDG,EAAOrtC,GAAK,EAAU2oB,SAASskB,EAAO,IAAM,EAAI,GAE3CK,EAAKrtC,EAASmtC,GAANE,EAAYA,IAAM,CACT,mBAAXtZ,GAAIsZ,KAAsBtZ,EAAIsZ,MACzC,KAAK,GAAIC,GAAKvtC,EAASqtC,GAANE,EAAYA,IACzBvZ,EAAIsZ,GAAIC,GAAM,GAAIpB,GAAQC,GAC1BpY,EAAIsZ,GAAIC,GAAIlB,UAAaY,GAAStkB,SAASskB,EAAO,IAAM,EACxDjZ,EAAIsZ,GAAIC,GAAIjB,UAAaY,GAASvkB,SAASukB,EAAO,IAAM,EACxDlZ,EAAIsZ,GAAIC,GAAIhB,SAAWgB,GAAMvtC,EAC7Bg0B,EAAIsZ,GAAIC,GAAIf,QAAUe,GAAMF,EAC5BrZ,EAAIsZ,GAAIC,GAAId,SAAWa,GAAMrtC,EAC7B+zB,EAAIsZ,GAAIC,GAAIb,QAAUY,GAAMF,EAC5BpZ,EAAIsZ,GAAIC,GAAIZ,OAASY,GAAMvtC,GAAKstC,GAAMrtC,EACtC+zB,EAAIsZ,GAAIC,GAAIX,eAAiBO,EAE7BA,EAAY5uC,KAAKy1B,EAAIsZ,GAAIC,MAKrCC,kBAAmB,SAASpB,GAExB,GADAA,EAAKS,UAAW,EACZT,EAAKQ,eAAehuC,OAAS,EAC/B,IAAK,GAAIY,GAAI,EAAGiuC,EAAOrB,EAAKQ,eAAehuC,OAAY6uC,EAAJjuC,EAAUA,IAC3D4sC,EAAKQ,eAAeptC,GAAGqtC,UAAW,GAK1Ca,YAAa,WACT,GAEIC,GAAMC,EAAKC,EAAOC,EAAM1B,EACxBpsC,EACAitC,EAAOC,EAJPlZ,KACA+Z,EAAYhxC,KAAKixC,cAKrB,KAAKL,EAAO,EAAGA,EAAOI,EAAUnvC,OAAQ+uC,IAKpC,IAJAC,EAAMG,EAAUJ,GAChBE,EAAQ9wC,KAAKkxC,YAAYL,GACzB5tC,EAAI,EACoB,mBAAbg0B,GAAI2Z,KAAwB3Z,EAAI2Z,OACtCG,EAAO,EAAGA,EAAOD,EAAMjvC,OAAQkvC,IAAQ,CAKxC,IAJA1B,EAAOyB,EAAMC,GAIiB,mBAAhB9Z,GAAI2Z,GAAM3tC,IAAqBA,GAE7CitC,GAAQrkC,EAAIhF,aAAawoC,EAAM,WAC/Bc,EAAQtkC,EAAIhF,aAAawoC,EAAM,WAE3Ba,GAASC,GACTnwC,KAAKiwC,oBAAoBZ,EAAMpY,EAAK2Z,EAAM3tC,EAAGitC,EAAOC,GACpDltC,GAAS,EAAU2oB,SAASskB,EAAO,IAAM,IAEzCjZ,EAAI2Z,GAAM3tC,GAAK,GAAImsC,GAAQC,GAC3BpsC,KAKZ,MADAjD,MAAKi3B,IAAMA,EACJA,GAGXia,YAAa,SAASL,GAClB,GAAIM,GAAenxC,KAAKgwC,MAAMrrC,iBAAiB,SAC3CysC,EAAc,EAAiBvC,EAAYsC,EAAc,aACzDE,EAAWR,EAAIlsC,iBAAiB,UAChC2sC,EAAcF,EAAYvvC,OAAS,EAAKqG,EAAUM,KAAKmuB,MAAM0a,GAAUxa,QAAQua,GAAeC,CAElG,OAAOC,IAGXL,aAAc,WACZ,GAAIE,GAAenxC,KAAKgwC,MAAMrrC,iBAAiB,SAC3C4sC,EAAa,EAAiB1C,EAAYsC,EAAc,SACxDK,EAAUxxC,KAAKgwC,MAAMrrC,iBAAiB,MACtCqsC,EAAaO,EAAW1vC,OAAS,EAAKqG,EAAUM,KAAKmuB,MAAM6a,GAAS3a,QAAQ0a,GAAcC,CAE9F,OAAOR,IAGTS,YAAa,SAASpC,GAIpB,IAAK,GAHDqC,GAAW1xC,KAAKi3B,IAAIp1B,OACpB8vC,EAAY3xC,KAAKi3B,KAAOj3B,KAAKi3B,IAAI,GAAMj3B,KAAKi3B,IAAI,GAAGp1B,OAAS,EAEvD+vC,EAAQ,EAAUF,EAARE,EAAkBA,IACjC,IAAK,GAAIC,GAAQ,EAAUF,EAARE,EAAkBA,IACjC,GAAI7xC,KAAKi3B,IAAI2a,GAAOC,GAAO9iC,KAAOsgC,EAC9B,OAAQwB,IAAOe,EAAOE,IAAOD,EAIzC,QAAO,GAGTE,kBAAmB,SAASva,GAExB,MADAx3B,MAAK2wC,cACD3wC,KAAKi3B,IAAIO,EAAIqZ,MAAQ7wC,KAAKi3B,IAAIO,EAAIqZ,KAAKrZ,EAAIsa,MAAQ9xC,KAAKi3B,IAAIO,EAAIqZ,KAAKrZ,EAAIsa,KAAK/iC,GACvE/O,KAAKi3B,IAAIO,EAAIqZ,KAAKrZ,EAAIsa,KAAK/iC,GAE/B,MAGXijC,YAAa,SAASC,GAClB,GAAI5O,KAMJ,IALArjC,KAAK2wC,cACL3wC,KAAKkyC,UAAYlyC,KAAKyxC,YAAYzxC,KAAKqvC,MACvCrvC,KAAKmyC,QAAUnyC,KAAKyxC,YAAYQ,GAG5BjyC,KAAKkyC,UAAUrB,IAAM7wC,KAAKmyC,QAAQtB,KAAQ7wC,KAAKkyC,UAAUrB,KAAO7wC,KAAKmyC,QAAQtB,KAAO7wC,KAAKkyC,UAAUJ,IAAM9xC,KAAKmyC,QAAQL,IAAM,CAC5H,GAAIM,GAAWpyC,KAAKkyC,SACpBlyC,MAAKkyC,UAAYlyC,KAAKmyC,QACtBnyC,KAAKmyC,QAAUC,EAEnB,GAAIpyC,KAAKkyC,UAAUJ,IAAM9xC,KAAKmyC,QAAQL,IAAK,CACvC,GAAIO,GAAYryC,KAAKkyC,UAAUJ,GAC/B9xC,MAAKkyC,UAAUJ,IAAM9xC,KAAKmyC,QAAQL,IAClC9xC,KAAKmyC,QAAQL,IAAMO,EAGvB,GAAsB,MAAlBryC,KAAKkyC,WAAqC,MAAhBlyC,KAAKmyC,QAC/B,IAAK,GAAItB,GAAM7wC,KAAKkyC,UAAUrB,IAAKyB,EAAOtyC,KAAKmyC,QAAQtB,IAAYyB,GAAPzB,EAAaA,IACrE,IAAK,GAAIiB,GAAM9xC,KAAKkyC,UAAUJ,IAAKS,EAAOvyC,KAAKmyC,QAAQL,IAAYS,GAAPT,EAAaA,IACrEzO,EAAI7hC,KAAKxB,KAAKi3B,IAAI4Z,GAAKiB,GAAK/iC,GAIxC,OAAOs0B,IAGXmP,mBAAoB,SAASC,GAMzB,GALAzyC,KAAK2wC,cACL3wC,KAAKkyC,UAAYlyC,KAAKyxC,YAAYzxC,KAAKqvC,MACvCrvC,KAAKmyC,QAAUnyC,KAAKyxC,YAAYgB,GAG5BzyC,KAAKkyC,UAAUrB,IAAM7wC,KAAKmyC,QAAQtB,KAAQ7wC,KAAKkyC,UAAUrB,KAAO7wC,KAAKmyC,QAAQtB,KAAO7wC,KAAKkyC,UAAUJ,IAAM9xC,KAAKmyC,QAAQL,IAAM,CAC5H,GAAIM,GAAWpyC,KAAKkyC,SACpBlyC,MAAKkyC,UAAYlyC,KAAKmyC,QACtBnyC,KAAKmyC,QAAUC,EAEnB,GAAIpyC,KAAKkyC,UAAUJ,IAAM9xC,KAAKmyC,QAAQL,IAAK,CACvC,GAAIO,GAAYryC,KAAKkyC,UAAUJ,GAC/B9xC,MAAKkyC,UAAUJ,IAAM9xC,KAAKmyC,QAAQL,IAClC9xC,KAAKmyC,QAAQL,IAAMO,EAGvB,OACI30B,MAAS1d,KAAKi3B,IAAIj3B,KAAKkyC,UAAUrB,KAAK7wC,KAAKkyC,UAAUJ,KAAK/iC,GAC1D4O,IAAO3d,KAAKi3B,IAAIj3B,KAAKmyC,QAAQtB,KAAK7wC,KAAKmyC,QAAQL,KAAK/iC,KAI5D2jC,YAAa,SAASvD,EAAKwD,EAAIvN,GAI3B,IAAK,GADDiK,GAFArkC,EAAMhL,KAAKgwC,MAAMz9B,cACjBmF,EAAO1M,EAAIwJ,yBAEN5P,EAAI,EAAO+tC,EAAJ/tC,EAAQA,IAAK,CAGzB,GAFAyqC,EAAOrkC,EAAInG,cAAcsqC,GAErB/J,EACA,IAAK,GAAIT,KAAQS,GACTA,EAAM72B,eAAeo2B,IACrB0K,EAAKpoC,aAAa09B,EAAMS,EAAMT,GAM1C0K,GAAKrgC,YAAY3N,SAAS0T,eAAe,MAEzC2C,EAAK1I,YAAYqgC,GAErB,MAAO33B,IAIXk7B,0BAA2B,SAASd,EAAKjB,GAGrC,IAAK,GAFD3tC,GAAIlD,KAAKi3B,IAAI4Z,GACbgC,EAAU,GACLjuC,EAAI,EAAkBktC,EAAJltC,EAASA,IAC5B1B,EAAE0B,GAAGgrC,QACLiD,GAGR,OAAOA,IAGXC,oBAAqB,SAASjC,EAAKkC,GAI/B,IAAK,GAFD1D,GAAM7X,EADNsZ,EAAQ9wC,KAAKkxC,YAAYL,GAGpBE,EAAO,EAAGT,EAAOQ,EAAMjvC,OAAeyuC,EAAPS,EAAaA,IAGjD,GAFA1B,EAAOyB,EAAMC,GACbvZ,EAAMx3B,KAAKyxC,YAAYpC,GACnB7X,KAAQ,GAA6B,mBAAZub,IAA2Bvb,EAAIqZ,KAAOkC,EAC/D,MAAO1D,EAGf,OAAO,OAGX2D,iBAAkB,WACd,GAAIlC,GAAQ9wC,KAAKgwC,MAAMrrC,iBAAiB,SACxC,OAAKmsC,IAAyB,GAAhBA,EAAMjvC,QAIT,GAHPotC,EAAcjvC,KAAKgwC,QACZ,IAOfiD,gBAAiB,SAAS5D,GACtB,GAAIA,EAAKC,UAAW,CAChB,GAAI4D,GAAUtnB,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI,YAAc,EAAG,IAC9DokC,EAAQ9D,EAAKtgC,GAAGoE,QAAQrG,aAC5B,IAAIomC,EAAU,EAAG,CACb,GAAIE,GAAWpzC,KAAK0yC,YAAYS,EAAOD,EAAS,EAChDxhC,GAAY29B,EAAKtgC,GAAIqkC,GAEzB/D,EAAKtgC,GAAGskC,gBAAgB,aAIhCC,aAAc,SAAS5tC,EAAO8xB,GAC1B,GAAIt0B,GAAI,KACJD,EAAI,IAERu0B,GAAMA,GAAOx3B,KAAKw3B,GAElB,KAAK,GAAIuZ,GAAO,EAAGT,EAAOtwC,KAAKi3B,IAAIO,EAAIqZ,KAAKhvC,OAAeyuC,EAAPS,EAAaA,IAE7D,GADA9tC,EAAIjD,KAAKi3B,IAAIO,EAAIqZ,KAAKE,GAClB9tC,EAAE2sC,SACF1sC,EAAI2I,EAAIyzB,iBAAiBr8B,EAAE8L,IAAM0vB,MAAO,QAEpC,MAAOv7B,EASnB,OAJU,QAANA,GAAcwC,IACdxC,EAAI2I,EAAIyzB,iBAAiBt/B,KAAKi3B,IAAIO,EAAIqZ,KAAKrZ,EAAIsa,KAAK/iC,IAAM0vB,MAAO,QAAW,MAGzEv7B,GAGXqwC,YAAa,SAAS1C,EAAKiB,EAAKoB,EAASC,EAAOlwC,GAC5C,GAAIC,GAAIlD,KAAKszC,cAAa,GAAQzC,IAAOA,EAAKiB,IAAOA,IACjD0B,EAAYxzC,KAAK0yC,YAAYS,EAAOD,EAExC,IAAIhwC,EAAG,CACH,GAAIuwC,GAASzzC,KAAK4yC,0BAA0Bd,EAAKjB,EAC7C4C,IAAU,EACV/hC,EAAY1R,KAAKkxC,YAAYhuC,GAAGuwC,GAASD,GAEzCtwC,EAAE4O,aAAa0hC,EAAWtwC,EAAE2Q,gBAE7B,CACH,GAAI08B,GAAKvwC,KAAKgwC,MAAMz9B,cAAc1N,cAAc,KAChD0rC,GAAGvhC,YAAYwkC,GACf9hC,EAAY7F,EAAIyzB,iBAAiBr8B,EAAE8L,IAAM0vB,MAAO,OAAS8R,KAIjEmD,SAAU,SAAS1W,GAOf,GANAh9B,KAAKg9B,GAAKA,EACVh9B,KAAK2wC,cACL3wC,KAAKkyC,UAAYlyC,KAAKyxC,YAAYzxC,KAAKqvC,MACvCrvC,KAAKmyC,QAAUnyC,KAAKyxC,YAAYzxC,KAAKg9B,IAGjCh9B,KAAKkyC,UAAUrB,IAAM7wC,KAAKmyC,QAAQtB,KAAQ7wC,KAAKkyC,UAAUrB,KAAO7wC,KAAKmyC,QAAQtB,KAAO7wC,KAAKkyC,UAAUJ,IAAM9xC,KAAKmyC,QAAQL,IAAM,CAC5H,GAAIM,GAAWpyC,KAAKkyC,SACpBlyC,MAAKkyC,UAAYlyC,KAAKmyC,QACtBnyC,KAAKmyC,QAAUC,EAEnB,GAAIpyC,KAAKkyC,UAAUJ,IAAM9xC,KAAKmyC,QAAQL,IAAK,CACvC,GAAIO,GAAYryC,KAAKkyC,UAAUJ,GAC/B9xC,MAAKkyC,UAAUJ,IAAM9xC,KAAKmyC,QAAQL,IAClC9xC,KAAKmyC,QAAQL,IAAMO,EAGvB,IAAK,GAAIxB,GAAM7wC,KAAKkyC,UAAUrB,IAAKyB,EAAOtyC,KAAKmyC,QAAQtB,IAAYyB,GAAPzB,EAAaA,IACrE,IAAK,GAAIiB,GAAM9xC,KAAKkyC,UAAUJ,IAAKS,EAAOvyC,KAAKmyC,QAAQL,IAAYS,GAAPT,EAAaA,IACrE,GAAI9xC,KAAKi3B,IAAI4Z,GAAKiB,GAAKxC,WAAatvC,KAAKi3B,IAAI4Z,GAAKiB,GAAKvC,UACnD,OAAO,CAInB,QAAO,GAGXoE,iBAAkB,SAAStE,EAAMuE,GAC7B,GAAIjB,GAAK/mB,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI6kC,GAAO,IAAM,CACrDjB,IAAM,EACNtD,EAAKtgC,GAAG9H,aAAa2sC,EAAMjB,IAE3BtD,EAAKtgC,GAAGskC,gBAAgBO,GACZ,WAARA,IACAvE,EAAKC,WAAY,GAET,WAARsE,IACAvE,EAAKE,WAAY,GAErBF,EAAKG,UAAW,EAChBH,EAAKI,SAAU,EACfJ,EAAKK,UAAW,EAChBL,EAAKM,SAAU,EACfN,EAAKO,QAAS,IAItBiE,mBAAoB,WAChB,GAAIhD,GAAKxB,EAAMuB,EAAMP,EAAMU,EAAMT,EAAMwD,CAGvC,IADA9zC,KAAK2wC,cACD3wC,KAAKi3B,IAAK,CAGV,IAFA2Z,EAAO,EACPP,EAAOrwC,KAAKi3B,IAAIp1B,OACHwuC,EAAPO,EAAaA,IAAQ,CAKvB,IAJAC,EAAM7wC,KAAKi3B,IAAI2Z,GACfkD,GAAa,EACb/C,EAAO,EACPT,EAAOO,EAAIhvC,OACGyuC,EAAPS,EAAaA,IAEhB,GADA1B,EAAOwB,EAAIE,KACLllC,EAAIhF,aAAawoC,EAAKtgC,GAAI,YAAc6c,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI,WAAY,IAAM,GAAKsgC,EAAKK,YAAa,GAAO,CAC7HoE,GAAa,CACb;MAGR,GAAIA,EAEA,IADA/C,EAAO,EACOT,EAAPS,EAAaA,IAChB/wC,KAAK2zC,iBAAiB9C,EAAIE,GAAO,WAM7C,GAAIC,GAAYhxC,KAAKixC,cAGrB,KAFAL,EAAO,EACPP,EAAOW,EAAUnvC,OACJwuC,EAAPO,EAAaA,IACfC,EAAMG,EAAUJ,GACa,GAAzBC,EAAI5hC,WAAWpN,QAAgB,QAAQ4E,KAAKoqC,EAAIvQ,aAAeuQ,EAAItuC,YACnE0sC,EAAc4B,KAM9BkD,iBAAkB,WACd,GAAIC,GAAQ,EACRC,EAAQ,EACRC,EAAW,IAGf,IADAl0C,KAAK2wC,cACD3wC,KAAKi3B,IAAK,CAGV+c,EAAQh0C,KAAKi3B,IAAIp1B,MACjB,KAAK,GAAI+uC,GAAO,EAAUoD,EAAPpD,EAAcA,IACzB5wC,KAAKi3B,IAAI2Z,GAAM/uC,OAASoyC,IAASA,EAAQj0C,KAAKi3B,IAAI2Z,GAAM/uC,OAGhE,KAAK,GAAIgvC,GAAM,EAASmD,EAANnD,EAAaA,IAC3B,IAAK,GAAIiB,GAAM,EAASmC,EAANnC,EAAaA,IACvB9xC,KAAKi3B,IAAI4Z,KAAS7wC,KAAKi3B,IAAI4Z,GAAKiB,IAC5BA,EAAM,IACN9xC,KAAKi3B,IAAI4Z,GAAKiB,GAAO,GAAI1C,GAAQpvC,KAAK0yC,YAAY,KAAM,IACxDwB,EAAWl0C,KAAKi3B,IAAI4Z,GAAKiB,EAAI,GACzBoC,GAAYA,EAASnlC,IAAMmlC,EAASnlC,GAAGyB,QACvCkB,EAAY1R,KAAKi3B,IAAI4Z,GAAKiB,EAAI,GAAG/iC,GAAI/O,KAAKi3B,IAAI4Z,GAAKiB,GAAK/iC,OASpFolC,QAAS,WACL,MAAKn0C,MAAKgzC,oBAKC,GAJPhzC,KAAK6zC,qBACL7zC,KAAK+zC,oBACE,IAMfK,QAAS,WACL,GAAIp0C,KAAKm0C,YACLn0C,KAAK2wC,cACL3wC,KAAKw3B,IAAMx3B,KAAKyxC,YAAYzxC,KAAKqvC,MAE7BrvC,KAAKw3B,KAAK,CACV,GAAI6c,GAAWr0C,KAAKi3B,IAAIj3B,KAAKw3B,IAAIqZ,KAAK7wC,KAAKw3B,IAAIsa,KAC3CoB,EAAWrnC,EAAIhF,aAAawtC,EAAStlC,GAAI,WAAc6c,SAAS/f,EAAIhF,aAAawtC,EAAStlC,GAAI,WAAY,IAAM,EAChHokC,EAAQkB,EAAStlC,GAAGoE,QAAQrG,aAEhC,IAAIunC,EAAS9E,UAAW,CACpB,GAAI+E,GAAU1oB,SAAS/f,EAAIhF,aAAawtC,EAAStlC,GAAI,WAAY,GACjE,IAAIulC,EAAU,EACV,IAAK,GAAI3B,GAAK,EAAGL,EAAOgC,EAAU,EAAShC,GAANK,EAAYA,IAC7C3yC,KAAKuzC,YAAYvzC,KAAKw3B,IAAIqZ,IAAM8B,EAAI3yC,KAAKw3B,IAAIsa,IAAKoB,EAASC,EAAOkB,EAG1EA,GAAStlC,GAAGskC,gBAAgB,WAEhCrzC,KAAKizC,gBAAgBoB,KAMjCjc,MAAO,SAAS4E,GACZ,GAAIh9B,KAAKm0C,UACL,GAAIn0C,KAAK0zC,SAAS1W,GAAK,CAInB,IAAK,GAHDsX,GAAUt0C,KAAKmyC,QAAQtB,IAAM7wC,KAAKkyC,UAAUrB,IAAM,EAClDqC,EAAUlzC,KAAKmyC,QAAQL,IAAM9xC,KAAKkyC,UAAUJ,IAAM,EAE7CjB,EAAM7wC,KAAKkyC,UAAUrB,IAAKyB,EAAOtyC,KAAKmyC,QAAQtB,IAAYyB,GAAPzB,EAAaA,IACrE,IAAK,GAAIiB,GAAM9xC,KAAKkyC,UAAUJ,IAAKS,EAAOvyC,KAAKmyC,QAAQL,IAAYS,GAAPT,EAAaA,IAEjEjB,GAAO7wC,KAAKkyC,UAAUrB,KAAOiB,GAAO9xC,KAAKkyC,UAAUJ,KAC/CwC,EAAU,GACVt0C,KAAKi3B,IAAI4Z,GAAKiB,GAAK/iC,GAAG9H,aAAa,UAAWqtC,GAE9CpB,EAAU,GACVlzC,KAAKi3B,IAAI4Z,GAAKiB,GAAK/iC,GAAG9H,aAAa,UAAWisC,KAI5C,kBAAkBzsC,KAAKzG,KAAKi3B,IAAI4Z,GAAKiB,GAAK/iC,GAAGqF,UAAUtH,iBACzD9M,KAAKi3B,IAAIj3B,KAAKkyC,UAAUrB,KAAK7wC,KAAKkyC,UAAUJ,KAAK/iC,GAAGqF,WAAa,IAAMpU,KAAKi3B,IAAI4Z,GAAKiB,GAAK/iC,GAAGqF,WAEjG66B,EAAcjvC,KAAKi3B,IAAI4Z,GAAKiB,GAAK/iC,IAI7C/O,MAAKm0C,cAEDzyC,QAAO2J,SACPA,QAAQC,IAAI,oDAQ5BipC,sBAAuB,SAASlF,GAC5B,GAAImF,GAAUx0C,KAAKyxC,YAAYpC,EAAKtgC,IAChC0lC,EAAYD,EAAQ3D,IAAM,EAC1B6D,GAAU7D,IAAO4D,EAAW3C,IAAO0C,EAAQ1C,IAE/C,IAAI2C,EAAYz0C,KAAKi3B,IAAIp1B,OAAQ,CAE7B,GAAIgvC,GAAM7wC,KAAKszC,cAAa,EAAOoB,EACnC,IAAY,OAAR7D,EAAc,CACd,GAAI4C,GAASzzC,KAAK4yC,0BAA0B8B,EAAO5C,IAAK4C,EAAO7D,IAC/D,IAAI4C,GAAU,EACV/hC,EAAY1R,KAAKkxC,YAAYL,GAAK4C,GAASpE,EAAKtgC,QAC7C,CACH,GAAI4lC,GAAW30C,KAAK8yC,oBAAoBjC,EAAK4D,EAC5B,QAAbE,EACAjjC,EAAYijC,EAAUtF,EAAKtgC,IAE3B8hC,EAAI/+B,aAAau9B,EAAKtgC,GAAI8hC,EAAIh9B,YAGlC+X,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI,WAAY,IAAM,EACrDsgC,EAAKtgC,GAAG9H,aAAa,UAAW2kB,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI,WAAY,IAAM,GAErFsgC,EAAKtgC,GAAGskC,gBAAgB,cASxCuB,cAAe,SAASvF,GAChBA,EAAKO,OACFP,EAAKE,UACLvvC,KAAKu0C,sBAAsBlF,GAE3BJ,EAAcI,EAAKtgC,IAGlB6c,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI,WAAY,IAAM,EACrDsgC,EAAKtgC,GAAG9H,aAAa,UAAW2kB,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI,WAAY,IAAM,GAErFsgC,EAAKtgC,GAAGskC,gBAAgB,YAKpCwB,qBAAsB,WAClB,GAAI/D,KAGJ,IAFA9wC,KAAK2wC,cACL3wC,KAAKw3B,IAAMx3B,KAAKyxC,YAAYzxC,KAAKqvC,MAC7BrvC,KAAKw3B,OAAQ,EAEb,IAAK,GADDsd,GAAS90C,KAAKi3B,IAAIj3B,KAAKw3B,IAAIqZ,KACtBE,EAAO,EAAGT,EAAOwE,EAAOjzC,OAAeyuC,EAAPS,EAAaA,IAC9C+D,EAAO/D,GAAMnB,QACbkB,EAAMtvC,KAAKszC,EAAO/D,GAAMhiC,GAIpC,OAAO+hC,IAGXiE,wBAAyB,WACrB,GAAIjE,KAGJ,IAFA9wC,KAAK2wC,cACL3wC,KAAKw3B,IAAMx3B,KAAKyxC,YAAYzxC,KAAKqvC,MAC7BrvC,KAAKw3B,OAAQ,EACb,IAAK,GAAIoZ,GAAO,EAAGP,EAAOrwC,KAAKi3B,IAAIp1B,OAAewuC,EAAPO,EAAaA,IAChD5wC,KAAKi3B,IAAI2Z,GAAM5wC,KAAKw3B,IAAIsa,MAAQ9xC,KAAKi3B,IAAI2Z,GAAM5wC,KAAKw3B,IAAIsa,KAAKlC,QAC7DkB,EAAMtvC,KAAKxB,KAAKi3B,IAAI2Z,GAAM5wC,KAAKw3B,IAAIsa,KAAK/iC,GAIpD,OAAO+hC,IAIXkE,UAAW,WACP,GAAIC,GAASppC,EAAIyzB,iBAAiBt/B,KAAKqvC,MAAQ5Q,MAAO,MACtD,IAAIwW,EAAQ,CAGR,GAFAj1C,KAAK2wC,cACL3wC,KAAKw3B,IAAMx3B,KAAKyxC,YAAYzxC,KAAKqvC,MAC7BrvC,KAAKw3B,OAAQ,EAEb,IAAK,GADDsd,GAAS90C,KAAKi3B,IAAIj3B,KAAKw3B,IAAIqZ,KACtBE,EAAO,EAAGT,EAAOwE,EAAOjzC,OAAeyuC,EAAPS,EAAaA,IAC7C+D,EAAO/D,GAAMjB,WACd9vC,KAAKywC,kBAAkBqE,EAAO/D,IAC9B/wC,KAAK40C,cAAcE,EAAO/D,IAItC9B,GAAcgG,KAItBC,cAAe,SAAS7F,GAChBA,EAAKC,UACD1jB,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI,WAAY,IAAM,EACrDsgC,EAAKtgC,GAAG9H,aAAa,UAAW2kB,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI,WAAY,IAAM,GAErFsgC,EAAKtgC,GAAGskC,gBAAgB,WAErBhE,EAAKO,QACZX,EAAcI,EAAKtgC,KAI3BomC,aAAc,WAGV,GAFAn1C,KAAK2wC,cACL3wC,KAAKw3B,IAAMx3B,KAAKyxC,YAAYzxC,KAAKqvC,MAC7BrvC,KAAKw3B,OAAQ,EACb,IAAK,GAAIoZ,GAAO,EAAGP,EAAOrwC,KAAKi3B,IAAIp1B,OAAewuC,EAAPO,EAAaA,IAC/C5wC,KAAKi3B,IAAI2Z,GAAM5wC,KAAKw3B,IAAIsa,KAAKhC,WAC9B9vC,KAAKywC,kBAAkBzwC,KAAKi3B,IAAI2Z,GAAM5wC,KAAKw3B,IAAIsa,MAC/C9xC,KAAKk1C,cAAcl1C,KAAKi3B,IAAI2Z,GAAM5wC,KAAKw3B,IAAIsa,QAO3DtqC,OAAQ,SAAS4tC,GACb,GAAIp1C,KAAKm0C,UAAW,CAChB,OAAQiB,GACJ,IAAK,MACDp1C,KAAKg1C,WACT,MACA,KAAK,SACDh1C,KAAKm1C,eAGbn1C,KAAKm0C,YAIbkB,OAAQ,SAASC,GACb,GAAItqC,GAAMhL,KAAKgwC,MAAMz9B,aAQrB,IANAvS,KAAK2wC,cACL3wC,KAAKw3B,IAAMx3B,KAAKyxC,YAAYzxC,KAAKqvC,MACpB,SAATiG,GAAoBzpC,EAAIhF,aAAa7G,KAAKqvC,KAAM,aAChDrvC,KAAKw3B,IAAIqZ,IAAM7wC,KAAKw3B,IAAIqZ,IAAMjlB,SAAS/f,EAAIhF,aAAa7G,KAAKqvC,KAAM,WAAY,IAAM,GAGrFrvC,KAAKw3B,OAAQ,EAAO,CAIpB,IAAK,GAHDsd,GAAS90C,KAAKi3B,IAAIj3B,KAAKw3B,IAAIqZ,KAC3B0E,EAASvqC,EAAInG,cAAc,MAEtB+rC,EAAO,EAAGP,EAAOyE,EAAOjzC,OAAewuC,EAAPO,EAAaA,IAC7CkE,EAAOlE,GAAMd,WACd9vC,KAAKywC,kBAAkBqE,EAAOlE,IAC9B5wC,KAAKw1C,WAAWV,EAAOlE,GAAO2E,EAAQD,GAI9C,QAAQA,GACJ,IAAK,QACD5jC,EAAY1R,KAAKszC,cAAa,GAAOiC,EACzC,MACA,KAAK,QACD,GAAIE,GAAK5pC,EAAIyzB,iBAAiBt/B,KAAKi3B,IAAIj3B,KAAKw3B,IAAIqZ,KAAK7wC,KAAKw3B,IAAIsa,KAAK/iC,IAAM0vB,MAAO,MAC5EgX,IACAA,EAAG/wC,WAAWoN,aAAayjC,EAAQE,MAOvDD,WAAY,SAASnG,EAAMwB,EAAKyE,GAC5B,GAAII,GAAerG,EAAc,WAAK6D,QAAYrnC,EAAIhF,aAAawoC,EAAKtgC,GAAI,YAAc,IACtFsgC,GAAKO,OACQ,SAAT0F,GAAoBjG,EAAKE,UACzBF,EAAKtgC,GAAG9H,aAAa,UAAW2kB,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAG,WAAY,IAAM,GAEpF8hC,EAAI7hC,YAAYhP,KAAK0yC,YAAY,KAAM,EAAGgD,IAGjC,SAATJ,GAAoBjG,EAAKE,WAAaF,EAAKM,QAC3CkB,EAAI7hC,YAAYhP,KAAK0yC,YAAY,KAAM,EAAGgD,IACnCzyC,EAAEssC,WACTF,EAAKtgC,GAAG41B,KAAK,UAAW/Y,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI,WAAY,IAAM,IAKzF/J,IAAK,SAASswC,GACNt1C,KAAKm0C,aACQ,SAATmB,GAA6B,SAATA,IACpBt1C,KAAKq1C,OAAOC,IAEH,UAATA,GAA8B,SAATA,IACrBt1C,KAAK21C,UAAUL,KAK3BM,WAAY,SAAUvG,EAAMuB,EAAM0E,GAC9B,GAAIO,GACA1C,EAAQ9D,EAAKtgC,GAAGoE,QAAQrG,aAI5B,QAAQwoC,GACJ,IAAK,SACDO,GAAUxG,EAAKC,WAAaD,EAAKG,QACrC,MACA,KAAK,QACDqG,GAAUxG,EAAKC,WAAaD,EAAKI,SAAYJ,EAAKC,WAAarsC,EAAE8L,IAAM/O,KAAKqvC,KAIpF,GAAIwG,EAAM,CAEN,OAAQP,GACJ,IAAK,SACDjG,EAAKtgC,GAAGrK,WAAWoN,aAAa9R,KAAK0yC,YAAYS,EAAO,GAAI9D,EAAKtgC,GACrE,MACA,KAAK,QACD2C,EAAY29B,EAAKtgC,GAAI/O,KAAK0yC,YAAYS,EAAO,IAKjD9D,EAAKE,WACLvvC,KAAK81C,yBAAyBzG,EAAMuB,EAAK,EAAG0E,OAKhDjG,GAAKtgC,GAAG9H,aAAa,UAAY2kB,SAAS/f,EAAIhF,aAAawoC,EAAKtgC,GAAI,WAAY,IAAM,IAI9F4mC,UAAW,SAASL,GAChB,GAAIzE,GAAKkF,CAQT,IANA/1C,KAAK2wC,cACL3wC,KAAKw3B,IAAMx3B,KAAKyxC,YAAYzxC,KAAKqvC,MACpB,SAATiG,GAAoBzpC,EAAIhF,aAAa7G,KAAKqvC,KAAM,aAClDrvC,KAAKw3B,IAAIsa,IAAM9xC,KAAKw3B,IAAIsa,IAAMlmB,SAAS/f,EAAIhF,aAAa7G,KAAKqvC,KAAM,WAAY,IAAM,GAGnFrvC,KAAKw3B,OAAQ,EACb,IAAK,GAAIoZ,GAAO,EAAGP,EAAOrwC,KAAKi3B,IAAIp1B,OAAewuC,EAAPO,EAAaA,IACpDC,EAAM7wC,KAAKi3B,IAAI2Z,GACXC,EAAI7wC,KAAKw3B,IAAIsa,OACbiE,EAAUlF,EAAI7wC,KAAKw3B,IAAIsa,KAClBiE,EAAQjG,WACT9vC,KAAKywC,kBAAkBsF,GACvB/1C,KAAK41C,WAAWG,EAASnF,EAAO0E,MAOpDQ,yBAA0B,SAAUzG,EAAMuB,EAAM0E,GAQ5C,IAAK,GAJDvE,GAAMiF,EAENC,EALAC,EAAYtqB,SAAS/f,EAAIhF,aAAa7G,KAAKqvC,KAAM,WAAY,IAAM,EACnE8G,EAAOtqC,EAAIyzB,iBAAiB+P,EAAKtgC,IAAM0vB,MAAO,OAC9C0U,EAAQ9D,EAAKtgC,GAAGoE,QAAQrG,cAExB9B,EAAMhL,KAAKgwC,MAAMz9B,cAGZ3N,EAAI,EAAOsxC,EAAJtxC,EAAeA,IAG3B,GAFAmsC,EAAO/wC,KAAK4yC,0BAA0B5yC,KAAKw3B,IAAIsa,IAAMlB,EAAOhsC,GAC5DuxC,EAAOvkC,EAASukC,EAAM,MAElB,GAAIpF,EAAO,EACP,OAAQuE,GACJ,IAAK,SACDU,EAAeh2C,KAAKkxC,YAAYiF,GAC5BpF,EAAO,GAAK/wC,KAAKi3B,IAAI2Z,EAAOhsC,GAAG5E,KAAKw3B,IAAIsa,KAAK/iC,IAAMinC,EAAajF,IAASA,GAAQiF,EAAan0C,OAAS,EACtG6P,EAAYskC,EAAajF,GAAO/wC,KAAK0yC,YAAYS,EAAO,IAEzD6C,EAAajF,GAAMrsC,WAAWoN,aAAa9R,KAAK0yC,YAAYS,EAAO,GAAI6C,EAAajF,GAG5F,MACA,KAAK,QACDr/B,EAAY1R,KAAKkxC,YAAYiF,GAAMpF,GAAO/wC,KAAK0yC,YAAYS,EAAO,QAI1EgD,GAAKrkC,aAAa9R,KAAK0yC,YAAYS,EAAO,GAAIgD,EAAKtiC,gBAGvDoiC,GAAOjrC,EAAInG,cAAc,MACzBoxC,EAAKjnC,YAAYhP,KAAK0yC,YAAYS,EAAO,IACzCnzC,KAAKgwC,MAAMhhC,YAAYinC,KAMvCpqC,EAAImkC,OACAoG,gBAAiB,SAASC,EAAOC,GAC7B,GAAIC,GAAK,GAAIxG,GAAoBsG,EACjC,OAAOE,GAAGvE,YAAYsE,IAG1BE,SAAU,SAASnH,EAAMiG,GACrB,GAAIryC,GAAI,GAAI8sC,GAAoBV,EAChCpsC,GAAE+B,IAAIswC,IAGVmB,YAAa,SAASpH,EAAM+F,GACxB,GAAInyC,GAAI,GAAI8sC,GAAoBV,EAChCpsC,GAAEuE,OAAO4tC,IAGbsB,kBAAmB,SAASL,EAAOC,GAC/B,GAAIC,GAAK,GAAIxG,GAAoBsG,EACjCE,GAAGne,MAAMke,IAGbK,YAAa,SAAStH,GAClB,GAAIpsC,GAAI,GAAI8sC,GAAoBV,EAChCpsC,GAAEmxC,WAGN5B,mBAAoB,SAASnD,EAAMiH,GAC/B,GAAIrzC,GAAI,GAAI8sC,GAAoBV,EAChC,OAAOpsC,GAAEuvC,mBAAmB8D,IAGhCxzC,QAAS,SAASusC,GACd,GAAIpsC,GAAI,GAAI8sC,GAAoBV,EAEhC,OADApsC,GAAE0tC,cACK1tC,EAAEwuC,YAAYpC,IAGzBuH,SAAU,SAAS5G,EAAOxY,GACtB,GAAIv0B,GAAI,GAAI8sC,GAAoB,KAAMC,EACtC,OAAO/sC,GAAE8uC,kBAAkBva,IAG/Bqf,cAAe,SAASxH,GACpB,GAAIpsC,GAAI,GAAI8sC,GAAoBV,EAChC,OAAOpsC,GAAE4xC,wBAGbiC,iBAAkB,SAASzH,GACvB,GAAIpsC,GAAI,GAAI8sC,GAAoBV,EAChC,OAAOpsC,GAAE8xC,2BAGbrB,SAAU,SAAS2C,EAAOC,GACtB,GAAIrzC,GAAI,GAAI8sC,GAAoBsG,EAChC,OAAOpzC,GAAEywC,SAAS4C,MAM3BpuC,WAGHA,UAAUG,IAAIo2B,MAAQ,SAASsY,EAAUtY,GACrC,GACIqQ,GADAC,IAGAgI,GAAS7nC,WACT6nC,GAAYA,GAGhB,KAAK,GAAIj2C,GAAI,EAAGyE,EAAMwxC,EAASl1C,OAAY0D,EAAJzE,EAASA,IAE5C,GADAguC,EAAIiI,EAASj2C,GAAG6D,iBAAiB85B,GAE7B,IAAI,GAAI75B,GAAIkqC,EAAEjtC,OAAQ+C,IAAKmqC,EAAIC,QAAQF,EAAElqC,KAGjD,MAAOmqC,IAEV7mC,UAAUG,IAAIozB,wBAA0B,WACvC,GAAIrmB,GAAkB/T,SAAS+T,eAC/B,OAAIA,GAAgBqmB,wBACX,SAAS5gB,EAAW4S,GACzB,MAAO5S,GAAU4gB,wBAAwBhO,IAGpC,SAAU5S,EAAW4S,GAE1B,GAAIupB,GAAWC,CAYf,IATED,EADyB,IAAvBn8B,EAAU3L,SACA2L,EAEAA,EAAUtI,cAGtB0kC,EADuB,IAArBxpB,EAAQve,SACGue,EAEAA,EAAQlb,cAEnBsI,IAAc4S,EAAU,MAAO,EACnC,IAAI5S,IAAc4S,EAAQlb,cAAgB,MAAO,GACjD,IAAIsI,EAAUtI,gBAAkBkb,EAAU,MAAO,GACjD,IAAIupB,IAAcC,EAAa,MAAO,EAGtC,IAA2B,IAAvBp8B,EAAU3L,UAA0C2L,EAAU5L,YAAgF,KAAlE/G,UAAUM,KAAKmuB,MAAM9b,EAAU5L,YAAYnM,QAAS2qB,GAClI,MAAO,GAET,IAAyB,IAArBA,EAAQve,UAA0Cue,EAAQxe,YAAgF,KAAlE/G,UAAUM,KAAKmuB,MAAMlJ,EAAQxe,YAAYnM,QAAS+X,GAC5H,MAAO,GAKT,KAHA,GAAIq8B,GAAQr8B,EACRs8B,KACA5lB,EAAW,KACR2lB,GAAQ,CACb,GAAIA,GAASzpB,EAAU,MAAO,GAC9B0pB,GAAQ31C,KAAM01C,GACdA,EAAQA,EAAMxyC,WAIhB,IAFAwyC,EAAQzpB,EACR8D,EAAW,KACJ2lB,GAAQ,CACb,GAAIA,GAASr8B,EAAY,MAAO,GAChC,IAAIu8B,GAAiBlvC,UAAUM,KAAKmuB,MAAMwgB,GAASr0C,QAASo0C,EAC5D,IAAuB,KAAnBE,EAAuB,CAC1B,GAAIC,GAA2BF,EAASC,GACpCE,EAAapvC,UAAUM,KAAKmuB,MAAM0gB,EAAyBpoC,YAAYnM,QAASq0C,EAAQC,EAAiB,IACzGG,EAAcrvC,UAAUM,KAAKmuB,MAAM0gB,EAAyBpoC,YAAYnM,QAASyuB,EACrF,OAAI+lB,GAAaC,EACJ,EAGJ,EAGVhmB,EAAW2lB,EACXA,EAAQA,EAAMxyC,WAEhB,MAAO,OAUbwD,UAAUG,IAAI07B,OAAS,SAASv/B,GAC9B,GAAIgzC,KACJ,IAAIhzC,EAAKE,WAAY,CACnB,KAAOF,EAAK8b,WACVk3B,EAASxI,QAAQxqC,EAAK8b,WACtBpY,UAAUG,IAAIq0B,OAAOl4B,EAAK8b,WAAWqc,MAAMn4B,EAE7CA,GAAKE,WAAW4Z,YAAY9Z,GAE9B,MAAOgzC,IASTtvC,UAAUG,IAAIovC,cAAgB,SAAS3Z,GACrC,GAAInE,EAQJ,OAPImE,GAAM4Z,gBACJxvC,UAAUM,KAAKmuB,MAAMmH,EAAM4Z,cAActZ,OAAOn5B,SAAS,aAC3D00B,EAAOmE,EAAM4Z,cAAcC,QAAQ,aAC1BzvC,UAAUM,KAAKmuB,MAAMmH,EAAM4Z,cAActZ,OAAOn5B,SAAS,gBAClE00B,EAAOzxB,UAAUM,KAAK0wB,OAAO4E,EAAM4Z,cAAcC,QAAQ,eAAene,YAAW,GAAM,KAGtFG,GAITzxB,UAAUG,IAAIuvC,qBAAuB,SAAUC,EAAU70C,GACvD,GAAI80C,GAAcD,EAASpvC,UAAUuZ,cACjChX,EAAM6sC,EAASpqB,QAAQlb,cACvBwlC,EAAa/sC,EAAInG,cAAc,MAEnCmG,GAAIC,KAAK+D,YAAY+oC,GAErBA,EAAW7oB,MAAM0Y,MAAQ,MACzBmQ,EAAW7oB,MAAM2Y,OAAS,MAC1BkQ,EAAW7oB,MAAM+Q,SAAW,SAE5B8X,EAAW9wC,aAAa,kBAAmB,QAC3C8wC,EAAWjuB,QAEXmjB,WAAW,WACT4K,EAASpvC,UAAUuvC,YAAYF,GAC/B90C,EAAE+0C,EAAW3jC,WACb2jC,EAAWrzC,WAAW4Z,YAAYy5B,IACjC,IACF7vC,UAAUG,IAAI4vC,sBAAwB,SAASzzC,GAEhD,IAAK,GADDkd,GAAYxZ,UAAUG,IAAI83B,aAAa37B,GAClCuM,EAAI2Q,EAAU7f,OAAQkP,KAC7B2Q,EAAU3Q,GAAGgqB,UAAYrZ,EAAU3Q,GAAGgqB,UAAU96B,QAAQiI,UAAUU,wBAAyB,KAQ/FV,UAAUI,OAAO4vC,gBAAkB,WAEjC,GAAIC,GAAe,SAAUC,GAC3B,GAAIC,GAAanwC,UAAUM,KAAK0wB,OAAOkf,GAAUt4C,OAC7Cw4C,EAAaD,EAAWp4C,QAAQ,sCAAuC,OAE3E,OAAO,IAAI2Y,QAAO,SAAW0/B,EAAa,SAAU,MAGlDC,EAAiC,SAAUrX,EAAOsX,GACpD,GACIrJ,GAAKjgB,EADLupB,EAAWvwC,UAAUM,KAAK/G,OAAOy/B,GAAOhhB,OAAM,EAGlD,KAAKivB,IAAOsJ,GAAS9U,KAEnB,GAAI8U,EAAS9U,KAAKp1B,eAAe4gC,IAC3BsJ,EAAS9U,KAAKwL,GAAK7J,YACrB,IAAKpW,IAASupB,GAAS9U,KAAKwL,GAAK7J,YAC3BmT,EAAS9U,KAAKwL,GAAK7J,YAAY/2B,eAAe2gB,IAC5CspB,EAAatpB,KACfupB,EAAS9U,KAAKwL,GAAK7J,YAAYpW,GAASipB,EAAaK,EAAatpB,IAQ9E,OAAOupB,IAGLC,EAAc,SAASC,EAAShf,GAClC,GAAeif,EAEf,KAAKD,EACH,MAAO,KAGT,KAAK,GAAI/zC,GAAI,EAAG2yB,EAAMohB,EAAQ92C,OAAY01B,EAAJ3yB,EAASA,IAI7C,GAHK+zC,EAAQ/zC,GAAGi0C,YACdD,EAAaD,EAAQ/zC,GAAGpC,KAEtBm2C,EAAQ/zC,GAAGi0C,WAAaF,EAAQ/zC,GAAGi0C,UAAUpyC,KAAKkzB,GACpD,MAAOgf,GAAQ/zC,GAAGpC,GAItB,OAAOo2C,GAGT,OAAO,UAASjf,EAAM9qB,GACpB,GAKIiqC,GALAN,GACEO,MAAS7wC,UAAUG,IAAIm0B,SAAS,SAASC,KAAK5tB,EAAQqgC,eACtD8J,SAAY9wC,UAAUG,IAAIm0B,SAAS,aAAaC,KAAK5tB,EAAQqgC,gBAE/DhO,EAAQqX,EAA+BG,EAAY7pC,EAAQqyB,MAAOvH,OAAa6e,EAYnF,OATAM,GAAU5wC,UAAUG,IAAIs5B,MAAMhI,GAC5BuH,MAASA,EACToB,SAAW,EACX1Q,QAAW/iB,EAAQqgC,cAAc38B,cACjCypB,gBAAmBntB,EAAQmtB,gBAC3BkG,gBAAmB,EACnBK,aAAgB,QAatBr6B,UAAUI,OAAO2wC,qBAAuB,WACtC,GAAIC,GAAmB,WACrB,GAAIzrB,GAAUztB,IACditC,YAAW,WACT,GAAI74B,GAAYqZ,EAAQrZ,UAAUtH,eACjB,iBAAbsH,GACa,8BAAbA,KACFqZ,EAAQrZ,UAAY,KAErB,GAGL,OAAO,UAASyjC,GACd3vC,UAAUG,IAAI6vB,QAAQ2f,EAASpqB,SAAU,MAAO,WAAYyrB,OAYhE,SAAUhxC,GACR,GAAIixC,GAAgB,KACpBjxC,GAAUI,OAAOm6B,oBAAsB,SAAShV,GAC9C,GAAIrZ,GAAYqZ,EAAQrZ,SACxB,IAAyC,KAArCA,EAAUtR,QAAQq2C,GACpB,MAAO/kC,EAGT,IACI8lB,GACAkf,EACAv3C,EACA+C,EAJAy0C,EAAoB5rB,EAAQ9oB,iBAAiB,0BAKjD,KAAKC,EAAE,EAAG/C,EAAOw3C,EAAkBx3C,OAAUA,EAAF+C,EAAUA,IACnDs1B,EAAcmf,EAAkBz0C,GAAG0jC,MAAQ+Q,EAAkBz0C,GAAG+iC,IAChEyR,EAAclxC,EAAUM,KAAK0wB,OAAOgB,GAAKj6B,QAAQ,KAAKq5B,GAAG6f,GACzD/kC,EAAclM,EAAUM,KAAK0wB,OAAO9kB,GAAWnU,QAAQm5C,GAAa9f,GAAGY,EAEzE,OAAO9lB,KAERlM,WASH,SAAUA,GACR,GAAI4lC,GAAa,yBAEjB5lC,GAAUI,OAAOgxC,OAAS,SAAS7rB,GACjCvlB,EAAUG,IAAIgzB,SAAS5N,EAASqgB,GAChC5lC,EAAUG,IAAIkzB,YAAY9N,EAASqgB,EAGnC,KACE,GAAI9iC,GAAMyiB,EAAQlb,aAClBvH,GAAIioB,YAAY,UAAU,EAAO,MACjCjoB,EAAIioB,YAAY,UAAU,EAAO,MACjC,MAAMnyB,OAEToH,WACFA,UAAUI,OAAOixC,oBAAsB,SAASC,EAAU5L,GAYvD,QAASthC,KAEL,MADAktC,GAASh5C,iBAAiB,YAAai5C,GAChC3wB,EAUX,QAAS4wB,GAA0B34C,GACjC+nB,EAAOpL,MAAQ3c,EACf+nB,EAAOnL,IAAM5c,EACb+nB,EAAOgoB,OAAS/vC,GAChB+nB,EAAOknB,MAAQ3nC,EAAIi3B,iBAAiBxW,EAAOpL,OAAS+gB,MAAO,UAEvD3V,EAAOknB,QACT2J,IACAtxC,EAAIgzB,SAASt6B,EAAQ64C,GACrBJ,EAASh5C,iBAAiB,YAAaq5C,GACvCL,EAASh5C,iBAAiB,UAAWs5C,GACrClM,EAAO5V,KAAK,oBAAoBA,KAAK,8BAKzC,QAAS2hB,KACL,GAAIH,EAAU,CACV,GAAIO,GAAgBP,EAAS70C,iBAAiB,IAAMi1C,EACpD,IAAIG,EAAcl4C,OAAS,EACzB,IAAK,GAAI+C,GAAI,EAAGA,EAAIm1C,EAAcl4C,OAAQ+C,IACtCyD,EAAIkzB,YAAYwe,EAAcn1C,GAAIg1C,IAMhD,QAASI,GAAelJ,GACtB,IAAK,GAAIlsC,GAAI,EAAGA,EAAIksC,EAAMjvC,OAAQ+C,IAChCyD,EAAIgzB,SAASyV,EAAMlsC,GAAIg1C,GAI3B,QAASC,GAAiB/b,GACxB,GAEImc,GAFAC,EAAW,KACX7K,EAAOhnC,EAAIi3B,iBAAiBxB,EAAM/8B,QAAU09B,MAAO,UAGnD4Q,IAAQvmB,EAAOknB,OAASlnB,EAAOpL,QACjCw8B,EAAY7xC,EAAIi3B,iBAAiB+P,GAAQ5Q,MAAO,UAC5Cyb,GAAYA,IAAapxB,EAAOknB,QAClC2J,IACAM,EAASnxB,EAAOnL,IAChBmL,EAAOnL,IAAM0xB,EACbvmB,EAAOgoB,MAAQzoC,EAAI2nC,MAAMoG,gBAAgBttB,EAAOpL,MAAO2xB,GACnDvmB,EAAOgoB,MAAMjvC,OAAS,GACxB+rC,EAAOiK,SAASpvC,UAAU0xC,WAE5BH,EAAclxB,EAAOgoB,OACjBhoB,EAAOnL,MAAQs8B,GACjBrM,EAAO5V,KAAK,qBAAqBA,KAAK,gCAM9C,QAAS8hB,KACPN,EAAS73C,oBAAoB,YAAak4C,GAC1CL,EAAS73C,oBAAoB,UAAWm4C,GACxClM,EAAO5V,KAAK,eAAeA,KAAK,wBAChCiV,WAAW,WACTmN,KACA,GAcJ,QAASA,KACPZ,EAASjnC,cAAc/R,iBAAiB,QAAS65C,GAGnD,QAASC,GAAa58B,EAAOC,GACzBmL,EAAOpL,MAAQA,EACfoL,EAAOnL,IAAMA,EACbmL,EAAOknB,MAAQ3nC,EAAIi3B,iBAAiBxW,EAAOpL,OAAS+gB,MAAO,UAC3Dsb,cAAgB1xC,EAAI2nC,MAAMoG,gBAAgBttB,EAAOpL,MAAOoL,EAAOnL,KAC/Dq8B,EAAcD,eACdK,IACAxM,EAAO5V,KAAK,eAAeA,KAAK,wBA7GpC,GAAI3vB,GAAMH,UAAUG,IAChBygB,GACIknB,MAAO,KACPtyB,MAAO,KACPC,IAAK,KACLmzB,MAAO,KACPhoB,OAAQwxB,GAEZV,EAAkB,4BAOlBH,EAAkB,SAAS3b,GAC7B,GAAI/8B,GAASmH,UAAUG,IAAIi3B,iBAAiBxB,EAAM/8B,QAAU09B,MAAO,UAC/D19B,IACA24C,EAAyB34C,IAqE3Bs5C,EAAmB,SAASvc,GAC9B0b,EAASjnC,cAAc5Q,oBAAoB,QAAS04C,GAChDhyC,EAAIi3B,iBAAiBxB,EAAM/8B,QAAU09B,MAAO,WAAc3V,EAAOknB,QACjE2J,IACA7wB,EAAOknB,MAAQ,KACflnB,EAAOpL,MAAQ,KACfoL,EAAOnL,IAAM,KACbiwB,EAAO5V,KAAK,iBAAiBA,KAAK,2BAkBxC,OAAO1rB,MAGV,SAAUpE,GACT,GAAIqyC,GAAiB,4EACjBC,EAAiB,2DACjBC,EAAiB,4DACjBC,EAAiB,oCAEjBC,EAAa,SAAU5wC,GACzB,MAAO,IAAI6O,QAAO,YAAc7O,EAAI,kBAAoB,MAG1D7B,GAAUI,OAAOsyC,aAEfC,WAAY,SAASC,EAAWC,GAC9B,GAGI5hB,GAAK6hB,EAHLC,EAAaN,EAAWI,GACxBntB,EAASktB,EAAUnvB,MAAMsvB,GACzBC,EAAQ,EAGZ,IAAIttB,EAAQ,CACV,IAAK,GAAIhpB,GAAIgpB,EAAO/rB,OAAQ+C,KAC1BgpB,EAAOhpB,GAAKsD,EAAUM,KAAK0wB,OAAOtL,EAAOhpB,GAAGmC,MAAM,KAAK,IAAIjH,MAI7D,IAFAq5B,EAAMvL,EAAOA,EAAO/rB,OAAO,GAEvB04C,EAAW9zC,KAAK0yB,GAClB6hB,EAAa7hB,EAAIxN,MAAM4uB,OAClB,IAAIC,EAAU/zC,KAAK0yB,GACxB6hB,EAAa7hB,EAAIxN,MAAM6uB,OAClB,IAAIC,EAAWh0C,KAAK0yB,GACzB6hB,EAAa7hB,EAAIxN,MAAM8uB,GACvBS,EAAQ,OACH,IAAIR,EAAWj0C,KAAK0yB,GAIzB,MAHA6hB,GAAa7hB,EAAIxN,MAAM+uB,GACvBM,EAAWG,QACXH,EAAWx5C,KAAK,GACT0G,EAAUM,KAAKmuB,MAAMqkB,GAAY/jB,IAAI,SAAS9zB,EAAGq0B,GACtD,MAAc,GAANA,EAA8B,GAAlB5L,SAASzoB,EAAG,IAAYyoB,SAASzoB,EAAG,IAAKqvB,WAAWrvB,IAI5E,IAAI63C,EAKF,MAJAA,GAAWG,QACNH,EAAW,IACdA,EAAWx5C,KAAK,GAEX0G,EAAUM,KAAKmuB,MAAMqkB,GAAY/jB,IAAI,SAAS9zB,EAAGq0B,GACtD,MAAc,GAANA,EAAW5L,SAASzoB,EAAG+3C,GAAQ1oB,WAAWrvB,KAIxD,OAAO,GAGTi4C,aAAc,SAASpmC,EAAKxK,GAC1B,GAAIA,EAAO,CACT,GAAa,OAATA,EACF,MAAQwK,GAAI,GAAGnS,SAAS,IAAI88B,cAAkB3qB,EAAI,GAAGnS,SAAS,IAAI88B,cAAkB3qB,EAAI,GAAGnS,SAAS,IAAI88B,aACnG,IAAa,QAATn1B,EACT,MAAO,IAAOwK,EAAI,GAAGnS,SAAS,IAAI88B,cAAkB3qB,EAAI,GAAGnS,SAAS,IAAI88B,cAAkB3qB,EAAI,GAAGnS,SAAS,IAAI88B,aACzG,IAAa,OAATn1B,EACT,MAAO,OAASwK,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,GAClD,IAAa,QAATxK,EACT,MAAO,QAAUwK,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,GAClE,IAAa,OAATxK,EACT,MAAQwK,GAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAI7D,MAAIA,GAAI,IAAiB,IAAXA,EAAI,GACT,QAAUA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAEhE,OAASA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,KAI3DqmC,cAAe,SAASP,GACtB,GAAIltB,GAASktB,EAAUnvB,MAAMgvB,EAAW,aACxC,OAAI/sB,GACK1lB,EAAUM,KAAK0wB,OAAOtL,EAAOA,EAAO/rB,OAAS,GAAGkF,MAAM,KAAK,IAAIjH,QAEjE,KAIVoI,WAOH,SAAUA,GAGR,QAASozC,GAAwB7tB,GAC/B,GAAI8tB,GAAM,CACV,IAAI9tB,EAAQ/oB,WACV,EACE62C,IAAO9tB,EAAQ+tB,WAAa,EAC5B/tB,EAAUA,EAAQguB,mBACXhuB,EAEX,OAAO8tB,GAIT,QAASG,GAASvqC,EAAUC,GAExB,IADA,GAAI29B,GAAM,EACH39B,IAAeD,GAGlB,GAFA49B,IACA39B,EAAaA,EAAW1M,YACnB0M,EACD,KAAM,IAAIhK,OAAM,gCAExB,OAAO2nC,GAKX,QAAS4M,GAAsBjxC,GAC3B,IAAIA,EAAMoT,sBAMV,IAJA,GAAI89B,GAASlxC,EAAM2O,wBACfwiC,EAAcH,EAASE,EAAQlxC,EAAM4L,gBACrCwlC,EAAYJ,EAASE,EAAQlxC,EAAM6L,eAEhC7L,EAAMoT,uBAEP+9B,EAAcC,GACdpxC,EAAMyS,eAAezS,EAAM4L,gBAC3BulC,EAAcH,EAASE,EAAQlxC,EAAM4L,kBAGrC5L,EAAM4S,YAAY5S,EAAM6L,cACxBulC,EAAYJ,EAASE,EAAQlxC,EAAM6L,eA1C7C,GAAIlO,GAAMH,EAAUG,GA+CpBH,GAAUmmB,UAAYqC,KAAKpiB,QAEzB2N,YAAa,SAAS2xB,EAAQmO,EAASC,GAErCt6C,OAAOkI,MAAM0C,OAEbtM,KAAK4tC,OAAWA,EAChB5tC,KAAK63C,SAAWjK,EAAOiK,SACvB73C,KAAKgL,IAAWhL,KAAK63C,SAAS7sC,IAC9BhL,KAAK+7C,QAAUA,EACf/7C,KAAKg8C,kBAAoBA,IAAqB,GAQhDh6B,YAAa,WACX,GAAItX,GAAQ1K,KAAKi8C,UAEjB,OADIvxC,IAAOixC,EAAsBjxC,GAC1BA,GAASA,EAAM0U,cAQxB44B,YAAa,SAAS51B,GACfA,GAILpiB,KAAKk8C,aAAa95B,IAUpB+5B,UAAW,SAAS33C,GAClB,GAAIkG,GAAQd,MAAM8C,YAAY1M,KAAKgL,IAGnC,OAFAN,GAAMyS,eAAe3Y,GACrBkG,EAAM2S,aAAa7Y,GACZxE,KAAKk8C,aAAaxxC,IAK3B0xC,+BAAgC,SAAU53C,GACxC,GAAI63C,GAAmBr8C,KAAKgL,IAAInG,cAAc,QAC1Cy3C,EAAuBt8C,KAAKgL,IAAI+J,eAAe7M,EAAUS,iBACzD4zC,EAAqB,WAEnB,GAAIj8B,EAEJtgB,MAAK+7C,QAAQp6C,oBAAoB,UAAW46C,GAC5Cv8C,KAAK+7C,QAAQp6C,oBAAoB,UAAW66C,GAC5Cx8C,KAAK+7C,QAAQp6C,oBAAoB,aAAc46C,GAC/Cv8C,KAAK+7C,QAAQp6C,oBAAoB,QAAS46C,GAC1Cv8C,KAAK+7C,QAAQp6C,oBAAoB,OAAQ46C,GACzCv8C,KAAK+7C,QAAQp6C,oBAAoB,QAAS86C,GAC1Cz8C,KAAK+7C,QAAQp6C,oBAAoB,OAAQ86C,GACzCz8C,KAAK+7C,QAAQp6C,oBAAoB,cAAe86C,GAI5CJ,GAAoBA,EAAiB33C,aACvC23C,EAAiBjoC,UAAYioC,EAAiBjoC,UAAUnU,QAAQiI,EAAUU,wBAAyB,IAC/F,SAAWnC,KAAK41C,EAAiBjoC,YACnCkM,EAAY+7B,EAAiB/7B,UAC7BpY,EAAUG,IAAI07B,OAAOsY,GACrBr8C,KAAK08C,SAASp8B,IAEd+7B,EAAiB33C,WAAW4Z,YAAY+9B,KAI3Ch5C,KAAKrD,MACRy8C,EAA4B,WACtBJ,GAAoBA,EAAiB33C,YACvCuoC,WAAWsP,EAAoB,IAGnCC,EAAiB,SAAS1e,GACJ,IAAhBA,EAAM6e,OAA+B,KAAhB7e,EAAM6e,OAAgC,KAAhB7e,EAAM6e,OAAiC,KAAhB7e,EAAM6e,QAAkB7e,EAAM8e,SAAY9e,EAAM+e,UACpHN,IAuBR,OAnBAF,GAAiBntB,MAAM9c,SAAW,WAClCiqC,EAAiBntB,MAAME,QAAU,QACjCitB,EAAiBntB,MAAM4tB,SAAW,MAClCT,EAAiBntB,MAAM6tB,OAAS,QAChCV,EAAiBrtC,YAAYstC,GAE7B93C,EAAKE,WAAWoN,aAAauqC,EAAkB73C,EAAKqN,aACpD7R,KAAKm8C,UAAUG,GAGft8C,KAAK+7C,QAAQv7C,iBAAiB,UAAW+7C,GACzCv8C,KAAK+7C,QAAQv7C,iBAAiB,UAAWg8C,GACzCx8C,KAAK+7C,QAAQv7C,iBAAiB,aAAc+7C,GAC5Cv8C,KAAK+7C,QAAQv7C,iBAAiB,QAAS+7C,GACvCv8C,KAAK+7C,QAAQv7C,iBAAiB,OAAQ+7C,GACtCv8C,KAAK+7C,QAAQv7C,iBAAiB,QAASi8C,GACvCz8C,KAAK+7C,QAAQv7C,iBAAiB,OAAQi8C,GACtCz8C,KAAK+7C,QAAQv7C,iBAAiB,cAAei8C,GAEtCJ,GAUTK,SAAU,SAASl4C,EAAMw4C,GACvB,GAGI91B,GAHAxc,EAAQd,MAAM8C,YAAY1M,KAAKgL,KAC/BiyC,EAAoBj9C,KAAKgL,IAAIoK,gBAAgB8nC,WAAal9C,KAAKgL,IAAIC,KAAKiyC,WAAal9C,KAAKgL,IAAIyH,YAAY0qC,YAC1GC,EAAqBp9C,KAAKgL,IAAIoK,gBAAgBioC,YAAcr9C,KAAKgL,IAAIC,KAAKoyC,YAAcr9C,KAAKgL,IAAIyH,YAAY6qC,WAWjH,IARA5yC,EAAM0S,cAAc5Y,GACpBkG,EAAM4S,YAAY9Y,GAClBxE,KAAK63C,SAASpqB,QAAQ3D,QACtB9pB,KAAKgL,IAAIyH,YAAY8qC,SAASH,EAAoBH,GAClD/1B,EAAMlnB,KAAKk8C,aAAaxxC,IAInBwc,EACH,GAAI81B,EAAW,CAGb,GAAIX,GAAmBr8C,KAAKgL,IAAI+J,eAAe7M,EAAUS,gBACzDnE,GAAKE,WAAWoN,aAAauqC,EAAkB73C,EAAKqN,aACpD7R,KAAKyd,WAAW4+B,GAChBpP,WAAW,WACLoP,GAAoBA,EAAiB33C,YACvC23C,EAAiB33C,WAAW4Z,YAAY+9B,IAEzC,OAEHr8C,MAAKo8C,+BAA+B53C,EAGxC,OAAO0iB,IAUTzJ,WAAY,SAASjZ,EAAMg5C,GACzB,GAAI9yC,GAAkBd,MAAM8C,YAAY1M,KAAKgL,KACzCyyC,EAAkBj5C,EAAK0K,WAAahH,EAAUY,aAC9C6b,EAAkB,eAAiBngB,GAAOA,EAAKmgB,YAAiC,QAAlBngB,EAAKqI,SACnEuT,EAAkBq9B,EAAYj5C,EAAK4P,UAAY5P,EAAKyP,KACpDm6B,EAA+B,KAAZhuB,GAAkBA,IAAYlY,EAAUS,gBAC3D+0C,EAAkBr1C,EAAIm0B,SAAS,WAAWC,KAAKj4B,GAC/C23B,EAAoC,UAAjBuhB,GAA6C,cAAjBA,CAEnD,IAAItP,GAAWqP,GAAa94B,IAAgB64B,EAE1C,IAAMh5C,EAAK4P,UAAYlM,EAAUS,gBAAmB,MAAM7H,IAExD6jB,EACFja,EAAM8S,mBAAmBhZ,GAEzBkG,EAAM+S,WAAWjZ,GAGfmgB,GAAeypB,GAAWqP,EAC5B/yC,EAAM6S,SAAS4e,GACNxX,GAAeypB,IACxB1jC,EAAM0S,cAAc5Y,GACpBkG,EAAM4S,YAAY9Y,IAGpBxE,KAAKk8C,aAAaxxC,IAWpBizC,gBAAiB,SAASl1B,GACxB,GAAIhgB,GACAiC,CAEJ,OAAI+d,IAAgBzoB,KAAKgL,IAAIvC,WAAyC,YAA5BzI,KAAKgL,IAAIvC,UAAU/H,OAC3DgK,EAAQ1K,KAAKgL,IAAIvC,UAAUiE,cACvBhC,GAASA,EAAM7I,QACV6I,EAAMxE,KAAK,IAItBuC,EAAYzI,KAAK+mB,aAAa/mB,KAAKgL,KAC/BvC,EAAU6e,YAAc7e,EAAU2e,WAC7B3e,EAAU6e,WAEjB5c,EAAQ1K,KAAKi8C,SAASj8C,KAAKgL,KACpBN,EAAQA,EAAM2O,wBAA0BrZ,KAAKgL,IAAIC,QAI5D2yC,cAAe,WACb,GAAIlzC,GAAQ1K,KAAKi8C,UACjBN,GAAsBjxC,GACtB1K,KAAKk8C,aAAaxxC,IAGpBmzC,oBAAqB,WAKnB,IAAK,GAHDv0B,GAAStpB,KAAK89C,eACdC,KAEKn5C,EAAI,EAAGo5C,EAAO10B,EAAOznB,OAAYm8C,EAAJp5C,EAAUA,IAC5Cm5C,EAASv8C,KAAK8nB,EAAO1kB,GAAGyU,yBAA2BrZ,KAAKgL,IAAIC,KAEhE,OAAO8yC,IAGTE,qBAAsB,SAAS1lC,GAG7B,IAAK,GADW2lC,GADZ50B,EAAStpB,KAAK89C,eACdr5C,KACKG,EAAI,EAAGo5C,EAAO10B,EAAOznB,OAAYm8C,EAAJp5C,EAAUA,IAC9Cs5C,EAAW50B,EAAO1kB,GAAG+c,UAAU,GAAI,SAASnd,GACxC,MAAO0D,GAAUM,KAAKmuB,MAAMpe,GAAWtT,SAAST,EAAKqI,YAEzDpI,EAAQA,EAAMV,OAAOm6C,EAEvB,OAAOz5C,IAGT05C,eAAgB,SAAS3lC,GAIvB,IAAK,GAFW0lC,GADZ50B,EAAStpB,KAAK89C,eACdr5C,KAEKG,EAAI,EAAGo5C,EAAO10B,EAAOznB,OAAYm8C,EAAJp5C,EAAUA,IAC9Cs5C,EAAW50B,EAAO1kB,GAAG+c,UAAU,GAAI,SAAS8L,GAC1C,MAAOjV,GAAOiV,EAASnE,EAAO1kB,MAEhCH,EAAQA,EAAMV,OAAOm6C,EAEvB,OAAOz5C,IAGT25C,mBAAoB,WAIlB,IAAK,GAHDC,GAAcr+C,KAAKs+C,oBACnB71C,EAAYzI,KAAK+mB,eAEZniB,EAAI,EAAGo5C,EAAOK,EAAYx8C,OAAYm8C,EAAJp5C,EAAUA,IACnD,GAAI6D,EAAU2Y,aAAai9B,EAAYz5C,IACrC,OAAO,CAIX,QAAO,GAKTiZ,eAAgB,WACd,GACI0gC,GAAaC,EAAWH,EAAaI,EADrC/zC,EAAQ1K,KAAKi8C,UAGjB,IAAIj8C,KAAKg8C,kBAAmB,EACrBuC,EAAcr2C,EAAUG,IAAIi3B,iBAAiB50B,EAAM4L,gBAAkBmoB,MAAO,IAAMz+B,KAAKg8C,oBAAqB,EAAOh8C,KAAK+7C,WAC3HrxC,EAAMyS,eAAeohC,IAElBC,EAAYt2C,EAAUG,IAAIi3B,iBAAiB50B,EAAM6L,cAAgBkoB,MAAO,IAAMz+B,KAAKg8C,oBAAqB,EAAOh8C,KAAK+7C,WACvHrxC,EAAM4S,YAAYkhC,GAIpBH,EAAc3zC,EAAMiX,UAAU,GAAI,SAAWnd,GAC3C,MAAO0D,GAAUG,IAAIizB,SAAS92B,EAAMxE,KAAKg8C,oBACxC34C,KAAKrD,MACR,KAAK,GAAI4E,GAAIy5C,EAAYx8C,OAAQ+C,KAC/B,IACE65C,EAAK,GAAIC,aAAY,+BACrBL,EAAYz5C,GAAG+5C,cAAcF,GAC7B,MAAOG,KAIbl0C,EAAMmT,iBACN7d,KAAKk8C,aAAaxxC,IAGpBm0C,gBAAiB,SAASr6C,EAAMs6C,GAC9B,GAAIpB,EACJ,KAAKl5C,EAAM,CACT,GAAIiE,GAAYzI,KAAK+mB,cACrBviB,GAAOiE,EAAU2e,WAGnB,GAAI5iB,IAASxE,KAAK+7C,QACd,OAAO,CAGX,IACIvrC,GADAu+B,EAAMvqC,EAAKkM,eAGf,OAAIq+B,KAAQ/uC,KAAK+7C,SACN,GAGPhN,GAAwB,IAAjBA,EAAI7/B,UAAmC,IAAjB6/B,EAAI7/B,SAElC6/B,EAAM/uC,KAAK6+C,gBAAgB9P,EAAK+P,GACxB/P,GAAwB,IAAjBA,EAAI7/B,UAAkB,QAAUzI,KAAKsoC,EAAIzO,aAEzDyO,EAAM/uC,KAAK6+C,gBAAgB9P,EAAK+P,GACvBA,GAAe/P,GAAwB,IAAjBA,EAAI7/B,UAGnCwuC,EAAex1C,EAAUG,IAAIm0B,SAAS,WAAWC,KAAKsS,GAEjD7mC,EAAUM,KAAKmuB,OAAO,KAAM,KAAM,QAAQ1xB,SAAS8pC,EAAIliC,WACvD3E,EAAUM,KAAKmuB,OAAO,QAAS,eAAgB,OAAQ,YAAa,UAAU1xB,SAASy4C,KACxF,UAAYj3C,KAAKsoC,EAAI36B,aAErB26B,EAAM/uC,KAAK6+C,gBAAgB9P,EAAK+P,KAE1B/P,GAAOvqC,IAASxE,KAAK+7C,UAC/BvrC,EAAShM,EAAKE,WACV8L,IAAWxQ,KAAK+7C,UAChBhN,EAAM/uC,KAAK6+C,gBAAgBruC,EAAQsuC,KAIjC/P,IAAQ/uC,KAAK+7C,QAAWhN,GAAM,IAGxCgQ,yBAA0B,WAIxB,IAAK,GAFDC,GADAv6C,EAAQzE,KAAK69C,sBACN1G,KAEFvyC,EAAI,EAAGo5C,EAAOv5C,EAAM5C,OAAYm8C,EAAJp5C,EAAUA,IAC7Co6C,EAASv6C,EAAMG,GAAGiI,UAAmC,OAAtBpI,EAAMG,GAAGiI,SAAqBpI,EAAMG,GAAKsD,EAAUG,IAAIi3B,iBAAiB76B,EAAMG,IAAM65B,MAAO,OAAO,EAAOz+B,KAAK+7C,SACzIiD,GACF7H,EAAQ31C,KAAKw9C,EAGjB,OAAQ7H,GAAc,OAAIA,EAAU,MAGtC8H,kBAAmB,WACjB,GAAIj/C,KAAKukB,cAAe,CACtB,GAAI7Z,GAAQ1K,KAAKi8C,WACbiD,EAAQx0C,EAAM4L,eACdX,EAAMjL,EAAMyM,YACZgoC,EAAQv1C,MAAM8C,YAAY1M,KAAKgL,IAInC,OAFAm0C,GAAM3hC,mBAAmB0hC,GACzBC,EAAMpiC,SAASmiC,EAAOvpC,GACfwpC,IAIXC,uBAAwB,WACtB,GAEIC,IAFIz1C,MAAM8C,YAAY1M,KAAKgL,KACvBhL,KAAK+mB,eACF/mB,KAAKi/C,oBAAoBnkC,iBAChCwkC,EAASD,EAAK/e,WAElB,OAAO,QAAU75B,KAAK64C,IAGxBC,wBAAyB,WACvB,GAAIr8C,GAAI0G,MAAM8C,YAAY1M,KAAKgL,KAC3BvI,EAAIzC,KAAK+mB,eACTrc,EAAQ1K,KAAKi8C,WACbp9B,EAAYnU,EAAM4L,cAEtB,OAAIuI,GACEA,EAAU3P,WAAahH,EAAUa,UAC5B/I,KAAKukB,eAAkB1F,EAAU3P,WAAahH,EAAUa,WAAa,QAAUtC,KAAKoY,EAAU5K,KAAKymB,OAAO,EAAEhwB,EAAMyM,eAEzHjU,EAAEsa,mBAAmBxd,KAAKi8C,WAAW5iC,yBACrCnW,EAAEqa,UAAS,GACHvd,KAAKukB,gBAAkBrhB,EAAEoT,iBAAmB7T,EAAE2kB,YAAclkB,EAAEqT,eAAiB9T,EAAE2kB,aAAelkB,EAAEiU,cAAgB1U,EAAE4kB,cANhI,QAWFm4B,qBAAsB,SAASC,GAC3B,GAAIh3C,GAAYzI,KAAK+mB,eACjBviB,EAAOiE,EAAU2e,WACjB/U,EAAS5J,EAAU4e,YACvB,OAAIo4B,IAAUj7C,EACO,IAAX6N,IAAiB7N,EAAKqI,UAAYrI,EAAKqI,WAAa4yC,EAAO9f,eAAiBz3B,EAAUG,IAAIi3B,iBAAiB96B,EAAKE,YAAc+5B,MAAOghB,GAAU,IAC9Ij7C,EACU,IAAX6N,IAAiBrS,KAAK6+C,gBAAgBr6C,GAAM,GAD/C,QAKXk7C,wBAAyB,WACvB,GAIIh1C,GAAOi1C,EAAcC,EAJrBn3C,EAAYzI,KAAK+mB,eACjBviB,EAAOiE,EAAU2e,WACjB/U,EAAS5J,EAAU4e,aACnBpY,IAGJ,IAAIzK,EACF,GAAe,IAAX6N,EAAc,CAChB,GAAI8rB,GAAWn+B,KAAK6+C,gBAAgBr6C,GAAM,GACtCq7C,EAAW1hB,EAAWj2B,EAAUG,IAAI01B,QAAQI,GAAUG,aAAct+B,KAAsB,mBAAKu+B,aAAcv+B,KAAKg8C,qBAAsB,GAAS,IACrJ,IAAI6D,EAEF,IAAK,GADDxB,GAAcr+C,KAAKs+C,oBACd15C,EAAI,EAAGo5C,EAAOK,EAAYx8C,OAAYm8C,EAAJp5C,EAAUA,IACnD,GAAIi7C,IAAaxB,EAAYz5C,GAC3B,MAAOy5C,GAAYz5C,OAIpB,CAIL,GAHA8F,EAAQjC,EAAUghB,WAAW,GAC7B/e,EAAMqS,SAASrS,EAAM4L,eAAgB5L,EAAMyM,YAAc,GAErDzM,EAAO,CACTi1C,EAAej1C,EAAMiX,UAAU,EAAE,GACjC,KAAK,GAAI5Q,GAAI,EAAGwmB,EAAMooB,EAAa99C,OAAY01B,EAAJxmB,EAASA,IAC9C4uC,EAAa5uC,GAAGrM,YAAci7C,EAAa5uC,GAAGrM,aAAeF,GAC/DyK,EAAWzN,KAAKm+C,EAAa5uC,IAKnC,GADA6uC,EAAW3wC,EAAWpN,OAAS,EAAIoN,EAAWA,EAAWpN,OAAQ,GAAK,KAClE+9C,GAAkC,IAAtBA,EAAS1wC,UAAkBhH,EAAUG,IAAIizB,SAASskB,EAAU5/C,KAAKg8C,mBAC/E,MAAO4D,GAKb,OAAO,GAITE,uBAAwB,SAAS36C,GAC/B,GAAIoI,GAAMvN,KAAKgL,IAAIyH,aAAezS,KAAKgL,IAAI0H,aACvCwU,EAAMtd,MAAMsmB,cAAc3iB,EAE9B,IAAK2Z,EAGH,IACE/hB,IACA,MAAMrE,GACNmsC,WAAW,WAAa,KAAMnsC,IAAM,OALtCqE,IAQFyE,OAAMymB,iBAAiBnJ,IAIzB64B,kBAAmB,SAAS56C,EAAQ66C,GAClC,GAMI3D,GACA4D,EACApuC,EAAaquC,EACb17C,EAAMsM,EAAO4S,EACby8B,EAVAl1C,EAAwBjL,KAAKgL,IAAIC,KACjCm1C,EAAwBJ,GAAyB/0C,EAAKiyC,UACtDmD,EAAwBL,GAAyB/0C,EAAKoyC,WACtDhuB,EAAwB,8BACxBixB,EAAwB,gBAAkBjxB,EAAY,KAAOnnB,EAAUS,gBAAkB,UACzF+B,EAAwB1K,KAAKi8C,UAAS,EAQ1C,KAAKvxC,EAEH,WADAvF,GAAO8F,EAAMA,EAIVP,GAAMwO,YACTwK,EAAShZ,EAAM0U,aACftO,EAAQ4S,EAAOhE,yBAAyB4gC,GACxC58B,EAAOnG,UAAS,GAChBmG,EAAOzD,WAAWnP,GAClB4S,EAAOjO,UAGTjR,EAAOkG,EAAMgV,yBAAyB4gC,GACtC51C,EAAMuV,WAAWzb,GAEbsM,IACFurC,EAAmBr8C,KAAK+7C,QAAQp3C,iBAAiB,IAAM0qB,GACvD3kB,EAAMyS,eAAek/B,EAAiB,IACtC3xC,EAAM4S,YAAY++B,EAAiBA,EAAiBx6C,OAAQ,KAE9D7B,KAAKk8C,aAAaxxC,EAGlB,KACEvF,EAAOuF,EAAM4L,eAAgB5L,EAAM6L,cACnC,MAAMzV,GACNmsC,WAAW,WAAa,KAAMnsC,IAAM,GAGtC,GADAu7C,EAAmBr8C,KAAK+7C,QAAQp3C,iBAAiB,IAAM0qB,GACnDgtB,GAAoBA,EAAiBx6C,OAAQ,CAC/Cs+C,EAAWv2C,MAAM8C,YAAY1M,KAAKgL,KAClC6G,EAAcwqC,EAAiB,GAAGxqC,YAC9BwqC,EAAiBx6C,OAAS,IAC5Bq+C,EAAc7D,EAAiBA,EAAiBx6C,OAAQ,GAAG6O,iBAEzDwvC,GAAeruC,GACjBsuC,EAAShjC,eAAetL,GACxBsuC,EAAS7iC,YAAY4iC,KAErBD,EAAsBjgD,KAAKgL,IAAI+J,eAAe7M,EAAUS,iBACxDN,EAAIq0B,OAAOujB,GAAqBtjB,MAAM0f,EAAiB,IACvD8D,EAAShjC,eAAe8iC,GACxBE,EAAS7iC,YAAY2iC,IAEvBjgD,KAAKk8C,aAAaiE,EAClB,KAAK,GAAIv7C,GAAIy3C,EAAiBx6C,OAAQ+C,KACrCy3C,EAAiBz3C,GAAGF,WAAW4Z,YAAY+9B,EAAiBz3C,QAK7D5E,MAAK+7C,QAAQjyB,OAGXk2B,KACF/0C,EAAKiyC,UAAakD,EAClBn1C,EAAKoyC,WAAagD,EAIpB,KACEhE,EAAiB33C,WAAW4Z,YAAY+9B,GACxC,MAAMtnB,MAGVvyB,IAAK,SAASgC,EAAM6N,GAClB,GAAI8tC,GAAWv2C,MAAM8C,YAAY1M,KAAKgL,IACtCm1C,GAASpjC,SAASvY,EAAM6N,GAAU,GAClCrS,KAAKk8C,aAAaiE,IAUpBzrB,WAAY,SAASiF,GACnB,GAGIrZ,GAFA9b,GADYoF,MAAM8C,YAAY1M,KAAKgL,KAC5BhL,KAAKgL,IAAInG,cAAc,QAC9B0P,EAAWvU,KAAKgL,IAAIwJ,wBAMxB,KAHAhQ,EAAK4P,UAAYulB,EACjBrZ,EAAY9b,EAAK8b,UAEV9b,EAAKqP,YACVU,EAASvF,YAAYxK,EAAKqP,WAE5B7T,MAAKigB,WAAW1L,GAEZ+L,GACFtgB,KAAK08C,SAASp8B,IAWlBL,WAAY,SAASzb,GACnB,GAAIkG,GAAQ1K,KAAKi8C,UACbvxC,IACFA,EAAMuV,WAAWzb,IAIrB+7C,oBAAqB,SAAU9yB,EAASxN,GACtC,GACIvV,GAAO81C,EACP3sC,EAAYyM,EAFZ4G,EAAMlnB,KAAK+mB,cAIXG,GAAIa,WAAa,IACnBrd,EAAQwc,EAAIuC,WAAW,GAAGrK,aAE1B1U,EAAM4S,YAAYmQ,GAClB+yB,EAAyB91C,EAAMkT,kBAE/B6P,EAAQ/oB,WAAWoN,aAAa0uC,EAAwB/yB,EAAQ5b,aAEhEgC,EAAaoM,EAAWpM,WACxByM,EAAYL,EAAWK,UAEvBmN,EAAQ/oB,WAAWoN,aAAamO,EAAYwN,EAAQ5b,aAGhDgC,GAAcyM,IACf5V,EAAMyS,eAAetJ,GACrBnJ,EAAM4S,YAAYgD,GAClBtgB,KAAKk8C,aAAaxxC,MAUzB+1C,SAAU,SAASC,GACjB,GACIl8C,GADA8kB,EAAStpB,KAAK89C,eACRr5C,IACV,IAAqB,GAAjB6kB,EAAOznB,OACT,MAAO4C,EAGT,KAAK,GAAIG,GAAI0kB,EAAOznB,OAAQ+C,KAAM,CAChCJ,EAAOxE,KAAKgL,IAAInG,cAAc67C,EAAY7zC,UAC1CpI,EAAMjD,KAAKgD,GACPk8C,EAAYrxB,YACd7qB,EAAK6qB,UAAYqxB,EAAYrxB,WAE3BqxB,EAAYC,UACdn8C,EAAKyC,aAAa,QAASy5C,EAAYC,SAEzC,KAEEr3B,EAAO1kB,GAAGub,iBAAiB3b,GAC3BxE,KAAKyd,WAAWjZ,GAChB,MAAM1D,GAEN0D,EAAKwK,YAAYsa,EAAO1kB,GAAGgZ,mBAC3B0L,EAAO1kB,GAAGqb,WAAWzb,IAGzB,MAAOC,IAGTm8C,mBAAoB,SAASF,GAC3B,GAEIG,GACAC,EACAjtC,EAJA+mB,EAAc56B,KAAKgL,IAAInG,cAAc,OACrC6F,EAAQd,MAAM8C,YAAY1M,KAAKgL,IASnC,IAJA4vB,EAAYvL,UAAYqxB,EAAYrxB,UAEpCrvB,KAAK63C,SAASzvC,SAASmqB,KAAK,cAAemuB,GAC3CG,EAAkB7gD,KAAK+7C,QAAQp3C,iBAAiB,IAAM+7C,EAAYrxB,WAC9DwxB,EAAgB,GAOlB,IANAA,EAAgB,GAAGn8C,WAAWoN,aAAa8oB,EAAaimB,EAAgB,IAExEn2C,EAAMyS,eAAe0jC,EAAgB,IACrCn2C,EAAM4S,YAAYujC,EAAgBA,EAAgBh/C,OAAS,IAC3Di/C,EAAep2C,EAAMkT,kBAEdkjC,EAAajtC,YAElB,GADAA,EAAaitC,EAAajtC,WACC,GAAvBA,EAAW3E,UAAiBhH,EAAUG,IAAIizB,SAASznB,EAAY6sC,EAAYrxB,WAAY,CACzF,KAAOxb,EAAWA,YAChB+mB,EAAY5rB,YAAY6E,EAAWA,WAET,QAAxBA,EAAWhH,UAAqB+tB,EAAY5rB,YAAYhP,KAAKgL,IAAInG,cAAc,OACnFi8C,EAAaxiC,YAAYzK,OAEzB+mB,GAAY5rB,YAAY6E,OAI5B+mB,GAAc,IAGhB,OAAOA,IAUTmmB,eAAgB,WACd,GASIvF,GATAxwC,EAAgBhL,KAAKgL,IACrBg2C,EAAgB,EAChBC,EAAgBj2C,EAAIoK,gBAAgB8rC,aAAel2C,EAAIoK,gBAAgB20B,aACvEnP,EAAgB5vB,EAAIm2C,gCAAkCn2C,EAAIm2C,iCAAmC,WAC3F,GAAI1zB,GAAUziB,EAAInG,cAAc,OAGhC,OADA4oB,GAAQrZ,UAAYlM,EAAUS,gBACvB8kB,IAITwzB,KACFjhD,KAAKigB,WAAW2a,GAChB4gB,EAAYF,EAAwB1gB,GACpCA,EAAYl2B,WAAW4Z,YAAYsc,GAC/B4gB,GAAcxwC,EAAIC,KAAKiyC,UAAYlyC,EAAIoK,gBAAgB20B,aAAeiX,IACxEh2C,EAAIC,KAAKiyC,UAAY1B,KAQ3B4F,WAAY,WACNl5C,EAAU4pB,QAAQ6D,0BACpB31B,KAAKqhD,kBACIrhD,KAAKgL,IAAIvC,WAClBzI,KAAKshD,oBAOTD,gBAAiB,WACf,GAAI9zC,GAAYvN,KAAKgL,IAAIyH,YACrBhK,EAAY8E,EAAIwZ,cACpBte,GAAU84C,OAAO,OAAQ,OAAQ,gBACjC94C,EAAU84C,OAAO,SAAU,QAAS,iBAItCC,eAAgB,SAAUC,EAAUlkC,GAElC,GADAA,EAAgC,mBAAbA,IAA4B,EAAQA,EACnDrV,EAAU4pB,QAAQ6D,0BAA2B,CAC/C,GAAIpoB,GAAMvN,KAAKgL,IAAIyH,YACfhK,EAAY8E,EAAIwZ,cAEpBte,GAAU84C,OAAO,SAAUE,EAAU,gBACjClkC,IACe,SAAbkkC,EACFh5C,EAAU4kB,kBACY,UAAbo0B,GACTh5C,EAAU6kB,mBAMlBg0B,iBAAkB,WAChB,GAGII,GACAC,EACAC,EACAh9C,EACAk6B,EAPAp0B,EAAc1K,KAAKgL,IAAIvC,UAAUiE,cACjCm1C,EAAcn3C,EAAMo3C,YACpBC,EAAc/hD,KAAKgL,IAAIC,KAAK82C,WAOhC,IAAKr3C,EAAMs3C,YAAX,CAeA,IAXiB,IAAbH,IAGFD,EAAc5hD,KAAKgL,IAAInG,cAAc,QACrC7E,KAAKigB,WAAW2hC,GAChBC,EAAWD,EAAYpG,UACvBoG,EAAYl9C,WAAW4Z,YAAYsjC,IAGrCC,GAAY,EAEPj9C,EAAE,IAAOm9C,EAAFn9C,EAAeA,GAAG,EAC5B,IACE8F,EAAMs3C,YAAYp9C,EAAGi9C,EACrB,OACA,MAAMhtB,IAOV,IAFA6sB,EAAcG,EACdF,EAAW3hD,KAAKgL,IAAIvC,UAAUiE,cACzBoyB,EAAEijB,EAAajjB,GAAG,EAAGA,IACxB,IACE6iB,EAASK,YAAYljB,EAAG4iB,EACxB,OACA,MAAM3sB,IAGVrqB,EAAM6a,YAAY,WAAYo8B,GAC9Bj3C,EAAMoe,WAGRm5B,QAAS,WACP,GAAIx5C,GAAYzI,KAAK+mB,cACrB,OAAOte,GAAYA,EAAU5F,WAAa,IAG5C8e,SAAU,SAASzS,EAAUsJ,GAC3B,GAAI9N,GAAQ1K,KAAKi8C,UACjB,OAAIvxC,GACKA,EAAMiX,SAASjf,MAAMC,QAAQuM,GAAYA,GAAYA,GAAWsJ,OAM3E0pC,iBAAkB,SAASx3C,GACzB,GAAI1K,KAAK+7C,SAAW/7C,KAAK+7C,QAAQloC,YAAcnJ,EAAO,CACpD,GAAIy3C,GAAcz3C,EAAM+V,YAAYzgB,KAAK+7C,QACzC,IAAoB,IAAhBoG,EACkB,IAAhBA,GACFz3C,EAAMyS,eAAend,KAAK+7C,QAAQloC,YAEhB,IAAhBsuC,GACFz3C,EAAM4S,YAAYtd,KAAK+7C,QAAQz7B,WAEb,IAAhB6hC,IACFz3C,EAAMyS,eAAend,KAAK+7C,QAAQloC,YAClCnJ,EAAM4S,YAAYtd,KAAK+7C,QAAQz7B,gBAE5B,IAAItgB,KAAKoiD,2BAA2B13C,GAAQ,CACjD,GAAI23C,GAAyB33C,EAAM6L,aAAa8rC,sBAC5CA,IACF33C,EAAMsS,OAAOqlC,EAAwBriD,KAAKsiD,kBAAkBD,OAMpEC,kBAAmB,SAAS99C,GAC1B,GAAIkG,GAAQrJ,SAASqL,aAErB,OADAhC,GAAM8S,mBAAmBhZ,GAClBkG,EAAM0M,WAGfgrC,2BAA4B,SAAS13C,GACnC,GAAI0H,GAAW/J,EAAIozB,wBAAwB/wB,EAAM4L,eAAgB5L,EAAM6L,aACvE,OACqB,IAAnB7L,EAAM0M,WACK,EAAXhF,GAIJ6pC,SAAU,SAASsG,GACjB,GAAI95C,GAAYzI,KAAK+mB,eACjBrc,EAAQjC,GAAaA,EAAUsf,YAActf,EAAUghB,WAAW,EAMtE,OAJI84B,MAAY,GACdviD,KAAKkiD,iBAAiBx3C,GAGjBA,GAGT4zC,kBAAmB,WACjB,GAAIkE,GAAiBn6C,EAAIo2B,MAAMz+B,KAAK+7C,QAAS,IAAM/7C,KAAKg8C,mBACpDyG,EAAkBp6C,EAAIo2B,MAAM+jB,EAAgB,IAAMxiD,KAAKg8C,kBAE3D,OAAO9zC,GAAUM,KAAKmuB,MAAM6rB,GAAgB3rB,QAAQ4rB,IAMtD3E,aAAc,WACZ,GAEI4E,GAFAp5B,KACApmB,EAAIlD,KAAKi8C,UAKb,IAFI/4C,GAAKomB,EAAO9nB,KAAK0B,GAEjBlD,KAAKg8C,mBAAqBh8C,KAAK+7C,SAAW74C,EAAG,CAC7C,GACIy/C,GADAtE,EAAcr+C,KAAKs+C,mBAEvB,IAAID,EAAYx8C,OAAS,EACvB,IAAK,GAAI+C,GAAI,EAAG6hC,EAAO4X,EAAYx8C,OAAY4kC,EAAJ7hC,EAAUA,IAAK,CACxD89C,IACA,KAAK,GAAI5jB,GAAI,EAAG8jB,EAAOt5B,EAAOznB,OAAY+gD,EAAJ9jB,EAAUA,IAAK,CACnD,GAAIxV,EAAOwV,GACT,OAAQxV,EAAOwV,GAAGre,YAAY49B,EAAYz5C,KACxC,IAAK,GAEL,KACA,KAAK,GAEH+9C,EAAWr5B,EAAOwV,GAAG1f,aACrBujC,EAAStlC,aAAaghC,EAAYz5C,IAClC89C,EAAUlhD,KAAKmhD,GAEfA,EAAWr5B,EAAOwV,GAAG1f,aACrBujC,EAASvlC,cAAcihC,EAAYz5C,IACnC89C,EAAUlhD,KAAKmhD,EACjB,MACA,SAEED,EAAUlhD,KAAK8nB,EAAOwV,IAG5BxV,EAASo5B,IAKnB,MAAOp5B,IAGTvC,aAAc,WACZ,MAAOnd,OAAMmd,aAAa/mB,KAAKgL,IAAIyH,aAAezS,KAAKgL,IAAI0H,eAM7DwpC,aAAc,SAASxxC,GACrB,GAAI6C,GAAYvN,KAAKgL,IAAIyH,aAAezS,KAAKgL,IAAI0H,aAC7CjK,EAAYmB,MAAMmd,aAAaxZ,EAEnC,OADA9E,GAAUihB,eAAehf,GACjBjC,GAAaA,EAAU2e,YAAc3e,EAAU6e,UAAa7e,EAAY,MAGlFiE,YAAa,WACX,MAAO9C,OAAM8C,YAAY1M,KAAKgL,MAGhCuZ,YAAa,WACT,MAAOvkB,MAAK+mB,eAAexC,aAG/Bs+B,QAAS,WACP,MAAO7iD,MAAK+mB,eAAepG,UAG7BmiC,aAAc,WACZ,MAAO9iD,MAAK+mB,eAAelkB,YAG7BkgD,iBAAkB,SAASC,GACzB,GAAIt4C,GAAQ1K,KAAKi8C,WACb1rC,EAAgB7F,EAAM2O,wBACtBwF,EAAYnU,EAAM4L,eAClBsI,EAAUlU,EAAM6L,YAOlB,IAJIhG,EAAcrB,WAAahH,EAAUa,YACvCwH,EAAgBA,EAAc7L,YAG5Bma,EAAU3P,WAAahH,EAAUa,YAAc,QAAUtC,KAAKoY,EAAU5K,KAAKymB,OAAOhwB,EAAMyM,cAC5F,OAAO,CAGT,IAAIyH,EAAQ1P,WAAahH,EAAUa,YAAc,QAAUtC,KAAKmY,EAAQ3K,KAAKymB,OAAOhwB,EAAM0M,YACxF,OAAO,CAGT,MAAOyH,GAAaA,IAActO,GAAe,CAC/C,GAAIsO,EAAU3P,WAAahH,EAAUa,YAAcb,EAAUG,IAAIpD,SAASsL,EAAesO,GACvF,OAAO,CAET,IAAI3W,EAAUG,IAAI01B,QAAQlf,GAAWqf,MAAMG,kBAAkB,IAC3D,OAAO,CAETxf,GAAYA,EAAUna,WAGxB,KAAOka,GAAWA,IAAYrO,GAAe,CAC3C,GAAIqO,EAAQ1P,WAAahH,EAAUa,YAAcb,EAAUG,IAAIpD,SAASsL,EAAeqO,GACrF,OAAO,CAET,IAAI1W,EAAUG,IAAI01B,QAAQnf,GAASpJ,MAAM6oB,kBAAkB,IACzD,OAAO,CAETzf,GAAUA,EAAQla,WAGpB,MAAQwD,GAAUM,KAAKmuB,MAAMqsB,GAAW/9C,SAASsL,EAAc1D,UAAa0D,GAAgB,GAGhG4pC,SAAU,WACR,GAAIjzB,GAAMlnB,KAAK+mB,cACfG,IAAOA,EAAIqE,sBAIdrjB,WASH,SAAUA,EAAW0B,GAKnB,QAAS0xB,GAASvsB,EAAIk0C,EAAUC,GAC9B,IAAKn0C,EAAGsgB,UACN,OAAO,CAGT,IAAI8zB,GAAqBp0C,EAAGsgB,UAAU1D,MAAMu3B,MAC5C,OAAOC,GAAmBA,EAAmBthD,OAAS,KAAOohD,EAG/D,QAASG,GAAar0C,EAAIm0C,GACxB,IAAKn0C,EAAGlI,eAAiBkI,EAAGlI,aAAa,SACvC,OAAO,CAEYkI,GAAGlI,aAAa,SAAS8kB,MAAMu3B,EACpD,OAASn0C,GAAGlI,aAAa,SAAS8kB,MAAMu3B,IAAW,GAAO,EAG5D,QAASnc,GAASh4B,EAAI4xC,EAAUuC,GAC1Bn0C,EAAGlI,aAAa,UAClBw8C,EAAYt0C,EAAIm0C,GACZn0C,EAAGlI,aAAa,WAAa,QAAUJ,KAAKsI,EAAGlI,aAAa,UAC9DkI,EAAG9H,aAAa,QAAS05C,EAAW,IAAM5xC,EAAGlI,aAAa,UAE1DkI,EAAG9H,aAAa,QAAS05C,IAG3B5xC,EAAG9H,aAAa,QAAS05C,GAI7B,QAAStlB,GAAStsB,EAAIk0C,EAAUC,GAC1Bn0C,EAAGsgB,WACLkM,EAAYxsB,EAAIm0C,GAChBn0C,EAAGsgB,WAAa,IAAM4zB,GAEtBl0C,EAAGsgB,UAAY4zB,EAInB,QAAS1nB,GAAYxsB,EAAIm0C,GACnBn0C,EAAGsgB,YACLtgB,EAAGsgB,UAAYtgB,EAAGsgB,UAAUpvB,QAAQijD,EAAQ,KAIhD,QAASG,GAAYt0C,EAAIm0C,GACvB,GAAIzgD,GACA6gD,IACJ,IAAIv0C,EAAGlI,aAAa,SAAU,CAC5BpE,EAAIsM,EAAGlI,aAAa,SAASE,MAAM,IACnC,KAAK,GAAInC,GAAInC,EAAEZ,OAAQ+C,KAChBnC,EAAEmC,GAAG+mB,MAAMu3B,IAAY,QAAUz8C,KAAKhE,EAAEmC,KAC3C0+C,EAAG9hD,KAAKiB,EAAEmC,GAGV0+C,GAAGzhD,OACLkN,EAAG9H,aAAa,QAASq8C,EAAG37C,KAAK,MAEjCoH,EAAGskC,gBAAgB,UAKzB,QAASkQ,GAAuBx0C,EAAImgB,GAClC,GAAIs0B,MACAC,EAASv0B,EAAMnoB,MAAM,KACrB28C,EAAU30C,EAAGlI,aAAa,QAE9B,IAAI68C,EAAS,CACXA,EAAUA,EAAQzjD,QAAQ,OAAQ,IAAI6M,cACtC02C,EAAQhiD,KAAK,GAAIoX,QAAO,YAAcsW,EAAMjvB,QAAQ,OAAQ,IAAIA,QAAQ,aAAc,QAAQ6M,cAAc7M,QAAQ,IAAK,MAAMA,QAAQ,iCAAkC,iCAAkC,MAE3M,KAAK,GAAI2E,GAAI6+C,EAAO5hD,OAAQ+C,IAAM,GAC3B,QAAU6B,KAAKg9C,EAAO7+C,KACzB4+C,EAAQhiD,KAAK,GAAIoX,QAAO,YAAc6qC,EAAO7+C,GAAG3E,QAAQ,OAAQ,IAAIA,QAAQ,aAAc,QAAQ6M,cAAc7M,QAAQ,IAAK,MAAMA,QAAQ,iCAAkC,iCAAkC,MAGnN,KAAK,GAAI6+B,GAAI,EAAG8jB,EAAOY,EAAQ3hD,OAAY+gD,EAAJ9jB,EAAUA,IAC/C,GAAI4kB,EAAQ/3B,MAAM63B,EAAQ1kB,IACxB,MAAO0kB,GAAQ1kB,GAKrB,OAAO,EAGT,QAAS6kB,GAAmBn/C,EAAMm/B,EAAMzU,EAAOG,GAC7C,MAAIH,GACKq0B,EAAuB/+C,EAAM0qB,GAC3BG,EACFnnB,EAAUG,IAAIizB,SAAS92B,EAAM6qB,GAE7BzlB,EAAMvB,IAAI4I,cAAc0yB,EAAMn/B,EAAK2O,QAAQrG,eAItD,QAAS82C,GAAoBn/C,EAAOk/B,EAAMzU,EAAOG,GAC/C,IAAK,GAAIzqB,GAAIH,EAAM5C,OAAQ+C,KACzB,IAAK++C,EAAmBl/C,EAAMG,GAAI++B,EAAMzU,EAAOG,GAC7C,OAAO,CAGX,OAAO5qB,GAAM5C,QAAS,GAAO,EAG/B,QAASgiD,GAAoB90C,EAAImgB,EAAOg0B,GAEtC,GAAIY,GAAaP,EAAuBx0C,EAAImgB,EAC5C,OAAI40B,IAEFT,EAAYt0C,EAAI+0C,GACT,WAGP/c,EAASh4B,EAAImgB,EAAOg0B,GACb,UAIX,QAASa,GAAeC,EAAKC,GAC3B,MAAOD,GAAI30B,UAAUpvB,QAAQikD,EAAqB,MAAQD,EAAI50B,UAAUpvB,QAAQikD,EAAqB,KAGvG,QAASC,GAAuBp1C,GAE9B,IADA,GAAIyB,GAASzB,EAAGrK,WACTqK,EAAG8E,YACRrD,EAAOsB,aAAa/C,EAAG8E,WAAY9E,EAErCyB,GAAO8N,YAAYvP,GAGrB,QAASq1C,GAAmCJ,EAAKC,GAC/C,GAAID,EAAI7gB,WAAWthC,QAAUoiD,EAAI9gB,WAAWthC,OAC1C,OAAO,CAET,KAAK,GAAwCwiD,GAAOC,EAAOj+C,EAAlDzB,EAAI,EAAGW,EAAMy+C,EAAI7gB,WAAWthC,OAAgC0D,EAAJX,IAAWA,EAG1E,GAFAy/C,EAAQL,EAAI7gB,WAAWv+B,GACvByB,EAAOg+C,EAAMh+C,KACD,SAARA,EAAiB,CAEnB,GADAi+C,EAAQL,EAAI9gB,WAAWohB,aAAal+C,GAChCg+C,EAAM1V,WAAa2V,EAAM3V,UAC3B,OAAO,CAET,IAAI0V,EAAM1V,WAAa0V,EAAMtpB,YAAcupB,EAAMvpB,UAC/C,OAAO,EAIb,OAAO,EAGT,QAASypB,GAAahgD,EAAM6N,GAC1B,MAAIzI,GAAMvB,IAAImJ,oBAAoBhN,GAClB,GAAV6N,IACO7N,EAAKkM,gBACL2B,GAAU7N,EAAK3C,SACf2C,EAAKqN,aAEP,EAIJQ,EAAS,GAAKA,EAAS7N,EAAKyK,WAAWpN,OAGhD,QAAS4iD,GAAYjgD,EAAMkgD,EAAgBC,EAAkB9pC,GAC3D,GAAI5I,EAYJ,IAXIrI,EAAMvB,IAAImJ,oBAAoBkzC,KACR,GAApBC,GACFA,EAAmB/6C,EAAMvB,IAAIoI,aAAai0C,GAC1CA,EAAiBA,EAAehgD,YACvBigD,GAAoBD,EAAe7iD,QAC5C8iD,EAAmB/6C,EAAMvB,IAAIoI,aAAai0C,GAAkB,EAC5DA,EAAiBA,EAAehgD,YAEhCuN,EAAUrI,EAAMvB,IAAI0J,cAAc2yC,EAAgBC,MAGjD1yC,GACE4I,GAAa6pC,IAAmB7pC,GAAW,CAE9C5I,EAAUyyC,EAAexyC,WAAU,GAC/BD,EAAQkC,IACVlC,EAAQohC,gBAAgB,KAG1B,KADA,GAAI/+B,GACIA,EAAQowC,EAAez1C,WAAW01C,IACxC1yC,EAAQjD,YAAYsF,EAEtB1K,GAAMvB,IAAIqJ,YAAYO,EAASyyC,GAInC,MAAQA,IAAkBlgD,EAAQyN,EAAWwyC,EAAYjgD,EAAMyN,EAAQvN,WAAYkF,EAAMvB,IAAIoI,aAAawB,GAAU4I,GAGtH,QAAS+pC,GAAMC,GACb7kD,KAAK8kD,eAAkBD,EAAU31C,UAAYhH,EAAUY,aACvD9I,KAAK+kD,cAAgB/kD,KAAK8kD,eAAiBD,EAAUvkC,UAAYukC,EACjE7kD,KAAK0hB,WAAa1hB,KAAK+kD;CAsCzB,QAASC,GAAYC,EAAUhC,EAAUiC,EAAoBp1B,EAAW6wB,EAAUwE,EAAoBtqC,GACpG7a,KAAKilD,SAAWA,IAAaG,GAC7BplD,KAAKijD,SAAWA,IAAcA,KAAa,GAAS,EAAQ,IAC5DjjD,KAAKklD,mBAAqBA,EAC1BllD,KAAK2gD,SAAWA,GAAY,GAC5B3gD,KAAKmlD,mBAAqBA,EAC1BnlD,KAAK8vB,UAAYA,EACjB9vB,KAAKqlD,mBAAoB,EACzBrlD,KAAK6a,UAAYA,EA1PnB,GAAIuqC,GAAiB,OAEjBlB,EAAsB,MA6M1BU,GAAM/kD,WACJylD,QAAS,WAEP,IAAK,GADcxwC,GAAUtE,EAAQkV,EAAjC6/B,KACK3gD,EAAI,EAAGW,EAAMvF,KAAK0hB,UAAU7f,OAAY0D,EAAJX,IAAWA,EACtDkQ,EAAW9U,KAAK0hB,UAAU9c,GAC1B4L,EAASsE,EAASpQ,WAClB6gD,EAAS3gD,GAAKkQ,EAASb,KACnBrP,IACF4L,EAAO8N,YAAYxJ,GACdtE,EAAO6P,iBACV7P,EAAO9L,WAAW4Z,YAAY9N,GAKpC,OADAxQ,MAAK+kD,cAAc9wC,KAAOyR,EAAO6/B,EAAS59C,KAAK,IACxC+d,GAGT8/B,UAAW,WAET,IADA,GAAI5gD,GAAI5E,KAAK0hB,UAAU7f,OAAQ0D,EAAM,EAC9BX,KACLW,GAAOvF,KAAK0hB,UAAU9c,GAAG/C,MAE3B,OAAO0D,IAGT1C,SAAU,WAER,IAAK,GADD0iD,MACK3gD,EAAI,EAAGW,EAAMvF,KAAK0hB,UAAU7f,OAAY0D,EAAJX,IAAWA,EACtD2gD,EAAS3gD,GAAK,IAAM5E,KAAK0hB,UAAU9c,GAAGqP,KAAO,GAE/C,OAAO,UAAYsxC,EAAS59C,KAAK,KAAO,OAe5Cq9C,EAAYnlD,WACV4lD,qBAAsB,SAASjhD,GAE7B,IADA,GAAIkhD,GACGlhD,GAAM,CAEX,GADAkhD,EAAgB1lD,KAAKijD,SAAW3nB,EAAS92B,EAAMxE,KAAKijD,SAAUjjD,KAAKklD,oBAAyC,KAAlBllD,KAAK2gD,UAAmB,GAAQ,EACtHn8C,EAAK0K,UAAYhH,EAAUY,cAAwD,SAAxCtE,EAAKqC,aAAa,oBAAkC+C,EAAMvB,IAAI4I,cAAcjR,KAAKilD,SAAUzgD,EAAK2O,QAAQrG,gBAAkB44C,EACvK,MAAOlhD,EAETA,GAAOA,EAAKE,WAEd,OAAO,GAITihD,qBAAsB,SAASnhD,GAE7B,IADA,GAAIohD,GACGphD,GAAM,CAGX,GAFAohD,EAAgB5lD,KAAK2gD,SAAWyC,EAAa5+C,EAAMxE,KAAKmlD,qBAAsB,EAE1E3gD,EAAK0K,UAAYhH,EAAUY,cAAwD,SAAxCtE,EAAKqC,aAAa,oBAAiC+C,EAAMvB,IAAI4I,cAAcjR,KAAKilD,SAAUzgD,EAAK2O,QAAQrG,gBAAkB84C,EACtK,MAAOphD,EAETA,GAAOA,EAAKE,WAEd,OAAO,GAGTmhD,oBAAqB,SAASrhD,GAC5B,GAAI2M,GAAWnR,KAAKylD,qBAAqBjhD,GACrCshD,GAAY,CAahB,OAXK30C,GAMCnR,KAAK2gD,WACPmF,EAAY,UANd30C,EAAWnR,KAAK2lD,qBAAqBnhD,GACjC2M,IACF20C,EAAY,WASdr4B,QAAWtc,EACXzQ,KAAQolD,IAKZC,UAAW,SAASrkC,EAAWhX,GAU7B,IAAK,GAPYs7C,GAKblxC,EAAUmxC,EAPVpB,EAAYnjC,EAAU,GAAIk+B,EAAWl+B,EAAUA,EAAU7f,OAAS,GAElEqkD,KAEAC,EAAiBtB,EAAWuB,EAAexG,EAC3CyG,EAAmB,EAAGC,EAAiB1G,EAAS/9C,OAI3C+C,EAAI,EAAGW,EAAMmc,EAAU7f,OAAY0D,EAAJX,IAAWA,EACjDkQ,EAAW4M,EAAU9c,GACrBqhD,EAAoB,KAChBnxC,GAAYA,EAASpQ,aACvBuhD,EAAoBjmD,KAAKumD,6BAA6BzxC,EAASpQ,YAAY,IAEzEuhD,GACGD,IACHA,EAAe,GAAIpB,GAAMqB,GACzBC,EAAO1kD,KAAKwkD,IAEdA,EAAatkC,UAAUlgB,KAAKsT,GACxBA,IAAa+vC,IACfsB,EAAiBH,EAAajB,cAC9BsB,EAAmBF,EAAetkD,QAEhCiT,IAAa8qC,IACfwG,EAAeJ,EAAajB,cAC5BuB,EAAiBN,EAAaR,cAGhCQ,EAAe,IAInB,IAAGpG,GAAYA,EAASl7C,WAAY,CAClC,GAAI8hD,GAAexmD,KAAKumD,6BAA6B3G,EAASl7C,YAAY,EACtE8hD,KACGR,IACHA,EAAe,GAAIpB,GAAMhF,GACzBsG,EAAO1kD,KAAKwkD,IAEdA,EAAatkC,UAAUlgB,KAAKglD,IAIhC,GAAIN,EAAOrkD,OAAQ,CACjB,IAAK+C,EAAI,EAAGW,EAAM2gD,EAAOrkD,OAAY0D,EAAJX,IAAWA,EAC1CshD,EAAOthD,GAAG0gD,SAGZ56C,GAAMqS,SAASopC,EAAgBE,GAC/B37C,EAAMsS,OAAOopC,EAAcE,KAI/BC,6BAA8B,SAAS/hD,EAAMiiD,GACzC,GAEIC,GAFAC,EAAcniD,EAAK0K,UAAYhH,EAAUa,UACzCgG,EAAK43C,EAAaniD,EAAKE,WAAaF,EAEpC2Q,EAAWsxC,EAAU,cAAgB,iBACzC,IAAIE,GAGF,GADAD,EAAeliD,EAAK2Q,GAChBuxC,GAAgBA,EAAax3C,UAAYhH,EAAUa,UACrD,MAAO29C,OAKT,IADAA,EAAe33C,EAAGoG,GACduxC,GAAgB1mD,KAAK4mD,qBAAqBpiD,EAAMkiD,GAClD,MAAOA,GAAaD,EAAU,aAAe,YAGjD,OAAO,OAGXG,qBAAsB,SAAS5C,EAAKC,GAClC,MAAOr6C,GAAMvB,IAAI4I,cAAcjR,KAAKilD,UAAWjB,EAAI7wC,SAAW,IAAIrG,gBAC7DlD,EAAMvB,IAAI4I,cAAcjR,KAAKilD,UAAWhB,EAAI9wC,SAAW,IAAIrG,gBAC3Di3C,EAAeC,EAAKC,IACpBG,EAAmCJ,EAAKC,IAG/C4C,gBAAiB,SAAS77C,GACxB,GAAI+D,GAAK/D,EAAInG,cAAc7E,KAAKilD,SAAS,GAOzC,OANIjlD,MAAKijD,WACPl0C,EAAGsgB,UAAYrvB,KAAKijD,UAElBjjD,KAAK2gD,UACP5xC,EAAG9H,aAAa,QAASjH,KAAK2gD,UAEzB5xC,GAGT+3C,gBAAiB,SAAShyC,GACxB,GAAItE,GAASsE,EAASpQ,UACtB,IAAgC,GAA5B8L,EAAOvB,WAAWpN,QAAe+H,EAAMvB,IAAI4I,cAAcjR,KAAKilD,SAAUz0C,EAAO2C,QAAQrG,eAErF9M,KAAKijD,UACP5nB,EAAS7qB,EAAQxQ,KAAKijD,SAAUjjD,KAAKklD,oBAEnCllD,KAAK2gD,UACP5Z,EAASv2B,EAAQxQ,KAAK2gD,SAAU3gD,KAAKmlD,wBAElC,CACL,GAAIp2C,GAAK/O,KAAK6mD,gBAAgBj9C,EAAMvB,IAAIiK,YAAYwC,GACpDA,GAASpQ,WAAWoN,aAAa/C,EAAI+F,GACrC/F,EAAGC,YAAY8F,KAInBiyC,YAAa,SAASh4C,GACpB,MAAOnF,GAAMvB,IAAI4I,cAAcjR,KAAKilD,SAAUl2C,EAAGoE,QAAQrG,gBACF,KAA/C5E,EAAUM,KAAK0wB,OAAOnqB,EAAGsgB,WAAWvvB,UAEjCiP,EAAGlI,aAAa,UAC0C,KAA3DqB,EAAUM,KAAK0wB,OAAOnqB,EAAGlI,aAAa,UAAU/G,SAI5DknD,eAAgB,SAASlyC,EAAUpK,EAAOu8C,EAAmBC,GAC3D,GAAIC,GAAY,GAAsB,GAAQ,EAC1Ch2C,EAAW81C,GAAqBC,EAChCE,GAAe,CACnB,KAAK18C,EAAM0W,aAAajQ,GAAW,CAEjC,GAAIk2C,GAAgB38C,EAAM0U,YACtBioC,GAAc5pC,WAAWtM,GAEzBk2C,EAAcxmC,eAAenW,EAAM6L,aAAc7L,EAAM0M,YAAcotC,EAAa95C,EAAM6L,aAAc7L,EAAM0M,aAC5GqtC,EAAYtzC,EAAUzG,EAAM6L,aAAc7L,EAAM0M,UAAWpX,KAAK6a,WAChEnQ,EAAM4S,YAAYnM,IAElBk2C,EAAcxmC,eAAenW,EAAM4L,eAAgB5L,EAAMyM,cAAgBqtC,EAAa95C,EAAM4L,eAAgB5L,EAAMyM,eAClHhG,EAAWszC,EAAYtzC,EAAUzG,EAAM4L,eAAgB5L,EAAMyM,YAAanX,KAAK6a,aAIhFssC,GAAannD,KAAKklD,oBACrB3pB,EAAYpqB,EAAUnR,KAAKklD,oBAGzBiC,GAAannD,KAAKmlD,qBACpBiC,EAA0F,WAA1EvD,EAAoB1yC,EAAUnR,KAAK2gD,SAAU3gD,KAAKmlD,qBAEhEnlD,KAAK+mD,YAAY51C,KAAci2C,GACjCjD,EAAuBhzC,IAI3Bm2C,aAAc,SAAS58C,GAEnB,IAAK,GADDgX,GACK6lC,EAAK78C,EAAM7I,OAAQ0lD,KAAO,CAG/B,GAFA7lC,EAAYhX,EAAM68C,GAAI5lC,UAAUzZ,EAAUa,aAErC2Y,EAAU7f,OACb,IACE,GAAI2C,GAAOxE,KAAK6mD,gBAAgBn8C,EAAM68C,GAAIhxC,aAAahE,cAGvD,OAFA7H,GAAM68C,GAAIpnC,iBAAiB3b,OAC3BxE,MAAKyd,WAAW/S,EAAM68C,GAAK/iD,GAE3B,MAAM1D,IAKV,GAFA4J,EAAM68C,GAAIvpC,kBACV0D,EAAYhX,EAAM68C,GAAI5lC,UAAUzZ,EAAUa,YACtC2Y,EAAU7f,OAAQ,CAGpB,IAAK,GAFDiT,GAEKlQ,EAAI,EAAGW,EAAMmc,EAAU7f,OAAY0D,EAAJX,IAAWA,EACjDkQ,EAAW4M,EAAU9c,GAChB5E,KAAK6lD,oBAAoB/wC,GAAU2Y,SACtCztB,KAAK8mD,gBAAgBhyC,EAIzBpK,GAAM68C,GAAIxqC,SAAS2E,EAAU,GAAI,GACjC5M,EAAW4M,EAAUA,EAAU7f,OAAS,GACxC6I,EAAM68C,GAAIvqC,OAAOlI,EAAUA,EAASjT,QAEhC7B,KAAK8vB,WACP9vB,KAAK+lD,UAAUrkC,EAAWhX,EAAM68C,OAO5CC,YAAa,SAAS98C,GAEpB,IAAK,GADDgX,GAAW5M,EAAgD3D,EACtDo2C,EAAK78C,EAAM7I,OAAQ0lD,KAAO,CAG/B,GADA7lC,EAAYhX,EAAM68C,GAAI5lC,UAAUzZ,EAAUa,YACtC2Y,EAAU7f,OACZ6I,EAAM68C,GAAIvpC,kBACV0D,EAAYhX,EAAM68C,GAAI5lC,UAAUzZ,EAAUa,gBACrC,CACL,GAAIiC,GAAMN,EAAM68C,GAAIhxC,aAAahE,cAC7B/N,EAAOwG,EAAI+J,eAAe7M,EAAUS,gBACxC+B,GAAM68C,GAAItnC,WAAWzb,GACrBkG,EAAM68C,GAAI9pC,WAAWjZ,GACrBkd,GAAald,GAGf,IAAK,GAAII,GAAI,EAAGW,EAAMmc,EAAU7f,OAAY0D,EAAJX,IAAWA,EAC7C8F,EAAM68C,GAAI7kC,YACZ5N,EAAW4M,EAAU9c,GAErBuM,EAAWnR,KAAK6lD,oBAAoB/wC,GACd,UAAlB3D,EAASzQ,KACXV,KAAKgnD,eAAelyC,EAAUpK,EAAM68C,IAAK,EAAOp2C,EAASsc,SAChDtc,EAASsc,SAClBztB,KAAKgnD,eAAelyC,EAAUpK,EAAM68C,GAAKp2C,EAASsc,SAK7C,IAAPloB,EACFvF,KAAKyd,WAAW/S,EAAM68C,GAAK7lC,EAAU,KAErChX,EAAM68C,GAAIxqC,SAAS2E,EAAU,GAAI,GACjC5M,EAAW4M,EAAUA,EAAU7f,OAAS,GACxC6I,EAAM68C,GAAIvqC,OAAOlI,EAAUA,EAASjT,QAEhC7B,KAAK8vB,WACP9vB,KAAK+lD,UAAUrkC,EAAWhX,EAAM68C,OAO1C9pC,WAAY,SAAS/S,EAAOlG,GAC1B,GAAIi5C,GAAkBj5C,EAAK0K,WAAahH,EAAUY,aAC9C6b,EAAkB,eAAiBngB,GAAOA,EAAKmgB,aAAc,EAC7DvE,EAAkBq9B,EAAYj5C,EAAK4P,UAAY5P,EAAKyP,KACpDm6B,EAA+B,KAAZhuB,GAAkBA,IAAYlY,EAAUS,eAE/D,IAAIylC,GAAWqP,GAAa94B,EAE1B,IAAMngB,EAAK4P,UAAYlM,EAAUS,gBAAmB,MAAM7H,IAE5D4J,EAAM8S,mBAAmBhZ,GACrB4pC,GAAWqP,EACb/yC,EAAM6S,UAAS,GACN6wB,IACT1jC,EAAM0S,cAAc5Y,GACpBkG,EAAM4S,YAAY9Y,KAItBijD,uBAAwB,SAAS3yC,EAAUpK,GACzC,GAAImZ,GAAYnZ,EAAM0U,YACtByE,GAAUrG,mBAAmB1I,EAE7B,IAAImM,GAAoB4C,EAAU7C,aAAatW,GAC3Cgb,EAAOzE,EAAoBA,EAAkBpe,WAAa,EAG9D,OAFAghB,GAAUpO,SAEHiQ,GAGTgiC,iBAAkB,SAASh9C,GAKzB,IAAK,GAFDyG,GAAyBuQ,EAFzB1Q,KACA22C,EAAc,OAGTJ,EAAK78C,EAAM7I,OAAQ0lD,KAAO,CAGjC,GADA7lC,EAAYhX,EAAM68C,GAAI5lC,UAAUzZ,EAAUa,aACrC2Y,EAAU7f,OAGb,MAFAsP,GAAWnR,KAAK6lD,oBAAoBn7C,EAAM68C,GAAIjxC,gBAAgBmX,QAEvD,GACLspB,UAAa5lC,GACby2C,SAAYD,IACV,CAGN,KAAK,GAAmCE,GAA/BjjD,EAAI,EAAGW,EAAMmc,EAAU7f,OAA0B0D,EAAJX,IAAWA,EAC/DijD,EAAe7nD,KAAKynD,uBAAuB/lC,EAAU9c,GAAI8F,EAAM68C,IAC/Dp2C,EAAWnR,KAAK6lD,oBAAoBnkC,EAAU9c,IAAI6oB,QAC9Ctc,GAA4B,IAAhB02C,GACd72C,EAAUxP,KAAK2P,GAE2C,IAAtDjJ,EAAUG,IAAI83B,aAAahvB,GAAU,GAAMtP,OAC7C8lD,EAAc,OACW,SAAhBA,IACTA,EAAc,WAENx2C,IACVw2C,EAAc,WAMpB,MAAQ32C,GAAgB,QACtB+lC,SAAY/lC,EACZ42C,SAAYD,IACV,GAGNG,YAAa,SAASp9C,GACpB,GACIq9C,GADAC,EAAYhoD,KAAK0nD,iBAAiBh9C,EAGlCs9C,GACyB,SAAvBA,EAAUJ,SACZ5nD,KAAKwnD,YAAY98C,GACe,WAAvBs9C,EAAUJ,UACnBG,EAAoBnE,EAAoBoE,EAAUjR,SAAU/2C,KAAKilD,SAAUjlD,KAAK2gD,SAAU3gD,KAAKijD,UAC/FjjD,KAAKwnD,YAAY98C,GACZq9C,GACH/nD,KAAKsnD,aAAa58C,KAIfk5C,EAAoBoE,EAAUjR,SAAU/2C,KAAKilD,SAAUjlD,KAAK2gD,SAAU3gD,KAAKijD,WAC9EjjD,KAAKwnD,YAAY98C,GAEnB1K,KAAKsnD,aAAa58C,IAGpB1K,KAAKsnD,aAAa58C,KAKxBxC,EAAUO,UAAUu8C,YAAcA,GAEjC98C,UAAW0B,OAOd1B,UAAU+/C,SAAWv3B,KAAKpiB,QAExB2N,YAAa,SAAS2xB,GACpB5tC,KAAK4tC,OAAWA,EAChB5tC,KAAK63C,SAAWjK,EAAOiK,SACvB73C,KAAKgL,IAAWhL,KAAK63C,SAAS7sC,KAUhCk9C,QAAS,SAASvzB,GAChB,MAAOzsB,WAAU4pB,QAAQuC,gBAAgBr0B,KAAKgL,IAAK2pB,IAWrDpC,KAAM,SAASoC,EAASrD,GACtB,GAAI9iB,GAAUtG,UAAUE,SAASusB,GAC7B1X,EAAU/U,UAAUM,KAAKmuB,MAAMjzB,WAAWpB,MAC1C6C,EAAUqJ,GAAOA,EAAI+jB,KACrB7qB,EAAU,IAWd,IAPI1H,KAAK63C,SAAS5J,sBAAwB/lC,UAAUM,KAAKmuB,OAAO,eAAgB,uBAAwB,6BAA6B1xB,SAAS0vB,KAC5I30B,KAAK63C,SAASpqB,QAAQrZ,UAAY,GAClCpU,KAAK63C,SAASpvC,UAAUgV,WAAWzd,KAAK63C,SAASpqB,UAGnDztB,KAAK4tC,OAAO5V,KAAK,0BAEb7yB,EACF8X,EAAK+xB,QAAQhvC,KAAK63C,UAClBnwC,EAASvC,EAAOrB,MAAM0K,EAAKyO,OAE3B,KAEEvV,EAAS1H,KAAKgL,IAAIioB,YAAY0B,GAAS,EAAOrD,GAC9C,MAAMxwB,IAIV,MADAd,MAAK4tC,OAAO5V,KAAK,yBACVtwB,GAaTygD,MAAO,SAASxzB,GACd,GAAInmB,GAAUtG,UAAUE,SAASusB,GAC7B1X,EAAU/U,UAAUM,KAAKmuB,MAAMjzB,WAAWpB,MAC1C6C,EAAUqJ,GAAOA,EAAI25C,KACzB,IAAIhjD,EAEF,MADA8X,GAAK+xB,QAAQhvC,KAAK63C,UACX1yC,EAAOrB,MAAM0K,EAAKyO,EAEzB,KAEE,MAAOjd,MAAKgL,IAAImoB,kBAAkBwB,GAClC,MAAM7zB,GACN,OAAO,IAMbsnD,WAAY,SAASzzB,GACnB,GAAInmB,GAAUtG,UAAUE,SAASusB,GAC7B1X,EAAU/U,UAAUM,KAAKmuB,MAAMjzB,WAAWpB,MAC1C6C,EAAUqJ,GAAOA,EAAI45C,UACzB,OAAIjjD,IACF8X,EAAK+xB,QAAQhvC,KAAK63C,UACX1yC,EAAOrB,MAAM0K,EAAKyO,KAElB,KAIZ/U,UAAUE,SAASigD,MAClB91B,KAAM,SAASslB,EAAUljB,GACvBzsB,UAAUE,SAASkgD,aAAaC,eAAe1Q,EAAUljB,EAAS,MAGpEwzB,MAAO,SAAStQ,EAAUljB,GAMxB,MAAOzsB,WAAUE,SAASkgD,aAAaH,MAAMtQ,EAAUljB,EAAS,OAInE,SAAUzsB,GAKT,QAASsgD,GAAQ3Q,EAAU1U,GACzB,GAIIthC,GACA4mD,EACA5+B,EACA6+B,EACAta,EACAua,EACAroB,EACAsoB,EACA9pB,EAZA9zB,EAAkB6sC,EAAS7sC,IAC3B69C,EAAkB,qBAAuB,GAAI95B,MAC7C+5B,EAAkB,sBAClBlkD,EAAkB,CAatB,KAHAsD,EAAUE,SAASkgD,aAAa/1B,KAAKslB,EAAUkR,EAAOC,EAAWH,EAAWC,EAAiBC,EAAOA,GAAO,GAAM,GACjHN,EAAUz9C,EAAIrG,iBAAiBqkD,EAAY,IAAMH,GACjDhnD,EAAU4mD,EAAQ5mD,OACTA,EAAF+C,EAAUA,IAAK,CACpBilB,EAAS4+B,EAAQ7jD,GACjBilB,EAAOwpB,gBAAgB,QACvB,KAAKvU,IAAKqE,GAEE,SAANrE,GACFjV,EAAO5iB,aAAa63B,EAAGqE,EAAWrE,IAKxC6pB,EAAyB9+B,EACV,IAAXhoB,IACFy+B,EAAcj4B,EAAIkmC,eAAe1kB,GACjC6+B,IAAoB7+B,EAAOwJ,cAAc,KACzC+a,EAA0B,KAAhB9N,GAAsBA,IAAgBp4B,EAAUS,iBACrD+/C,GAAmBta,IACtB/lC,EAAIimC,eAAezkB,EAAQsZ,EAAWzd,MAAQmE,EAAOye,MACrDsgB,EAAa59C,EAAI+J,eAAe,KAChC8iC,EAASpvC,UAAUi0C,SAAS7yB,GAC5BxhB,EAAIq0B,OAAOksB,GAAYjsB,MAAM9S,GAC7B8+B,EAAyBC,IAG7B/Q,EAASpvC,UAAUi0C,SAASiM,GAI9B,QAASM,GAAapR,EAAU4Q,EAAStlB,GAEvC,IAAK,GADD+lB,GACKnmD,EAAI0lD,EAAQ5mD,OAAQkB,KAAM,CAGjCmmD,EAAWT,EAAQ1lD,GAAGogC,UACtB,KAAK,GAAIgmB,GAAKD,EAASrnD,OAAQsnD,KAC7BV,EAAQ1lD,GAAGswC,gBAAgB6V,EAAShjD,KAAKijD,GAAI9iD,KAI/C,KAAK,GAAIy4B,KAAKqE,GACRA,EAAW50B,eAAeuwB,IAC5B2pB,EAAQ1lD,GAAGkE,aAAa63B,EAAGqE,EAAWrE,KA9D9C,GAAIiqB,GACAC,EAAY,IACZ3gD,EAAYH,EAAUG,GAmE1BH,GAAUE,SAASghD,YAajB72B,KAAM,SAASslB,EAAUljB,EAASrD,GAChC,GAAIm3B,GAAUzoD,KAAKmoD,MAAMtQ,EAAUljB,EACnC,IAAI8zB,EAAS,CAEX,KAAMn3B,IAAUA,EAAMgX,OAA4B,OAAnBmgB,EAAQ5mD,QAAsCgwB,SAAnB42B,EAAQ5mD,QAAwB4mD,EAAQ5mD,OAAS,EAC3G,CACE,IAAI,GAAI+C,GAAE,EAAGA,EAAI6jD,EAAQ5mD,OAAQ+C,IAE/BsD,EAAUG,IAAI07B,OAAO0kB,EAAQ7jD,GAE/B,QAIFizC,EAASpvC,UAAUs3C,kBAAkB,WACnCkJ,EAAapR,EAAU4Q,EAASn3B,SAI9BA,IAASA,EAAMgX,OACjBhX,EAA0B,gBAAZ,GAAuBA,GAAUgX,KAAMhX,GACrDk3B,EAAQ3Q,EAAUvmB,KAKxB62B,MAAO,SAAStQ,EAAUljB,GACxB,MAAOzsB,GAAUE,SAASkgD,aAAaH,MAAMtQ,EAAUljB,EAAS,QAGnEzsB,WACF,SAAUA,GAGT,QAASmhD,GAAcxR,EAAU4Q,GAM/B,IALA,GAEI5+B,GACAy/B,EACAhpB,EAJAz+B,EAAU4mD,EAAQ5mD,OAClB+C,EAAU,EAIL/C,EAAF+C,EAAUA,IACfilB,EAAc4+B,EAAQ7jD,GACtB0kD,EAAcjhD,EAAIi3B,iBAAiBzV,GAAU4U,MAAO,SACpD6B,EAAcj4B,EAAIkmC,eAAe1kB,GAI7ByW,EAAY3U,MAAMtjB,EAAIuxB,SAASK,eAAiBqvB,EAElDA,EAAcjhD,EAAI4hC,cAAcpgB,EAAQ,QAExCxhB,EAAI+hC,sBAAsBvgB,GAnBhC,GAAIxhB,GAAMH,EAAUG,GAwBpBH,GAAUE,SAASmhD,YASjBh3B,KAAM,SAASslB,EAAUljB,GACvB,GAAI8zB,GAAUzoD,KAAKmoD,MAAMtQ,EAAUljB,EAC/B8zB,IACF5Q,EAASpvC,UAAUs3C,kBAAkB,WACnCsJ,EAAcxR,EAAU4Q,MAK9BN,MAAO,SAAStQ,EAAUljB,GACxB,MAAOzsB,GAAUE,SAASkgD,aAAaH,MAAMtQ,EAAUljB,EAAS,QAGnEzsB,WAMH,SAAUA,GACR,GAAImgC,GAAU,gCAEdngC,GAAUE,SAAS4wC,UACjBzmB,KAAM,SAASslB,EAAUljB,EAAS60B,GAC9BthD,EAAUE,SAASkgD,aAAaC,eAAe1Q,EAAUljB,EAAS,OAAQ,qBAAuB60B,EAAMnhB,IAG3G8f,MAAO,SAAStQ,EAAUljB,EAAS60B,GACjC,MAAOthD,GAAUE,SAASkgD,aAAaH,MAAMtQ,EAAUljB,EAAS,OAAQ,qBAAuB60B,EAAMnhB,MAGxGngC,WAEH,SAAUA,GACR,GAAImgC,GAAU,mCAEdngC,GAAUE,SAASqhD,eACjBl3B,KAAM,SAASslB,EAAUljB,EAAS60B,GAChCA,EAAwB,gBAAV,GAAsBA,EAAKA,KAAOA,EAC3C,QAAU/iD,KAAK+iD,IAClBthD,EAAUE,SAASkgD,aAAaC,eAAe1Q,EAAUljB,EAAS,QAAQ,GAAO,EAAO,aAAe60B,EAAMnhB,IAIjH8f,MAAO,SAAStQ,EAAUljB,GACxB,MAAOzsB,GAAUE,SAASkgD,aAAaH,MAAMtQ,EAAUljB,EAAS,QAAQ,GAAO,EAAO,YAAa0T,IAGrG+f,WAAY,SAASvQ,EAAUljB,GAC7B,GACIyjB,GADAsR,EAAK1pD,KAAKmoD,MAAMtQ,EAAUljB,EAO9B,OAHI+0B,IAAMxhD,EAAUM,KAAK/G,OAAOioD,GAAI/mD,YAChC+mD,EAAKA,EAAG,IAERA,IACFtR,EAAWsR,EAAG7iD,aAAa,UAElBqB,EAAUI,OAAOsyC,YAAYS,cAAcjD,IAG/C,KAGVlwC,WAMH,SAAUA,GACR,GAAImgC,GAAU,0BAEdngC,GAAUE,SAASuhD,WACjBp3B,KAAM,SAASslB,EAAUljB,EAASokB,GAC9B7wC,EAAUE,SAASkgD,aAAaC,eAAe1Q,EAAUljB,EAAS,OAAQ,iBAAmBokB,EAAO1Q,IAGxG8f,MAAO,SAAStQ,EAAUljB,EAASokB,GACjC,MAAO7wC,GAAUE,SAASkgD,aAAaH,MAAMtQ,EAAUljB,EAAS,OAAQ,iBAAmBokB,EAAO1Q,MAGrGngC,WAMH,SAAUA,GACR,GAAImgC,GAAU,+BAEdngC,GAAUE,SAASwhD,gBACjBr3B,KAAM,SAASslB,EAAUljB,EAASokB,GAChC,GACI8Q,GADAC,EAAa5hD,EAAUI,OAAOsyC,YAAYC,WAA6B,gBAAX,GAAuB,SAAW9B,EAAMA,MAAQ,SAAWA,EAAO,QAG9H+Q,KACFD,EAAY,cAAgBC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,KAChE,IAAjBA,EAAU,KACZD,GAAa,eAAiBC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,MAE9G5hD,EAAUE,SAASkgD,aAAaC,eAAe1Q,EAAUljB,EAAS,QAAQ,GAAO,EAAOk1B,EAAWxhB,KAIvG8f,MAAO,SAAStQ,EAAUljB,GACxB,MAAOzsB,GAAUE,SAASkgD,aAAaH,MAAMtQ,EAAUljB,EAAS,QAAQ,GAAO,EAAO,QAAS0T,IAGjG+f,WAAY,SAASvQ,EAAUljB,EAASnqB,GACtC,GACIu/C,GADAL,EAAK1pD,KAAKmoD,MAAMtQ,EAAUljB,EAO9B,OAJI+0B,IAAMxhD,EAAUM,KAAK/G,OAAOioD,GAAI/mD,YAClC+mD,EAAKA,EAAG,IAGNA,IACFK,EAAWL,EAAG7iD,aAAa,SACvBkjD,GACEA,IACF/0C,IAAM9M,EAAUI,OAAOsyC,YAAYC,WAAWkP,EAAU,SACjD7hD,EAAUI,OAAOsyC,YAAYQ,aAAapmC,IAAKxK,KAIrD,KAIVtC,WAEH,SAAUA,GACR,GAAImgC,GAAU,0CAEdngC,GAAUE,SAAS4hD,cACjBz3B,KAAM,SAASslB,EAAUljB,EAASokB,GAChC,GACI8Q,GADAC,EAAa5hD,EAAUI,OAAOsyC,YAAYC,WAA6B,gBAAX,GAAuB,oBAAsB9B,EAAMA,MAAQ,oBAAsBA,EAAO,mBAGpJ+Q,KACFD,EAAY,yBAA2BC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,KAC3E,IAAjBA,EAAU,KACZD,GAAa,0BAA4BC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,MAEzH5hD,EAAUE,SAASkgD,aAAaC,eAAe1Q,EAAUljB,EAAS,QAAQ,GAAO,EAAOk1B,EAAWxhB,KAIvG8f,MAAO,SAAStQ,EAAUljB,GACxB,MAAOzsB,GAAUE,SAASkgD,aAAaH,MAAMtQ,EAAUljB,EAAS,QAAQ,GAAO,EAAO,mBAAoB0T,IAG5G+f,WAAY,SAASvQ,EAAUljB,EAASnqB,GACtC,GACIu/C,GADAL,EAAK1pD,KAAKmoD,MAAMtQ,EAAUljB,GAE1B3f,GAAM,CAMV,OAJI00C,IAAMxhD,EAAUM,KAAK/G,OAAOioD,GAAI/mD,YAClC+mD,EAAKA,EAAG,IAGNA,IACFK,EAAWL,EAAG7iD,aAAa,WAEzBmO,EAAM9M,EAAUI,OAAOsyC,YAAYC,WAAWkP,EAAU,oBACjD7hD,EAAUI,OAAOsyC,YAAYQ,aAAapmC,EAAKxK,KAGnD,KAIVtC,WAMH,SAAUA,GASR,QAAS+hD,GAAQpS,GAMf,IAAK,GALDh9B,GAAYg9B,EAASpqB,QACrBy8B,EAAcrvC,EAAUlW,iBAAiBwlD,gBACzC9L,EAAcxjC,EAAUlW,iBAAiBkzC,EAAS7rC,OAAOo+C,8BACzDrT,EAAW7uC,EAAUM,KAAKmuB,MAAMuzB,GAAarzB,QAAQwnB,GAEhDz5C,EAAImyC,EAASl1C,OAAQ+C,KACE,KAA1BmyC,EAASnyC,GAAGwP,WACd2iC,EAASnyC,GAAGF,WAAW4Z,YAAYy4B,EAASnyC,IAKlD,QAASylD,GAAgBxS,GACvB,MAAOA,GAAS7rC,OAAOw+B,cAAgB,MAAQ,IAIjD,QAAS8f,GAAe9lD,EAAMqW,EAAW0vC,GAIvC,IAHA,GAAIx5C,GAAIvM,EACJmtB,EAAQ,KAEL5gB,GAAK8J,GAAa9J,IAAM8J,GACV,IAAf9J,EAAE7B,UAAkB6B,EAAE9M,QAAQsmD,EAAYJ,eAAiBK,KAC7D74B,EAAQ5gB,GAEVA,EAAIA,EAAErM,UAGR,OAAOitB,GAMT,QAAS84B,GAAsBh9B,EAAS5e,EAASgpC,GAwB/C,MAtBKpqB,KACHA,EAAUoqB,EAAS7sC,IAAInG,cAAcgK,EAAQhC,UAAYw9C,EAAgBxS,IAEzEpqB,EAAQze,YAAY6oC,EAAS7sC,IAAI+J,eAAe7M,EAAUS,mBAGxDkG,EAAQhC,UAAY4gB,EAAQ5gB,WAAagC,EAAQhC,WACnD4gB,EAAUplB,EAAI4hC,cAAcxc,EAAS5e,EAAQhC,WAI3CgC,EAAQ6vB,cACVjR,EAAQ4B,UAAY5B,EAAQ4B,UAAUpvB,QAAQ4O,EAAQ6vB,YAAa,KAEjE7vB,EAAQwgB,WACV5B,EAAQ1oB,UAAUC,IAAI6J,EAAQwgB,WAG5BxgB,EAAQ8vB,eAA+C,mBAAvB9vB,GAAQmwB,aAC1CvR,EAAQyB,MAAMhnB,EAAU4pB,QAAQ4E,YAAY7nB,EAAQ8vB,gBAAkB9vB,EAAQmwB,YAGzEvR,EAKT,QAASi9B,GAAyBj9B,EAAS5e,EAASgpC,GAClD,GAAI3oB,EAEArgB,GAAQ8vB,gBACVlR,EAAQyB,MAAMhnB,EAAU4pB,QAAQ4E,YAAY7nB,EAAQ8vB,gBAAkB,IAEpE9vB,EAAQwgB,WACV5B,EAAQ1oB,UAAUyC,OAAOqH,EAAQwgB,WAG/BxgB,EAAQ6vB,cACVjR,EAAQ4B,UAAY5B,EAAQ4B,UAAUpvB,QAAQ4O,EAAQ6vB,YAAa,KAI/B,OAAlCjR,EAAQ5mB,aAAa,UAA8D,KAAzC4mB,EAAQ5mB,aAAa,SAAS/G,QAC1E2tB,EAAQ4lB,gBAAgB,SAGtBxkC,EAAQhC,UAAY4gB,EAAQ5gB,WAAagC,EAAQhC,WACnDqiB,EAAQzB,EAAQ5mB,aAAa,SACxBqoB,GAA0B,KAAjBA,EAAMpvB,OAGlB2tB,EAAUplB,EAAI4hC,cAAcxc,EAAS48B,EAAgBxS,IAFrDxvC,EAAI07B,OAAOtW,IAOuB,OAAlCA,EAAQ5mB,aAAa,UAA8D,KAAzC4mB,EAAQ5mB,aAAa,SAAS/G,QAC1E2tB,EAAQ4lB,gBAAgB,SAM5B,QAASsX,GAAwBl9B,GAG/B,IAAK,GAFDm9B,GAAgBn9B,EAAQ9oB,iBAAiBwlD,oBAEpCvlD,EAAIgmD,EAAc/oD,OAAQ+C,KAC5BgmD,EAAchmD,GAAGiN,aAAyD,IAA1C+4C,EAAchmD,GAAGiN,YAAY3C,UAA4D,OAA1C07C,EAAchmD,GAAGiN,YAAYhF,UACrC,MAArE+9C,EAAchmD,GAAGwP,WAAaw2C,EAAchmD,GAAGm2B,WAAWj7B,QAC7D8qD,EAAchmD,GAAGF,WAAWoN,aAAa84C,EAAchmD,GAAG2N,cAAc1N,cAAc,MAAO+lD,EAAchmD,GAAGiN,aAGlH3J,EAAUG,IAAI07B,OAAO6mB,EAAchmD,IAKvC,QAASimD,GAAiBngD,EAAOmtC,GAC/B,GAAIrzC,EAEJ,OAAIkG,GAAM4L,gBAAoD,IAAlC5L,EAAM4L,eAAepH,UAAkBxE,EAAM4L,iBAAmB5L,EAAM6L,kBAC5F7L,EAAM4L,eAAezC,aAAenJ,EAAM4L,eAAegK,WAAiC,IAApB5V,EAAM0M,WAC1E1M,EAAM4L,iBAAmBuhC,EAASpqB,UACpC/iB,EAAMyS,eAAezS,EAAM4L,gBAC3B5L,EAAM4S,YAAY5S,EAAM6L,gBAM1B7L,EAAM4L,gBAAoD,IAAlC5L,EAAM4L,eAAepH,UAAkD,IAAhCxE,EAAM6L,aAAarH,cAChFxE,EAAM4L,eAAezC,aAAenJ,EAAM6L,cAAoC,IAApB7L,EAAM0M,WAC9D1M,EAAM4L,iBAAmBuhC,EAASpqB,SACpC/iB,EAAM4S,YAAY5S,EAAM4L,iBAM1B5L,EAAM6L,cAAgD,IAAhC7L,EAAM6L,aAAarH,UAAoD,IAAlCxE,EAAM4L,eAAepH,cAC9ExE,EAAM6L,aAAa1C,aAAenJ,EAAM4L,gBAAsC,IAApB5L,EAAM0M,WAC9D1M,EAAM6L,eAAiBshC,EAASpqB,SAClC/iB,EAAMyS,eAAezS,EAAM6L,eAO7B7L,EAAM4L,gBAAoD,IAAlC5L,EAAM4L,eAAepH,UAAkBxE,EAAM4L,iBAAmB5L,EAAM6L,cAAgB7L,EAAM4L,eAAe5R,gBACjIgG,EAAM4L,eAAe5R,WAAWmP,aAAenJ,EAAM4L,gBAAkB5L,EAAM0M,WAAa1M,EAAM6L,aAAa1U,QAAgC,IAAtB6I,EAAMyM,cAC/H3S,EAAOkG,EAAM4L,eAAe5R,WACxBF,IAASqzC,EAASpqB,UACpB/iB,EAAMyS,eAAe3Y,GACrBkG,EAAM4S,YAAY9Y,MALxB,OAcF,QAASsmD,GAAqBpgD,EAAOmE,EAASk8C,EAAalT,GACzD,GAAImT,GAAiB,EAAY9iD,EAAUM,KAAK/G,OAAOoN,GAASqR,OAAM,GAAQ,IAC1E8qC,KACFA,EAAen+C,SAAWm+C,EAAen+C,UAAYk+C,GAAeV,EAAgBxS,IAEtFgT,EAAiBngD,EAAOmtC,EAExB,IAMIh3C,GAASoqD,EAAQzT,EANjBt0C,EAAIwH,EAAM0U,aACV8rC,EAAsBhoD,EAAEoT,eACxB8J,EAAUld,EAAE0a,kBACZrJ,EAAWsjC,EAAS7sC,IAAIwJ,yBACxB22C,GAAkBH,GAAmC,eAAhBD,GAAgCC,EAAen+C,UAAwC,eAA5Bm+C,EAAen+C,SAC/Gu+C,EAAkBd,EAAeY,EAAqBrT,EAASpqB,QAAS09B,EAG5E,IAAIt8C,GAAWA,EAAQhC,UAAiC,eAArBgC,EAAQhC,SAA2B,CACpE,GAAIw+C,GAAQZ,EAAsB,KAAM57C,EAASgpC,EACjDwT,GAAMr8C,YAAYoR,GAClB7L,EAASvF,YAAYq8C,GACrBJ,GAAUI,OACL,CAEL,GAAKjrC,EAAQvM,WAIX,KAAMuM,EAAQvM,YAEZ,GAAmC,GAA/BuM,EAAQvM,WAAW3E,UAAiBkR,EAAQvM,WAAW5P,QAAQkmD,gBAEjE,GAAIt7C,EAEF47C,EAAsBrqC,EAAQvM,WAAYhF,EAASgpC,GAC/Cz3B,EAAQvM,WAAW5P,QAAQumD,IAC7BG,EAAwBvqC,EAAQvM,YAElCU,EAASvF,YAAYoR,EAAQvM,gBAExB,CAEL82C,EAAwBvqC,EAAQvM,YAChC2jC,EAAWtvC,EAAUG,IAAI07B,OAAO3jB,EAAQvM,WACxC,KAAK,GAAI5Q,GAAI,EAAGqtC,EAAOkH,EAAS31C,OAAYyuC,EAAJrtC,EAAUA,IAChDsR,EAASvF,YAAYwoC,EAASv0C,GAG5BsR,GAAStF,WAAWpN,OAAS,GAC/B0S,EAASvF,YAAY6oC,EAAS7sC,IAAInG,cAAc,WAKpD,IAAIgK,EAAS,CAGX,IADAhO,EAAU4pD,EAAsB,KAAMO,EAAgBnT,GAChDz3B,EAAQvM,aAA+C,IAAhCuM,EAAQvM,WAAW3E,WAAmBkR,EAAQvM,WAAW5P,QAAQkmD,kBACzD,GAA/B/pC,EAAQvM,WAAW3E,UAAiBrO,EAAQoD,QAAQumD,IACtDG,EAAwBvqC,EAAQvM,YAElChT,EAAQmO,YAAYoR,EAAQvM,WAE9BU,GAASvF,YAAYnO,OAIc,IAA/Buf,EAAQvM,WAAW3E,UACrBy7C,EAAwBvqC,EAAQvM,YAElCU,EAASvF,YAAYoR,EAAQvM,gBA7CnCU,GAASvF,YAAYy7C,EAAsB,KAAM57C,EAASgpC,GAoD5DoT,GAAS/iD,EAAUM,KAAKmuB,MAAMpiB,EAAStF,YAAY3M,MAWrD,MARI8oD,GAEFvT,EAASpvC,UAAU83C,oBAAoB6K,EAAiB72C,GAGxDrR,EAAE+c,WAAW1L,GAGR02C,EAIT,QAASK,GAAuB79B,EAASoqB,GACvC,GAAInzC,GAAawD,EAAUG,IAAIi3B,iBAAiB7R,GAC1CgR,MAAO0rB,gBACN,KAAMtS,EAASpqB,QAEtB,OAAO,GAAe/oB,EAAWmI,SAAW,KAtQ9C,GAAIxE,GAAMH,EAAUG,IAGhBmiD,EAA4B,gCAC5BL,gBAAiB,kDAqQrBjiD,EAAUE,SAASmsB,aACjBhC,KAAM,SAASslB,EAAUljB,EAAS9lB,GAChC,GACiBya,GAAQ5e,EAAO8F,EAAQ4R,EAAU+lC,EAD9CoD,IAWJ,IAPuB,gBAAZ18C,KACTA,GACEhC,SAAUgC,EAAQ8wB,gBAKlB9wB,GAAWA,EAAQrJ,SACrB2iD,EAAQnoD,KAAKmoD,MAAMtQ,EAAUljB,EAAS9lB,IAC3B,CACTuT,EAAWxY,MAAMsmB,cAAc2nB,EAAS7sC,IAAIyH,aAAeolC,EAAS7sC,IAAI0H,aACxE,KAAK,GAAIosB,KAAKqpB,GACZuC,EAAyBvC,EAAMrpB,GAAIjwB,EAASgpC,GAMlD,IAAKsQ,EAAO,CAENtQ,EAASpvC,UAAU8b,gBACrB/T,EAAStI,EAAUG,IAAIi3B,iBAAiBuY,EAASpvC,UAAUq1C,eAAe,GAAGxnC,gBAC3EmoB,MAAO0rB,gBACN,KAAMtS,EAASpqB,SACdjd,GACF4R,EAAWxY,MAAMsmB,cAAc2nB,EAAS7sC,IAAIyH,aAAeolC,EAAS7sC,IAAI0H,cACxEhI,EAAQmtC,EAASpvC,UAAUiE,cAC3BhC,EAAM+S,WAAWjN,GACjBqnC,EAASpvC,UAAUyzC,aAAaxxC,IACtBmtC,EAASzJ,YACnBhsB,EAAWxY,MAAMsmB,cAAc2nB,EAAS7sC,IAAIyH,aAAeolC,EAAS7sC,IAAI0H,cACxEmlC,EAASpvC,UAAU24C,eAKvB93B,EAASuuB,EAASpvC,UAAUq1C,cAC5B,KAAK,GAAIl5C,GAAI0kB,EAAOznB,OAAQ+C,KAC1B2mD,EAAmBA,EAAiBxnD,OAAO+mD,EAAqBxhC,EAAO1kB,GAAIiK,EAASy8C,EAAuBhiC,EAAO1kB,GAAG0R,eAAgBuhC,GAAWA,IAMpJoS,EAAQpS,GAEJz1B,EACFxY,MAAMymB,iBAAiBjO,IAEvB1X,EAAQmtC,EAASpvC,UAAUiE,cAC3BhC,EAAMyS,eAAeouC,EAAiB,IACtC7gD,EAAM4S,YAAYiuC,EAAiBA,EAAiB1pD,OAAS,IAC7Dg2C,EAASpvC,UAAUyzC,aAAaxxC,IAGlCxC,EAAUG,IAAI4vC,sBAAsBJ,EAASpqB,UAK/C06B,MAAO,SAAStQ,EAAUljB,EAAS6J,GAGP,gBAAfA,KACTA,GACEC,MAAOD,GAWX,KAAK,GAHDhuB,GAJA/L,EAAQozC,EAASpvC,UAAU01C,eAAe,SAAW1wB,GACnD,MAAOvlB,GAAUG,IAAI01B,QAAQtQ,GAAShnB,KAAK+3B,IAAgBC,MAAO0rB,kBACjE9mD,KAAKrD,OACRwrD,EAAc3T,EAASpvC,UAAUo1C,sBAI5Bj5C,EAAI,EAAGo5C,EAAOwN,EAAY3pD,OAAYm8C,EAAJp5C,EAAUA,IACnD4L,EAASnI,EAAIi3B,iBAAiBksB,EAAY5mD,GAAI45B,IAAgBC,MAAO0rB,gBAAkB,KAAMtS,EAASpqB,SAClGjd,GAAoC,KAA1B/L,EAAM3B,QAAQ0N,IAC1B/L,EAAMjD,KAAKgP,EAIf,OAAyB,KAAjB/L,EAAM5C,QAAgB,EAAQ4C,KAKzCyD,WASHA,UAAUE,SAASqjD,YAEjBl5B,KAAM,SAASslB,EAAUljB,EAAS+2B,GAChC,GACIplD,GAAMoE,EAAOihD,EADbC,EAAM5rD,KAAKmoD,MAAMtQ,EAEjB+T,GAEF/T,EAASpvC,UAAUs3C,kBAAkB,WACnCz5C,EAAOslD,EAAIv4B,cAAc,QACzBnrB,UAAUG,IAAI+hC,sBAAsBwhB,GAChCtlD,GACF4B,UAAUG,IAAI+hC,sBAAsB9jC,MAKxCoE,EAAQmtC,EAASpvC,UAAUwzC,WAC3B0P,EAAgBjhD,EAAMkT,kBACtBguC,EAAM/T,EAAS7sC,IAAInG,cAAc,OACjCyB,EAAOuxC,EAAS7sC,IAAInG,cAAc,QAE9B6mD,IACFplD,EAAK+oB,UAAYq8B,GAGnBE,EAAI58C,YAAY1I,GAChBA,EAAK0I,YAAY28C,GACjBjhD,EAAMuV,WAAW2rC,GACjB/T,EAASpvC,UAAUgV,WAAWmuC,KAIlCzD,MAAO,SAAStQ,GACd,GAAIgU,GAAehU,EAASpvC,UAAUk1C,iBACtC,OAAIkO,IAAgBA,EAAah/C,UAAqC,OAAzBg/C,EAAah/C,UACtDg/C,EAAah4C,YAAcg4C,EAAah4C,WAAWhH,UAAgD,QAApCg/C,EAAah4C,WAAWhH,SAClFg/C,EAEA3jD,UAAUG,IAAIi3B,iBAAiBusB,GAAgBptB,MAAO,eAoCnE,SAAUv2B,GAUR,QAAS4jD,GAAa34C,GACpB,GAAI44C,GAAQC,EAAc74C,EAC1B,OAAO44C,IAAS54C,EAAQrG,cAAei/C,EAAMj/C,gBAAkBqG,EAAQrG,eAGzE,QAASm/C,GAAY94C,EAASkc,EAAWqP,EAAaiiB,EAAUuL,EAAarxC,GAC3E,GAAIsxC,GAAah5C,CAajB,OAXIkc,KACF88B,GAAc,IAAM98B,GAElBsxB,IACFwL,GAAc,IAAMxL,GAGjByL,EAAYD,KACfC,EAAYD,GAAc,GAAIjkD,GAAUO,UAAUu8C,YAAY8G,EAAa34C,GAAUkc,EAAWqP,GAAa,EAAMiiB,EAAUuL,EAAarxC,IAGrIuxC,EAAYD,GA5BrB,GACIH,IACEK,OAAU,IACVC,GAAU,IACVC,EAAU,SACV3nD,EAAU,MAEZwnD,IAwBJlkD,GAAUE,SAASkgD,cACjB/1B,KAAM,SAASslB,EAAUljB,EAASxhB,EAASkc,EAAWqP,EAAaiiB,EAAUuL,EAAaM,EAAmBC,GAC3G,GAAI/hD,GAAQmtC,EAASpvC,UAAUiE,cAC3BggD,EAAY7U,EAASpvC,UAAUq1C,cAEnC,OAAK4O,IAAiC,GAApBA,EAAU7qD,QAG5Bg2C,EAASpvC,UAAUse,eAAewE,kBAElC0gC,EAAY94C,EAASkc,EAAWqP,EAAaiiB,EAAUuL,EAAarU,EAASpqB,SAASq6B,YAAY4E,QAE7FF,EAYOC,GACV5U,EAASvV,WAZT53B,EAAMqS,SAAS2vC,EAAU,GAAGp2C,eAAiBo2C,EAAU,GAAGv1C,aAC1DzM,EAAMsS,OACJ0vC,EAAUA,EAAU7qD,OAAS,GAAG0U,aAChCm2C,EAAUA,EAAU7qD,OAAS,GAAGuV,WAElCygC,EAASpvC,UAAUyzC,aAAaxxC,GAChCmtC,EAASpvC,UAAUs3C,kBAAkB,WAC9B0M,GACH5U,EAASvV,YAEV,GAAM,OAjBF,GA0BXimB,eAAgB,SAAS1Q,EAAUljB,EAASxhB,EAASkc,EAAWqP,EAAaiiB,EAAUuL,GACrF,GAAIzgB,GAAOzrC,IAEX,IAAIA,KAAKmoD,MAAMtQ,EAAUljB,EAASxhB,EAASkc,EAAWqP,EAAaiiB,EAAUuL,IAC3ErU,EAASpvC,UAAU8b,gBAClBszB,EAASpvC,UAAU22C,2BACnBvH,EAASpvC,UAAU82C,0BACpB,CACA,GAAIoN,GAAgBlhB,EAAK0c,MAAMtQ,EAAUljB,EAASxhB,EAASkc,EAAWqP,GAAa,EACnFmZ,GAASpvC,UAAUq3C,uBAAuB,WAC3B6M,EAAcjoD,UAC3BmzC,GAASpvC,UAAUgV,WAAWkvC,GAAe,GAC7CzkD,EAAUE,SAASkgD,aAAa/1B,KAAKslB,EAAUljB,EAASxhB,EAASkc,EAAWqP,EAAaiiB,EAAUuL,GAAa,GAAM,SAGpHlsD,MAAKmoD,MAAMtQ,EAAUljB,EAASxhB,EAASkc,EAAWqP,EAAaiiB,EAAUuL,KAAiBrU,EAASpvC,UAAU8b,cAC/GszB,EAASpvC,UAAUq3C,uBAAuB,WACxC53C,EAAUE,SAASkgD,aAAa/1B,KAAKslB,EAAUljB,EAASxhB,EAASkc,EAAWqP,EAAaiiB,EAAUuL,GAAa,GAAM,KAGxHhkD,EAAUE,SAASkgD,aAAa/1B,KAAKslB,EAAUljB,EAASxhB,EAASkc,EAAWqP,EAAaiiB,EAAUuL,IAKzG/D,MAAO,SAAStQ,EAAUljB,EAASxhB,EAASkc,EAAWqP,EAAaiiB,EAAUuL,GAC5E,GAEIQ,GAAW1E,EAFXh9C,EAAgB6sC,EAAS7sC,IACzB4hD,EAAgBZ,EAAc74C,IAAYA,CAI9C,OAAKjL,GAAUG,IAAIk4B,sBAAsBv1B,EAAKmI,IACzCjL,EAAUG,IAAIk4B,sBAAsBv1B,EAAK4hD,GAK1Cv9B,IAAcnnB,EAAUG,IAAIw4B,wBAAwB71B,EAAKqkB,IACnD,GAGVq9B,EAAY7U,EAASpvC,UAAUq1C,eAE1B4O,GAAkC,IAArBA,EAAU7qD,QAI5BmmD,EAAYiE,EAAY94C,EAASkc,EAAWqP,EAAaiiB,EAAUuL,EAAarU,EAASpqB,SAASi6B,iBAAiBgF,GAE3G1E,GAAaA,EAAUjR,SAAYiR,EAAUjR,UAAW,IALvD,IAXA,KAmBZ7uC,WACF,SAAUA,GAET,GAAIw4C,IACF7zC,SAAU,aACVrH,QAAQ,EAGV0C,GAAUE,SAASykD,kBACjBt6B,KAAM,SAASslB,GACb,MAAO3vC,GAAUE,SAASmsB,YAAYhC,KAAKslB,EAAU,cAAe6I,IAGtEyH,MAAO,SAAStQ,GACd,MAAO3vC,GAAUE,SAASmsB,YAAY4zB,MAAMtQ,EAAU,cAAe6I,MAIxEx4C,WACFA,UAAUE,SAASssB,YAClBnC,KAAM,SAASslB,EAAUljB,EAASgF,GAC5Bke,EAASzvC,SAAS8/C,QAAQvzB,GAC5BkjB,EAAS7sC,IAAIioB,YAAY0B,GAAS,EAAOgF,GAEzCke,EAASpvC,UAAUisB,WAAWiF,IAIlCwuB,MAAO,WACL,OAAO,IAGV,SAAUjgD,GACT,GAAI8gD,GAAY,KAEhB9gD,GAAUE,SAAS0kD,aAWjBv6B,KAAM,SAASslB,EAAUljB,EAASrD,GAChCA,EAA0B,gBAAZ,GAAuBA,GAAUqW,IAAKrW,EAEpD,IAEIxc,GACAtE,EAHAxF,EAAU6sC,EAAS7sC,IACnB+hD,EAAU/sD,KAAKmoD,MAAMtQ,EAKzB,IAAIkV,IAAUz7B,EAAMqW,IAclB,MAbAkQ,GAASpvC,UAAU0zC,UAAU4Q,GAC7Bv8C,EAASu8C,EAAMroD,WACf8L,EAAO8N,YAAYyuC,GAGnB7kD,EAAUG,IAAI2hC,qBAAqBx5B,GACX,MAApBA,EAAO3D,UAAqB2D,EAAOqD,aACrCgkC,EAASpvC,UAAUi0C,SAASlsC,GAC5BA,EAAO9L,WAAW4Z,YAAY9N,QAIhCtI,GAAUI,OAAOgxC,OAAOzB,EAASpqB,QAKnC,IAAIs/B,EACF,IAAK,GAAIr7B,KAAOJ,GACVA,EAAM/iB,eAAemjB,IACvBq7B,EAAM9lD,aAAqB,cAARyqB,EAAsB,QAAUA,EAAKJ,EAAMI,QAHpE,CAUAq7B,EAAQ/hD,EAAInG,cAAcmkD,EAE1B,KAAK,GAAIpkD,KAAK0sB,GACZy7B,EAAM9lD,aAAmB,cAANrC,EAAoB,QAAUA,EAAG0sB,EAAM1sB,GAG5DizC,GAASpvC,UAAUwX,WAAW8sC,GAC1B7kD,EAAU4pB,QAAQqE,mCACpBrhB,EAAW9J,EAAI+J,eAAe7M,EAAUS,iBACxCkvC,EAASpvC,UAAUwX,WAAWnL,GAC9B+iC,EAASpvC,UAAUi0C,SAAS5nC,IAE5B+iC,EAASpvC,UAAUi0C,SAASqQ,KAIhC5E,MAAO,SAAStQ,GACd,GACIgU,GACAnmC,EACAsnC,EAHAhiD,EAAM6sC,EAAS7sC,GAKnB,OAAK9C,GAAUG,IAAIk4B,sBAAsBv1B,EAAKg+C,KAI9C6C,EAAehU,EAASpvC,UAAUk1C,mBAK9BkO,EAAah/C,WAAam8C,EAErB6C,EAGLA,EAAa38C,WAAahH,EAAUY,cAC/B,GAGT4c,EAAOmyB,EAASpvC,UAAUw5C,WAC1Bv8B,EAAOxd,EAAUM,KAAK0wB,OAAOxT,GAAM5lB,SAE1B,GAGTktD,EAAoBnV,EAASpvC,UAAUkZ,SAASzZ,EAAUY,aAAc,SAAStE,GAC/E,MAAyB,QAAlBA,EAAKqI,WAGmB,IAA7BmgD,EAAkBnrD,QACb,EAGFmrD,EAAkB,MA/BhB,KAkCZ9kD,WACF,SAAUA,GACT,GAAI+kD,GAAa,QAAU/kD,EAAU4pB,QAAQ8D,2BAA6B,IAAM,GAEhF1tB,GAAUE,SAAS8kD,iBACjB36B,KAAM,SAASslB,EAAUljB,GACnBkjB,EAASzvC,SAAS8/C,QAAQvzB,IAC5BkjB,EAAS7sC,IAAIioB,YAAY0B,GAAS,EAAO,MACpCzsB,EAAU4pB,QAAQwD,sBACrBuiB,EAASpvC,UAAUs4C,kBAGrBlJ,EAASzvC,SAASmqB,KAAK,aAAc06B,IAIzC9E,MAAO,WACL,OAAO,KAGVjgD,WACFA,UAAUE,SAASqsB,mBAClBlC,KAAM,SAASslB,EAAUljB,GACvBzsB,UAAUE,SAAS+kD,WAAW56B,KAAKslB,EAAUljB,EAAS,OAGxDwzB,MAAO,SAAStQ,EAAUljB,GACxB,MAAOzsB,WAAUE,SAAS+kD,WAAWhF,MAAMtQ,EAAUljB,EAAS,QAGjEzsB,UAAUE,SAASosB,qBAClBjC,KAAM,SAASslB,EAAUljB,GACvBzsB,UAAUE,SAAS+kD,WAAW56B,KAAKslB,EAAUljB,EAAS,OAGxDwzB,MAAO,SAAStQ,EAAUljB,GACxB,MAAOzsB,WAAUE,SAAS+kD,WAAWhF,MAAMtQ,EAAUljB,EAAS,QAGjEzsB,UAAUE,SAAS+kD,WAAa,SAAUjlD,GAEzC,GAAIklD,GAAS,SAAS5oD,EAAM6B,GAC1B,GAAI7B,GAAQA,EAAKqI,SAAU,CACL,gBAATxG,KACTA,GAAQA,GAEV,KAAK,GAAI0K,GAAI1K,EAAKxE,OAAQkP,KACxB,GAAIvM,EAAKqI,WAAaxG,EAAK0K,GACzB,OAAO,EAIb,OAAO,GAGLs8C,EAAa,SAAS7oD,EAAMqI,EAAUgrC,GACxC,GAAI9I,IACEhgC,GAAI,KACJu+C,OAAO,EAGb,IAAI9oD,EAAM,CACR,GAAI+oD,GAAWrlD,EAAUG,IAAIi3B,iBAAiB96B,GAAQi6B,MAAO,OACzD+uB,EAA8B,OAAb3gD,EAAqB,KAAO,IAE7CugD,GAAO5oD,EAAMqI,GACfkiC,EAAIhgC,GAAKvK,EACA4oD,EAAO5oD,EAAMgpD,GACtBze,GACEhgC,GAAIvK,EACJ8oD,OAAO,GAEAC,IACLH,EAAOG,EAAS7oD,WAAYmI,GAC9BkiC,EAAIhgC,GAAKw+C,EAAS7oD,WACT0oD,EAAOG,EAAS7oD,WAAY8oD,KACrCze,GACEhgC,GAAKw+C,EAAS7oD,WACd4oD,OAAO,KAWf,MAJIve,GAAIhgC,KAAO8oC,EAASpqB,QAAQxoB,SAAS8pC,EAAIhgC,MAC3CggC,EAAIhgC,GAAK,MAGJggC,GAGL0e,EAAqB,SAAS1+C,EAAIlC,EAAUgrC,GAC9C,GACgB6V,GADZF,EAA8B,OAAb3gD,EAAqB,KAAO,IAMjDgrC,GAASpvC,UAAUs3C,kBAAkB,WACnC,GAAI4N,GAAaC,EAAoBJ,EAAe3V,EACpD,IAAI8V,EAAW9rD,OACb,IAAK,GAAIyF,GAAIqmD,EAAW9rD,OAAQyF,KAC9BY,EAAUG,IAAI4hC,cAAc0jB,EAAWrmD,GAAIuF,EAASC,mBAEjD,CACL4gD,EAAaE,GAAqB,KAAM,MAAO/V,EAC/C,KAAK,GAAIjzC,GAAI8oD,EAAW7rD,OAAQ+C,KAC9BsD,EAAUG,IAAIkiC,YAAYmjB,EAAW9oD,GAAIizC,EAAS7rC,OAAOw+B,cAE3DtiC,GAAUG,IAAIkiC,YAAYx7B,EAAI8oC,EAAS7rC,OAAOw+B,mBAKhDqjB,EAAuB,SAAS9+C,EAAIlC,EAAUgrC,GAChD,GAAI2V,GAA8B,OAAb3gD,EAAqB,KAAO,IAMjDgrC,GAASpvC,UAAUs3C,kBAAkB,WAInC,IAAK,GAHD+N,IAAe/+C,GAAIhL,OAAO6pD,EAAoBJ,EAAe3V,IAGxDvwC,EAAIwmD,EAAYjsD,OAAQyF,KAC/BY,EAAUG,IAAI4hC,cAAc6jB,EAAYxmD,GAAIuF,EAASC,kBAKvD8gD,EAAsB,SAAS/gD,EAAUgrC,GAIzC,IAAK,GAHDvuB,GAASuuB,EAASpvC,UAAUq1C,eAC5BgQ,KAEK5qD,EAAIomB,EAAOznB,OAAQqB,KAC1B4qD,EAAcA,EAAY/pD,OAAOulB,EAAOpmB,GAAGye,UAAU,GAAI,SAASnd,GAChE,MAAO4oD,GAAO5oD,EAAMqI,KAIxB,OAAOihD,IAGPC,EAAqB,SAASlhD,EAAUgrC,GAE1CA,EAASpvC,UAAUq3C,uBAAuB,WACxC,GAKI1R,GAASxS,EALToyB,EAAiB,oBAAqB,GAAIj/B,OAAOk/B,UACjDrzB,EAAcid,EAASpvC,UAAUm4C,oBAC/B/zC,SAAY,MACZwiB,UAAa2+B,GAMnBpzB,GAAYxmB,UAAYwmB,EAAYxmB,UAAUnU,QAAQiI,EAAUU,wBAAyB,IAErFgyB,IACFwT,EAAUlmC,EAAUM,KAAKmuB,OAAO,GAAI,OAAQzuB,EAAUS,kBAAkB1D,SAAS21B,EAAYxmB,WAC7FwnB,EAAO1zB,EAAUG,IAAIqzB,cAAcd,EAAa/tB,EAASC,cAAe+qC,EAASrnC,OAAOxE,OAAOo+C,8BAC3Fhc,GACFyJ,EAASpvC,UAAUgV,WAAWme,EAAKvI,cAAc,OAAO,MAMhE,QACEd,KAAM,SAASslB,EAAUljB,EAAS9nB,GAChC,GAAI7B,GAAgB6sC,EAAS7sC,IACzBkjD,EAA8B,OAAbrhD,EAAqB,oBAAsB,sBAC5Dg/C,EAAgBhU,EAASpvC,UAAUk1C,kBACnC/hB,EAAgByxB,EAAWxB,EAAch/C,EAAUgrC,EAElDjc,GAAK7sB,GAMC6sB,EAAK0xB,MACdO,EAAoBjyB,EAAK7sB,GAAIlC,EAAUgrC,GAEvC4V,EAAmB7xB,EAAK7sB,GAAIlC,EAAUgrC,GARlCA,EAASzvC,SAAS8/C,QAAQgG,GAC5BljD,EAAIioB,YAAYi7B,GAAK,EAAO,MAE5BH,EAAmBlhD,EAAUgrC,IASnCsQ,MAAO,SAAStQ,EAAUljB,EAAS9nB,GACjC,GAAIg/C,GAAehU,EAASpvC,UAAUk1C,kBAClC/hB,EAAeyxB,EAAWxB,EAAch/C,EAAUgrC,EAEtD,OAAQjc,GAAK7sB,KAAO6sB,EAAK0xB,MAAS1xB,EAAK7sB,IAAK,KAI/C7G,WAAYA,UAAUE,SAAS+lD,QAChC57B,KAAM,SAASslB,EAAUljB,GACvBzsB,UAAUE,SAASkgD,aAAaC,eAAe1Q,EAAUljB,EAAS,MAGpEwzB,MAAO,SAAStQ,EAAUljB,GAMxB,MAAOzsB,WAAUE,SAASkgD,aAAaH,MAAMtQ,EAAUljB,EAAS,OAGnE,SAAUzsB,GAET,GAAIw4C,IACFrxB,UAAW,4BACXqP,YAAa,gCACbl5B,QAAQ,EAGV0C,GAAUE,SAASgmD,eACjB77B,KAAM,SAASslB,GACb,MAAO3vC,GAAUE,SAASmsB,YAAYhC,KAAKslB,EAAU,cAAe6I,IAGtEyH,MAAO,SAAStQ,GACd,MAAO3vC,GAAUE,SAASmsB,YAAY4zB,MAAMtQ,EAAU,cAAe6I,MAIxEx4C,WACF,SAAUA,GAET,GAAIw4C,IACFrxB,UAAW,0BACXqP,YAAa,gCACbl5B,QAAQ,EAGV0C,GAAUE,SAASimD,aACjB97B,KAAM,SAASslB,GACb,MAAO3vC,GAAUE,SAASmsB,YAAYhC,KAAKslB,EAAU,cAAe6I,IAGtEyH,MAAO,SAAStQ,GACd,MAAO3vC,GAAUE,SAASmsB,YAAY4zB,MAAMtQ,EAAU,cAAe6I,MAGxEx4C,WACF,SAAUA,GAET,GAAIw4C,IACFrxB,UAAW,2BACXqP,YAAa,gCACbl5B,QAAQ,EAGV0C,GAAUE,SAASkmD,cACjB/7B,KAAM,SAASslB,GACb,MAAO3vC,GAAUE,SAASmsB,YAAYhC,KAAKslB,EAAU,cAAe6I,IAGtEyH,MAAO,SAAStQ,GACd,MAAO3vC,GAAUE,SAASmsB,YAAY4zB,MAAMtQ,EAAU,cAAe6I,MAGxEx4C,WACF,SAAUA,GAET,GAAIw4C,IACFrxB,UAAW,6BACXqP,YAAa,gCACbl5B,QAAQ,EAGV0C,GAAUE,SAASmmD,aACjBh8B,KAAM,SAASslB,GACb,MAAO3vC,GAAUE,SAASmsB,YAAYhC,KAAKslB,EAAU,cAAe6I,IAGtEyH,MAAO,SAAStQ,GACd,MAAO3vC,GAAUE,SAASmsB,YAAY4zB,MAAMtQ,EAAU,cAAe6I,MAGxEx4C,WACF,SAAUA,GAET,GAAIw4C,IACF/hB,cAAe,YACfK,WAAY,QACZx5B,QAAQ,EAGV0C,GAAUE,SAASomD,iBACjBj8B,KAAM,SAASslB,GACb,MAAO3vC,GAAUE,SAASmsB,YAAYhC,KAAKslB,EAAU,cAAe6I,IAGtEyH,MAAO,SAAStQ,GACd,MAAO3vC,GAAUE,SAASmsB,YAAY4zB,MAAMtQ,EAAU,cAAe6I,MAGxEx4C,WACF,SAAUA,GAET,GAAIw4C,IACF/hB,cAAe,YACfK,WAAY,OACZx5B,QAAQ,EAGV0C,GAAUE,SAASqmD,gBACjBl8B,KAAM,SAASslB,GACb,MAAO3vC,GAAUE,SAASmsB,YAAYhC,KAAKslB,EAAU,cAAe6I,IAGtEyH,MAAO,SAAStQ,GACd,MAAO3vC,GAAUE,SAASmsB,YAAY4zB,MAAMtQ,EAAU,cAAe6I,MAIxEx4C,WACF,SAAUA,GAET,GAAIw4C,IACF/hB,cAAe,YACfK,WAAY,SACZx5B,QAAQ,EAGV0C,GAAUE,SAASsmD,kBACjBn8B,KAAM,SAASslB,GACb,MAAO3vC,GAAUE,SAASmsB,YAAYhC,KAAKslB,EAAU,cAAe6I,IAGtEyH,MAAO,SAAStQ,GACd,MAAO3vC,GAAUE,SAASmsB,YAAY4zB,MAAMtQ,EAAU,cAAe6I,MAIxEx4C,WACFA,UAAUE,SAASumD,MAClBp8B,KAAM,SAASslB,GACb,MAAOA,GAAS+W,YAAYD,QAG9BxG,MAAO,WACL,OAAO,IAGVjgD,UAAUE,SAASymD,WAClBt8B,KAAM,SAASslB,EAAUljB,GACvBzsB,UAAUE,SAASkgD,aAAaC,eAAe1Q,EAAUljB,EAAS,MAGpEwzB,MAAO,SAAStQ,EAAUljB,GACxB,MAAOzsB,WAAUE,SAASkgD,aAAaH,MAAMtQ,EAAUljB,EAAS,OAGnEzsB,UAAUE,SAAS0mD,MAClBv8B,KAAM,SAASslB,GACb,MAAOA,GAAS+W,YAAYE,QAG9B3G,MAAO,WACL,OAAO,IAGVjgD,UAAUE,SAAS2mD,aAClBx8B,KAAM,SAASslB,EAAUljB,EAASrD,GAC9B,GAAIwgB,GAAKjB,EAAKlX,CACd,IAAIrI,GAASA,EAAM09B,MAAQ19B,EAAM29B,MAAQrjC,SAAS0F,EAAM09B,KAAM,IAAM,GAAKpjC,SAAS0F,EAAM29B,KAAM,IAAM,EAAG,CAOnG,IALEt1B,EADErI,EAAM49B,WACD,iBAAoB59B,EAAM49B,WAAa,KAEvC,UAETv1B,GAAQ,UACHkX,EAAM,EAAGA,EAAMvf,EAAM29B,KAAMpe,IAAQ,CAEpC,IADAlX,GAAQ,OACHmY,EAAM,EAAGA,EAAMxgB,EAAM09B,KAAMld,IAC5BnY,GAAQ,iBAEZA,IAAQ,QAEZA,GAAQ,mBACRke,EAASzvC,SAASmqB,KAAK,aAAcoH,KAO7CwuB,MAAO,WACH,OAAO,IAGZjgD,UAAUE,SAAS+mD,iBAClB58B,KAAM,SAASslB,EAAUljB,GACjBkjB,EAASuX,gBAAkBvX,EAASuX,eAAe1xC,OAASm6B,EAASuX,eAAezxC,MAChF3d,KAAKmoD,MAAMtQ,EAAUljB,GACrBzsB,UAAUG,IAAI2nC,MAAM2G,YAAYkB,EAASuX,eAAe1xC,OAExDxV,UAAUG,IAAI2nC,MAAM0G,kBAAkBmB,EAASuX,eAAe1xC,MAAOm6B,EAASuX,eAAezxC,OAKzGwqC,MAAO,SAAStQ,GACZ,GAAIA,EAASuX,eAAgB,CACzB,GAAI1xC,GAAQm6B,EAASuX,eAAe1xC,MAChCC,EAAMk6B,EAASuX,eAAezxC,GAClC,IAAID,GAASC,GAAOD,GAASC,IAErBzV,UAAUG,IAAIxB,aAAa6W,EAAO,YAClCkO,SAAS1jB,UAAUG,IAAIxB,aAAa6W,EAAO,WAAY,IAAM,GAE7DxV,UAAUG,IAAIxB,aAAa6W,EAAO,YAClCkO,SAAS1jB,UAAUG,IAAIxB,aAAa6W,EAAO,WAAY,IAAM,GAGjE,OAAQA,GAGhB,OAAO,IAGZxV,UAAUE,SAASinD,eAClB98B,KAAM,SAASslB,EAAUljB,EAASrD,GAC9B,GAAIumB,EAASuX,gBAAkBvX,EAASuX,eAAe1xC,OAASm6B,EAASuX,eAAezxC,IAAK,CAGzF,GAAI2xC,GAAcpnD,UAAUG,IAAI2nC,MAAMwC,mBAAmBqF,EAASuX,eAAe1xC,MAAOm6B,EAASuX,eAAezxC,IACnG,WAAT2T,GAA8B,SAATA,EACrBppB,UAAUG,IAAI2nC,MAAMwG,SAAS8Y,EAAY5xC,MAAO4T,IAChC,SAATA,GAA6B,SAATA,IAC3BppB,UAAUG,IAAI2nC,MAAMwG,SAAS8Y,EAAY3xC,IAAK2T,GAElD2b,WAAW,WACP4K,EAASuX,eAAetmC,OAAOwmC,EAAY5xC,MAAO4xC,EAAY3xC,MAChE,KAIVwqC,MAAO,WACH,OAAO,IAGZjgD,UAAUE,SAASmnD,kBAClBh9B,KAAM,SAASslB,EAAUljB,EAASrD,GAC9B,GAAIumB,EAASuX,gBAAkBvX,EAASuX,eAAe1xC,OAASm6B,EAASuX,eAAezxC,IAAK,CACzF,GAEI6xC,GAFAF,EAAcpnD,UAAUG,IAAI2nC,MAAMwC,mBAAmBqF,EAASuX,eAAe1xC,MAAOm6B,EAASuX,eAAezxC,KAC5G6Z,EAAMtvB,UAAUG,IAAI2nC,MAAMltC,QAAQwsD,EAAY5xC,OAE9CsyB,EAAQ6H,EAASuX,eAAepf,KAEpC9nC,WAAUG,IAAI2nC,MAAMyG,YAAY6Y,EAAY5xC,MAAO4T,GACnD2b,WAAW,WAEPuiB,EAAUtnD,UAAUG,IAAI2nC,MAAM4G,SAAS5G,EAAOxY,GAEzCg4B,IACY,OAATl+B,IACAk+B,EAAUtnD,UAAUG,IAAI2nC,MAAM4G,SAAS5G,GACnCa,IAAOrZ,EAAIqZ,IAAM,EACjBiB,IAAOta,EAAIsa,OAIN,UAATxgB,IACAk+B,EAAUtnD,UAAUG,IAAI2nC,MAAM4G,SAAS5G,GACnCa,IAAOrZ,EAAIqZ,IACXiB,IAAOta,EAAIsa,IAAM,MAIzB0d,GACA3X,EAASuX,eAAetmC,OAAO0mC,EAASA,IAE7C,KAKXrH,MAAO,WACH,OAAO,IAGZjgD,UAAUE,SAASqnD,YAClBl9B,KAAM,SAASslB,GACb,GAAI6X,GAAU7X,EAASpvC,UAAUs2C,yBAAyB,KAC1D,OAAI2Q,GACK1vD,KAAK2vD,iBAAiBD,EAAS7X,EAASpvC,YAE1C,GAGT0/C,MAAO,WACH,OAAO,GAGXwH,iBAAkB,SAASC,EAASnnD,GAClC,GAAIonD,GAASj0B,EAAMk0B,EAAQC,EAAQC,EAC/BC,GAAQ,CAuBZ,OArBAxnD,GAAUq3C,uBAAuB,WAE/B,IAAK,GAAIl7C,GAAIgrD,EAAQ/tD,OAAQ+C,KAC3BmrD,EAASH,EAAQhrD,GACjBirD,EAA0C,OAA/BE,EAAOrrD,WAAWmI,SAAqB,KAAO,KACzD+uB,EAAOm0B,EAAOx9C,cAAc1N,cAAcgrD,GAC1CC,EAAS5nD,UAAUG,IAAI01B,QAAQgyB,GAAQ7xB,MAAM3lB,WAAYrQ,UAAUY,gBACnEknD,EAAa,EAAWF,EAAOz8B,cAAc,UAAY,KAErDy8B,IACEE,EACFA,EAAWhhD,YAAY+gD,IAEvBn0B,EAAK5sB,YAAY+gD,GACjBD,EAAO9gD,YAAY4sB,IAErBq0B,GAAQ,KAKPA,IAGV/nD,UAAUE,SAAS8nD,aAClB39B,KAAM,SAASslB,GACb,GAAI6X,GAAU7X,EAASpvC,UAAUs2C,yBAAyB,KAC1D,OAAI2Q,GACK1vD,KAAKmwD,iBAAiBT,EAAS7X,IAEjC,GAGTsQ,MAAO,WACH,OAAO,GAGXgI,iBAAkB,SAASP,EAAS/X,GAClC,GAAIuY,GAAUC,EAAeC,EAA2BP,EAAQQ,EAC5DN,GAAQ,EACRxkB,EAAOzrC,IAgDX,OA9CA63C,GAASpvC,UAAUq3C,uBAAuB,WAExC,IAAK,GAAIl7C,GAAIgrD,EAAQ/tD,OAAQ+C,KAE3B,GADAmrD,EAASH,EAAQhrD,GACbmrD,EAAOrrD,aACT0rD,EAAWL,EAAOrrD,WAEO,OAArB0rD,EAASj9C,SAAyC,OAArBi9C,EAASj9C,SAAkB,CAM1D,GALA88C,GAAQ,EAERI,EAAgBnoD,UAAUG,IAAIi3B,iBAAiB8wB,EAAS1rD,YAAc+5B,MAAO,WAAY,EAAOoZ,EAASpqB,SACzG6iC,EAAcpoD,UAAUG,IAAIi3B,iBAAiB8wB,EAAS1rD,YAAc+5B,MAAO,OAAQ,EAAOoZ,EAASpqB,SAE/F4iC,GAAiBC,EAEfP,EAAOl+C,cACT0+C,EAAY9kB,EAAK+kB,aAAaJ,EAAUL,GACxCA,EAAO/gD,YAAYuhD,IAErBF,EAAcv+C,aAAai+C,EAAQO,EAAYz+C,iBAE1C,CAEDk+C,EAAOl+C,cACT0+C,EAAY9kB,EAAK+kB,aAAaJ,EAAUL,GACxCA,EAAO/gD,YAAYuhD,GAGrB,KAAK,GAAIzxB,GAAIixB,EAAO9gD,WAAWpN,OAAQi9B,KACrCsxB,EAAS1rD,WAAWoN,aAAai+C,EAAO9gD,WAAW6vB,GAAIsxB,EAASv+C,YAGlEu+C,GAAS1rD,WAAWoN,aAAazQ,SAASwD,cAAc,MAAOurD,EAASv+C,aACxEk+C,EAAOrrD,WAAW4Z,YAAYyxC,GAKG,IAA/BK,EAASnhD,WAAWpN,QACpBuuD,EAAS1rD,WAAW4Z,YAAY8xC,MAOrCH,GAGTO,aAAc,SAASJ,EAAUL,GAI/B,IAHA,GAAIljD,GAAWujD,EAASvjD,SACpB4jD,EAAUpvD,SAASwD,cAAcgI,GAE9BkjD,EAAOl+C,aACZ4+C,EAAQzhD,YAAY+gD,EAAOl+C,YAE7B,OAAO4+C,KAOX,SAAUvoD,GACR,GAAIwoD,GAAsB,GACtBC,EAAsB,GACtB3nD,EAAsB,EACtBK,EAAsB,GACtBunD,EAAsB,GACtBC,EAAsB,gCACtBC,EAAsB,kCAGtBzoD,GAFsB,sDAAwDH,EAAUS,gBAAkB,UACpF,sDAAwDT,EAAUS,gBAAkB,UACpFT,EAAUG,IASpCH,GAAU6oD,YAAc7oD,EAAUM,KAAKivB,WAAWnpB,QAEhD2N,YAAa,SAAS2xB,GACpB5tC,KAAK4tC,OAASA,EACd5tC,KAAK63C,SAAWjK,EAAOiK,SACvB73C,KAAKytB,QAAUztB,KAAK63C,SAASpqB,QAE7BztB,KAAKoS,SAAW,EAChBpS,KAAKgxD,cACLhxD,KAAKixD,cAELjxD,KAAKkxD,WAELlxD,KAAKmxD,YAGPA,SAAU,WACR,CAAA,GAEIC,GAFA3lB,EAAYzrC,IACAA,MAAK63C,SAASwZ,QAAQ/+C,cAItCjK,EAAI6vB,QAAQl4B,KAAKytB,QAAS,UAAW,SAASqQ,GAC5C,IAAIA,EAAMwzB,SAAYxzB,EAAM8e,SAAY9e,EAAM+e,SAA9C,CAIA,GAAI0U,GAAUzzB,EAAMyzB,QAChBC,EAASD,IAAYb,IAAU5yB,EAAM2zB,SACrCC,EAAUH,IAAYb,GAAS5yB,EAAM2zB,UAAcF,IAAYZ,CAE/Da,IACF/lB,EAAKqjB,OACLhxB,EAAM39B,kBACGuxD,IACTjmB,EAAKkjB,OACL7wB,EAAM39B,qBAKVkI,EAAI6vB,QAAQl4B,KAAKytB,QAAS,UAAW,SAASqQ,GAC5C,GAAIyzB,GAAUzzB,EAAMyzB,OAChBA,KAAYH,IAIhBA,EAAUG,GAENA,IAAYvoD,GAAiBuoD,IAAYloD,IAC3CoiC,EAAKylB,cAITlxD,KAAK4tC,OACFlW,GAAG,mBAAoB,WACtB+T,EAAKylB,aAGNx5B,GAAG,yBAA0B,WAC5B+T,EAAKylB,cAIXA,SAAU,WACR,GAGIxmD,GAAOlG,EAAM6N,EAAQob,EAASrb,EAH9Bu/C,EAAoB3xD,KAAKgxD,WAAWhxD,KAAKoS,SAAW,GACpDw/C,EAAoB5xD,KAAK63C,SAASga,UAAS,GAAO,GAClD7jB,EAAsBhuC,KAAKytB,QAAQ+P,YAAc,GAAKx9B,KAAKytB,QAAQsc,aAAe,CAGtF,IAAI6nB,IAAgBD,EAApB,CAIA,GAAI9vD,GAAS7B,KAAKgxD,WAAWnvD,OAAS7B,KAAKixD,WAAWpvD,OAAS7B,KAAKoS,QAChEvQ,GAAS+uD,IACX5wD,KAAKgxD,WAAW7V,QAChBn7C,KAAKixD,WAAW9V,QAChBn7C,KAAKoS,YAGPpS,KAAKoS,WAED47B,IAEFtjC,EAAU1K,KAAK63C,SAASpvC,UAAUwzC,WAClCz3C,EAAWkG,GAASA,EAAM4L,eAAkB5L,EAAM4L,eAAiBtW,KAAKytB,QACxEpb,EAAW3H,GAASA,EAAMyM,YAAezM,EAAMyM,YAAc,EAEzD3S,EAAK0K,WAAahH,EAAUY,aAC9B2kB,EAAUjpB,GAEVipB,EAAWjpB,EAAKE,WAChB0N,EAAWpS,KAAK8xD,kBAAkBrkC,EAASjpB,IAG7CipB,EAAQxmB,aAAa6pD,EAAkBz+C,GACd,mBAAf,IACRob,EAAQxmB,aAAa4pD,EAAgBz+C,GAIzC,IAAI8N,GAAQlgB,KAAKytB,QAAQvb,YAAY0/C,EACrC5xD,MAAKixD,WAAWzvD,KAAK0e,GACrBlgB,KAAKgxD,WAAWxvD,KAAKowD,GAEjBnkC,IACFA,EAAQ4lB,gBAAgByd,GACxBrjC,EAAQ4lB,gBAAgBwd,MAK5B/B,KAAM,WACJ9uD,KAAKkxD,WAEAlxD,KAAK+xD,iBAIV/xD,KAAKwC,IAAIxC,KAAKixD,aAAajxD,KAAKoS,SAAW,IAC3CpS,KAAK4tC,OAAO5V,KAAK,mBAGnB22B,KAAM,WACC3uD,KAAKgyD,iBAIVhyD,KAAKwC,IAAIxC,KAAKixD,aAAajxD,KAAKoS,SAAW,IAC3CpS,KAAK4tC,OAAO5V,KAAK,mBAGnB+5B,aAAc,WACZ,MAAO/xD,MAAKoS,SAAW,GAGzB4/C,aAAc,WACZ,MAAOhyD,MAAKoS,SAAWpS,KAAKgxD,WAAWnvD,QAGzCW,IAAK,SAASyvD,GACZjyD,KAAKytB,QAAQrZ,UAAY,EAMzB,KAJA,GAAIxP,GAAI,EACJqK,EAAagjD,EAAahjD,WAC1BpN,EAASowD,EAAahjD,WAAWpN,OAE5BA,EAAF+C,EAAUA,IACf5E,KAAKytB,QAAQze,YAAYC,EAAWrK,GAAGsN,WAAU,GAInD,IAAIG,GACA7N,EACA4N,CAEA6/C,GAAavjB,aAAaoiB,IAC5Bz+C,EAAY4/C,EAAaprD,aAAaiqD,GACtC1+C,EAAY6/C,EAAaprD,aAAagqD,GACtCrsD,EAAYxE,KAAKytB,UAEjBjpB,EAAYxE,KAAKytB,QAAQ4F,cAAc,IAAMy9B,EAAmB,MAAQ9wD,KAAKytB,QAC7Epb,EAAY7N,EAAKqC,aAAaiqD,GAC9B1+C,EAAY5N,EAAKqC,aAAagqD,GAC9BrsD,EAAK6uC,gBAAgByd,GACrBtsD,EAAK6uC,gBAAgBwd,IAGN,OAAbz+C,IACF5N,EAAOxE,KAAKkyD,oBAAoB1tD,GAAO4N,IAGzCpS,KAAK63C,SAASpvC,UAAUjG,IAAIgC,EAAM6N,IAGpCy/C,kBAAmB,SAASthD,EAAQ8D,GAIlC,IAHA,GAAI1P,GAAc,EACdqK,EAAcuB,EAAOvB,WACrBpN,EAAcoN,EAAWpN,OACpBA,EAAF+C,EAAUA,IACf,GAAIqK,EAAWrK,KAAO0P,EACpB,MAAO1P;EAKbstD,oBAAqB,SAAS1hD,EAAQ/I,GACpC,MAAO+I,GAAOvB,WAAWxH,OAG5BS,WAIHA,UAAUQ,MAAMypD,KAAOzhC,KAAKpiB,QAE1B2N,YAAa,SAASzL,EAAQ4hD,EAAiBpmD,GAC7ChM,KAAKwQ,OAAWA,EAChBxQ,KAAKytB,QAAW2kC,EAChBpyD,KAAKgM,OAAWA,EACXhM,KAAKgM,OAAOqmD,YACbryD,KAAKsyD,sBAIXA,mBAAoB,WAClB,GAAI7mB,GAAOzrC,IACXA,MAAKwQ,OAAOknB,GAAG,aAAc,WAC3B+T,EAAKj7B,OAAOknB,GAAG,cAAe,SAAS/xB,GACjCA,IAAS8lC,EAAKplC,MAChBolC,EAAKj7B,OAAO+hD,YAAc9mB,EAC1BA,EAAK+mB,OAELvlB,WAAW,WAAaxB,EAAK3hB,SAAY,IAEzC2hB,EAAKgnB,YAMb3oC,MAAO,WACL,IAAI9pB,KAAKytB,UAAWztB,KAAKytB,QAAQlb,eAAiBvS,KAAKytB,QAAQlb,cAAc8gB,cAAc,YAAcrzB,KAAKytB,QAI9G,IAASztB,KAAKytB,SAAWztB,KAAKytB,QAAQ3D,QAAa,MAAMhpB,MAG3D2xD,KAAM,WACJzyD,KAAKytB,QAAQyB,MAAME,QAAU,QAG/BojC,KAAM,WACJxyD,KAAKytB,QAAQyB,MAAME,QAAU,IAG/BsjC,QAAS,WACP1yD,KAAKytB,QAAQxmB,aAAa,WAAY,aAGxC0rD,OAAQ,WACN3yD,KAAKytB,QAAQ4lB,gBAAgB,eAGhC,SAAUnrC,GACT,GAAIG,GAAYH,EAAUG,IACtBypB,EAAY5pB,EAAU4pB,OAE1B5pB,GAAUQ,MAAMkqD,SAAW1qD,EAAUQ,MAAMypD,KAAK7jD,QAE9CjI,KAAM,WAGNwsD,WAAY,OAEZ52C,YAAa,SAASzL,EAAQsiD,EAAiB9mD,GAC7ChM,KAAK+wB,KAAKvgB,EAAQsiD,EAAiB9mD,GAC9BhM,KAAKgM,OAAOqmD,WAGbryD,KAAKkrC,aAAe4nB,EAFpB9yD,KAAK+yD,SAAW/yD,KAAKwQ,OAAOuiD,SAI5B/yD,KAAKgM,OAAOgnD,oBACZhzD,KAAKizD,2BAELjzD,KAAKkzD,gBAIXhlB,MAAO,WACLluC,KAAKytB,QAAQrZ,UAAY0d,EAAQ+B,+CAAiD,GAAK7zB,KAAK6yD,YAG9FhB,SAAU,SAASlwB,EAAOO,GACxB,GAAI5Q,GAAQtxB,KAAKouC,UAAY,GAAKlmC,EAAUI,OAAOm6B,oBAAoBziC,KAAKytB,QAK5E,OAJIkU,MAAU,IACZrQ,EAAQtxB,KAAKwQ,OAAOmxB,MAAMrQ,EAAQ4Q,KAAmB,GAAS,GAAQ,IAGjE5Q,GAGT+c,SAAU,SAAS1U,EAAMgI,GACnBA,IACFhI,EAAO35B,KAAKwQ,OAAOmxB,MAAMhI,GAG3B,KACE35B,KAAKytB,QAAQrZ,UAAYulB,EACzB,MAAO74B,GACPd,KAAKytB,QAAQlrB,UAAYo3B,IAI7B2I,QAAS,WACP,GAAIlgB,EACApiB,MAAKyI,YACP2Z,EAAWxY,MAAMsmB,cAAclwB,KAAKgL,IAAIyH,aAAezS,KAAKgL,IAAI0H,eAElE1S,KAAKwQ,OAAOmxB,MAAM3hC,KAAKytB,SACnBrL,GACFxY,MAAMymB,iBAAiBjO,IAI3BowC,KAAM,WACJxyD,KAAKkrC,aAAahc,MAAME,QAAUpvB,KAAKmzD,eAAiB,GAEnDnzD,KAAKgM,OAAOqmD,YAAeryD,KAAK+yD,SAAStlC,QAAQ2lC,WAEpDpzD,KAAK0yD,UACL1yD,KAAK2yD,WAITF,KAAM,WACJzyD,KAAKmzD,cAAgB9qD,EAAIm0B,SAAS,WAAWC,KAAKz8B,KAAKkrC,cAC5B,SAAvBlrC,KAAKmzD,gBACPnzD,KAAKmzD,cAAgB,MAEvBnzD,KAAKkrC,aAAahc,MAAME,QAAU,QAGpCsjC,QAAS,WACP1yD,KAAKwQ,OAAOwnB,KAAK,oBACjBh4B,KAAKytB,QAAQ4lB,gBAAgB,oBAG/Bsf,OAAQ,WACN3yD,KAAKwQ,OAAOwnB,KAAK,mBACjBh4B,KAAKytB,QAAQxmB,aAAa,kBAAmB,SAG/C6iB,MAAO,SAASupC,GAIVnrD,EAAU4pB,QAAQoE,kBAAoBl2B,KAAKiuC,qBAC7CjuC,KAAKkuC,QAGPluC,KAAK+wB,MAEL,IAAIzQ,GAAYtgB,KAAKytB,QAAQnN,SACzB+yC,IAAY/yC,GAAatgB,KAAKyI,YACL,OAAvB6X,EAAUzT,SACZ7M,KAAKyI,UAAU0zC,UAAUn8C,KAAKytB,QAAQnN,WAEtCtgB,KAAKyI,UAAUi0C,SAAS18C,KAAKytB,QAAQnN,aAK3CiuB,eAAgB,WACd,MAAOlmC,GAAIkmC,eAAevuC,KAAKytB,UAGjCwgB,kBAAmB,WACjB,MAAOjuC,MAAKuuC,mBAAsBvuC,KAAKgM,OAAiB,WAAIhM,KAAKkrC,aAAarkC,aAAa,oBAAsB7G,KAAK+yD,SAAStlC,QAAQ5mB,aAAa,iBAAmB7G,KAAKmuC,gBAG9KC,QAAS,WACP,GAAIh6B,GAAYpU,KAAKytB,QAAQrZ,UAAUtH,aACvC,OAAO,iCAAmCrG,KAAK2N,IAC1B,KAAdA,GACc,SAAdA,GACc,YAAdA,GACc,gBAAdA,GACApU,KAAKiuC,qBAGdglB,yBAA0B,WACtB,GAAIxnB,GAAOzrC,IAEPA,MAAKgM,OAAOqmD,WACZryD,KAAKqxD,QAAU,GAAIhpD,GAAIglC,oBAAoB,WACvC5B,EAAK6nB,cACFtzD,KAAKkrC,eAEZlrC,KAAKqxD,QAAU,GAAIhpD,GAAIglC,oBAAoB,WACvC5B,EAAK6nB,YAETtzD,KAAKkrC,aAAelrC,KAAKqxD,QAAQ/jB,qBACjCjlC,EAAIq0B,OAAO18B,KAAKkrC,cAAcvO,MAAM38B,KAAK+yD,SAAStlC,SAClDztB,KAAKuzD,4BAIbL,aAAc,WACZ,GAAIznB,GAAOzrC,IAEXA,MAAKqxD,QAAU,GAAIhpD,GAAI2iC,QAAQ,WAC7BS,EAAK6nB,YAEL9mB,YAAcxsC,KAAKgM,OAAOwgC,cAE5BxsC,KAAKkrC,aAAgBlrC,KAAKqxD,QAAQhmB,WAElC,IAAI+mB,GAAkBpyD,KAAK+yD,SAAStlC,OACpCplB,GAAIq0B,OAAO18B,KAAKkrC,cAAcvO,MAAMy1B,GAEpCpyD,KAAKuzD,2BAIPA,wBAAyB,WACrB,GAAIvzD,KAAK+yD,SAAStlC,QAAQ+lC,KAAM,CAC9B,GAAIC,GAAcpyD,SAASwD,cAAc,QACzC4uD,GAAY/yD,KAAS,SACrB+yD,EAAYptD,KAAS,kBACrBotD,EAAYniC,MAAS,EACrBjpB,EAAIq0B,OAAO+2B,GAAa92B,MAAM38B,KAAK+yD,SAAStlC,WAIlD6lC,QAAS,WACP,GAAI7nB,GAAOzrC,IACXA,MAAKgL,IAAqBhL,KAAKqxD,QAAQ/+C,cACvCtS,KAAKytB,QAAsBztB,KAAKgM,OAA0B,oBAAIhM,KAAKqxD,QAAQ/jB,qBAAuBttC,KAAKgL,IAAIC,KACtGjL,KAAKgM,OAAOqmD,WAIbryD,KAAKsiC,WAHLtiC,KAAK+yD,SAAqB/yD,KAAKwQ,OAAOuiD,SACtC/yD,KAAKytB,QAAQrZ,UAAapU,KAAK+yD,SAASlB,UAAS,GAAM,IAM3D7xD,KAAKyI,UAAY,GAAIP,GAAUmmB,UAAUruB,KAAKwQ,OAAQxQ,KAAKytB,QAASztB,KAAKgM,OAAOo+C,8BAGhFpqD,KAAKoI,SAAY,GAAIF,GAAU+/C,SAASjoD,KAAKwQ,QAExCxQ,KAAKgM,OAAOqmD,YACbhqD,EAAIw0B,gBACA,YAAa,aAAc,QAAS,OAAQ,MAAO,cACpDJ,KAAKz8B,KAAK+yD,SAAStlC,SAASuP,GAAGh9B,KAAKytB,SAG3CplB,EAAIgzB,SAASr7B,KAAKytB,QAASztB,KAAKgM,OAAO0nD,mBAGnC1zD,KAAKgM,OAAOkjB,QAAUlvB,KAAKgM,OAAOgnD,qBACpChzD,KAAKkvB,QAGPlvB,KAAKk4B,SAEL,IAAI7xB,GAAOrG,KAAKgM,OAAO3F,IACnBA,KACFgC,EAAIgzB,SAASr7B,KAAKytB,QAASpnB,GACtBrG,KAAKgM,OAAOgnD,qBAAuB3qD,EAAIgzB,SAASr7B,KAAKkrC,aAAc7kC,IAG1ErG,KAAK2yD,UAEA3yD,KAAKgM,OAAOqmD,YAAcryD,KAAK+yD,SAAStlC,QAAQ2lC,UACnDpzD,KAAK0yD,SAIP,IAAI7kB,GAAsD,gBAA7B7tC,MAAKgM,OAAkB,YAChDhM,KAAKgM,OAAO2nD,YACV3zD,KAAKgM,OAAiB,WAAIhM,KAAKkrC,aAAarkC,aAAa,oBAAsB7G,KAAK+yD,SAAStlC,QAAQ5mB,aAAa,cACpHgnC,IACFxlC,EAAIslC,oBAAoB3tC,KAAKwQ,OAAQxQ,KAAM6tC,GAI7C7tC,KAAKoI,SAASmqB,KAAK,gBAAgB,GAEnCvyB,KAAK4zD,mBACL5zD,KAAK6zD,sBACL7zD,KAAK8zD,mBACL9zD,KAAK+zD,oBAIA/zD,KAAKgM,OAAOqmD,aAAeryD,KAAK+yD,SAAStlC,QAAQihB,aAAa,cAAgBrtC,SAASgyB,cAAc,WAAarzB,KAAK+yD,SAAStlC,SAAaqE,EAAQyB,SACxJ0Z,WAAW,WAAaxB,EAAK3hB,OAAM,IAAU,KAI1CgI,EAAQoD,kCACXhtB,EAAUI,OAAO2wC,qBAAqBj5C,MAIpCA,KAAKg0D,UAAYh0D,KAAKgM,OAAOioD,MAC/Bj0D,KAAKg0D,WAIFh0D,KAAKgM,OAAOqmD,YAAcryD,KAAK+yD,SAASN,OAG7CzyD,KAAKwQ,OAAOwnB,KAAK,cAAcA,KAAK,SAGtC47B,iBAAkB,WAChB,GAAInoB,GAAiCzrC,KACjCk0D,EAAiCpiC,EAAQmD,wBACzCk/B,EAAiCriC,EAAQkD,kCAK7C,IAJIk/B,GACFl0D,KAAKoI,SAASmqB,KAAK,iBAAiB,GAGjCvyB,KAAKgM,OAAO4tB,SAAjB,GAMKu6B,GAAwBA,GAAuBD,KAClDl0D,KAAKwQ,OAAOknB,GAAG,mBAAoB,WACjC,GAAIrvB,EAAIkmC,eAAe9C,EAAKhe,SAAS9B,MAAMtjB,EAAIuxB,SAASK,aAAc,CAKpE,IAAK,GAJDm6B,GAAoB3oB,EAAKhjC,UAAUk1C,kBACnCU,EAAc5S,EAAKhe,QAAQ9oB,iBAAiB,IAAM8mC,EAAKz/B,OAAOo+C,8BAC9DiK,GAAiB,EAEZzvD,EAAIy5C,EAAYx8C,OAAQ+C,KAC3BsD,EAAUG,IAAIpD,SAASo5C,EAAYz5C,GAAIwvD,KACzCC,GAAiB,EAIhBA,IAAgBhsD,EAAIuxB,SAASw6B,GAAoB3oB,EAAKz/B,OAAOo+C,kCAItE/hD,EAAI6vB,QAAQl4B,KAAKytB,QAAS,OAAQ,WAChCplB,EAAIuxB,SAAS6R,EAAKhe,SAAUge,EAAKz/B,OAAOo+C,iCAQ5C,IACIkK,GAAkBt0D,KAAKqxD,QAAQ/+C,cAAcpH,qBAAqB,KAElEqpD,EAAkBlsD,EAAIuxB,SAASK,YAC/BsU,EAAkB,SAAS9gB,GACzB,GAAI6S,GAAcp4B,EAAUM,KAAK0wB,OAAO7wB,EAAIkmC,eAAe9gB,IAAU3tB,MAIrE,OAHiC,SAA7BwgC,EAAY5F,OAAO,EAAG,KACxB4F,EAAc,UAAYA,GAErBA,EAGbj4B,GAAI6vB,QAAQl4B,KAAKytB,QAAS,UAAW,SAASqQ,GAC5C,GAAKw2B,EAAMzyD,OAAX,CAIA,GAEIy+B,GAFAurB,EAAepgB,EAAKhjC,UAAUk1C,gBAAgB7f,EAAM/8B,OAAOwR,eAC3D8uB,EAAeh5B,EAAIi3B,iBAAiBusB,GAAgBptB,MAAO,KAAO,EAGjE4C,KAILf,EAAciO,EAAelN,GAG7B4L,WAAW,WACT,GAAIunB,GAAiBjmB,EAAelN,EAChCmzB,KAAmBl0B,GAKnBk0B,EAAe7oC,MAAM4oC,IACvBlzB,EAAKp6B,aAAa,OAAQutD,IAE3B,SAIPX,oBAAqB,WAMnB,GALA7zD,KAAKoI,SAASmqB,KAAK,wBAAwB,GAKvCT,EAAQ4B,cAAc,aAAc,CACtC,GAAI8K,IAAqB,QAAS,UAC9Bi2B,EAAoBj2B,EAAW38B,OAC/B4rB,EAAoBztB,KAAKytB,OAE7BplB,GAAI6vB,QAAQzK,EAAS,YAAa,SAASqQ,GACzC,GAGI7H,GAHAl1B,EAAS+8B,EAAM/8B,QAAU+8B,EAAM98B,WAC/BkuB,EAASnuB,EAAOmuB,MAChBtqB,EAAS,CAGb,IAAwB,QAApB7D,EAAO8L,SAAX,CAIA,KAAS4nD,EAAF7vD,EAAoBA,IACzBqxB,EAAWuI,EAAW55B,GAClBsqB,EAAM+G,KACRl1B,EAAOkG,aAAagvB,EAAUrK,SAASsD,EAAM+G,GAAW,KACxD/G,EAAM+G,GAAY,GAKtB/tB,GAAUI,OAAOgxC,OAAO7rB,QAK9BqmC,iBAAkB,WAChB9zD,KAAK4uD,YAAc,GAAI1mD,GAAU6oD,YAAY/wD,KAAKwQ,SAGpDujD,kBAAmB,WAKjB,QAASW,GAAO7I,GACd,GAAIt7C,GAAgBlI,EAAIi3B,iBAAiBusB,GAAgBptB,MAAO,UAAY,EACxEluB,IAAiBlI,EAAIpD,SAASwmC,EAAKhe,QAASld,IAC9Ck7B,EAAKhjC,UAAUs3C,kBAAkB,WAC3BtU,EAAKz/B,OAAOw+B,cACdniC,EAAI+hC,sBAAsB75B,GACU,MAA3BA,EAAc1D,UACvBxE,EAAI4hC,cAAc15B,EAAe,OAXzC,GAAIk7B,GAAoCzrC,KACpC20D,EAAoC,gCACpCC,EAAoC,cAenC50D,MAAKgM,OAAOw+B,eACfniC,EAAI6vB,QAAQl4B,KAAKytB,SAAU,QAAS,WAAY,WAC9C,GAAIge,EAAK2C,UAAW,CAClB,GAAIzD,GAAYc,EAAKzgC,IAAInG,cAAc,IACvC4mC,GAAKhe,QAAQrZ,UAAY,GACzBq3B,EAAKhe,QAAQze,YAAY27B,GACpB7Y,EAAQ+B,+CAIX4X,EAAKhjC,UAAUgV,WAAWktB,GAAW,IAHrCA,EAAUv2B,UAAY,OACtBq3B,EAAKhjC,UAAU0zC,UAAUxR,EAAU92B,gBAmB3CxL,EAAI6vB,QAAQl4B,KAAKytB,QAAS,UAAW,SAASqQ,GAC5C,GAAIyzB,GAAUzzB,EAAMyzB,OAEpB,KAAIzzB,EAAM2zB,WAINF,IAAYrpD,EAAUe,WAAasoD,IAAYrpD,EAAUc,eAA7D,CAGA,GAAI6rD,GAAexsD,EAAIi3B,iBAAiBmM,EAAKhjC,UAAUk1C,mBAAqBlf,MAAOk2B,GAAqC,EACxH,OAAIE,OACF5nB,YAAW,WAET,GACIrR,GADAiwB,EAAepgB,EAAKhjC,UAAUk1C,iBAGlC,IAA8B,OAA1BkX,EAAahoD,SAAmB,CAClC,IAAKg/C,EACH,MAGFjwB,GAAOvzB,EAAIi3B,iBAAiBusB,GAAgBptB,MAAOm2B,GAAa,GAE3Dh5B,GACH84B,EAAO7I,GAIP0F,IAAYrpD,EAAUe,WAAa4rD,EAAahoD,SAAS8e,MAAM,aACjE+oC,EAAO7I,IAER,QAIDpgB,EAAKz/B,OAAOw+B,eAAiB+mB,IAAYrpD,EAAUe,YAAcf,EAAU4pB,QAAQiC,8BACrF+J,EAAM39B,iBACNsrC,EAAKrjC,SAASmqB,KAAK,4BAM1BrqB,WACF,SAAUA,GACT,GAAIG,GAAkBH,EAAUG,IAC5B2C,EAAkB3J,SAClBkM,EAAkB7L,OAClBozD,EAAkB9pD,EAAInG,cAAc,OAIpCkwD,GACE,mBACA,QAAS,SACT,cAAe,YAAa,aAAc,eAAgB,cAC1D,cAAe,iBACf,aAAc,kBAAmB,cAAe,iBAChD,aAAc,YAAa,gBAK7BC,GACE,mBACA,kBACA,sBAAuB,sBAAuB,sBAC9C,oBAAqB,oBAAqB,oBAC1C,qBAAsB,qBAAsB,qBAC5C,mBAAoB,mBAAoB,mBACxC,QAAS,UAAW,QACpB,gBAAiB,cAAe,eAAgB,aAChD,gBAAiB,iBAAkB,gBAAiB,gBACpD,eAAgB,gBAAiB,cAAe,iBAChD,WAAY,MAAO,OAAQ,QAAS,SAAU,UAC9C,iBAAkB,aAClB,qBAAsB,kBAAmB,iBAAkB,aAC3D,qBAAsB,kBAAmB,iBAAiB,aAC1D,kCAAmC,8BAA+B,0BAClE,qCAAsC,iCAAkC,6BACxE,oCAAqC,gCAAiC,4BACtE,iCAAkC,6BAA8B,yBAChE,QAAS,UAEXC,GACE,yCACA,iFACA,0CACA,0CACA/sD,EAAU4pB,QAAQY,QAChB,mDACA,kDAEF,wFAWFwiC,EAAwB,SAASznC,GACnC,GAAIA,EAAQ0nC,UAGV,IAAM1nC,EAAQ0nC,YAAe,MAAMr0D,QAC9B,CACL,GAAIs0D,GAAe3nC,EAAQyB,MACvB+tB,EAAoBjyC,EAAIoK,gBAAgB8nC,WAAalyC,EAAIC,KAAKiyC,UAC9DE,EAAqBpyC,EAAIoK,gBAAgBioC,YAAcryC,EAAIC,KAAKoyC,WAChEgY,GACEjjD,SAAkBgjD,EAAahjD,SAC/BmpC,IAAkB6Z,EAAa7Z,IAC/B1S,KAAkBusB,EAAavsB,KAC/BysB,iBAAkBF,EAAaE,iBAGrCjtD,GAAIu1B,WACFxrB,SAAkB,WAClBmpC,IAAkB,WAClB1S,KAAkB,WAElBysB,iBAAkB,SACjB59B,GAAGjK,GAENA,EAAQ3D,QAERzhB,EAAIu1B,UAAUy3B,GAAgB39B,GAAGjK,GAE7BlgB,EAAIgwC,UAINhwC,EAAIgwC,SAASH,EAAoBH,IAMvC/0C,GAAUQ,MAAMkqD,SAAS/yD,UAAUqvB,MAAQ,WACzC,GAOIqmC,GAPA9pB,EAAwBzrC,KACxBw1D,EAAwBxqD,EAAIqoB,cAAc,UAC1C++B,EAAwBpyD,KAAK+yD,SAAStlC,QACtCgoC,EAAwBrD,EAAgB1jB,aAAa,eACrDgnB,EAAwBD,GAAkBrD,EAAgBvrD,aAAa,eACvE8uD,EAAwBvD,EAAgBljC,MAAME,QAC9CwmC,EAAwBxD,EAAgBgB,QAG5CpzD,MAAK61D,gBAAuBf,EAAc5iD,WAAU,GACpDlS,KAAK81D,eAAuBhB,EAAc5iD,WAAU,GACpDlS,KAAK+1D,mBAAuBjB,EAAc5iD,WAAU,GAGhDujD,GACFrD,EAAgB/e,gBAAgB,eAG9B+e,IAAoBoD,GACtBpD,EAAgB4D,OAIlB5D,EAAgBgB,UAAW,EAG3BhB,EAAgBljC,MAAME,QAAUmmC,EAAyB,QAEpDnD,EAAgBvrD,aAAa,SAA4D,SAAjDwB,EAAIm0B,SAAS,UAAUC,KAAK21B,IACpEA,EAAgBvrD,aAAa,SAA2D,SAAhDwB,EAAIm0B,SAAS,SAASC,KAAK21B,MACtEA,EAAgBljC,MAAME,QAAUmmC,EAAyBI,GAI3DttD,EAAIo1B,WAAWu3B,GAAgBv4B,KAAK21B,GAAiBp1B,GAAGh9B,KAAKkrC,cAAc/N,MAAMn9B,KAAK81D,gBAGtFztD,EAAIo1B,WAAWs3B,GAAiBt4B,KAAK21B,GAAiBp1B,GAAGh9B,KAAKytB,SAAS0P,MAAMn9B,KAAK81D,gBAGlFztD,EAAI44B,UAAUg0B,GAAsBj0B,KAAKhhC,KAAKytB,QAAQlb,eAGtD6/C,EAAgBgB,UAAW,EAC3B/qD,EAAIo1B,WAAWu3B,GAAgBv4B,KAAK21B,GAAiBp1B,GAAGh9B,KAAK+1D,oBAC7D1tD,EAAIo1B,WAAWs3B,GAAiBt4B,KAAK21B,GAAiBp1B,GAAGh9B,KAAK+1D,oBAC9D3D,EAAgBgB,SAAWwC,EAG3BxD,EAAgBljC,MAAME,QAAUumC,EAChCT,EAAsB9C,GACtBA,EAAgBljC,MAAME,QAAUmmC,EAEhCltD,EAAIo1B,WAAWu3B,GAAgBv4B,KAAK21B,GAAiBp1B,GAAGh9B,KAAK61D,iBAC7DxtD,EAAIo1B,WAAWs3B,GAAiBt4B,KAAK21B,GAAiBp1B,GAAGh9B,KAAK61D,iBAG9DzD,EAAgBljC,MAAME,QAAUumC,EAEhCttD,EAAIo1B,YAAY,YAAYhB,KAAK21B,GAAiBp1B,GAAGh9B,KAAKkrC,aAK1D,IAAI+qB,GAAsB/tD,EAAUM,KAAKmuB,MAAMq+B,GAAgBn+B,SAAS,WAmCxE,OAhCI2+B,GACFA,EAAsB1rC,QAEtBsoC,EAAgB4D,OAIdP,GACFrD,EAAgBnrD,aAAa,cAAeyuD,GAI9C11D,KAAKwQ,OAAOknB,GAAG,iBAAkB,WAC/BrvB,EAAIo1B,WAAWw4B,GAAsBx5B,KAAKgP,EAAKoqB,iBAAiB74B,GAAGyO,EAAKP,cACxE7iC,EAAIo1B,WAAWs3B,GAAsBt4B,KAAKgP,EAAKoqB,iBAAiB74B,GAAGyO,EAAKhe,WAG1EztB,KAAKwQ,OAAOknB,GAAG,gBAAiB,WAC9BrvB,EAAIo1B,WAAWw4B,GAAsBx5B,KAAKgP,EAAKqqB,gBAAgB94B,GAAGyO,EAAKP,cACvE7iC,EAAIo1B,WAAWs3B,GAAsBt4B,KAAKgP,EAAKqqB,gBAAgB94B,GAAGyO,EAAKhe,WAGzEztB,KAAKwQ,OAAO0nB,QAAQ,mBAAoB,WACtC7vB,EAAIo1B,WAAWw4B,GAAsBx5B,KAAKgP,EAAKsqB,oBAAoB/4B,GAAGyO,EAAKP,cAC3E7iC,EAAIo1B,WAAWs3B,GAAsBt4B,KAAKgP,EAAKsqB,oBAAoB/4B,GAAGyO,EAAKhe,WAG7EztB,KAAKwQ,OAAO0nB,QAAQ,kBAAmB,WACrC7vB,EAAIo1B,WAAWw4B,GAAsBx5B,KAAKgP,EAAKqqB,gBAAgB94B,GAAGyO,EAAKP,cACvE7iC,EAAIo1B,WAAWs3B,GAAsBt4B,KAAKgP,EAAKqqB,gBAAgB94B,GAAGyO,EAAKhe,WAGlEztB,OAERkI,WASH,SAAUA,GACR,GAAIG,GAAYH,EAAUG,IACtBypB,EAAY5pB,EAAU4pB,QAItBokC,GACEC,GAAM,OACNC,GAAM,SACNC,GAAM,aAKRC,EAAe,SAAUv1D,EAAQ62B,EAAQV,GAC3C,IAAI,GAAItyB,GAAI,EAAG2yB,EAAMK,EAAO/1B,OAAY01B,EAAJ3yB,EAASA,IAC3C7D,EAAOP,iBAAiBo3B,EAAOhzB,GAAIsyB,GAAU,IAM7Cq/B,EAAkB,SAAUx1D,EAAQ62B,EAAQV,GAC9C,IAAI,GAAItyB,GAAI,EAAG2yB,EAAMK,EAAO/1B,OAAY01B,EAAJ3yB,EAASA,IAC3C7D,EAAOY,oBAAoBi2B,EAAOhzB,GAAIsyB,GAAU,IAIhDs/B,EAAuB,SAAS14B,EAAO+Z,GACzC,CAAA,GAAIpvC,GAAYovC,EAASpvC,SACXovC,GAASpqB,QAEvB,GAAIhlB,EAAU8b,cACZ,GAAI9b,EAAU+2C,qBAAqB,MACjC1hB,EAAM39B,iBACN03C,EAASzvC,SAASmqB,KAAK,mBAClB,IAAI9pB,EAAU+2C,uBACnB1hB,EAAM39B,qBACD,CAEL,GAAIsI,EAAU82C,2BACV92C,EAAUo2C,mBACVp2C,EAAUo2C,kBAAkBhyC,UAC5B,UAAYpG,KAAKgC,EAAUo2C,kBAAkBhyC,UAC/C,CACA,GAAIsxB,GAAW11B,EAAUo2C,iBAEzB,IADA/gB,EAAM39B,iBACF,QAAUsG,KAAK03B,EAASmC,aAAenC,EAAS57B,WAElD47B,EAASz5B,WAAW4Z,YAAY6f,OAC3B,CACL,GAAIzzB,GAAQyzB,EAAS5rB,cAAc7F,aACnChC,GAAM8S,mBAAmB2gB,GACzBzzB,EAAM6S,UAAS,GACf9U,EAAUyzC,aAAaxxC,IAI3B,GAAI+rD,GAAmBhuD,EAAUi3C,yBAEjC,IAAI+W,EAAkB,CACpB34B,EAAM39B,gBAGN,KACE,GAAIs+C,GAAK,GAAIC,aAAY,8BACzB+X,GAAiB9X,cAAcF,GAC/B,MAAOG,IACT6X,EAAiB/xD,WAAW4Z,YAAYm4C,QAIxChuD,GAAU21C,uBACZtgB,EAAM39B,iBACNsI,EAAUoV,mBAKZ64C,EAAmB,SAAS7e,GAC9B,GAAKA,EAASpvC,UAAU8b,eAEjB,GAAIszB,EAASpvC,UAAU+2C,qBAAqB,OAC7C3H,EAASzvC,SAASmqB,KAAK,cAAe,WAF1CslB,GAASpvC,UAAUoV,gBAMrBg6B,GAASzvC,SAASmqB,KAAK,aAAc,WAGnCokC,EAAuB,WACnB32D,KAAK42D,wBACPC,cAAcD,wBAEhB52D,KAAKwQ,OAAOwnB,KAAK,qBAIjB8+B,EAAwB,WAC1B92D,KAAKwQ,OAAOwnB,KAAK,qBAAqBA,KAAK,8BAC3CiV,WAAW,WACTjtC,KAAKwQ,OAAOwnB,KAAK,eAAeA,KAAK,yBACpC30B,KAAKrD,MAAO,IAGb+2D,EAAc,SAASj5B,GACzB99B,KAAKwQ,OAAOwnB,KAAK,QAAS8F,GAAO9F,KAAK,iBAAkB8F,GAIxDmP,WAAW,WACTjtC,KAAKg3D,WAAah3D,KAAK6xD,UAAS,GAAO,IACtCxuD,KAAKrD,MAAO,IAGbi3D,EAAa,SAASn5B,GACxB,GAAI99B,KAAKg3D,aAAeh3D,KAAK6xD,UAAS,GAAO,GAAQ,CAEnD,GAAIqF,GAAcp5B,CACS,mBAAjB37B,QAAOg1D,SACfD,EAAc/0D,OAAOg1D,OAAOr5B,GAASp9B,MAAQ4wB,MAAO,aAEtDtxB,KAAKwQ,OAAOwnB,KAAK,SAAUk/B,GAAal/B,KAAK,kBAAmBk/B,GAElEl3D,KAAKwQ,OAAOwnB,KAAK,OAAQ8F,GAAO9F,KAAK,gBAAiB8F,IAGpDs5B,EAAc,SAASt5B,GACzB99B,KAAKwQ,OAAOwnB,KAAK8F,EAAMp9B,KAAMo9B,GAAO9F,KAAK8F,EAAMp9B,KAAO,YAAao9B,GAChD,UAAfA,EAAMp9B,MACRusC,WAAW,WACTjtC,KAAKwQ,OAAOwnB,KAAK,qBAChB30B,KAAKrD,MAAO,IAIfq3D,EAAa,SAASv5B,GACpB99B,KAAKgM,OAAOsrD,oBAGVx5B,EAAM4Z,gBACR5Z,EAAM4Z,cAAc6f,QAAQ,YAAav3D,KAAKgM,OAAOsrD,kBAAoBt3D,KAAKyI,UAAUo6C,WACxF/kB,EAAM4Z,cAAc6f,QAAQ,aAAcv3D,KAAKyI,UAAUq6C,gBACzDhlB,EAAM39B,kBAERH,KAAKwQ,OAAOwnB,KAAK8F,EAAMp9B,KAAMo9B,GAAO9F,KAAK8F,EAAMp9B,KAAO,YAAao9B,KAInE05B,EAAc,SAAS15B,GACzB,GAAIyzB,GAAUzzB,EAAMyzB,SAChBA,IAAYrpD,EAAUiB,WAAaooD,IAAYrpD,EAAUe,YAC3DjJ,KAAKwQ,OAAOwnB,KAAK,qBAIjByhB,EAAkB,SAAS3b,GAC7B,IAAKhM,EAAQuD,mCAAoC,CAE/C,GAAIt0B,GAAS+8B,EAAM/8B,OACf02D,EAAYz3D,KAAKytB,QAAQ9oB,iBAAiB,OAC1C+yD,EAAc13D,KAAKytB,QAAQ9oB,iBAAiB,IAAM3E,KAAKgM,OAAOo+C,6BAA+B,QAC7FuN,EAAWzvD,EAAUM,KAAKmuB,MAAM8gC,GAAW5gC,QAAQ6gC,EAE/B,SAApB32D,EAAO8L,UAAsB3E,EAAUM,KAAKmuB,MAAMghC,GAAU1yD,SAASlE,IACvEf,KAAKyI,UAAUgV,WAAW1c,KAO5B62D,EAAkB,SAAS95B,GAC7B,GAMI+5B,GANAC,GACEC,IAAK,UACL3gC,EAAK,UAEPr2B,EAAW+8B,EAAM/8B,OACjB8L,EAAW9L,EAAO8L,UAGL,MAAbA,GAAiC,QAAbA,KAGpB9L,EAAO2tC,aAAa,WACtBmpB,EAAQC,EAAcjrD,IAAa9L,EAAO8F,aAAa,SAAW9F,EAAO8F,aAAa,QACtF9F,EAAOkG,aAAa,QAAS4wD,MAI7BG,EAAc,SAASl6B,GACzB,GAAI99B,KAAKgM,OAAOo+C,6BAA8B,CAG5C,GAAI6N,GAAa/vD,EAAUG,IAAIi3B,iBAAiBxB,EAAM/8B,QAAU09B,MAAO,IAAMz+B,KAAKgM,OAAOo+C,+BAAgC,EAAOpqD,KAAKytB,QACjIwqC,IACFj4D,KAAKyI,UAAUi0C,SAASub,KAK1BC,EAAa,WACVpmC,EAAQuD,oCAEX4X,WAAW,WACTjtC,KAAKyI,UAAUse,eAAewE,mBAC7BloB,KAAKrD,MAAO,IAIfm4D,EAAgB,SAASr6B,GAC3B,GAEI/8B,GAAQyP,EAFR+gD,EAAUzzB,EAAMyzB,QAChB58B,EAAUuhC,EAAU3E,IAInBzzB,EAAM8e,SAAW9e,EAAM+e,WAAa/e,EAAMwzB,QAAU38B,IACvD30B,KAAKoI,SAASmqB,KAAKoC,GACnBmJ,EAAM39B,kBAGJoxD,IAAYrpD,EAAUc,eAExBwtD,EAAqB14B,EAAO99B,OAI1BuxD,IAAYrpD,EAAUc,eAAiBuoD,IAAYrpD,EAAUmB,cAC/DtI,EAASf,KAAKyI,UAAUk1C,iBAAgB,GACpC58C,GAA8B,QAApBA,EAAO8L,WACnBixB,EAAM39B,iBACNqQ,EAASzP,EAAO2D,WAChB8L,EAAO8N,YAAYvd,GAEK,MAApByP,EAAO3D,UAAqB2D,EAAOqD,YACrCrD,EAAO9L,WAAW4Z,YAAY9N,GAEhCy8B,WAAW,WACT/kC,EAAUI,OAAOgxC,OAAOt5C,KAAKytB,UAC5B,KAIHztB,KAAKgM,OAAOosD,cAAgB7G,IAAYrpD,EAAUkB,UAEpD00B,EAAM39B,iBACNu2D,EAAiB12D,KAAMA,KAAKytB,WAK5B4qC,EAAoB,WACtBprB,WAAW,WACLjtC,KAAKgL,IAAIqoB,cAAc,YAAcrzB,KAAKytB,SAC5CztB,KAAK8pB,SAENzmB,KAAKrD,MAAO,IAGbs4D,EAAmB,WACrBrrB,WAAW,WACTjtC,KAAKyI,UAAUse,eAAewE,mBAC7BloB,KAAKrD,MAAO,IAKbu4D,EAAoB,WACtB,GAAIC,GAAe,WACbx4D,KAAKgL,IAAIioB,YAAY,wBAAwB,EAAO,SACpDjzB,KAAKgL,IAAIioB,YAAY,4BAA4B,EAAO,UAE1DwlC,EAAkB,WAChBD,EAAar3D,KAAKnB,MAClBu2D,EAAgBv2D,KAAKqxD,QAAQhmB,aAAc,QAAS,UAAW,aAAcotB,IAC5Ep1D,KAAKrD,KAERA,MAAKgL,IAAIioB,aACT/qB,EAAU4pB,QAAQuC,gBAAgBr0B,KAAKgL,IAAK,yBAC5C9C,EAAU4pB,QAAQuC,gBAAgBr0B,KAAKgL,IAAK,8BAE1ChL,KAAKqxD,QAAQhmB,UACfirB,EAAat2D,KAAKqxD,QAAQhmB,aAAc,QAAS,UAAW,aAAcotB,GAE1ExrB,WAAW,WACTurB,EAAar3D,KAAKnB,OACjBqD,KAAKrD,MAAO,IAGnBA,KAAKovD,eAAiBlnD,EAAUI,OAAOixC,oBAAoBv5C,KAAKytB,QAASztB,KAAKwQ,QAGhFtI,GAAUQ,MAAMkqD,SAAS/yD,UAAUq4B,QAAU,WAC3C,GACIrd,GAAuB7a,KAAKqxD,QAAiB,UAAIrxD,KAAKqxD,QAAQhmB,YAAcrrC,KAAKqxD,QAAQ/jB,qBAEzForB,GADsB14D,KAAKytB,QACJqE,EAAQoC,mCAAqCl0B,KAAKqxD,QAAQ/jB,mBAAsBttC,KAAKytB,QAAUztB,KAAKqxD,QAAQ7+C,YAEvIxS,MAAKg3D,WAAah3D,KAAK6xD,UAAS,GAAO,GAGvCh3C,EAAUra,kBAAkB,kBAAmBm2D,EAAqBtzD,KAAKrD,OAAO,GAI3E8xB,EAAQ0E,2BACXx2B,KAAK42D,uBAAyB+B,YAAY,WACnCtwD,EAAIpD,SAAS5D,SAAS+T,gBAAiByF,IAC1C87C,EAAqBx1D,KAAKnB,OAE3B,MAIDA,KAAKgM,OAAO4sD,cAEdL,EAAkBp3D,KAAKnB,MAGzBs2D,EAAaoC,GAAmB,OAAQ,QAAS,UAAW,QAAS,SAAU5B,EAAsBzzD,KAAKrD,OAC1G04D,EAAiBl4D,iBAAiB,QAASu2D,EAAY1zD,KAAKrD,OAAO,GACnE04D,EAAiBl4D,iBAAiB,OAASy2D,EAAW5zD,KAAKrD,OAAO,GAElEs2D,EAAat2D,KAAKytB,SAAU,OAAQ,QAAS,eAAgB2pC,EAAY/zD,KAAKrD,OAAO,GACrFA,KAAKytB,QAAQjtB,iBAAiB,OAAc62D,EAAWh0D,KAAKrD,OAAO,GACnEA,KAAKytB,QAAQjtB,iBAAiB,YAAci5C,EAAgBp2C,KAAKrD,OAAO,GACxEA,KAAKytB,QAAQjtB,iBAAiB,YAAco3D,EAAgBv0D,KAAKrD,OAAO,GACxEA,KAAKytB,QAAQjtB,iBAAiB,QAAcw3D,EAAY30D,KAAKrD,OAAO,GACpEA,KAAKytB,QAAQjtB,iBAAiB,OAAc03D,EAAW70D,KAAKrD,OAAO,GACnEA,KAAKytB,QAAQjtB,iBAAiB,QAAcg3D,EAAYn0D,KAAKrD,OAAO,GACpEA,KAAKytB,QAAQjtB,iBAAiB,UAAc23D,EAAc90D,KAAKrD,OAAO,GAEtEA,KAAKytB,QAAQjtB,iBAAiB,YAAa,WACzCR,KAAKwQ,OAAOwnB,KAAK,sBAChB30B,KAAKrD,OAAO,IAGVA,KAAKgM,OAAOgnD,qBAAuBlhC,EAAQwE,wBAC9Czb,EAAUra,iBAAiB,QAAS63D,EAAkBh1D,KAAKrD,OAAO,GAClE6a,EAAUra,iBAAiB,OAAQ83D,EAAiBj1D,KAAKrD,OAAO,MAInEkI,WAIH,SAAUA,GACR,GAAI2wD,GAAW,GAEf3wD,GAAUQ,MAAMowD,aAAepoC,KAAKpiB,QAGlC2N,YAAa,SAAS2xB,EAAQmlB,EAAUlb,GACtC73C,KAAK4tC,OAAWA,EAChB5tC,KAAK+yD,SAAWA,EAChB/yD,KAAK63C,SAAWA,EAEhB73C,KAAKmxD,YAQP4H,uBAAwB,SAASC,GAC/Bh5D,KAAK+yD,SAAS1kB,SAASnmC,EAAUM,KAAK0wB,OAAOl5B,KAAK63C,SAASga,UAAS,GAAO,IAAQ/xD,OAAQk5D,IAQ7FC,uBAAwB,SAASD,GAC/B,GAAIE,GAAgBl5D,KAAK+yD,SAASlB,UAAS,GAAO,EAC9CqH,GACFl5D,KAAK63C,SAASxJ,SAAS6qB,EAAeF,IAEtCh5D,KAAK63C,SAAS3J,QACdluC,KAAK4tC,OAAO5V,KAAK,qBAQrBi8B,KAAM,SAAS+E,GACwB,aAAjCh5D,KAAK4tC,OAAO2kB,YAAYlsD,KAC1BrG,KAAKi5D,uBAAuBD,GAE5Bh5D,KAAK+4D,uBAAuBC,IAShC7H,SAAU,WACR,GAAIgI,GACA1tB,EAAgBzrC,KAChBwzD,EAAgBxzD,KAAK+yD,SAAStlC,QAAQ+lC,KACtC4F,EAAgB,WACdD,EAAWR,YAAY,WAAaltB,EAAKstB,0BAA6BF,IAExEQ,EAAgB,WACdxC,cAAcsC,GACdA,EAAW,KAGjBC,KAEI5F,IAGFtrD,EAAUG,IAAI6vB,QAAQs7B,EAAM,SAAU,WACpC/nB,EAAKwoB,MAAK,KAEZ/rD,EAAUG,IAAI6vB,QAAQs7B,EAAM,QAAS,WACnCvmB,WAAW,WAAaxB,EAAKwtB,0BAA6B,MAI9Dj5D,KAAK4tC,OAAOlW,GAAG,cAAe,SAAS/xB,GACxB,aAATA,GAAwBwzD,EAGR,aAATxzD,IACT8lC,EAAKstB,wBAAuB,GAC5BM,MAJA5tB,EAAKwtB,wBAAuB,GAC5BG,OAOJp5D,KAAK4tC,OAAOlW,GAAG,mBAAoB2hC,OAGtCnxD,WACFA,UAAUQ,MAAM4wD,SAAWpxD,UAAUQ,MAAMypD,KAAK7jD,QAE/CjI,KAAM,WAEN4V,YAAa,SAASzL,EAAQ4hD,EAAiBpmD,GAC7ChM,KAAK+wB,KAAKvgB,EAAQ4hD,EAAiBpmD,GAEnChM,KAAKmxD,YAGPjjB,MAAO,WACLluC,KAAKytB,QAAQ6D,MAAQ,IAGvBugC,SAAU,SAASlwB,GACjB,GAAIrQ,GAAQtxB,KAAKouC,UAAY,GAAKpuC,KAAKytB,QAAQ6D,KAI/C,OAHIqQ,MAAU,IACZrQ,EAAQtxB,KAAKwQ,OAAOmxB,MAAMrQ,IAErBA,GAGT+c,SAAU,SAAS1U,EAAMgI,GACnBA,IACFhI,EAAO35B,KAAKwQ,OAAOmxB,MAAMhI,IAE3B35B,KAAKytB,QAAQ6D,MAAQqI,GAGvB2I,QAAS,WACL,GAAI3I,GAAO35B,KAAKwQ,OAAOmxB,MAAM3hC,KAAKytB,QAAQ6D,MAC1CtxB,MAAKytB,QAAQ6D,MAAQqI,GAGzBsU,kBAAmB,WACjB,GAAIsrB,GAAsBrxD,UAAU4pB,QAAQkC,+BAA+Bh0B,KAAKytB,SAC5EogB,EAAsB7tC,KAAKytB,QAAQ5mB,aAAa,gBAAkB,KAClEyqB,EAAsBtxB,KAAKytB,QAAQ6D,MACnC8c,GAAuB9c,CAC3B,OAAQioC,IAAuBnrB,GAAa9c,IAAUuc,GAGxDO,QAAS,WACP,OAAQlmC,UAAUM,KAAK0wB,OAAOl5B,KAAKytB,QAAQ6D,OAAOxxB,QAAUE,KAAKiuC,qBAGnEkjB,SAAU,WACR,GAAI1jC,GAAUztB,KAAKytB,QACfjd,EAAUxQ,KAAKwQ,OACfgpD,GACEC,QAAU,QACVC,SAAU,QAMZ9hC,EAAS1vB,UAAU4pB,QAAQ4B,cAAc,YAAc,UAAW,WAAY,WAAa,QAAS,OAAQ,SAEhHljB,GAAOknB,GAAG,aAAc,WACtBxvB,UAAUG,IAAI6vB,QAAQzK,EAASmK,EAAQ,SAASkG,GAC9C,GAAI7J,GAAYulC,EAAa17B,EAAMp9B,OAASo9B,EAAMp9B,IAClD8P,GAAOwnB,KAAK/D,GAAW+D,KAAK/D,EAAY,eAG1C/rB,UAAUG,IAAI6vB,QAAQzK,GAAU,QAAS,QAAS,WAChDwf,WAAW,WAAaz8B,EAAOwnB,KAAK,SAASA,KAAK,mBAAsB,UAoChF,SAAU9vB,GACR,GAAI6gD,GAEA4Q,GAEFtzD,KAAsB0iD,EAEtB75B,OAAsB,EAEtB3mB,QAAsBwgD,EAGtB6Q,sBAAsB,EAEtBhgC,UAAsB,EAEtBg/B,cAAsB,EAEtBR,cAAsB,EAGtByB,aAAwBl2B,MAAQm2B,MAAQlmB,QAAUmmB,OAAShwD,MAASjD,YAEpEkzD,oBAAqB,KAErBC,OAAsB/xD,EAAUG,IAAIs5B,MAEpC+xB,kBAAsB,mBAEtBwG,cAAsB,sBAEtB1vB,eAAsB,EAEtBgC,eAEAqB,gBAAsBkb,EAEtBoR,qBAAsB,EAEtB73B,SAAsB,EAEtB0wB,qBAAqB,EAGrB5I,6BAA8B,iCAK9BkN,kBAAmB,gDAGrBpvD,GAAUkyD,OAASlyD,EAAUM,KAAKivB,WAAWnpB,QAE3C2N,YAAa,SAAS62C,EAAiB9mD,GAerC,GAdAhM,KAAK8yD,gBAA+C,gBAAtB,GAAiCzxD,SAASqtB,eAAeokC,GAAmBA,EAC1G9yD,KAAKgM,OAAmB9D,EAAUM,KAAK/G,WAAW22B,MAAMuhC,GAAevhC,MAAMpsB,GAAQ1J,MACrFtC,KAAKq6D,cAAmBnyD,EAAU4pB,QAAQ/lB,YAES,YAA/C/L,KAAK8yD,gBAAgBjmD,SAASC,gBAC9B9M,KAAKgM,OAAOgnD,qBAAsB,EAClChzD,KAAKgM,OAAOqmD,YAAa,GAExBryD,KAAKgM,OAAOqmD,aACbryD,KAAK+yD,SAAmB,GAAI7qD,GAAUQ,MAAM4wD,SAASt5D,KAAMA,KAAK8yD,gBAAiB9yD,KAAKgM,QACtFhM,KAAKuyD,YAAmBvyD,KAAK+yD,WAI5B/yD,KAAKq6D,gBAAmBr6D,KAAKgM,OAAOmuD,qBAAuBjyD,EAAU4pB,QAAQ2B,gBAAkB,CAClG,GAAIgY,GAAOzrC,IAEX,YADAitC,YAAW,WAAaxB,EAAKzT,KAAK,cAAcA,KAAK,SAAY,GAKnE9vB,EAAUG,IAAIgzB,SAASh6B,SAAS4J,KAAMjL,KAAKgM,OAAOkuD,eAElDl6D,KAAK63C,SAAW,GAAI3vC,GAAUQ,MAAMkqD,SAAS5yD,KAAMA,KAAK8yD,gBAAiB9yD,KAAKgM,QAC9EhM,KAAKuyD,YAAcvyD,KAAK63C,SAEW,kBAAxB73C,MAAKgM,OAAa,QAC3BhM,KAAKs6D,cAGPt6D,KAAK03B,GAAG,aAAc13B,KAAKu6D,mBAG7BA,iBAAkB,WACTv6D,KAAKgM,OAAOqmD,aACbryD,KAAKw6D,aAAe,GAAItyD,GAAUQ,MAAMowD,aAAa94D,KAAMA,KAAK+yD,SAAU/yD,KAAK63C,WAE/E73C,KAAKgM,OAAOzD,UACdvI,KAAKuI,QAAU,GAAIL,GAAUK,QAAQkyD,QAAQz6D,KAAMA,KAAKgM,OAAOzD,QAASvI,KAAKgM,OAAO4tD,wBAI1Fc,aAAc,WACZ,MAAO16D,MAAKq6D,eAGdnsB,MAAO,WAEL,MADAluC,MAAKuyD,YAAYrkB,QACVluC,MAGT6xD,SAAU,SAASlwB,EAAOO,GACxB,MAAOliC,MAAKuyD,YAAYV,SAASlwB,EAAOO,IAG1CmM,SAAU,SAAS1U,EAAMgI,GAGvB,MAFA3hC,MAAKg4B,KAAK,qBAEL2B,GAIL35B,KAAKuyD,YAAYlkB,SAAS1U,EAAMgI,GACzB3hC,MAJEA,KAAKkuC,SAOhB5L,QAAS,WACLtiC,KAAKuyD,YAAYjwB,WAGrBxY,MAAO,SAASupC,GAEd,MADArzD,MAAKuyD,YAAYzoC,MAAMupC,GAChBrzD,MAMT0yD,QAAS,WAEP,MADA1yD,MAAKuyD,YAAYG,UACV1yD,MAMT2yD,OAAQ,WAEN,MADA3yD,MAAKuyD,YAAYI,SACV3yD,MAGTouC,QAAS,WACP,MAAOpuC,MAAKuyD,YAAYnkB,WAG1BH,kBAAmB,WACjB,MAAOjuC,MAAKuyD,YAAYtkB,qBAG1BtM,MAAO,SAASg5B,EAAez4B,GAC7B,GAAI04B,GAAgB56D,KAAKgM,OAA0B,oBAAI3K,SAAarB,KAAa,SAAIA,KAAK63C,SAASwZ,QAAQ/+C,cAAgB,KACvHlS,EAAcJ,KAAKgM,OAAOiuD,OAAOU,GACnCz5B,MAASlhC,KAAKgM,OAAO6tD,YACrBv3B,QAAWtiC,KAAKgM,OAAOs2B,QACvB1Q,QAAWgpC,EACX5+B,gBAAmBh8B,KAAKgM,OAAOo+C,6BAC/BloB,eAAmBA,GAKrB,OAH8B,gBAApB,IACRh6B,EAAUI,OAAOgxC,OAAOqhB,GAEnBv6D,GAOTk6D,YAAa,WACX,GACIO,GADApvB,EAAOzrC,IAIPkI,GAAU4pB,QAAQ2E,qBACpBz2B,KAAK03B,GAAG,iBAAkB,SAASoG,GACjCA,EAAM39B,iBACN06D,EAAU3yD,EAAUG,IAAIovC,cAAc3Z,GAClC+8B,GACFpvB,EAAKqvB,eAAeD,KAKxB76D,KAAK03B,GAAG,uBAAwB,SAASoG,GACvCA,EAAM39B,iBACN+H,EAAUG,IAAIuvC,qBAAqBnM,EAAKoM,SAAU,SAASkjB,GACrDA,GACFtvB,EAAKqvB,eAAeC,QAQ9BD,eAAgB,SAAUD,GACxB,GAAIG,GAAY9yD,EAAUI,OAAO4vC,gBAAgB2iB,GAC/C3rB,cAAiBlvC,KAAK63C,SAASpqB,QAC/ByT,MAASlhC,KAAKgM,OAAOguD,uBAAyBx3D,IAAOxC,KAAKgM,OAAO6tD,cACjE79B,gBAAmBh8B,KAAKgM,OAAOo+C,8BAEjCpqD,MAAK63C,SAASpvC,UAAUoV,iBACxB7d,KAAK63C,SAASpvC,UAAUisB,WAAWsmC,OAGtC9yD"}
\ No newline at end of file
diff --git a/package.json b/package.json
index 9f3c166..20e7ab2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wysihtml",
- "version": "0.5.0-beta2",
+ "version": "0.5.0-beta3",
"devDependencies": {
"grunt": "~0.4.4",
"grunt-contrib-concat": "~0.4.0",
@@ -14,7 +14,7 @@
"dependencies": {
"rangy": "^1.3.0-alpha.20140921"
},
- "description": "h1. wysihtml 0.5.0-beata1",
+ "description": "h1. wysihtml 0.5.0-beata3",
"main": "Gruntfile.js",
"directories": {
"example": "examples",