From be66c6954b7db78c17401b8b2b41b701e4ac1087 Mon Sep 17 00:00:00 2001
From: Oliver Pulges
Date: Wed, 28 Oct 2015 14:34:41 +0200
Subject: [PATCH] Release
---
CHANGELOG.textile | 5 ++++-
dist/wysihtml-toolbar.js | 8 +++++---
dist/wysihtml-toolbar.min.js | 8 ++++----
dist/wysihtml-toolbar.min.map | 2 +-
dist/wysihtml.js | 8 +++++---
dist/wysihtml.min.js | 8 ++++----
dist/wysihtml.min.map | 2 +-
package.json | 4 ++--
8 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/CHANGELOG.textile b/CHANGELOG.textile
index c2dfc0a..b523821 100644
--- a/CHANGELOG.textile
+++ b/CHANGELOG.textile
@@ -1,4 +1,7 @@
-*wysihtml5x 0.5.0* (October 29, 2015)
+*wysihtml5x 0.5.1* (October 28, 2015)
+* Fixes parser adding empty class attributes to tags
+
+*wysihtml5x 0.5.0* (October 27, 2015)
* Fixes Microsoft Edge pasting plaintext problem
* Fixes Microsoft Edge BR with class null entered with enter keypress
* .getValue() and .setValue() commands parse content as default (parameter must be set false to bypass cleanup)
diff --git a/dist/wysihtml-toolbar.js b/dist/wysihtml-toolbar.js
index 0e6e527..e8c5f61 100644
--- a/dist/wysihtml-toolbar.js
+++ b/dist/wysihtml-toolbar.js
@@ -1,5 +1,5 @@
/**
- * @license wysihtml v0.5.0
+ * @license wysihtml v0.5.1
* https://github.com/Voog/wysihtml
*
* Author: Christopher Blum (https://github.com/tiff)
@@ -10,7 +10,7 @@
*
*/
var wysihtml5 = {
- version: "0.5.0",
+ version: "0.5.1",
// namespaces
commands: {},
@@ -9164,7 +9164,9 @@ wysihtml5.dom.parse = function(elementOrHtml_current, config_current) {
attributes["class"] = oldNode.getAttribute("class");
}
} else {
- attributes["class"] = wysihtml5.lang.array(classes).unique().join(" ");
+ if(classes && classes.length > 0) {
+ attributes["class"] = wysihtml5.lang.array(classes).unique().join(" ");
+ }
}
} else {
// make sure that wysihtml5 temp class doesn't get stripped out
diff --git a/dist/wysihtml-toolbar.min.js b/dist/wysihtml-toolbar.min.js
index b149772..485798b 100644
--- a/dist/wysihtml-toolbar.min.js
+++ b/dist/wysihtml-toolbar.min.js
@@ -1,10 +1,10 @@
-/*! wysihtml - v0.5.0 (2015-10-27) */
+/*! wysihtml - v0.5.1 (2015-10-28) */
-var wysihtml5={version:"0.5.0",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"\ufeff",INVISIBLE_SPACE_REG_EXP:/\uFEFF/g,EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,TAB_KEY:9,DELETE_KEY:46};wysihtml5.polyfills=function(a,b){String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){var c="addEventListener",d="removeEventListener";b[c]||(a.Element.prototype[c]=a[c]=b[c]=function(b,c,d){return(d=this).attachEvent("on"+b,function(b){var b=b||a.event;b.target=b.target||b.srcElement,b.preventDefault=b.preventDefault||function(){b.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0},b.which=b.button?2===b.button?3:4===b.button?2:b.button:b.keyCode,c.call(d,b)})},a.Element.prototype[d]=a[d]=b[d]=function(a,b){return this.detachEvent("on"+a,b)})}(),Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent").get&&!function(){var b=Object.getOwnPropertyDescriptor(a.Element.prototype,"innerText");Object.defineProperty(a.Element.prototype,"textContent",{get:function(){return b.get.call(this)},set:function(a){return b.set.call(this,a)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=this.length,d=-1,e=b>>>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}),a.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]}}(a.Element.prototype),"document"in a&&("classList"in b.createElement("_")?"DOMTokenList"in a&&!function(){"use strict";var c=b.createElement("_");if(c.classList.add("c1","c2"),!c.classList.contains("c2")){var d=function(b){var c=a.DOMTokenList.prototype[b];a.DOMTokenList.prototype[b]=function(a){var b,d=arguments.length;for(b=0;d>b;b++)a=arguments[b],c.call(this,a)}};d("add"),d("remove")}if(c.classList.toggle("c3",!1),c.classList.contains("c3")){var e=a.DOMTokenList.prototype.toggle;a.DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:e.call(this,a)}}c=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(++c0?c.childNodes[e]:void 0,g=b.focusNode,h=b.focusOffset,i=g&&1===g.nodeType&&h>0?g.childNodes[h-1]:void 0,j=this.ownerDocument.createRange(),k=a.shift(),l=k?a.shift():null;for(i&&3===i.nodeType&&(g=i,h=i.nodeValue.length,i=void 0),f&&3===f.nodeType&&(c=f,e=0,f=void 0),(c===g&&e>h||c!==g&&c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_PRECEDING&&!(c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_CONTAINS))&&(g=[c,c=g][0],h=[e,e=h][0]);k&&l;)l.previousSibling&&l.previousSibling===k?(c===l&&(c=k,e=k.nodeValue.length+e),g===l&&(g=k,h=k.nodeValue.length+h),k.nodeValue=k.nodeValue+l.nodeValue,l.parentNode.removeChild(l),l=a.shift()):(k=l,l=a.shift());i&&(h=Array.prototype.indexOf.call(i.parentNode.childNodes,i)+1),f&&(e=Array.prototype.indexOf.call(f.parentNode.childNodes,f)),c&&c.parentNode&&g&&g.parentNode&&(j.setStart(c,e),j.setEnd(g,h),b.removeAllRanges(),b.addRange(j))});Node.prototype.normalize=a},f=function(){window.removeEventListener("load",f),"Node"in window&&"normalize"in Node.prototype&&c()&&e()};"complete"!==b.readyState?window.addEventListener("load",f):f()},wysihtml5.polyfills(window,document),function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a():b.rangy=a()}(function(){function a(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function b(a,b){return!(typeof a[b]!=t||!a[b])}function c(a,b){return typeof a[b]!=v}function d(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function e(a){return a&&A(a,z)&&C(a,y)}function f(a){return b(a,"body")?a.body:a.getElementsByTagName("body")[0]}function g(b){typeof console!=v&&a(console,"log")&&console.log(b)}function h(a,b){F&&b?alert(a):g(a)}function i(a){H.initialized=!0,H.supported=!1,h("Rangy is not supported in this environment. Reason: "+a,H.config.alertOnFail)}function j(a){h("Rangy warning: "+a,H.config.alertOnWarn)}function k(a){return a.message||a.description||String(a)}function l(){if(F&&!H.initialized){var b,c=!1,d=!1;a(document,"createRange")&&(b=document.createRange(),A(b,x)&&C(b,w)&&(c=!0));var h=f(document);if(!h||"body"!=h.nodeName.toLowerCase())return void i("No body element found");if(h&&a(h,"createTextRange")&&(b=h.createTextRange(),e(b)&&(d=!0)),!c&&!d)return void i("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:c,implementsTextRange:d};var j,l;for(var m in E)(j=E[m])instanceof p&&j.init(j,H);for(var n=0,o=K.length;o>n;++n)try{K[n](H)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a,b,c){c&&(a+=" in module "+c.name),H.warn("DEPRECATED: "+a+" is deprecated. Please use "+b+" instead.")}function n(a,b,c,d){a[b]=function(){return m(b,c,d),a[c].apply(a,G.toArray(arguments))}}function o(a){a=a||window,l();for(var b=0,c=L.length;c>b;++b)L[b](a)}function p(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function q(a,b,c){var d=new p(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(H,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return E[a]=d,d}function r(){}function s(){}var t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=d(a),B=d(b),C=d(c),D=[].forEach?function(a,b){a.forEach(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)b(a[c],c)},E={},F=typeof window!=v&&typeof document!=v,G={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:e,getBody:f,forEach:D},H={version:"1.3.0",initialized:!1,isBrowser:F,supported:!0,util:G,features:{},modules:E,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==v?!0:rangyAutoInitialize}};H.fail=i,H.warn=j;var I;({}).hasOwnProperty?(G.extend=I=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&&I(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},G.createOptions=function(a,b){var c={};return I(c,b),a&&I(c,a),c}):i("hasOwnProperty not supported"),F||i("Rangy can only run in a browser"),function(){var a;if(F){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}),G.toArray=a}();var J;F&&(a(document,"addEventListener")?J=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?J=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),G.addListener=J);var K=[];G.deprecationNotice=m,G.createAliasForDeprecatedMethod=n,H.init=l,H.addInitListener=function(a){H.initialized?a(H):K.push(a)};var L=[];H.addShimListener=function(a){L.push(a)},F&&(H.shim=H.createMissingNativeApi=o,n(H,"createMissingNativeApi","shim")),p.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=E[b],!(a&&a instanceof p))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(a)},warn:function(a){H.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){H.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)}},H.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=q(a,c,b);H.initialized&&H.supported&&d.init()},H.createCoreModule=function(a,b,c){q(a,b,c)},H.RangePrototype=r,H.rangePrototype=new r,H.selectionPrototype=new s,H.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==F||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(K(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!=F)return a.ownerDocument;if(typeof a.document!=F)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!=F)return c.defaultView;if(typeof c.parentWindow!=F)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=F)return a.contentDocument;if(typeof a.contentWindow!=F)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=F)return a.contentWindow;if(typeof a.contentDocument!=F)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&G.isHostMethod(a,"setTimeout")&&G.isHostObject(a,"document")}function t(a,b,c){var d;if(a?G.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,b,c){var d=H(a),e=a.createElement("div");e.contentEditable=""+!!c,b&&(e.innerHTML=b);var f=d.firstChild;return f?d.insertBefore(e,f):d.appendChild(e),e}function A(a){return a.parentNode.removeChild(a)}function B(a){this.root=a,this._next=a}function C(a){return new B(a)}function D(a,b){this.node=a,this.offset=b}function E(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var F="undefined",G=a.util,H=G.getBody;G.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),G.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var I=document.createElement("div");G.areHostMethods(I,["insertBefore","appendChild","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),G.isHostProperty(I,"innerHTML")||b.fail("Element is missing innerHTML property");var J=document.createTextNode("test");G.areHostMethods(J,["splitText","deleteData","insertData","appendData","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"])||!G.areHostProperties(J,["data"]))||b.fail("Incomplete Text Node implementation");var K=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},L=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",L=w(c),a.features.crashyTextNodes=L}();var M;typeof window.getComputedStyle!=F?M=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=F?M=function(a,b){return a.currentStyle?a.currentStyle[b]:""}:b.fail("No means of obtaining computed style properties found"),B.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}},D.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()}},E.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},E.prototype.toString=function(){return this.message},a.dom={arrayContains:K,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:H,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:M,createTestElement:z,removeNode:A,fragmentFromNodeChildren:y,createIterator:C,DomPosition:D},a.DOMException=E}),H.createCoreModule("DomRange",["DomUtil"],function(a,b){function c(a,b){return 3!=a.nodeType&&(P(a,b.startContainer)||P(a,b.endContainer))}function d(a){return a.document||Q(a.startContainer)}function e(a){return W(a.startContainer)}function f(a){return new L(a.parentNode,O(a))}function g(a){return new L(a.parentNode,O(a)+1)}function h(a,b,c){var d=11==a.nodeType?a.firstChild:a;return N(b)?c==b.length?J.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:S(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function i(a,b,c){if(z(a),z(b),d(b)!=d(a))throw new M("WRONG_DOCUMENT_ERR");var e=R(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=R(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return c?0>=e&&f>=0:0>e&&f>0}function j(a){for(var b,c,e,f=d(a.range).createDocumentFragment();c=a.next();){if(b=a.isPartiallySelectedSubtree(),c=c.cloneNode(!b),b&&(e=a.getSubtreeIterator(),c.appendChild(j(e)),e.detach()),10==c.nodeType)throw new M("HIERARCHY_REQUEST_ERR");f.appendChild(c)}return f}function k(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(),k(g,b,c),g.detach(),c.stop)return}else for(d=J.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function l(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),l(b),b.detach()):a.remove()}function m(a){for(var b,c,e=d(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),c=a.getSubtreeIterator(),b.appendChild(m(c)),c.detach()):a.remove(),10==b.nodeType)throw new M("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function n(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return k(new p(a,!1),function(b){if((!e||d.test(b.nodeType))&&(!f||c(b))){var h=a.startContainer;if(b!=h||!N(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&N(i)&&0==a.endOffset||g.push(b)}}}),g}function o(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+J.inspectNode(a.startContainer)+":"+a.startOffset+", "+J.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function p(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&&N(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||N(this.sc)?T(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||N(this.ec)?T(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function q(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,V(a,d))return e;e=e.parentNode}return null}}function r(a,b){if(ea(a,b))throw new M("INVALID_NODE_TYPE_ERR")}function s(a,b){if(!V(b,a.nodeType))throw new M("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(N(a)?a.length:a.childNodes.length))throw new M("INDEX_SIZE_ERR")}function u(a,b){if(ca(a,!0)!==ca(b,!0))throw new M("WRONG_DOCUMENT_ERR")}function v(a){if(da(a,!0))throw new M("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new M(b)}function x(a,b){return b<=(N(a)?a.length:a.childNodes.length)}function y(a){return!!a.startContainer&&!!a.endContainer&&!(X&&(J.isBrokenNode(a.startContainer)||J.isBrokenNode(a.endContainer)))&&W(a.startContainer)==W(a.endContainer)&&x(a.startContainer,a.startOffset)&&x(a.endContainer,a.endOffset)}function z(a){if(!y(a))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+a.inspect()+")")}function A(a,b){z(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;N(e)&&f>0&&f0&&d=O(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function B(a){z(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function C(a){a.START_TO_START=ka,a.START_TO_END=la,a.END_TO_END=ma,a.END_TO_START=na,a.NODE_BEFORE=oa,a.NODE_AFTER=pa,a.NODE_BEFORE_AND_AFTER=qa,a.NODE_INSIDE=ra}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){z(this);var c,d,e=this.startContainer,f=this.startOffset,h=this.commonAncestorContainer,i=new p(this,!0);e!==h&&(c=T(e,h,!0),d=g(c),e=d.node,f=d.offset),k(i,v),i.reset();var j=a(i);return i.detach(),b(this,e,f,e,f),j}}function F(b,d){function e(a,b){return function(c){s(c,Z),s(W(c),$);var d=(a?f:g)(c);(b?h:i)(this,d.node,d.offset)}}function h(a,b,c){var e=a.endContainer,f=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((W(b)!=W(e)||1==R(b,c,e,f))&&(e=b,f=c),d(a,b,c,e,f))}function i(a,b,c){var e=a.startContainer,f=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((W(b)!=W(e)||-1==R(b,c,e,f))&&(e=b,f=c),d(a,e,f,b,c))}var j=function(){};j.prototype=a.rangePrototype,b.prototype=new j,K.extend(b.prototype,{setStart:function(a,b){r(a,!0),t(a,b),h(this,a,b)},setEnd:function(a,b){r(a,!0),t(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],e=b,f=c;switch(a.length){case 3:f=a[2];break;case 4:e=a[2],f=a[3]}d(this,b,c,e,f)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(a){z(this),a?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(a,!0),d(this,a,0,a,U(a))},selectNode:function(a){r(a,!1),s(a,Z);var b=f(a),c=g(a);d(this,b.node,b.offset,c.node,c.offset)},extractContents:E(m,d),deleteContents:E(l,d),canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},splitBoundaries:function(){A(this)},splitBoundariesPreservingPositions:function(a){A(this,a)},normalizeBoundaries:function(){z(this);var a,b=this.startContainer,c=this.startOffset,e=this.endContainer,f=this.endOffset,g=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(e=a,f=a.length,a.appendData(b.data),Y(b))},h=function(a){var d=a.previousSibling;if(d&&d.nodeType==a.nodeType){b=a;var g=a.length;if(c=d.length,a.insertData(0,d.data),Y(d),b==e)f+=c,e=b;else if(e==a.parentNode){var h=O(a);f==h?(e=a,f=g):f>h&&f--}}},i=!0;if(N(e))f==e.length?g(e):0==f&&(a=e.previousSibling,a&&a.nodeType==e.nodeType&&(f=a.length,b==e&&(i=!1),a.appendData(e.data),Y(e),e=a));else{if(f>0){var j=e.childNodes[f-1];j&&N(j)&&g(j)}i=!this.collapsed}if(i){if(N(b))0==c?h(b):c==b.length&&(a=b.nextSibling,a&&a.nodeType==b.nodeType&&(e==a&&(e=b,f+=b.length),b.appendData(a.data),Y(a)));else if(cx",ga=3==fa.firstChild.nodeType}catch(ha){}a.features.htmlParsingConforms=ga;var ia=ga?function(a){var b=this.startContainer,c=Q(b);if(!b)throw new M("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:N(b)&&(d=J.parentElement(b)),d=null===d||"HTML"==d.nodeName&&J.isHtmlNamespace(Q(d).documentElement)&&J.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,J.fragmentFromNodeChildren(d)}:function(a){var b=d(this),c=b.createElement("body");return c.innerHTML=a,J.fragmentFromNodeChildren(c)},ja=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ka=0,la=1,ma=2,na=3,oa=0,pa=1,qa=2,ra=3;K.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){z(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==na||a==ka?"start":"end",h=a==la||a==ka?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],R(c,d,e,f)},insertNode:function(a){if(z(this),s(a,aa),v(this.startContainer),P(a,this.startContainer))throw new M("HIERARCHY_REQUEST_ERR");var b=h(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){z(this);var a,b;if(this.collapsed)return d(this).createDocumentFragment();if(this.startContainer===this.endContainer&&N(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=d(this).createDocumentFragment(),b.appendChild(a),b;var c=new p(this,!0);return a=j(c),c.detach(),a},canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},surroundContents:function(a){if(s(a,ba),!this.canSurroundContents())throw new M("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);h(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){z(this);for(var a,b=new I(d(this)),c=ja.length;c--;)a=ja[c],b[a]=this[a];return b},toString:function(){z(this);var a=this.startContainer;if(a===this.endContainer&&N(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new p(this,!0);return k(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){z(this);var b=a.parentNode,c=O(a);if(!b)throw new M("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qa:oa:e>0?pa:ra},comparePoint:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)<0?-1:R(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ia,toHtml:function(){return B(this)},intersectsNode:function(a,b){if(z(this),W(a)!=e(this))return!1;var c=a.parentNode,d=O(a);if(!c)return!0;var f=R(c,d,this.endContainer,this.endOffset),g=R(c,d+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)>=0&&R(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return i(this,a,!1)},intersectsOrTouchesRange:function(a){return i(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=R(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=R(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==R(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==R(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new M("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==ra},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,U(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 z(this),n(this,a,b);
+var wysihtml5={version:"0.5.1",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"\ufeff",INVISIBLE_SPACE_REG_EXP:/\uFEFF/g,EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,TAB_KEY:9,DELETE_KEY:46};wysihtml5.polyfills=function(a,b){String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){var c="addEventListener",d="removeEventListener";b[c]||(a.Element.prototype[c]=a[c]=b[c]=function(b,c,d){return(d=this).attachEvent("on"+b,function(b){var b=b||a.event;b.target=b.target||b.srcElement,b.preventDefault=b.preventDefault||function(){b.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0},b.which=b.button?2===b.button?3:4===b.button?2:b.button:b.keyCode,c.call(d,b)})},a.Element.prototype[d]=a[d]=b[d]=function(a,b){return this.detachEvent("on"+a,b)})}(),Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent").get&&!function(){var b=Object.getOwnPropertyDescriptor(a.Element.prototype,"innerText");Object.defineProperty(a.Element.prototype,"textContent",{get:function(){return b.get.call(this)},set:function(a){return b.set.call(this,a)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=this.length,d=-1,e=b>>>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}),a.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]}}(a.Element.prototype),"document"in a&&("classList"in b.createElement("_")?"DOMTokenList"in a&&!function(){"use strict";var c=b.createElement("_");if(c.classList.add("c1","c2"),!c.classList.contains("c2")){var d=function(b){var c=a.DOMTokenList.prototype[b];a.DOMTokenList.prototype[b]=function(a){var b,d=arguments.length;for(b=0;d>b;b++)a=arguments[b],c.call(this,a)}};d("add"),d("remove")}if(c.classList.toggle("c3",!1),c.classList.contains("c3")){var e=a.DOMTokenList.prototype.toggle;a.DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:e.call(this,a)}}c=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(++c0?c.childNodes[e]:void 0,g=b.focusNode,h=b.focusOffset,i=g&&1===g.nodeType&&h>0?g.childNodes[h-1]:void 0,j=this.ownerDocument.createRange(),k=a.shift(),l=k?a.shift():null;for(i&&3===i.nodeType&&(g=i,h=i.nodeValue.length,i=void 0),f&&3===f.nodeType&&(c=f,e=0,f=void 0),(c===g&&e>h||c!==g&&c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_PRECEDING&&!(c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_CONTAINS))&&(g=[c,c=g][0],h=[e,e=h][0]);k&&l;)l.previousSibling&&l.previousSibling===k?(c===l&&(c=k,e=k.nodeValue.length+e),g===l&&(g=k,h=k.nodeValue.length+h),k.nodeValue=k.nodeValue+l.nodeValue,l.parentNode.removeChild(l),l=a.shift()):(k=l,l=a.shift());i&&(h=Array.prototype.indexOf.call(i.parentNode.childNodes,i)+1),f&&(e=Array.prototype.indexOf.call(f.parentNode.childNodes,f)),c&&c.parentNode&&g&&g.parentNode&&(j.setStart(c,e),j.setEnd(g,h),b.removeAllRanges(),b.addRange(j))});Node.prototype.normalize=a},f=function(){window.removeEventListener("load",f),"Node"in window&&"normalize"in Node.prototype&&c()&&e()};"complete"!==b.readyState?window.addEventListener("load",f):f()},wysihtml5.polyfills(window,document),function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a():b.rangy=a()}(function(){function a(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function b(a,b){return!(typeof a[b]!=t||!a[b])}function c(a,b){return typeof a[b]!=v}function d(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function e(a){return a&&A(a,z)&&C(a,y)}function f(a){return b(a,"body")?a.body:a.getElementsByTagName("body")[0]}function g(b){typeof console!=v&&a(console,"log")&&console.log(b)}function h(a,b){F&&b?alert(a):g(a)}function i(a){H.initialized=!0,H.supported=!1,h("Rangy is not supported in this environment. Reason: "+a,H.config.alertOnFail)}function j(a){h("Rangy warning: "+a,H.config.alertOnWarn)}function k(a){return a.message||a.description||String(a)}function l(){if(F&&!H.initialized){var b,c=!1,d=!1;a(document,"createRange")&&(b=document.createRange(),A(b,x)&&C(b,w)&&(c=!0));var h=f(document);if(!h||"body"!=h.nodeName.toLowerCase())return void i("No body element found");if(h&&a(h,"createTextRange")&&(b=h.createTextRange(),e(b)&&(d=!0)),!c&&!d)return void i("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:c,implementsTextRange:d};var j,l;for(var m in E)(j=E[m])instanceof p&&j.init(j,H);for(var n=0,o=K.length;o>n;++n)try{K[n](H)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a,b,c){c&&(a+=" in module "+c.name),H.warn("DEPRECATED: "+a+" is deprecated. Please use "+b+" instead.")}function n(a,b,c,d){a[b]=function(){return m(b,c,d),a[c].apply(a,G.toArray(arguments))}}function o(a){a=a||window,l();for(var b=0,c=L.length;c>b;++b)L[b](a)}function p(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function q(a,b,c){var d=new p(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(H,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return E[a]=d,d}function r(){}function s(){}var t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=d(a),B=d(b),C=d(c),D=[].forEach?function(a,b){a.forEach(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)b(a[c],c)},E={},F=typeof window!=v&&typeof document!=v,G={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:e,getBody:f,forEach:D},H={version:"1.3.0",initialized:!1,isBrowser:F,supported:!0,util:G,features:{},modules:E,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==v?!0:rangyAutoInitialize}};H.fail=i,H.warn=j;var I;({}).hasOwnProperty?(G.extend=I=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&&I(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},G.createOptions=function(a,b){var c={};return I(c,b),a&&I(c,a),c}):i("hasOwnProperty not supported"),F||i("Rangy can only run in a browser"),function(){var a;if(F){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}),G.toArray=a}();var J;F&&(a(document,"addEventListener")?J=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?J=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),G.addListener=J);var K=[];G.deprecationNotice=m,G.createAliasForDeprecatedMethod=n,H.init=l,H.addInitListener=function(a){H.initialized?a(H):K.push(a)};var L=[];H.addShimListener=function(a){L.push(a)},F&&(H.shim=H.createMissingNativeApi=o,n(H,"createMissingNativeApi","shim")),p.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=E[b],!(a&&a instanceof p))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(a)},warn:function(a){H.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){H.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)}},H.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=q(a,c,b);H.initialized&&H.supported&&d.init()},H.createCoreModule=function(a,b,c){q(a,b,c)},H.RangePrototype=r,H.rangePrototype=new r,H.selectionPrototype=new s,H.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==F||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(K(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!=F)return a.ownerDocument;if(typeof a.document!=F)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!=F)return c.defaultView;if(typeof c.parentWindow!=F)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=F)return a.contentDocument;if(typeof a.contentWindow!=F)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=F)return a.contentWindow;if(typeof a.contentDocument!=F)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&G.isHostMethod(a,"setTimeout")&&G.isHostObject(a,"document")}function t(a,b,c){var d;if(a?G.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,b,c){var d=H(a),e=a.createElement("div");e.contentEditable=""+!!c,b&&(e.innerHTML=b);var f=d.firstChild;return f?d.insertBefore(e,f):d.appendChild(e),e}function A(a){return a.parentNode.removeChild(a)}function B(a){this.root=a,this._next=a}function C(a){return new B(a)}function D(a,b){this.node=a,this.offset=b}function E(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var F="undefined",G=a.util,H=G.getBody;G.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),G.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var I=document.createElement("div");G.areHostMethods(I,["insertBefore","appendChild","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),G.isHostProperty(I,"innerHTML")||b.fail("Element is missing innerHTML property");var J=document.createTextNode("test");G.areHostMethods(J,["splitText","deleteData","insertData","appendData","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"])||!G.areHostProperties(J,["data"]))||b.fail("Incomplete Text Node implementation");var K=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},L=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",L=w(c),a.features.crashyTextNodes=L}();var M;typeof window.getComputedStyle!=F?M=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=F?M=function(a,b){return a.currentStyle?a.currentStyle[b]:""}:b.fail("No means of obtaining computed style properties found"),B.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}},D.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()}},E.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},E.prototype.toString=function(){return this.message},a.dom={arrayContains:K,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:H,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:M,createTestElement:z,removeNode:A,fragmentFromNodeChildren:y,createIterator:C,DomPosition:D},a.DOMException=E}),H.createCoreModule("DomRange",["DomUtil"],function(a,b){function c(a,b){return 3!=a.nodeType&&(P(a,b.startContainer)||P(a,b.endContainer))}function d(a){return a.document||Q(a.startContainer)}function e(a){return W(a.startContainer)}function f(a){return new L(a.parentNode,O(a))}function g(a){return new L(a.parentNode,O(a)+1)}function h(a,b,c){var d=11==a.nodeType?a.firstChild:a;return N(b)?c==b.length?J.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:S(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function i(a,b,c){if(z(a),z(b),d(b)!=d(a))throw new M("WRONG_DOCUMENT_ERR");var e=R(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=R(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return c?0>=e&&f>=0:0>e&&f>0}function j(a){for(var b,c,e,f=d(a.range).createDocumentFragment();c=a.next();){if(b=a.isPartiallySelectedSubtree(),c=c.cloneNode(!b),b&&(e=a.getSubtreeIterator(),c.appendChild(j(e)),e.detach()),10==c.nodeType)throw new M("HIERARCHY_REQUEST_ERR");f.appendChild(c)}return f}function k(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(),k(g,b,c),g.detach(),c.stop)return}else for(d=J.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function l(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),l(b),b.detach()):a.remove()}function m(a){for(var b,c,e=d(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),c=a.getSubtreeIterator(),b.appendChild(m(c)),c.detach()):a.remove(),10==b.nodeType)throw new M("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function n(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return k(new p(a,!1),function(b){if((!e||d.test(b.nodeType))&&(!f||c(b))){var h=a.startContainer;if(b!=h||!N(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&N(i)&&0==a.endOffset||g.push(b)}}}),g}function o(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+J.inspectNode(a.startContainer)+":"+a.startOffset+", "+J.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function p(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&&N(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||N(this.sc)?T(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||N(this.ec)?T(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function q(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,V(a,d))return e;e=e.parentNode}return null}}function r(a,b){if(ea(a,b))throw new M("INVALID_NODE_TYPE_ERR")}function s(a,b){if(!V(b,a.nodeType))throw new M("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(N(a)?a.length:a.childNodes.length))throw new M("INDEX_SIZE_ERR")}function u(a,b){if(ca(a,!0)!==ca(b,!0))throw new M("WRONG_DOCUMENT_ERR")}function v(a){if(da(a,!0))throw new M("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new M(b)}function x(a,b){return b<=(N(a)?a.length:a.childNodes.length)}function y(a){return!!a.startContainer&&!!a.endContainer&&!(X&&(J.isBrokenNode(a.startContainer)||J.isBrokenNode(a.endContainer)))&&W(a.startContainer)==W(a.endContainer)&&x(a.startContainer,a.startOffset)&&x(a.endContainer,a.endOffset)}function z(a){if(!y(a))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+a.inspect()+")")}function A(a,b){z(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;N(e)&&f>0&&f0&&d=O(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function B(a){z(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function C(a){a.START_TO_START=ka,a.START_TO_END=la,a.END_TO_END=ma,a.END_TO_START=na,a.NODE_BEFORE=oa,a.NODE_AFTER=pa,a.NODE_BEFORE_AND_AFTER=qa,a.NODE_INSIDE=ra}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){z(this);var c,d,e=this.startContainer,f=this.startOffset,h=this.commonAncestorContainer,i=new p(this,!0);e!==h&&(c=T(e,h,!0),d=g(c),e=d.node,f=d.offset),k(i,v),i.reset();var j=a(i);return i.detach(),b(this,e,f,e,f),j}}function F(b,d){function e(a,b){return function(c){s(c,Z),s(W(c),$);var d=(a?f:g)(c);(b?h:i)(this,d.node,d.offset)}}function h(a,b,c){var e=a.endContainer,f=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((W(b)!=W(e)||1==R(b,c,e,f))&&(e=b,f=c),d(a,b,c,e,f))}function i(a,b,c){var e=a.startContainer,f=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((W(b)!=W(e)||-1==R(b,c,e,f))&&(e=b,f=c),d(a,e,f,b,c))}var j=function(){};j.prototype=a.rangePrototype,b.prototype=new j,K.extend(b.prototype,{setStart:function(a,b){r(a,!0),t(a,b),h(this,a,b)},setEnd:function(a,b){r(a,!0),t(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],e=b,f=c;switch(a.length){case 3:f=a[2];break;case 4:e=a[2],f=a[3]}d(this,b,c,e,f)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(a){z(this),a?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(a,!0),d(this,a,0,a,U(a))},selectNode:function(a){r(a,!1),s(a,Z);var b=f(a),c=g(a);d(this,b.node,b.offset,c.node,c.offset)},extractContents:E(m,d),deleteContents:E(l,d),canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},splitBoundaries:function(){A(this)},splitBoundariesPreservingPositions:function(a){A(this,a)},normalizeBoundaries:function(){z(this);var a,b=this.startContainer,c=this.startOffset,e=this.endContainer,f=this.endOffset,g=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(e=a,f=a.length,a.appendData(b.data),Y(b))},h=function(a){var d=a.previousSibling;if(d&&d.nodeType==a.nodeType){b=a;var g=a.length;if(c=d.length,a.insertData(0,d.data),Y(d),b==e)f+=c,e=b;else if(e==a.parentNode){var h=O(a);f==h?(e=a,f=g):f>h&&f--}}},i=!0;if(N(e))f==e.length?g(e):0==f&&(a=e.previousSibling,a&&a.nodeType==e.nodeType&&(f=a.length,b==e&&(i=!1),a.appendData(e.data),Y(e),e=a));else{if(f>0){var j=e.childNodes[f-1];j&&N(j)&&g(j)}i=!this.collapsed}if(i){if(N(b))0==c?h(b):c==b.length&&(a=b.nextSibling,a&&a.nodeType==b.nodeType&&(e==a&&(e=b,f+=b.length),b.appendData(a.data),Y(a)));else if(cx",ga=3==fa.firstChild.nodeType}catch(ha){}a.features.htmlParsingConforms=ga;var ia=ga?function(a){var b=this.startContainer,c=Q(b);if(!b)throw new M("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:N(b)&&(d=J.parentElement(b)),d=null===d||"HTML"==d.nodeName&&J.isHtmlNamespace(Q(d).documentElement)&&J.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,J.fragmentFromNodeChildren(d)}:function(a){var b=d(this),c=b.createElement("body");return c.innerHTML=a,J.fragmentFromNodeChildren(c)},ja=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ka=0,la=1,ma=2,na=3,oa=0,pa=1,qa=2,ra=3;K.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){z(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==na||a==ka?"start":"end",h=a==la||a==ka?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],R(c,d,e,f)},insertNode:function(a){if(z(this),s(a,aa),v(this.startContainer),P(a,this.startContainer))throw new M("HIERARCHY_REQUEST_ERR");var b=h(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){z(this);var a,b;if(this.collapsed)return d(this).createDocumentFragment();if(this.startContainer===this.endContainer&&N(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=d(this).createDocumentFragment(),b.appendChild(a),b;var c=new p(this,!0);return a=j(c),c.detach(),a},canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},surroundContents:function(a){if(s(a,ba),!this.canSurroundContents())throw new M("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);h(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){z(this);for(var a,b=new I(d(this)),c=ja.length;c--;)a=ja[c],b[a]=this[a];return b},toString:function(){z(this);var a=this.startContainer;if(a===this.endContainer&&N(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new p(this,!0);return k(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){z(this);var b=a.parentNode,c=O(a);if(!b)throw new M("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qa:oa:e>0?pa:ra},comparePoint:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)<0?-1:R(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ia,toHtml:function(){return B(this)},intersectsNode:function(a,b){if(z(this),W(a)!=e(this))return!1;var c=a.parentNode,d=O(a);if(!c)return!0;var f=R(c,d,this.endContainer,this.endOffset),g=R(c,d+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)>=0&&R(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return i(this,a,!1)},intersectsOrTouchesRange:function(a){return i(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=R(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=R(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==R(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==R(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new M("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==ra},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,U(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 z(this),n(this,a,b);
},getDocument:function(){return d(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var c=d(this),e=a.createRange(c);b=b||J.getBody(c),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 I.rangesEqual(this,a)},isValid:function(){return y(this)},inspect:function(){return o(this)},detach:function(){}}),F(I,H),K.extend(I,{rangeProperties:ja,RangeIterator:p,copyComparisonConstants:D,createPrototypeRange:F,inspect:o,toHtml:B,getRangeDocument:d,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=I}),H.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),-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?k.compareBoundaryPoints=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)}:k.compareBoundaryPoints=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&&e.removeNode(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 e.removeNode(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=ba.length;e--;)if(c=ba[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(ba.splice(e,1),!0):d;return"deleteAll"==b&&(ba.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);if(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};else{if(!O)return b.fail("Neither document.selection or window.getSelection() detected."),!1;y=e,a.isSelectionValid=function(){return!0}}a.getNativeSelection=y;var R=y();if(!R)return b.fail("Native selection was null (possibly issue 138?)"),!1;var 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=C.createTestElement(document,"",!1),j=i.appendChild(document.createTextNode("Â Â Â ")),k=document.createRange();if(k.setStart(j,1),k.collapse(!0),b.removeAllRanges(),b.addRange(k),Y=1==b.rangeCount,b.removeAllRanges(),!d){var l=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(l&&parseInt(l[1])>=36)X=!1;else{var m=k.cloneRange();k.setStart(j,0),m.setEnd(j,3),m.setStart(j,2),b.addRange(k),b.addRange(m),X=2==b.rangeCount}}for(C.removeNode(i),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 aa;E(R,"getRangeAt")?aa=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(aa=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 ba=[],ca=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),ba.push({win:a,selection:b})),b};a.getSelection=ca,D.createAliasForDeprecatedMethod(a,"getIframeSelection","getSelection");var da=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){da.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var ea=function(a,b){Z(a.nativeSelection,b),a.refresh()};W?da.addRange=function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)ea(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=aa(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,ha(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:da.addRange=function(a,b){c(b)&&V?ea(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},da.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;da.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)},da.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))},da.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}da.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fa;if(Q)fa=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)fa=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],ha(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;fa=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=aa(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}da.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fa(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 ga=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)};_&&P?da.removeRange=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 ga(this,a)}:da.removeRange=function(a){ga(this,a)};var ha;!Q&&U&&J.implementsDomRange?(ha=g,da.isBackward=function(){return ha(this)}):ha=da.isBackward=function(){return!1},da.isBackwards=da.isBackward,da.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},da.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},da.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},da.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},da.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},da.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),C.removeNode(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])}}},da.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},da.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},da.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},da.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b||[]))}),c},da.setStart=w(!0),da.setEnd=w(!1),a.rangePrototype.select=function(a){ca(this.getDocument()).setSingleRange(this,a)},da.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)},da.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},da.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},da.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)},da.saveRanges=function(){return{backward:this.isBackward(),ranges:this.callMethodOnEachRange("cloneRange")}},da.restoreRanges=function(a){this.removeAllRanges();for(var b,c=0;b=a.ranges[c];++c)this.addRange(b,a.backward&&0==c)},da.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(da.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")}),da.getName=function(){return"WrappedSelection"},da.inspect=function(){return x(this)},da.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=da,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return ca(a)}),a=null})});var M=!1,N=function(a){M||(M=!0,!H.initialized&&H.config.autoInitialize&&l())};return F&&("complete"==document.readyState?N():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",N,!1),J(window,"load",N))),H},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){return a.createModule("TextRange",["WrappedSelection"],function(a,b){function c(a,b){function c(a,b,c){h.push({start:a,end:b,isWord:c})}for(var d,e,f,g=a.join(""),h=[],i=0;d=b.wordRegex.exec(g);){if(e=d.index,f=e+d[0].length,e>i&&c(i,e,!1),b.includeTrailingSpace)for(;$.test(a[f]);)++f;c(e,f,!0),i=f}return ie;++e)c[e].token=d;return d}function e(a,b,c){for(var e,f=c(a,b),g=[],h=0;e=f[h++];)g.push(d(a,e));return g}function f(a){var b=a||"",c="string"==typeof b?b.split(""):b;return c.sort(function(a,b){return a.charCodeAt(0)-b.charCodeAt(0)}),c.join("").replace(/(.)\1+/g,"$1")}function g(a){var b,c;return a?(b=a.language||_,c={},U(c,ia[b]||ia[_]),U(c,a),c):ia[_]}function h(a,b){var c=V(a,b);return b.hasOwnProperty("wordOptions")&&(c.wordOptions=g(c.wordOptions)),b.hasOwnProperty("characterOptions")&&(c.characterOptions=V(c.characterOptions,ga)),c}function i(a,b){var c=na(a,"display",b),d=a.tagName.toLowerCase();return"block"==c&&fa&&oa.hasOwnProperty(d)?oa[d]:c}function j(a){for(var b=o(a),c=0,d=b.length;d>c;++c)if(1==b[c].nodeType&&"none"==i(b[c]))return!0;return!1}function k(a){var b;return 3==a.nodeType&&(b=a.parentNode)&&"hidden"==na(b,"visibility")}function l(a){return a&&(1==a.nodeType&&!/^(inline(-block|-table)?|none)$/.test(i(a))||9==a.nodeType||11==a.nodeType)}function m(a){return S.isCharacterDataNode(a)||!/^(area|base|basefont|br|col|frame|hr|img|input|isindex|link|meta|param)$/i.test(a.nodeName)}function n(a){for(var b=[];a.parentNode;)b.unshift(a.parentNode),a=a.parentNode;return b}function o(a){return n(a).concat([a])}function p(a){for(;a&&!a.nextSibling;)a=a.parentNode;return a?a.nextSibling:null}function q(a,b){return!b&&a.hasChildNodes()?a.firstChild:p(a)}function r(a){var b=a.previousSibling;if(b){for(a=b;a.hasChildNodes();)a=a.lastChild;return a}var c=a.parentNode;return c&&1==c.nodeType?c:null}function s(a){if(!a||3!=a.nodeType)return!1;var b=a.data;if(""===b)return!0;var c=a.parentNode;if(!c||1!=c.nodeType)return!1;var d=na(a.parentNode,"whiteSpace");return/^[\t\n\r ]+$/.test(b)&&/^(normal|nowrap)$/.test(d)||/^[\t\r ]+$/.test(b)&&"pre-line"==d}function t(a){if(""===a.data)return!0;if(!s(a))return!1;var b=a.parentNode;return b?j(a)?!0:!1:!0}function u(a){var b=a.nodeType;return 7==b||8==b||j(a)||/^(script|style)$/i.test(a.nodeName)||k(a)||t(a)}function v(a,b){var c=a.nodeType;return 7==c||8==c||1==c&&"none"==i(a,b)}function w(){this.store={}}function x(a,b,c){return function(d){var e=this.cache;if(e.hasOwnProperty(a))return pa++,e[a];qa++;var f=b.call(this,c?this[c]:this,d);return e[a]=f,f}}function y(a,b){this.node=a,this.session=b,this.cache=new w,this.positions=new w}function z(a,b){this.offset=b,this.nodeWrapper=a,this.node=a.node,this.session=a.session,this.cache=new w}function A(){return"[Position("+S.inspectNode(this.node)+":"+this.offset+")]"}function B(){return D(),Da=new Ea}function C(){return Da||B()}function D(){Da&&Da.detach(),Da=null}function E(a,c,d,e){function f(){var a=null;return c?(a=h,i||(h=h.previousVisible(),i=!h||d&&h.equals(d))):i||(a=h=h.nextVisible(),i=!h||d&&h.equals(d)),i&&(h=null),a}d&&(c?u(d.node)&&(d=a.previousVisible()):u(d.node)&&(d=d.nextVisible()));var g,h=a,i=!1,j=!1;return{next:function(){if(j)return j=!1,g;for(var a,b;a=f();)if(b=a.getCharacter(e))return g=a,a;return null},rewind:function(){if(!g)throw b.createError("createCharacterIterator: cannot rewind. Only one position can be rewound.");j=!0},dispose:function(){a=d=null}}}function F(a,b,c){function d(a){for(var b,c,d=[],e=a?f:g,h=!1,i=!1;b=e.next();){if(c=b.character,Z.test(c))i&&(i=!1,h=!0);else{if(h){e.rewind();break}i=!0}d.push(b)}return d}var f=E(a,!1,null,b),g=E(a,!0,null,b),h=c.tokenizer,i=d(!0),j=d(!1).reverse(),k=e(j.concat(i),c,h),l=i.length?k.slice(Fa(k,i[0].token)):[],m=j.length?k.slice(0,Fa(k,j.pop().token)+1):[];return{nextEndToken:function(){for(var a,b;1==l.length&&!(a=l[0]).isWord&&(b=d(!0)).length>0;)l=e(a.chars.concat(b),c,h);return l.shift()},previousStartToken:function(){for(var a,b;1==m.length&&!(a=m[0]).isWord&&(b=d(!1)).length>0;)m=e(b.reverse().concat(a.chars),c,h);return m.pop()},dispose:function(){f.dispose(),g.dispose(),l=m=null}}}function G(a,b,c,d,e){var f,g,h,i,j=0,k=a,l=Math.abs(c);if(0!==c){var m=0>c;switch(b){case Q:for(g=E(a,m,null,d);(f=g.next())&&l>j;)++j,k=f;h=f,g.dispose();break;case R:for(var n=F(a,d,e),o=m?n.previousStartToken:n.nextEndToken;(i=o())&&l>j;)i.isWord&&(++j,k=m?i.chars[0]:i.chars[i.chars.length-1]);break;default:throw new Error("movePositionBy: unit '"+b+"' not implemented")}m?(k=k.previousVisible(),j=-j):k&&k.isLeadingSpace&&!k.isTrailingSpace&&(b==R&&(g=E(a,!1,null,d),h=g.next(),g.dispose()),h&&(k=h.previousVisible()))}return{position:k,unitsMoved:j}}function H(a,b,c,d){var e=a.getRangeBoundaryPosition(b,!0),f=a.getRangeBoundaryPosition(b,!1),g=d?f:e,h=d?e:f;return E(g,!!d,h,c)}function I(a,b,c){for(var d,e=[],f=H(a,b,c);d=f.next();)e.push(d);return f.dispose(),e}function J(b,c,d){var e=a.createRange(b.node);return e.setStartAndEnd(b.node,b.offset,c.node,c.offset),!e.expand("word",{wordOptions:d})}function K(a,b,c,d,e){function f(a,b){var c=p[a].previousVisible(),d=p[b-1],f=!e.wholeWordsOnly||J(c,d,e.wordOptions);return{startPos:c,endPos:d,valid:f}}for(var g,h,i,j,k,l,m=aa(e.direction),n=E(a,m,a.session.getRangeBoundaryPosition(d,m),e.characterOptions),o="",p=[],q=null;g=n.next();)if(h=g.character,c||e.caseSensitive||(h=h.toLowerCase()),m?(p.unshift(g),o=h+o):(p.push(g),o+=h),c){if(k=b.exec(o))if(i=k.index,j=i+k[0].length,l){if(!m&&j0){q=f(i,j);break}}else l=!0}else if(-1!=(i=o.indexOf(b))){q=f(i,i+b.length);break}return l&&(q=f(i,j)),n.dispose(),q}function L(a){return function(){var b=!!Da,c=C(),d=[c].concat(T.toArray(arguments)),e=a.apply(this,d);return b||D(),e}}function M(a,b){return L(function(c,d,e,f){typeof e==P&&(e=d,d=Q),f=h(f,ka);var g=a;b&&(g=e>=0,this.collapse(!g));var i=G(c.getRangeBoundaryPosition(this,g),d,e,f.characterOptions,f.wordOptions),j=i.position;return this[g?"setStart":"setEnd"](j.node,j.offset),i.unitsMoved})}function N(a){return L(function(b,c){c=V(c,ga);for(var d,e=H(b,this,c,!a),f=0;(d=e.next())&&Z.test(d.character);)++f;e.dispose();var g=f>0;return g&&this[a?"moveStart":"moveEnd"]("character",a?f:-f,{characterOptions:c}),g})}function O(a){return L(function(b,c){var d=!1;return this.changeEachRange(function(b){d=b[a](c)||d}),d})}var P="undefined",Q="character",R="word",S=a.dom,T=a.util,U=T.extend,V=T.createOptions,W=S.getBody,X=/^[ \t\f\r\n]+$/,Y=/^[ \t\f\r]+$/,Z=/^[\t-\r \u0085\u00A0\u1680\u180E\u2000-\u200B\u2028\u2029\u202F\u205F\u3000]+$/,$=/^[\t \u00A0\u1680\u180E\u2000-\u200B\u202F\u205F\u3000]+$/,_="en",aa=a.Selection.isDirectionBackward,ba=!1,ca=!1,da=!1,ea=!0;!function(){var b=S.createTestElement(document,"1
",!0),c=b.firstChild,d=a.getSelection();d.collapse(c.lastChild,2),d.setStart(c.firstChild,0),ba=1==(""+d).length,b.innerHTML="1
",d.collapse(b,2),d.setStart(b.firstChild,0),ca=1==(""+d).length,b.innerHTML="1 1
",d.collapse(b,2),d.setStart(b.firstChild,0),da=1==(""+d).length,S.removeNode(b),d.removeAllRanges()}();var fa,ga={includeBlockContentTrailingSpace:!0,includeSpaceBeforeBr:!0,includeSpaceBeforeBlock:!0,includePreLineTrailingSpace:!0,ignoreCharacters:""},ha={includeBlockContentTrailingSpace:!ea,includeSpaceBeforeBr:!ca,includeSpaceBeforeBlock:!da,includePreLineTrailingSpace:!0},ia={en:{wordRegex:/[a-z0-9]+('[a-z0-9]+)*/gi,includeTrailingSpace:!1,tokenizer:c}},ja={caseSensitive:!1,withinRange:null,wholeWordsOnly:!1,wrap:!1,direction:"forward",wordOptions:null,characterOptions:null},ka={wordOptions:null,characterOptions:null},la={wordOptions:null,characterOptions:null,trim:!1,trimStart:!0,trimEnd:!0},ma={wordOptions:null,characterOptions:null,direction:"forward"},na=S.getComputedStyleProperty;!function(){var a=document.createElement("table"),b=W(document);b.appendChild(a),fa="block"==na(a,"display"),b.removeChild(a)}();var oa={table:"table",caption:"table-caption",colgroup:"table-column-group",col:"table-column",thead:"table-header-group",tbody:"table-row-group",tfoot:"table-footer-group",tr:"table-row",td:"table-cell",th:"table-cell"};w.prototype={get:function(a){return this.store.hasOwnProperty(a)?this.store[a]:null},set:function(a,b){return this.store[a]=b}};var pa=0,qa=0,ra={getPosition:function(a){var b=this.positions;return b.get(a)||b.set(a,new z(this,a))},toString:function(){return"[NodeWrapper("+S.inspectNode(this.node)+")]"}};y.prototype=ra;var sa="EMPTY",ta="NON_SPACE",ua="UNCOLLAPSIBLE_SPACE",va="COLLAPSIBLE_SPACE",wa="TRAILING_SPACE_BEFORE_BLOCK",xa="TRAILING_SPACE_IN_BLOCK",ya="TRAILING_SPACE_BEFORE_BR",za="PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK",Aa="TRAILING_LINE_BREAK_AFTER_BR",Ba="INCLUDED_TRAILING_LINE_BREAK_AFTER_BR";U(ra,{isCharacterDataNode:x("isCharacterDataNode",S.isCharacterDataNode,"node"),getNodeIndex:x("nodeIndex",S.getNodeIndex,"node"),getLength:x("nodeLength",S.getNodeLength,"node"),containsPositions:x("containsPositions",m,"node"),isWhitespace:x("isWhitespace",s,"node"),isCollapsedWhitespace:x("isCollapsedWhitespace",t,"node"),getComputedDisplay:x("computedDisplay",i,"node"),isCollapsed:x("collapsed",u,"node"),isIgnored:x("ignored",v,"node"),next:x("nextPos",q,"node"),previous:x("previous",r,"node"),getTextNodeInfo:x("textNodeInfo",function(a){var b=null,c=!1,d=na(a.parentNode,"whiteSpace"),e="pre-line"==d;return e?(b=Y,c=!0):("normal"==d||"nowrap"==d)&&(b=X,c=!0),{node:a,text:a.data,spaceRegex:b,collapseSpaces:c,preLine:e}},"node"),hasInnerText:x("hasInnerText",function(a,b){for(var c=this.session,d=c.getPosition(a.parentNode,this.getNodeIndex()+1),e=c.getPosition(a,0),f=b?d:e,g=b?e:d;f!==g;){
if(f.prepopulateChar(),f.isDefinitelyNonEmpty())return!0;f=b?f.previousVisible():f.nextVisible()}return!1},"node"),isRenderedBlock:x("isRenderedBlock",function(a){for(var b=a.getElementsByTagName("br"),c=0,d=b.length;d>c;++c)if(!u(b[c]))return!0;return this.hasInnerText()},"node"),getTrailingSpace:x("trailingSpace",function(a){if("br"==a.tagName.toLowerCase())return"";switch(this.getComputedDisplay()){case"inline":for(var b=a.lastChild;b;){if(!v(b))return 1==b.nodeType?this.session.getNodeWrapper(b).getTrailingSpace():"";b=b.previousSibling}break;case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":break;case"table-cell":return" ";default:return this.isRenderedBlock(!0)?"\n":""}return""},"node"),getLeadingSpace:x("leadingSpace",function(a){switch(this.getComputedDisplay()){case"inline":case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":case"table-cell":break;default:return this.isRenderedBlock(!1)?"\n":""}return""},"node")});var Ca={character:"",characterType:sa,isBr:!1,prepopulateChar:function(){var a=this;if(!a.prepopulatedChar){var b=a.node,c=a.offset,d="",e=sa,f=!1;if(c>0)if(3==b.nodeType){var g=b.data,h=g.charAt(c-1),i=a.nodeWrapper.getTextNodeInfo(),j=i.spaceRegex;i.collapseSpaces?j.test(h)?c>1&&j.test(g.charAt(c-2))||(i.preLine&&"\n"===g.charAt(c)?(d=" ",e=za):(d=" ",e=va)):(d=h,e=ta,f=!0):(d=h,e=ua,f=!0)}else{var k=b.childNodes[c-1];if(k&&1==k.nodeType&&!u(k)&&("br"==k.tagName.toLowerCase()?(d="\n",a.isBr=!0,e=va,f=!1):a.checkForTrailingSpace=!0),!d){var l=b.childNodes[c];l&&1==l.nodeType&&!u(l)&&(a.checkForLeadingSpace=!0)}}a.prepopulatedChar=!0,a.character=d,a.characterType=e,a.isCharInvariant=f}},isDefinitelyNonEmpty:function(){var a=this.characterType;return a==ta||a==ua},resolveLeadingAndTrailingSpaces:function(){if(this.prepopulatedChar||this.prepopulateChar(),this.checkForTrailingSpace){var a=this.session.getNodeWrapper(this.node.childNodes[this.offset-1]).getTrailingSpace();a&&(this.isTrailingSpace=!0,this.character=a,this.characterType=va),this.checkForTrailingSpace=!1}if(this.checkForLeadingSpace){var b=this.session.getNodeWrapper(this.node.childNodes[this.offset]).getLeadingSpace();b&&(this.isLeadingSpace=!0,this.character=b,this.characterType=va),this.checkForLeadingSpace=!1}},getPrecedingUncollapsedPosition:function(a){for(var b,c=this;c=c.previousVisible();)if(b=c.getCharacter(a),""!==b)return c;return null},getCharacter:function(a){function b(){return n||(k=o.getPrecedingUncollapsedPosition(a),n=!0),k}this.resolveLeadingAndTrailingSpaces();var c,d=this.character,e=f(a.ignoreCharacters),g=""!==d&&e.indexOf(d)>-1;if(this.isCharInvariant)return c=g?"":d;var h=["character",a.includeSpaceBeforeBr,a.includeBlockContentTrailingSpace,a.includePreLineTrailingSpace,e].join("_"),i=this.cache.get(h);if(null!==i)return i;var j,k,l="",m=this.characterType==va,n=!1,o=this;return m&&(this.type==Ba?l="\n":" "==d&&(!b()||k.isTrailingSpace||"\n"==k.character||" "==k.character&&k.characterType==va)||("\n"==d&&this.isLeadingSpace?b()&&"\n"!=k.character&&(l="\n"):(j=this.nextUncollapsed(),j&&(j.isBr?this.type=ya:j.isTrailingSpace&&"\n"==j.character?this.type=xa:j.isLeadingSpace&&"\n"==j.character&&(this.type=wa),"\n"==j.character?(this.type!=ya||a.includeSpaceBeforeBr)&&(this.type!=wa||a.includeSpaceBeforeBlock)&&(this.type==xa&&j.isTrailingSpace&&!a.includeBlockContentTrailingSpace||(this.type!=za||j.type!=ta||a.includePreLineTrailingSpace)&&("\n"==d?j.isTrailingSpace?this.isTrailingSpace||this.isBr&&(j.type=Aa,b()&&k.isLeadingSpace&&!k.isTrailingSpace&&"\n"==k.character?j.character="":j.type=Ba):l="\n":" "==d&&(l=" "))):l=d)))),e.indexOf(l)>-1&&(l=""),this.cache.set(h,l),l},equals:function(a){return!!a&&this.node===a.node&&this.offset===a.offset},inspect:A,toString:function(){return this.character}};z.prototype=Ca,U(Ca,{next:x("nextPos",function(a){var b=a.nodeWrapper,c=a.node,d=a.offset,e=b.session;if(!c)return null;var f,g,h;return d==b.getLength()?(f=c.parentNode,g=f?b.getNodeIndex()+1:0):b.isCharacterDataNode()?(f=c,g=d+1):(h=c.childNodes[d],e.getNodeWrapper(h).containsPositions()?(f=h,g=0):(f=c,g=d+1)),f?e.getPosition(f,g):null}),previous:x("previous",function(a){var b,c,d,e=a.nodeWrapper,f=a.node,g=a.offset,h=e.session;return 0==g?(b=f.parentNode,c=b?e.getNodeIndex():0):e.isCharacterDataNode()?(b=f,c=g-1):(d=f.childNodes[g-1],h.getNodeWrapper(d).containsPositions()?(b=d,c=S.getNodeLength(d)):(b=f,c=g-1)),b?h.getPosition(b,c):null}),nextVisible:x("nextVisible",function(a){var b=a.next();if(!b)return null;var c=b.nodeWrapper,d=b.node,e=b;return c.isCollapsed()&&(e=c.session.getPosition(d.parentNode,c.getNodeIndex()+1)),e}),nextUncollapsed:x("nextUncollapsed",function(a){for(var b=a;b=b.nextVisible();)if(b.resolveLeadingAndTrailingSpaces(),""!==b.character)return b;return null}),previousVisible:x("previousVisible",function(a){var b=a.previous();if(!b)return null;var c=b.nodeWrapper,d=b.node,e=b;return c.isCollapsed()&&(e=c.session.getPosition(d.parentNode,c.getNodeIndex())),e})});var Da=null,Ea=function(){function a(a){var b=new w;return{get:function(c){var d=b.get(c[a]);if(d)for(var e,f=0;e=d[f++];)if(e.node===c)return e;return null},set:function(c){var d=c.node[a],e=b.get(d)||b.set(d,[]);e.push(c)}}}function b(){this.initCaches()}var c=T.isHostProperty(document.documentElement,"uniqueID");return b.prototype={initCaches:function(){this.elementCache=c?function(){var a=new w;return{get:function(b){return a.get(b.uniqueID)},set:function(b){a.set(b.node.uniqueID,b)}}}():a("tagName"),this.textNodeCache=a("data"),this.otherNodeCache=a("nodeName")},getNodeWrapper:function(a){var b;switch(a.nodeType){case 1:b=this.elementCache;break;case 3:b=this.textNodeCache;break;default:b=this.otherNodeCache}var c=b.get(a);return c||(c=new y(a,this),b.set(c)),c},getPosition:function(a,b){return this.getNodeWrapper(a).getPosition(b)},getRangeBoundaryPosition:function(a,b){var c=b?"start":"end";return this.getPosition(a[c+"Container"],a[c+"Offset"])},detach:function(){this.elementCache=this.textNodeCache=this.otherNodeCache=null}},b}();U(S,{nextNode:q,previousNode:r});var Fa=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)if(a[c]===b)return c;return-1};U(a.rangePrototype,{moveStart:M(!0,!1),moveEnd:M(!1,!1),move:M(!0,!0),trimStart:N(!0),trimEnd:N(!1),trim:L(function(a,b){var c=this.trimStart(b),d=this.trimEnd(b);return c||d}),expand:L(function(a,b,c){var d=!1;c=h(c,la);var e=c.characterOptions;if(b||(b=Q),b==R){var f,g,i=c.wordOptions,j=a.getRangeBoundaryPosition(this,!0),k=a.getRangeBoundaryPosition(this,!1),l=F(j,e,i),m=l.nextEndToken(),n=m.chars[0].previousVisible();if(this.collapsed)f=m;else{var o=F(k,e,i);f=o.previousStartToken()}return g=f.chars[f.chars.length-1],n.equals(j)||(this.setStart(n.node,n.offset),d=!0),g&&!g.equals(k)&&(this.setEnd(g.node,g.offset),d=!0),c.trim&&(c.trimStart&&(d=this.trimStart(e)||d),c.trimEnd&&(d=this.trimEnd(e)||d)),d}return this.moveEnd(Q,1,c)}),text:L(function(a,b){return this.collapsed?"":I(a,this,V(b,ga)).join("")}),selectCharacters:L(function(a,b,c,d,e){var f={characterOptions:e};b||(b=W(this.getDocument())),this.selectNodeContents(b),this.collapse(!0),this.moveStart("character",c,f),this.collapse(!0),this.moveEnd("character",d-c,f)}),toCharacterRange:L(function(a,b,c){b||(b=W(this.getDocument()));var d,e,f=b.parentNode,g=S.getNodeIndex(b),h=-1==S.comparePoints(this.startContainer,this.endContainer,f,g),i=this.cloneRange();return h?(i.setStartAndEnd(this.startContainer,this.startOffset,f,g),d=-i.text(c).length):(i.setStartAndEnd(f,g,this.startContainer,this.startOffset),d=i.text(c).length),e=d+this.text(c).length,{start:d,end:e}}),findText:L(function(b,c,d){d=h(d,ja),d.wholeWordsOnly&&(d.wordOptions.includeTrailingSpace=!1);var e=aa(d.direction),f=d.withinRange;f||(f=a.createRange(),f.selectNodeContents(this.getDocument()));var g=c,i=!1;"string"==typeof g?d.caseSensitive||(g=g.toLowerCase()):i=!0;var j=b.getRangeBoundaryPosition(this,!e),k=f.comparePoint(j.node,j.offset);-1===k?j=b.getRangeBoundaryPosition(f,!0):1===k&&(j=b.getRangeBoundaryPosition(f,!1));for(var l,m=j,n=!1;;)if(l=K(m,g,i,f,d)){if(l.valid)return this.setStartAndEnd(l.startPos.node,l.startPos.offset,l.endPos.node,l.endPos.offset),!0;m=e?l.startPos:l.endPos}else{if(!d.wrap||n)return!1;f=f.cloneRange(),m=b.getRangeBoundaryPosition(f,!e),f.setBoundary(j.node,j.offset,e),n=!0}}),pasteHtml:function(a){if(this.deleteContents(),a){var b=this.createContextualFragment(a),c=b.lastChild;this.insertNode(b),this.collapseAfter(c)}}}),U(a.selectionPrototype,{expand:L(function(a,b,c){this.changeEachRange(function(a){a.expand(b,c)})}),move:L(function(a,b,c,d){var e=0;if(this.focusNode){this.collapse(this.focusNode,this.focusOffset);var f=this.getRangeAt(0);d||(d={}),d.characterOptions=V(d.characterOptions,ha),e=f.move(b,c,d),this.setSingleRange(f)}return e}),trimStart:O("trimStart"),trimEnd:O("trimEnd"),trim:O("trim"),selectCharacters:L(function(b,c,d,e,f,g){var h=a.createRange(c);h.selectCharacters(c,d,e,g),this.setSingleRange(h,f)}),saveCharacterRanges:L(function(a,b,c){for(var d=this.getAllRanges(),e=d.length,f=[],g=1==e&&this.isBackward(),h=0,i=d.length;i>h;++h)f[h]={characterRange:d[h].toCharacterRange(b,c),backward:g,characterOptions:c};return f}),restoreCharacterRanges:L(function(b,c,d){this.removeAllRanges();for(var e,f,g,h=0,i=d.length;i>h;++h)f=d[h],g=f.characterRange,e=a.createRange(c),e.selectCharacters(c,g.start,g.end,f.characterOptions),this.addRange(e,f.backward)}),text:L(function(a,b){for(var c=[],d=0,e=this.rangeCount;e>d;++d)c[d]=this.getRangeAt(d).text(b);return c.join("")})}),a.innerText=function(b,c){var d=a.createRange(b);d.selectNodeContents(b);var e=d.text(c);return e},a.createWordIterator=function(a,b,c){var d=C();c=h(c,ma);var e=d.getPosition(a,b),f=F(e,c.characterOptions,c.wordOptions),g=aa(c.direction);return{next:function(){return g?f.previousStartToken():f.nextEndToken()},dispose:function(){f.dispose(),this.next=function(){}}}},a.noMutation=function(a){var b=C();a(b),D()},a.noMutation.createEntryPointFunction=L,a.textRange={isBlockNode:l,isCollapsedWhitespaceNode:t,createPosition:L(function(a,b,c){return a.getPosition(b,c)})}}),a},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){return 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(r)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),p(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(),i=q(c);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:i,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?(p(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),p(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=[],j=q(d);b=b.slice(0),b.sort(f);for(var k=0,l=b.length;l>k;++k)i[k]=g(b[k],j);for(k=l-1;k>=0;--k)e=b[k],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[k].markerId,h)):(e.setEndBefore(c(i[k].endMarkerId,h)),e.setStartAfter(c(i[k].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],f):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&&p(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=o.removeNode,q=a.Selection.isDirectionBackward,r="\ufeff";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})}),a},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;a-1?c=new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"):/Edge\/(\d+)./i.test(navigator.userAgent)&&(c=/Edge\/(\d+)./i)),c&&null!=c.exec(navigator.userAgent)&&(d=parseFloat(RegExp.$1)),-1===d?!1:a?b?"<"===b?d>a:">"===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(12,">")},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(9,">=")||c(12,"<="),insertOrderedList:c(9,">=")||c(12,"<=")},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(12,">")},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},supportsModernPaste:function(){return!c()},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){if(b.nodeType!==wysihtml5.ELEMENT_NODE){if(b.parentNode===a)return!0;b=b.parentNode}return 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){function b(a,b){for(var c=[a],d=a;b&&d&&d!==b||!b&&d;)c.unshift(d),d=d.parentNode;return c}a.dom.domNode=function(c){var d=[a.ELEMENT_NODE,a.TEXT_NODE];return{is:{emptyTextNode:function(b){var d=b?/^\s*$/g:/^[\r\n]*$/g;return c.nodeType===a.TEXT_NODE&&d.test(c.data)},visible:function(){var b=!/^\s*$/g.test(a.dom.getTextContent(c));return b||1===c.nodeType&&c.querySelector("img, br, hr, object, embed, canvas, input, textarea")&&(b=!0),b}},prev:function(b){var e=c.previousSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).prev(b):e:null},next:function(b){var e=c.nextSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).next(b):e:null},commonAncestor:function(a,d){var e=b(c,d),f=b(a,d);if(e[0]!=f[0])return null;for(var g=0;g0)for(var f=!1,g=Array.isArray(b.styleProperty)?b.styleProperty:[b.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),c.style[d]){if(!b.styleValue){f=!0;break}if(b.styleValue instanceof RegExp){if(c.style[d].trim().match(b.styleValue).length>0){f=!0;break}}else if(Array.isArray(b.styleValue)){if(b.styleValue.indexOf(c.style[d].trim())){f=!0;break}}else if(b.styleValue===c.style[d].trim().replace(/, /g,",")){f=!0;break}}if(!f)return!1}if(b.attribute){var j=a.dom.getAttributes(c),k=[],l=!1;Array.isArray(b.attribute)?k=b.attribute:k[b.attribute]=b.attributeValue;for(var m in k)if(k.hasOwnProperty(m))if("undefined"==typeof k[m]){if("undefined"!=typeof j[m]){l=!0;break}}else if(j[m]===k[m]){l=!0;break}if(!l)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(c){var e=b.ownerDocument,f=a.dom.domNode(b).next({ignoreBlankTexts:!0}),g=a.dom.domNode(b).prev({ignoreBlankTexts:!0});f&&!d(f)&&a.dom.insert(e.createElement("br")).after(b),g&&!d(g)&&a.dom.insert(e.createElement("br")).before(b)},remove:function(d){var e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&c(e)&&e.parentNode.removeChild(e),f&&c(f)&&f.parentNode.removeChild(f)}}}}(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=wysihtml5.lang.object(c).isFunction()?c:v[c];return f&&(e=f(b,d),"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)if(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 j["class"]=wysihtml5.lang.array(s).unique().join(" ");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,c){return b?b.replace(a,""):"IMG"===c?"":null}}(),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?a:null}}()},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&&/^[\n\r]*$/.test(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&&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,m=a.ownerDocument,n=m.createDocumentFragment(),o=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0}),p=wysihtml5.dom.domNode(a).next({ignoreBlankTexts:!0}),q=a.lastElementChild||a.lastChild;if(e)for(!o||b(o)||c(o)||d(n);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild,l=k===q;f=k.firstChild;)h=f===g,i=(!l||p&&!b(p))&&h&&!b(f)&&!c(f),n.appendChild(f),i&&d(n);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;)n.appendChild(f);else{for(j=m.createElement("p");f=k.firstChild;)j.appendChild(f);n.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(n,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.config.className||(this.config.className="wysihtml5-sandbox"),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=this.config.className,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)}a.polyfills&&a.polyfills(h,i),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||this.element.ownerDocument.parentWindow},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.config.className||(this.config.className="wysihtml5-sandbox"),d?this.element=this._bindElement(d):this.element=this._createElement()},destroy:function(){},_createElement:function(){var a=b.createElement("div");return a.className=this.config.className,this._loadElement(a),a},_bindElement:function(a){return 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.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(a){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,e){var f=e||"wysihtml5-placeholder",g=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,f)},h=function(){c.isEmpty()&&!c.placeholderSet&&(c.placeholderSet=!0,c.setValue(d,!1),a.addClass(c.element,f))};b.on("set_placeholder",h).on("unset_placeholder",g).on("focus:composer",g).on("paste:composer",g).on("blur:composer",h),h()}}(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 wysihtml5.browser.supportsModernPaste()&&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"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^
$/i.test(d.trim())&&(d=!1),b(d),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"},!1,a),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!==d&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(c){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(c,d){l.start=c,l.end=d,l.table=k.getParentElement(l.start,{query:"table"},!1,a),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(b){var c=wysihtml5.dom.getParentElement(b.target,{query:"td, th"},!1,a);c&&d(c)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"},!1,a)!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){function b(a){var b,c;for(b in d)if(d.hasOwnProperty(b)&&(c=d[b],c.regex.test(a)))return c}function c(a){var c=b(a);return c?c.name:void 0}var d={rgba:{regex:/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,name:"rgba"},rgb:{regex:/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,name:"rgb"},hex6:{regex:/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,name:"hex",radix:16},hex3:{regex:/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,name:"hex",radix:16}},e=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={getColorParseMethod:b,getColorFormat:c,parseColor:function(c,f){var g,h,i,j,k,l=c;if(f){if(g=e(f),!(h=c.match(g)))return!1;h=h.pop().split(":")[1],l=a.lang.string(h).trim()}return(i=b(l))&&(j=l.match(i.regex))?(k=i.radix||10,i===d.hex3?(j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k)*k+parseInt(a,k):parseFloat(a)})):(j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k):parseFloat(a)}))):!1},unparseColor:function(a,b){var c=16;return"hex"===b?(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"hash"===b?"#"+(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"rgb"===b?"rgb("+a[0]+","+a[1]+","+a[2]+")":"rgba"===b?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"csv"===b?a[0]+","+a[1]+","+a[2]+","+a[3]: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(e("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(b){var c=document.createElement("span"),d=function(a){b.removeEventListener("mouseup",d),b.removeEventListener("keydown",d),b.removeEventListener("touchstart",d),b.removeEventListener("focus",d),b.removeEventListener("blur",d),b.removeEventListener("paste",e),b.removeEventListener("drop",e),b.removeEventListener("beforepaste",e),c&&c.parentNode&&c.parentNode.removeChild(c)},e=function(a){c&&c.parentNode&&setTimeout(d,0)};return c.appendChild(document.createTextNode(a.INVISIBLE_SPACE)),c.className="_wysihtml5-temp-caret-fix",c.style.display="block",c.style.minWidth="1px",c.style.height="0px",b.addEventListener("mouseup",d),b.addEventListener("keydown",d),b.addEventListener("touchstart",d),b.addEventListener("focus",d),b.addEventListener("blur",d),b.addEventListener("paste",e),b.addEventListener("drop",e),b.addEventListener("beforepaste",e),c}function e(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 f=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.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return 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(b){var d;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)?(d=c.lastChild,a.dom.unwrap(c),this.setAfter(d)):c.parentNode.removeChild(c))}.bind(this),f=function(a){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.className="_wysihtml5-temp-caret-fix",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,d){var e,f=this.win,g=rangy.createRange(this.doc),h=function(){var d=b.parentNode,g=d?d.childNodes[d.childNodes.length-1]:null;if(!e||g===b&&1===b.nodeType&&"block"===f.getComputedStyle(b).display)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)}.bind(this);if(g.setStartAfter(b),g.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(g),h(),d&&d(e);else{var i=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(i),setTimeout(function(){e=this.setSelection(g),h(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),e=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=e?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=f.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&e&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&e?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();e(a),this.setSelection(a)},getSelectedOwnNodes:function(a){for(var b=this.getOwnRanges(),c=[],d=0,e=b.length;e>d;d++)c.push(b[d].commonAncestorContainer||this.doc.body);return c},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 a=this.getRange();this.deleteRangeContents(a),this.setSelection(a)},deleteRangeContents:function(b){var c,d,e,f;if(this.unselectableClass){(c=a.dom.getParentElement(b.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&b.setStartBefore(c),(d=a.dom.getParentElement(b.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&b.setEndAfter(d),e=b.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=e.length;g--;)try{f=new CustomEvent("wysihtml5:uneditable:delete"),e[g].dispatchEvent(f)}catch(h){}}b.deleteContents()},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(b){for(var c,d=this.getSelectedOwnNodes(),e=[],f=0,g=d.length;g>f;f++)c=d[f].nodeName&&"LI"===d[f].nodeName?d[f]:a.dom.getParentElement(d[f],{query:"li"},!1,this.contain),c&&e.push(c);return e.length?e: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},getBeforeSelection:function(b){var c,d,e=this.getSelection(),f=e.isBackwards()?e.focusNode:e.anchorNode,g=e.isBackwards()?e.focusOffset:e.anchorOffset,h=this.createRange();if(d=a.dom.getParentElement(f,{query:"._wysihtml5-temp-caret-fix"},1),d&&(f=d.parentNode,g=Array.prototype.indexOf.call(f.childNodes,d)),f){if(g>0)return 3===f.nodeType?(h.setStart(f,0),h.setEnd(f,g),{type:"text",range:h,offset:g,node:f}):(h.setStartBefore(f.childNodes[0]),c=f.childNodes[g-1],h.setEndAfter(c),{type:"element",range:h,offset:g,node:c});if(h.setStartAndEnd(f,0),b){var i=this.getPreviousNode(f,!0),j=null;if(i&&(j=1===i.nodeType&&a.dom.hasClass(i,this.unselectableClass)?i:a.dom.domNode(i).lastLeafNode()),j)return{type:"leafnode",range:h,offset:g,node:j}}return{type:"none",range:h,offset:g,node:f}}return null},executeAndRestoreRangy:function(a,b){var c=rangy.saveSelection(this.win);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,e,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)):(e=this.doc.createTextNode(a.INVISIBLE_SPACE),f.insert(e).after(d[0]),l.setStartBefore(e),l.setEndAfter(e)),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,d=this.getRange(),e=this.doc.createElement("DIV"),f=this.doc.createDocumentFragment();if(d){for(d.deleteContents(),e.innerHTML=a,b=e.lastChild;e.firstChild;)f.appendChild(e.firstChild);for(d.insertNode(f),c=this.contain.lastChild;c&&3===c.nodeType&&c.previousSibling&&/^\s*$/.test(c.data);)c=c.previousSibling;b&&(c&&b===c&&1===b.nodeType&&this.contain.appendChild(this.doc.createElement("br")),this.setAfter(b))}},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},canAppendChild:function(a){var b,c,d=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],e=this.getRange();return b=a||e.startContainer,b&&(c=(b.tagName||b.nodeName).toLowerCase()),-1===d.indexOf(c)},splitElementAtCaret:function(b,c){var d,e,f,g,h,i=this.getSelection();if(i.rangeCount>0){d=i.getRangeAt(0).cloneRange(),d.setEndAfter(b),e=d.extractContents(),h=e.childNodes;for(var j=h.length;j--;)a.dom.domNode(h[j]).is.visible()||e.removeChild(h[j]);b.parentNode.insertBefore(e,b.nextSibling),c?(f=c.firstChild||c,g=c.lastChild||c,b.parentNode.insertBefore(c,b.nextSibling),f&&g&&(d.setStartBefore(f),d.setEndAfter(g),this.setSelection(d))):(d.setStartAfter(b),d.setEndAfter(b)),a.dom.domNode(b).is.visible()||(""===a.dom.getTextContent(b)?b.parentNode.removeChild(b):b.parentNode.replaceChild(this.doc.createTextNode(" "),b))}},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():this._selectLineUniversal()},_selectLine_W3C:function(){var a=this.win.getSelection(),b=[a.anchorNode,a.anchorOffset,a.focusNode,a.focusOffset];a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary"),a.anchorNode===b[0]&&a.anchorOffset===b[1]&&a.focusNode===b[2]&&a.focusOffset===b[3]&&this._selectLineUniversal()},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},getRangeRect:function(a){var b,c=(this.doc.createTextNode("i"),this.doc.createTextNode("i"));return a.collapsed?(a.insertNode(c),a.selectNode(c),b=a.nativeRange.getBoundingClientRect(),a.deleteContents()):b=a.nativeRange.getBoundingClientRect(),b},_selectLineUniversal:function(){var a,b,c,d,e,f,g=this.getSelection(),h=g.getRangeAt(0),i=0;b=h.cloneRange(),c=h.cloneRange(),h.collapsed&&(h.expand("word",1),a=h.nativeRange.getBoundingClientRect());do d=h.moveStart("character",-1),e=h.nativeRange.getBoundingClientRect(),e&&Math.floor(e.top)===Math.floor(a.top)||(h.moveStart("character",1),f=!0),i++;while(0!==d&&!f&&2e3>i);i=0,f=!1,a=h.nativeRange.getBoundingClientRect();do d=h.moveEnd("character",1),e=h.nativeRange.getBoundingClientRect(),e&&Math.floor(e.bottom)===Math.floor(a.bottom)||(h.moveEnd("character",-1),f=!0),i++;while(0!==d&&!f&&2e3>i);h.select()},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection&&this.doc.selection.createRange?this.doc.selection.createRange():this.doc.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(window.r=f,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):[]},getOwnNodes:function(a,b,c){for(var d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)d[f]&&(c&&d[f].splitBoundaries(),e=e.concat(d[f].getNodes(Array.isArray(a)?a:[a],b)));return e},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=f.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=f.query(this.contain,"."+this.unselectableClass),c=f.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.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},selectAll:function(){var b,c=this.createRange(),e=this.composer,f=this,g=d(this.composer.element),h=d(this.composer.element),i=function(){c.setStart(e.element,0),c.setEnd(e.element,e.element.childNodes.length),b=f.setSelection(c)},j=function(){return!b||b.nativeSelection&&b.nativeSelection.type&&("Caret"===b.nativeSelection.type||"None"===b.nativeSelection.type)};a.dom.removeInvisibleSpaces(this.composer.element),i(),this.composer.element.firstChild&&j()&&(this.composer.element.appendChild(g),i(),j()&&(g.parentNode.removeChild(g),this.composer.element.insertBefore(h,this.composer.element.firstChild),i(),j()&&(this.composer.element.appendChild(g),i())))},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},isInThisEditable:function(){var b=this.getSelection(),c=b.focusNode,d=b.anchorNode;return c&&1!==c.nodeType&&(c=c.parentNode),d&&1!==d.nodeType&&(d=d.parentNode),d&&c&&(a.dom.contains(this.composer.element,c)||this.composer.element===c)&&(a.dom.contains(this.composer.element,d)||this.composer.element===d)},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);
+},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(c){var e=b.ownerDocument,f=a.dom.domNode(b).next({ignoreBlankTexts:!0}),g=a.dom.domNode(b).prev({ignoreBlankTexts:!0});f&&!d(f)&&a.dom.insert(e.createElement("br")).after(b),g&&!d(g)&&a.dom.insert(e.createElement("br")).before(b)},remove:function(d){var e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&c(e)&&e.parentNode.removeChild(e),f&&c(f)&&f.parentNode.removeChild(f)}}}}(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=wysihtml5.lang.object(c).isFunction()?c:v[c];return f&&(e=f(b,d),"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)if(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 s&&s.length>0&&(j["class"]=wysihtml5.lang.array(s).unique().join(" "));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,c){return b?b.replace(a,""):"IMG"===c?"":null}}(),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?a:null}}()},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&&/^[\n\r]*$/.test(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&&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,m=a.ownerDocument,n=m.createDocumentFragment(),o=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0}),p=wysihtml5.dom.domNode(a).next({ignoreBlankTexts:!0}),q=a.lastElementChild||a.lastChild;if(e)for(!o||b(o)||c(o)||d(n);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild,l=k===q;f=k.firstChild;)h=f===g,i=(!l||p&&!b(p))&&h&&!b(f)&&!c(f),n.appendChild(f),i&&d(n);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;)n.appendChild(f);else{for(j=m.createElement("p");f=k.firstChild;)j.appendChild(f);n.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(n,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.config.className||(this.config.className="wysihtml5-sandbox"),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=this.config.className,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)}a.polyfills&&a.polyfills(h,i),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||this.element.ownerDocument.parentWindow},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.config.className||(this.config.className="wysihtml5-sandbox"),d?this.element=this._bindElement(d):this.element=this._createElement()},destroy:function(){},_createElement:function(){var a=b.createElement("div");return a.className=this.config.className,this._loadElement(a),a},_bindElement:function(a){return 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.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(a){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,e){var f=e||"wysihtml5-placeholder",g=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,f)},h=function(){c.isEmpty()&&!c.placeholderSet&&(c.placeholderSet=!0,c.setValue(d,!1),a.addClass(c.element,f))};b.on("set_placeholder",h).on("unset_placeholder",g).on("focus:composer",g).on("paste:composer",g).on("blur:composer",h),h()}}(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 wysihtml5.browser.supportsModernPaste()&&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"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^
$/i.test(d.trim())&&(d=!1),b(d),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"},!1,a),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!==d&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(c){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(c,d){l.start=c,l.end=d,l.table=k.getParentElement(l.start,{query:"table"},!1,a),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(b){var c=wysihtml5.dom.getParentElement(b.target,{query:"td, th"},!1,a);c&&d(c)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"},!1,a)!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){function b(a){var b,c;for(b in d)if(d.hasOwnProperty(b)&&(c=d[b],c.regex.test(a)))return c}function c(a){var c=b(a);return c?c.name:void 0}var d={rgba:{regex:/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,name:"rgba"},rgb:{regex:/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,name:"rgb"},hex6:{regex:/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,name:"hex",radix:16},hex3:{regex:/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,name:"hex",radix:16}},e=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={getColorParseMethod:b,getColorFormat:c,parseColor:function(c,f){var g,h,i,j,k,l=c;if(f){if(g=e(f),!(h=c.match(g)))return!1;h=h.pop().split(":")[1],l=a.lang.string(h).trim()}return(i=b(l))&&(j=l.match(i.regex))?(k=i.radix||10,i===d.hex3?(j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k)*k+parseInt(a,k):parseFloat(a)})):(j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k):parseFloat(a)}))):!1},unparseColor:function(a,b){var c=16;return"hex"===b?(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"hash"===b?"#"+(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"rgb"===b?"rgb("+a[0]+","+a[1]+","+a[2]+")":"rgba"===b?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"csv"===b?a[0]+","+a[1]+","+a[2]+","+a[3]: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(e("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(b){var c=document.createElement("span"),d=function(a){b.removeEventListener("mouseup",d),b.removeEventListener("keydown",d),b.removeEventListener("touchstart",d),b.removeEventListener("focus",d),b.removeEventListener("blur",d),b.removeEventListener("paste",e),b.removeEventListener("drop",e),b.removeEventListener("beforepaste",e),c&&c.parentNode&&c.parentNode.removeChild(c)},e=function(a){c&&c.parentNode&&setTimeout(d,0)};return c.appendChild(document.createTextNode(a.INVISIBLE_SPACE)),c.className="_wysihtml5-temp-caret-fix",c.style.display="block",c.style.minWidth="1px",c.style.height="0px",b.addEventListener("mouseup",d),b.addEventListener("keydown",d),b.addEventListener("touchstart",d),b.addEventListener("focus",d),b.addEventListener("blur",d),b.addEventListener("paste",e),b.addEventListener("drop",e),b.addEventListener("beforepaste",e),c}function e(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 f=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.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return 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(b){var d;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)?(d=c.lastChild,a.dom.unwrap(c),this.setAfter(d)):c.parentNode.removeChild(c))}.bind(this),f=function(a){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.className="_wysihtml5-temp-caret-fix",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,d){var e,f=this.win,g=rangy.createRange(this.doc),h=function(){var d=b.parentNode,g=d?d.childNodes[d.childNodes.length-1]:null;if(!e||g===b&&1===b.nodeType&&"block"===f.getComputedStyle(b).display)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)}.bind(this);if(g.setStartAfter(b),g.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(g),h(),d&&d(e);else{var i=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(i),setTimeout(function(){e=this.setSelection(g),h(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),e=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=e?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=f.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&e&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&e?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();e(a),this.setSelection(a)},getSelectedOwnNodes:function(a){for(var b=this.getOwnRanges(),c=[],d=0,e=b.length;e>d;d++)c.push(b[d].commonAncestorContainer||this.doc.body);return c},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 a=this.getRange();this.deleteRangeContents(a),this.setSelection(a)},deleteRangeContents:function(b){var c,d,e,f;if(this.unselectableClass){(c=a.dom.getParentElement(b.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&b.setStartBefore(c),(d=a.dom.getParentElement(b.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&b.setEndAfter(d),e=b.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=e.length;g--;)try{f=new CustomEvent("wysihtml5:uneditable:delete"),e[g].dispatchEvent(f)}catch(h){}}b.deleteContents()},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(b){for(var c,d=this.getSelectedOwnNodes(),e=[],f=0,g=d.length;g>f;f++)c=d[f].nodeName&&"LI"===d[f].nodeName?d[f]:a.dom.getParentElement(d[f],{query:"li"},!1,this.contain),c&&e.push(c);return e.length?e: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},getBeforeSelection:function(b){var c,d,e=this.getSelection(),f=e.isBackwards()?e.focusNode:e.anchorNode,g=e.isBackwards()?e.focusOffset:e.anchorOffset,h=this.createRange();if(d=a.dom.getParentElement(f,{query:"._wysihtml5-temp-caret-fix"},1),d&&(f=d.parentNode,g=Array.prototype.indexOf.call(f.childNodes,d)),f){if(g>0)return 3===f.nodeType?(h.setStart(f,0),h.setEnd(f,g),{type:"text",range:h,offset:g,node:f}):(h.setStartBefore(f.childNodes[0]),c=f.childNodes[g-1],h.setEndAfter(c),{type:"element",range:h,offset:g,node:c});if(h.setStartAndEnd(f,0),b){var i=this.getPreviousNode(f,!0),j=null;if(i&&(j=1===i.nodeType&&a.dom.hasClass(i,this.unselectableClass)?i:a.dom.domNode(i).lastLeafNode()),j)return{type:"leafnode",range:h,offset:g,node:j}}return{type:"none",range:h,offset:g,node:f}}return null},executeAndRestoreRangy:function(a,b){var c=rangy.saveSelection(this.win);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,e,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)):(e=this.doc.createTextNode(a.INVISIBLE_SPACE),f.insert(e).after(d[0]),l.setStartBefore(e),l.setEndAfter(e)),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,d=this.getRange(),e=this.doc.createElement("DIV"),f=this.doc.createDocumentFragment();if(d){for(d.deleteContents(),e.innerHTML=a,b=e.lastChild;e.firstChild;)f.appendChild(e.firstChild);for(d.insertNode(f),c=this.contain.lastChild;c&&3===c.nodeType&&c.previousSibling&&/^\s*$/.test(c.data);)c=c.previousSibling;b&&(c&&b===c&&1===b.nodeType&&this.contain.appendChild(this.doc.createElement("br")),this.setAfter(b))}},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},canAppendChild:function(a){var b,c,d=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],e=this.getRange();return b=a||e.startContainer,b&&(c=(b.tagName||b.nodeName).toLowerCase()),-1===d.indexOf(c)},splitElementAtCaret:function(b,c){var d,e,f,g,h,i=this.getSelection();if(i.rangeCount>0){d=i.getRangeAt(0).cloneRange(),d.setEndAfter(b),e=d.extractContents(),h=e.childNodes;for(var j=h.length;j--;)a.dom.domNode(h[j]).is.visible()||e.removeChild(h[j]);b.parentNode.insertBefore(e,b.nextSibling),c?(f=c.firstChild||c,g=c.lastChild||c,b.parentNode.insertBefore(c,b.nextSibling),f&&g&&(d.setStartBefore(f),d.setEndAfter(g),this.setSelection(d))):(d.setStartAfter(b),d.setEndAfter(b)),a.dom.domNode(b).is.visible()||(""===a.dom.getTextContent(b)?b.parentNode.removeChild(b):b.parentNode.replaceChild(this.doc.createTextNode(" "),b))}},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():this._selectLineUniversal()},_selectLine_W3C:function(){var a=this.win.getSelection(),b=[a.anchorNode,a.anchorOffset,a.focusNode,a.focusOffset];a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary"),a.anchorNode===b[0]&&a.anchorOffset===b[1]&&a.focusNode===b[2]&&a.focusOffset===b[3]&&this._selectLineUniversal()},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},getRangeRect:function(a){var b,c=(this.doc.createTextNode("i"),this.doc.createTextNode("i"));return a.collapsed?(a.insertNode(c),a.selectNode(c),b=a.nativeRange.getBoundingClientRect(),a.deleteContents()):b=a.nativeRange.getBoundingClientRect(),b},_selectLineUniversal:function(){var a,b,c,d,e,f,g=this.getSelection(),h=g.getRangeAt(0),i=0;b=h.cloneRange(),c=h.cloneRange(),h.collapsed&&(h.expand("word",1),a=h.nativeRange.getBoundingClientRect());do d=h.moveStart("character",-1),e=h.nativeRange.getBoundingClientRect(),e&&Math.floor(e.top)===Math.floor(a.top)||(h.moveStart("character",1),f=!0),i++;while(0!==d&&!f&&2e3>i);i=0,f=!1,a=h.nativeRange.getBoundingClientRect();do d=h.moveEnd("character",1),e=h.nativeRange.getBoundingClientRect(),e&&Math.floor(e.bottom)===Math.floor(a.bottom)||(h.moveEnd("character",-1),f=!0),i++;while(0!==d&&!f&&2e3>i);h.select()},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection&&this.doc.selection.createRange?this.doc.selection.createRange():this.doc.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(window.r=f,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):[]},getOwnNodes:function(a,b,c){for(var d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)d[f]&&(c&&d[f].splitBoundaries(),e=e.concat(d[f].getNodes(Array.isArray(a)?a:[a],b)));return e},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=f.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=f.query(this.contain,"."+this.unselectableClass),c=f.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.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},selectAll:function(){var b,c=this.createRange(),e=this.composer,f=this,g=d(this.composer.element),h=d(this.composer.element),i=function(){c.setStart(e.element,0),c.setEnd(e.element,e.element.childNodes.length),b=f.setSelection(c)},j=function(){return!b||b.nativeSelection&&b.nativeSelection.type&&("Caret"===b.nativeSelection.type||"None"===b.nativeSelection.type)};a.dom.removeInvisibleSpaces(this.composer.element),i(),this.composer.element.firstChild&&j()&&(this.composer.element.appendChild(g),i(),j()&&(g.parentNode.removeChild(g),this.composer.element.insertBefore(h,this.composer.element.firstChild),i(),j()&&(this.composer.element.appendChild(g),i())))},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},isInThisEditable:function(){var b=this.getSelection(),c=b.focusNode,d=b.anchorNode;return c&&1!==c.nodeType&&(c=c.parentNode),d&&1!==d.nodeType&&(d=d.parentNode),d&&c&&(a.dom.contains(this.composer.element,c)||this.composer.element===c)&&(a.dom.contains(this.composer.element,d)||this.composer.element===d)},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},remove:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.remove;return e?(d.unshift(this.composer),e.apply(c,d)):void 0},state:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.state;if(e)return d.unshift(this.composer),e.apply(c,d);try{return this.doc.queryCommandState(a)}catch(f){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}}),function(a){var b={nodeName:"B",toggle:!0};a.commands.bold={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){function b(b){return a.lang.object({}).merge(c).merge({attribute:b}).get()}var c={nodeName:"A",toggle:!1};a.commands.createLink={exec:function(c,d,e){var f=b(e);if(c.selection.isCollapsed()&&!this.state(c,d)){var g=c.doc.createTextNode(f.attribute.href);c.selection.insertNode(g),c.selection.selectNode(g)}a.commands.formatInline.exec(c,d,f)},state:function(b,d){return a.commands.formatInline.state(b,d,c)}}}(wysihtml5),function(a){var b={nodeName:"A"};a.commands.removeLink={exec:function(c,d){a.commands.formatInline.remove(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.exec(c,d,{className:"wysiwyg-font-size-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-font-size-"+d})}}}(wysihtml5),function(a){a.commands.fontSizeStyle={exec:function(b,c,d){d=d.size||d,/^\s*$/.test(d)||a.commands.formatInline.exec(b,c,{styleProperty:"fontSize",styleValue:d,toggle:!1})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{styleProperty:"fontSize",styleValue:d||void 0})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"fontSize"})},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.exec(c,d,{className:"wysiwyg-color-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-color-"+d})}}}(wysihtml5),function(a){a.commands.foreColorStyle={exec:function(b,c,d){var e,f;d&&(e=a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"),e&&(f=(1===e[3]?"rgb("+[e[0],e[1],e[2]].join(", "):"rgba("+e.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"color",styleValue:f})))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"color",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"color"})},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,"color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){a.commands.bgColorStyle={exec:function(b,c,d){var e,f=a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color");f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"backgroundColor",styleValue:e}))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"backgroundColor",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"backgroundColor"})},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(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function c(b){for(var c=b.element,d=c.querySelectorAll(o),e=c.querySelectorAll(b.config.classNames.uneditableContainer),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML.replace(/[\uFEFF]/g,"")&&f[g].parentNode.removeChild(f[g])}function d(a){return a.config.useLineBreaks?"DIV":"P"}function e(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?o:n)&&(e=d),d=d.parentNode;return e}function f(a,b){for(var c,d,e,f=a,g=null;f&&b&&f!==b;)1===f.nodeType&&f.matches(p)&&(d=f,null===g?(g=f.cloneNode(!1),c=g):(e=f.cloneNode(!1),e.appendChild(g),g=e)),f=f.parentNode;return{parent:d,outerNode:g,innerNode:c}}function g(b,c,e){return b||(b=e.doc.createElement(c.nodeName||d(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),c.nodeName&&b.nodeName!==c.nodeName&&(b=m.renameElement(b,c.nodeName)),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),c.className&&b.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),b}function h(b,c,e){var f;c.styleProperty&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=""),c.className&&b.classList.remove(c.className),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),c.nodeName&&b.nodeName===c.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=m.renameElement(b,d(e)):m.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function i(b){for(var c=b.querySelectorAll(o)||[],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 j(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 k(c,h,k,l){var m=h?a.lang.object(h).clone(!0):null;m&&(m.nodeName=m.nodeName||k||d(l)),j(c,l);var p,q,r,s=c.cloneRange(),t=s.startContainer,u=s.extractContents(),v=l.doc.createDocumentFragment(),w=m?b(m):null,x=w?a.dom.getParentElement(t,w,null,l.element):null,y=!m||"BLOCKQUOTE"===k&&m.nodeName&&"BLOCKQUOTE"===m.nodeName,z=x||e(t,l.element,y);if(h&&h.nodeName&&"BLOCKQUOTE"===h.nodeName){var A=g(null,h,l);A.appendChild(u),v.appendChild(A),q=[A]}else{if(u.firstChild)for(;u.firstChild;)if(1==u.firstChild.nodeType&&u.firstChild.matches(o))if(h)g(u.firstChild,h,l),u.firstChild.matches(n)&&i(u.firstChild),v.appendChild(u.firstChild);else{i(u.firstChild),r=a.dom.unwrap(u.firstChild);for(var B=0,C=r.length;C>B;B++)v.appendChild(r[B]);v.childNodes.length>0&&v.appendChild(l.doc.createElement("BR"))}else if(h){for(p=g(null,m,l);u.firstChild&&(1!==u.firstChild.nodeType||!u.firstChild.matches(o));)1==u.firstChild.nodeType&&p.matches(n)&&i(u.firstChild),p.appendChild(u.firstChild);v.appendChild(p)}else 1==u.firstChild.nodeType&&i(u.firstChild),v.appendChild(u.firstChild);else v.appendChild(g(null,h,l));q=a.lang.array(v.childNodes).get()}if(z)l.selection.splitElementAtCaret(z,v);else{var D=f(t,l.element);if(D.outerNode&&D.innerNode&&D.parent){if(1===v.childNodes.length){for(;v.firstChild.firstChild;)D.innerNode.appendChild(v.firstChild.firstChild);v.firstChild.appendChild(D.outerNode)}l.selection.splitElementAtCaret(D.parent,v)}else s.insertNode(v)}return q}function l(b,c){var d=a.dom.getParentElement(b,{query:o},null,c.element);return d?d.nodeName:null}var m=a.dom,n="h1, h2, h3, h4, h5, h6, p, pre",o="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",p="b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u";a.commands.formatBlock={exec:function(b,d,e){var f,g,i,j,m,o=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(b,d,e))){j=rangy.saveSelection(b.win);for(var p=0,q=m.length;q>p;p++)h(m[p],e,b)}if(!m){b.selection.isCollapsed()&&(i=a.dom.getParentElement(b.selection.getOwnRanges()[0].startContainer,{query:n+", "+(e&&e.nodeName?e.nodeName.toLowerCase():"div")},null,b.element),i?(j=rangy.saveSelection(b.win),g=b.selection.createRange(),g.selectNode(i),b.selection.setSelection(g)):b.isEmpty()||(j=rangy.saveSelection(b.win),b.selection.selectLine())),f=b.selection.getOwnRanges();for(var r=f.length;r--;)o=o.concat(k(f[r],e,l(f[r].startContainer,b),b))}c(b);for(var s=o.length;s--;)o[s].parentNode||o.splice(s,1);if(j)a.dom.removeInvisibleSpaces(b.element),rangy.restoreSelection(j);else{a.dom.removeInvisibleSpaces(b.element),g=b.selection.createRange(),g.setStart(o[0],0);var t=o[o.length-1],u=1===t.nodeType&&t.childNodes?0|t.childNodes.length:t.length||0;g.setEnd(t,u),g.select()}},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:o})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=m.getParentElement(g[h],d||{query:o},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),function(a){a.commands.formatCode={exec:function(b,c,d){var e,f,g,h=this.state(b)[0];h?b.selection.executeAndRestore(function(){e=h.querySelector("code"),a.dom.replaceWithChildNodes(h),e&&a.dom.replaceWithChildNodes(e)}):(f=b.selection.getRange(),g=f.extractContents(),h=b.doc.createElement("pre"),e=b.doc.createElement("code"),d&&(e.className=d),h.appendChild(e),e.appendChild(g),f.insertNode(h),b.selection.selectNode(h))},state:function(b){var c,d=b.selection.getSelectedNode();return d&&d.nodeName&&"PRE"==d.nodeName&&d.firstChild&&d.firstChild.nodeName&&"CODE"==d.firstChild.nodeName?[d]:(c=a.dom.getParentElement(d,{query:"pre code"}),c?[c.parentNode]:!1)}}}(wysihtml5),function(a){function b(a){return/^\s*$/.test(a.className)}function c(a){return!a.getAttribute("style")||/^\s*$/.test(a.getAttribute("style"))}function d(b){var c=a.dom.getAttributes(b);return a.lang.object(c).isEmpty()}function e(b,c){var d,e,f,g;return 1!==b.nodeType||1!==c.nodeType?!1:b.nodeName!==c.nodeName?!1:(d=b.className.trim().replace(/\s+/g," ").split(" "),e=c.className.trim().replace(/\s+/g," ").split(" "),a.lang.array(d).without(e).length>0?!1:(f=a.dom.getAttributes(b),g=a.dom.getAttributes(c),f.length===g.length&&a.lang.object(a.lang.object(f).difference(g)).isEmpty()?!0:!1))}function f(b,c){var d=c&&c.nodeName||F,e=b.ownerDocument.createElement(d);if(c.classRegExp&&(e.className=e.className.replace(c.classRegExp,"")),c.className&&e.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(e.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),c.attribute)if("object"==typeof c.attribute)for(var f in c.attribute)c.attribute.hasOwnProperty(f)&&e.setAttribute(f,c.attribute[f]);else"undefined"!=typeof c.attributeValue&&e.setAttribute(c.attribute,c.attributeValue);return e}function g(a,b){for(var c in a)if(a.hasOwnProperty(c)&&(void 0===typeof b[c]||b[c]!==a[c]))return!1;return!0}function h(b,c,d){var e,f=a.dom.getAttributes(b),h=g(c,f);a.lang.object(f).difference(c);if(h&&d!==!1)for(e in c)c.hasOwnProperty(e)&&b.removeAttribute(e);else for(e in c)c.hasOwnProperty(e)&&b.setAttribute(e,c[e])}function i(e,f){var g,i,j;f.className&&(f.toggle!==!1&&e.classList.contains(f.className)?e.classList.remove(f.className):e.classList.add(f.className),b(e)&&e.removeAttribute("class")),f.styleProperty&&(f.toggle!==!1&&e.style[a.browser.fixStyleKey(f.styleProperty)].trim().replace(/, /g,",")===f.styleValue?e.style[a.browser.fixStyleKey(f.styleProperty)]="":e.style[a.browser.fixStyleKey(f.styleProperty)]=f.styleValue),c(e)&&e.removeAttribute("style"),f.attribute&&("object"==typeof f.attribute?g=f.attribute:(g={},g[f.attribute]=f.attributeValue||""),h(e,g,f.toggle)),i=f.nodeName?H[f.nodeName.toLowerCase()]||f.nodeName.toLowerCase():null,j=i?a.dom.domNode(e).test({query:i}):!1,(!f.nodeName||f.nodeName===F||j)&&(f.toggle!==!1&&j||!f.nodeName&&e.nodeName===F)&&b(e)&&c(e)&&d(e)&&a.dom.unwrap(e)}function j(b,c){var d=[];return b.isCollapsed()||(d=d.concat(b.getOwnNodes([3],function(b){return!a.dom.domNode(b).is.emptyTextNode()},c))),d}function k(a,b,c,d){var e=a,f=d?b:l(b);do{if(1===e.nodeType&&m(e,f))return e;e=e.parentNode}while(e&&e!==c);return null}function l(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function m(b,c){var d;if(c.nodeName){var e=H[c.nodeName.toLowerCase()]||c.nodeName.toLowerCase();return a.dom.domNode(b).test({query:e})}return d=a.lang.object(c).clone(),d.query=G,a.dom.domNode(b).test(d)}function n(b,c){var d=document.documentElement||document.body,e=d.scrollTop,f=d.scrollLeft;rangy.getSelection(b.win);rangy.getSelection(b.win).removeAllRanges();try{rangy.getSelection(b.win).addRange(c)}catch(g){}b.doc.activeElement&&a.dom.contains(b.element,b.doc.activeElement)||(b.element.focus(),d.scrollTop=e,d.scrollLeft=f,rangy.getSelection(b.win).addRange(c))}function o(a,b){var c=rangy.createRange(b.doc),d=a[a.length-1];a[0]&&d&&(c.setStart(a[0],0),c.setEnd(d,d.length),n(b,c))}function p(a,b,c,d){var e=rangy.createRange(a.doc);b&&(e.setStart(b,c),e.setEnd(b,"undefined"!=typeof d?d:c),n(a,e))}function q(a,b,c){var d,e,f,g=j(a.selection),h=[],i=!1;if(a.selection.isInThisEditable()){if(0===g.length&&a.selection.isCollapsed()){if(f=a.selection.getSelection().anchorNode,!f)return{nodes:[],partial:!1};3===f.nodeType&&(g=[f])}g.length||(e=a.selection.getOwnRanges()[0],e&&(g=[e.endContainer]));for(var l=0,m=g.length;m>l;l++)d=k(g[l],b,a.element,c),d?h.push(d):i=!0}return{nodes:h,partial:i}}function r(a){var b,c,d,e;return a&&(b=a.anchorNode,c=a.anchorOffset,b&&3===b.nodeType&&c>0&&c0&&/\w/.test(c.data[g-1]);)g--;for(;h0&&o(b,a),u(q(a,c).nodes),b.length>0&&o(b,a)}function w(a,b,c,d){p(a,b,c),u(q(a,d).nodes),p(a,b,c)}function x(a,b){var c=f(a,b);a.parentNode.insertBefore(c,a),c.appendChild(a)}function y(b,c,d){var e,f=c.element,g=k(b,d,f);g&&(e=g.cloneNode(!1),a.dom.domNode(b).escapeParent(g,e),i(e,d))}function z(b,c,d){var e=c.element,f=k(b,d,e);f&&a.dom.domNode(b).escapeParent(f)}function A(a,b,c){var d=f(a.endContainer,c);a.surroundContents(d),b.selection.selectNode(d)}function B(b,c,d,e){var f,g,h,j,l=q(b,e,!0),m=b.selection.getSelection();if(c.length){if(l.partial||e.toggle===!1)for(j=c.length;j--;)k(c[j],e,b.element)&&y(c[j],b,e),k(c[j],e,b.element)||x(c[j],e);else for(j=c.length;j--;)y(c[j],b,e);v(b,c,e)}else if(e.toggle!==!1)if(r(m))f=s(m),g=f.textNode,y(f.textNode,b,e),w(b,f.textNode,f.wordOffset,e);else{g=b.doc.createTextNode(a.INVISIBLE_SPACE),h=d.nodes[0].cloneNode(!1),h.appendChild(g),b.selection.splitElementAtCaret(d.nodes[0],h),i(h,e),v(b,[g],e);var n=b.selection.getSelection();if(n.anchorNode&&n.focusNode)try{n.collapseToEnd()}catch(o){}}else for(j=d.nodes.length;j--;)i(d.nodes[j],e)}function C(b,c,d,e){var f,g,h,i=b.selection.getSelection();if(c.length){for(h=c.length;h--;)z(c[h],b,e);v(b,c,e)}else{for(f=i.anchorNode,g=i.anchorOffset,h=d.nodes.length;h--;)a.dom.unwrap(d.nodes[h]);w(b,f,g,e)}}function D(a,b,c){var d,e,f=a.selection.getSelection();if(b.length){for(e=b.length;e--;)x(b[e],c);v(a,b,c)}else if(r(f))d=s(f),x(d.textNode,c),w(a,d.textNode,d.wordOffset,c);else{var g=a.selection.getOwnRanges()[0];g&&A(g,a,c)}}function E(a){return a="string"==typeof a?{nodeName:a}:a,a.nodeName&&(a.nodeName=a.nodeName.toUpperCase()),a}var F="SPAN",G="b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u",H={b:"b, strong",strong:"b, strong",em:"em, i",i:"em, i"};a.commands.formatInline={exec:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0?B(a,d,e,c):D(a,d,c),a.element.normalize()},remove:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0&&C(a,d,e,c),a.element.normalize()},state:function(a,b,c){c=E(c);var d=q(a,c,!0).nodes;return 0===d.length?!1:d}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.insertHTML={exec:function(a,b,c){a.selection.insertHTML(c)},state:function(){return!1}}}(wysihtml5),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(a,c){a.selection.insertHTML(b)},state:function(){return!1}}}(wysihtml5),function(a){a.commands.insertOrderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"OL")},state:function(b,c){return a.commands.insertList.state(b,c,"OL")}}}(wysihtml5),function(a){a.commands.insertUnorderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"UL")},state:function(b,c){return a.commands.insertList.state(b,c,"UL")}}}(wysihtml5),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"},!1,e.element),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,h="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(function(){if(e=f(h,d),e.length)for(var i=e.length;i--;)a.dom.renameElement(e[i],c.toLowerCase());else{g=f(["OL","UL"],d);for(var j=g.length;j--;)a.dom.resolveList(g[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(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){var d;c.selection.isCollapsed()||(d=rangy.saveSelection(c.win));var e,f,g="_wysihtml5-temp-"+(new Date).getTime(),h=c.selection.deblockAndSurround({nodeName:"div",className:g});h.innerHTML=h.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),h&&(e=/^(\s|(
))+$/i.test(h.innerHTML),f=a.dom.convertToList(h,b.toLowerCase(),c.parent.config.classNames.uneditableContainer),d&&rangy.restoreSelection(d),e&&c.selection.selectNode(f.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),function(a){var b={nodeName:"I",toggle:!0};a.commands.italic={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"justify",toggle:!0};a.commands.alignJustifyStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(a){return!1}}}(wysihtml5),function(a){var b={nodeName:"U",toggle:!0};a.commands.underline={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){a.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(a){return!1}}}(wysihtml5),function(a){a.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(a,b){return!1}}}(wysihtml5),function(a){a.commands.mergeTableCells={exec:function(b,c){b.tableSelection&&b.tableSelection.start&&b.tableSelection.end&&(this.state(b,c)?a.dom.table.unmergeCell(b.tableSelection.start):a.dom.table.mergeCellsBetween(b.tableSelection.start,b.tableSelection.end))},state:function(b,c){if(b.tableSelection){var d=b.tableSelection.start,e=b.tableSelection.end;if(d&&e&&d==e&&(a.dom.getAttribute(d,"colspan")&&parseInt(a.dom.getAttribute(d,"colspan"),10)>1||a.dom.getAttribute(d,"rowspan")&&parseInt(a.dom.getAttribute(d,"rowspan"),10)>1))return[d]}return!1}}}(wysihtml5),function(a){a.commands.addTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end);"before"==d||"above"==d?a.dom.table.addCells(e.start,d):("after"==d||"below"==d)&&a.dom.table.addCells(e.end,d),setTimeout(function(){b.tableSelection.select(e.start,e.end)},0)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.deleteTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e,f=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end),g=a.dom.table.indexOf(f.start),h=b.tableSelection.table;a.dom.table.removeCells(f.start,d),setTimeout(function(){e=a.dom.table.findCell(h,g),e||("row"==d&&(e=a.dom.table.findCell(h,{row:g.row-1,col:g.col})),"column"==d&&(e=a.dom.table.findCell(h,{row:g.row,col:g.col-1}))),e&&b.tableSelection.select(e,e)},0)}},state:function(a,b){return!1}}}(wysihtml5),
function(a){a.commands.indentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPushLiLevel(d,a.selection):!1},state:function(a,b){return!1},tryToPushLiLevel:function(b,c){var d,e,f,g,h,i=!1;return c.executeAndRestoreRangy(function(){for(var c=b.length;c--;)g=b[c],d="OL"===g.parentNode.nodeName?"OL":"UL",e=g.ownerDocument.createElement(d),f=a.dom.domNode(g).prev({nodeTypes:[a.ELEMENT_NODE]}),h=f?f.querySelector("ul, ol"):null,f&&(h?h.appendChild(g):(e.appendChild(g),f.appendChild(e)),i=!0)}),i}}}(wysihtml5),function(a){a.commands.outdentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPullLiLevel(d,a):!1},state:function(a,b){return!1},tryToPullLiLevel:function(b,c){var d,e,f,g,h,i=!1,j=this;return c.selection.executeAndRestoreRangy(function(){for(var k=b.length;k--;)if(g=b[k],g.parentNode&&(d=g.parentNode,"OL"===d.tagName||"UL"===d.tagName)){if(i=!0,e=a.dom.getParentElement(d.parentNode,{query:"ol, ul"},!1,c.element),f=a.dom.getParentElement(d.parentNode,{query:"li"},!1,c.element),e&&f)g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h)),e.insertBefore(g,f.nextSibling);else{g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h));for(var l=g.childNodes.length;l--;)d.parentNode.insertBefore(g.childNodes[l],d.nextSibling);d.parentNode.insertBefore(document.createElement("br"),d.nextSibling),g.parentNode.removeChild(g)}0===d.childNodes.length&&d.parentNode.removeChild(d)}}),i},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}}}(wysihtml5),function(a){var b={nodeName:"SUB",toggle:!0};a.commands.subscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b={nodeName:"SUP",toggle:!0};a.commands.superscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),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",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()?"":"
"},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!==!1&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(a){var b;this.selection&&(b=rangy.saveSelection(this.win)),this.parent.parse(this.element,void 0,a),b&&rangy.restoreSelection(b)},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))},getScrollPos:function(){if(this.doc&&this.win){var a={};return"undefined"!=typeof this.win.pageYOffset?a.y=this.win.pageYOffset:a.y=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollTop,"undefined"!=typeof this.win.pageXOffset?a.x=this.win.pageXOffset:a.x=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollLeft,a}},setScrollPos:function(a){a&&"undefined"!=typeof a.x&&"undefined"!=typeof a.y&&this.win.scrollTo(a.x,a.y)},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()},{className:this.config.classNames.sandbox},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()},{className:this.config.classNames.sandbox}),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,className:this.config.classNames.sandbox}),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.win=this.sandbox.getWindow(),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.classNames.uneditableContainer),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.classNames.composer),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.config.classNames.placeholder),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){var g=this.element.innerHTML;this.commands.exec("AutoUrlDetect",!1,!1),this.element.innerHTML=g}if(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.classNames.uneditableContainer),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.classNames.uneditableContainer])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.classNames.uneditableContainer])}));var h=this.sandbox.getDocument().getElementsByTagName("a"),i=b.autoLink.URL_REG_EXP,j=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(h.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=j(f),setTimeout(function(){var a=j(f);a!==c&&a.match(i)&&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(b,c){if(b.selection.caretIsLastInSelection()){var d=b.selection.getSelection(),e=d.anchorNode;if(e&&1===e.nodeType&&(a.dom.getParentElement(e,{query:"td, th"},!1,b.element)||c)){var f=e.childNodes[d.anchorOffset];if(f&&1===f.nodeType&"BR"===f.nodeName)return f.parentNode.removeChild(f),!0}}return!1},h=function(a){var b=a.selection.getBeforeSelection(!0);if(b&&("element"===b.type||"leafnode"===b.type)&&1===b.node.nodeType&&b.node.classList.contains(a.config.classNames.uneditableContainer)){if(g(a,!0))return!0;try{var c=new CustomEvent("wysihtml5:uneditable:delete");b.node.dispatchEvent(c)}catch(d){}return b.node.parentNode.removeChild(b.node),!0}return!1},i=function(b){var c=b.selection,d=c.getPreviousNode();if(c.caretIsFirstInSelection()&&d&&1===d.nodeType&&/block/.test(b.win.getComputedStyle(d).display)){if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=c.getSelectedNode(),g=a.dom.domNode(d).commonAncestor(f,b.element);if(curNode=g?a.dom.getParentElement(f,{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,g):null,curNode){for(;curNode.firstChild;)d.appendChild(curNode.firstChild);return c.setAfter(e),!0}if(3===f.nodeType)return d.appendChild(f),c.setAfter(e),!0}}return!1},j=function(a,b){var c=b.selection;b.element;if(c.isCollapsed()){if(i(b))return void a.preventDefault();if(g(b))return void a.preventDefault();if(h(b))return void a.preventDefault()}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},k=function(a,b,c){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li"))if(c){if(a.commands.exec("outdentList"))return}else if(a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},l=function(a){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},m=function(a){this.parent.fire("beforeinteraction",a).fire("beforeinteraction:composer",a),setTimeout(function(){this.parent.fire("interaction",a).fire("interaction:composer",a)}.bind(this),0)},n=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},o=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)},p=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)},q=function(b){this.config.copyedFromMarking&&(a.browser.supportsModernPaste()&&(b.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),b.clipboardData.setData("text/plain",this.selection.getPlainText()),b.preventDefault()),this.parent.fire(b.type,b).fire(b.type+":composer",b))},r=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},s=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.classNames.uneditableContainer+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},t=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)))},u=function(b){if(this.config.classNames.uneditableContainer){var c=a.dom.getParentElement(b.target,{query:"."+this.config.classNames.uneditableContainer},!1,this.element);c&&this.selection.setAfter(c)}},v=function(a){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(b){var c,e,f=b.keyCode,g=d[f];return!b.ctrlKey&&!b.metaKey||b.altKey||65!==f?((b.ctrlKey||b.metaKey)&&!b.altKey&&g&&(this.commands.exec(g),b.preventDefault()),f===a.BACKSPACE_KEY&&j(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)}.bind(this),0))),void(this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),k(this,this.element,b.shiftKey)))):(this.selection.selectAll(),void b.preventDefault())},x=function(){var b=function(){window.removeEventListener("load",b),this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")}.bind(this),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):window.addEventListener("load",b)),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"],l.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||l.call(this)},250)),this.config.handleTables&&x.call(this),e(d,["drop","paste","mouseup","focus","keyup"],m.bind(this)),d.addEventListener("focus",n.bind(this),!1),d.addEventListener("blur",o.bind(this),!1),e(this.element,["drop","paste","beforepaste"],p.bind(this),!1),this.element.addEventListener("copy",q.bind(this),!1),this.element.addEventListener("mousedown",s.bind(this),!1),this.element.addEventListener("mouseover",t.bind(this),!1),this.element.addEventListener("click",u.bind(this),!1),this.element.addEventListener("drop",v.bind(this),!1),this.element.addEventListener("keyup",r.bind(this),!1),this.element.addEventListener("keydown",w.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.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),function(a){a.views.SourceView=Base.extend({constructor:function(a,b){this.editor=a,this.composer=b,this._observe()},switchToTextarea:function(a){var b=this.composer.win.getComputedStyle(this.composer.element),c=parseFloat(b.width),d=Math.max(parseFloat(b.height),100);this.textarea||(this.textarea=this.composer.doc.createElement("textarea"),this.textarea.className="wysihtml5-source-view"),this.textarea.style.width=c+"px",this.textarea.style.height=d+"px",this.textarea.value=this.editor.getValue(a,!0),this.composer.element.parentNode.insertBefore(this.textarea,this.composer.element),this.editor.currentView="source",this.composer.element.style.display="none"},switchToComposer:function(a){var b=this.textarea.value;b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder")),this.textarea.parentNode.removeChild(this.textarea),this.editor.currentView=this.composer,this.composer.element.style.display=""},_observe:function(){this.editor.on("change_view",function(a){"composer"===a?this.switchToComposer(!0):"textarea"===a&&this.switchToTextarea(!0)}.bind(this))}})}(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!==!1&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(a){var b=this.parent.parse(this.element.value,void 0,a);this.element.value=b},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,showToolbarDialogsOnSelection:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{},b:{},i:{},u:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,classNames:{composer:"wysihtml5-editor",body:"wysihtml5-supported",sandbox:"wysihtml5-sandbox",placeholder:"wysihtml5-placeholder",uneditableContainer:"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(),d&&d.classNames&&a.lang.object(this.config.classNames).merge(d.classNames),"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.classNames.body),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.sourceView=new a.views.SourceView(this,this.composer):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(a){this.currentView.cleanUp(a)},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()},destroy:function(){this.composer&&this.composer.sandbox&&this.composer.sandbox.destroy(),this.toolbar&&this.toolbar.destroy(),this.off()},parse:function(b,c,d){var e=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,f=this.config.parser(b,{rules:d||this.config.parserRules,cleanUp:this.config.cleanUp,context:e,uneditableClass:this.config.classNames.uneditableContainer,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),f},_initParser:function(){var b;a.browser.supportsModernPaste()?this.on("paste:composer",function(c){c.preventDefault(),b=a.dom.getPastedHtml(c),b&&this._cleanAndPaste(b)}.bind(this)):this.on("beforepaste:composer",function(b){b.preventDefault();var c=this.composer.getScrollPos();a.dom.getPastedHtmlWithDiv(this.composer,function(a){a&&this._cleanAndPaste(a),this.composer.setScrollPos(c)}.bind(this))}.bind(this))},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.classNames.uneditableContainer});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 d=this,e=function(a){var b=d._serialize();d.fire("save",b),d.hide(),a.preventDefault(),a.stopPropagation()};b.observe(d.link,"click",function(){b.hasClass(d.link,c)&&setTimeout(function(){d.hide()},0)}),b.observe(this.container,"keydown",function(b){
var c=b.keyCode;c===a.ENTER_KEY&&e(b),c===a.ESCAPE_KEY&&d.cancel()}),b.delegate(this.container,"[data-wysihtml5-dialog-action=save]","click",e),b.delegate(this.container,"[data-wysihtml5-dialog-action=cancel]","click",function(a){d.cancel(),a.preventDefault(),a.stopPropagation()}),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))},update:function(a){this.elementToChange=a?a:this.elementToChange,this._interpolate()},show:function(a){var e=this.container.querySelector(d);if(this._observe(),this.update(a),b.addClass(this.link,c),this.container.style.display="",this.isOpen=!0,this.fire("show"),e&&!a)try{e.focus()}catch(f){}},_hide:function(a){this.elementToChange=null,b.removeClass(this.link,c),this.container.style.display="none",this.isOpen=!1},hide:function(){this._hide(),this.fire("hide")},cancel:function(){this._hide(),this.fire("cancel")}})}(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){function b(b,c){var d=b.commands.state(c.name,c.value);return!c.dialog.multiselect&&a.lang.object(d).isArray()&&(d=1===d.length?d[0]:!0),d}var c="wysihtml5-command-disabled",d="wysihtml5-commands-disabled",e="wysihtml5-command-active",f="wysihtml5-action-active",g=a.dom;a.toolbar.Toolbar=Base.extend({constructor:function(b,g,h){this.editor=b,this.container="string"==typeof g?document.getElementById(g):g,this.composer=b.composer,this._getLinks("command"),this._getLinks("action"),this._observe(),h&&this.show(),null!=b.config.classNameCommandDisabled&&(c=b.config.classNameCommandDisabled),null!=b.config.classNameCommandsDisabled&&(d=b.config.classNameCommandsDisabled),null!=b.config.classNameCommandActive&&(e=b.config.classNameCommandActive),null!=b.config.classNameActionActive&&(f=b.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}),f._hideAllDialogs(),f._preventInstantFocus(),e=void 0}),d.on("cancel",function(){e&&f.composer.selection.setBookmark(e),f.editor.fire("cancel:dialog",{command:c,dialogContainer:g,commandLink:b}),e=void 0,f._preventInstantFocus()}),d.on("hide",function(){f.editor.fire("hide:dialog",{command:c,dialogContainer:g,commandLink:b}),e=void 0})),d},execCommand:function(a,b){this.commandsDisabled||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.currentView===b.textarea||"source"===b.currentView?b.fire("change_view","composer"):b.fire("change_view","textarea")),"showSource"==a&&b.fire("showSource")},_observe:function(){for(var c=this,e=this.editor,f=this.container,h=this.commandLinks.concat(this.actionLinks),i=h.length,j=0;i>j;j++)"A"===h[j].nodeName?g.setAttributes({href:"javascript:;",unselectable:"on"}).on(h[j]):g.setAttributes({unselectable:"on"}).on(h[j]);g.delegate(f,"[data-wysihtml5-command], [data-wysihtml5-action]","mousedown",function(a){a.preventDefault()}),g.delegate(f,"[data-wysihtml5-command]","click",function(a){var d,e=this,f=e.getAttribute("data-wysihtml5-command"),g=e.getAttribute("data-wysihtml5-command-value"),h=c.commandMapping[f+":"+g];g||!h.dialog?c.execCommand(f,g):(d=b(c.composer,h),h.dialog.show(d)),a.preventDefault()}),g.delegate(f,"[data-wysihtml5-action]","click",function(a){var b=this.getAttribute("data-wysihtml5-action");c.execAction(b),a.preventDefault()}),e.on("interaction:composer",function(a){c.preventFocus||c._updateLinkStates()}),this._ownerDocumentClick=function(b){a.dom.contains(c.container,b.target)||a.dom.contains(c.composer.element,b.target)||(c._updateLinkStates(),c._preventInstantFocus())},this.container.ownerDocument.addEventListener("click",this._ownerDocumentClick,!1),this.editor.on("destroy:composer",this.destroy.bind(this)),this.editor.config.handleTables&&(e.on("tableselect:composer",function(){c.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display=""}),e.on("tableunselect:composer",function(){c.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display="none"})),e.on("change_view",function(a){setTimeout(function(){c.commandsDisabled="composer"!==a,c._updateLinkStates(),c.commandsDisabled?g.addClass(f,d):g.removeClass(f,d)},0)})},destroy:function(){this.container.ownerDocument.removeEventListener("click",this._ownerDocumentClick,!1)},_hideAllDialogs:function(){var a=this.commandMapping;for(var b in a)a[b].dialog&&a[b].dialog.hide()},_preventInstantFocus:function(){this.preventFocus=!0,setTimeout(function(){this.preventFocus=!1}.bind(this),0)},_updateLinkStates:function(){var a,d,h,i,j,k=this.commandMapping,l=this.composer,m=this.actionMapping;for(a in k)i=k[a],this.commandsDisabled?(d=!1,g.removeClass(i.link,e),i.group&&g.removeClass(i.group,e),i.dialog&&i.dialog.hide()):(d=this.composer.commands.state(i.name,i.value),g.removeClass(i.link,c),i.group&&g.removeClass(i.group,c)),(i.state!==d||i.tracksBlankValue)&&(i.state=d,d?i.tracksBlankValue?g.removeClass(i.link,e):(g.addClass(i.link,e),i.group&&g.addClass(i.group,e),!i.dialog||"undefined"!=typeof i.value&&null!==i.value||(d&&"object"==typeof d?(d=b(l,i),i.state=d,j=i.dialog.container.dataset?i.dialog.container.dataset.showdialogonselection:!1,l.config.showToolbarDialogsOnSelection||j?i.dialog.show(d):i.dialog.update(d)):i.dialog.hide())):i.tracksBlankValue?g.addClass(i.link,e):(g.removeClass(i.link,e),i.group&&g.removeClass(i.group,e),i.dialog&&!i.value&&i.dialog.hide()));for(a in m)h=m[a],"change_view"===h.name&&(h.state=this.editor.currentView===this.editor.textarea||"source"===this.editor.currentView,h.state?g.addClass(h.link,f):g.removeClass(h.link,f))},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="[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,g=a.quirks.styleParser,h=document.querySelector(":focus"),i=this.container.querySelectorAll(b),j=i.length,k=0,l=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,m=l?l.getAttribute("style"):null,n=m?g.parseColor(m,"color"):null;j>k;k++)e=i[k],e!==h&&(d&&"hidden"===e.type||"color"===e.getAttribute(c)&&(f=(e.dataset.colormode||"rgb").toLowerCase(),f="hex"===f?"hash":f,n?e.value=g.unparseColor(n,f):e.value=g.unparseColor([0,0,0],f)))}})}(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(b){var c=document.querySelector(":focus"),d=this.container.querySelector("[data-wysihtml5-dialog-field='size']"),e=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,f=e?e.getAttribute("style"):null,g=f?a.quirks.styleParser.parseFontSize(f):null;d&&d!==c&&g&&!/^\s*$/.test(g)&&(d.value=g)}})}(wysihtml5);
diff --git a/dist/wysihtml-toolbar.min.map b/dist/wysihtml-toolbar.min.map
index 3505631..1f7fa7a 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":["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","polyfills","win","doc","String","prototype","trim","rtrim","this","replace","s_add","s_rem","Element","on","fn","self","attachEvent","e","event","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","which","button","keyCode","call","detachEvent","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","length","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","document","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","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","normalizeHasCaretError","window","ret","t1","createTextNode","t2","t3","createRange","appendChild","body","setStart","setEnd","getSelection","removeAllRanges","addRange","normalize","childNodes","anchorNode","firstChild","anchorOffset","removeChild","getTextNodes","all","nextSibling","nodeType","normalizeFix","nf","Node","texts","ownerDocument","defaultView","anode","aoffset","aelement","undefined","fnode","focusNode","foffset","focusOffset","felement","prevTxt","shift","curText","nodeValue","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","previousSibling","F","removeEventListener","readyState","addEventListener","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","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","deprecationNotice","deprecated","replacement","createAliasForDeprecatedMethod","owner","util","toArray","shim","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","forEach","arr","func","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","el","arrayLike","addListener","eventType","listener","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","getWindow","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","createTestElement","html","contentEditable","bodyFirstChild","removeNode","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","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","getRangeRoot","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","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","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","rootContainerNodeTypes","setRangeStart","setRangeEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","sibling","mergeForward","appendData","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","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getDocSelection","winSelectionIsBackward","sel","backward","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","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","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","saveRanges","restoreRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","require","defaultTokenizer","chars","wordOptions","createTokenRange","isWord","tokenRanges","wordStart","wordEnd","word","lastWordEnd","wordRegex","exec","includeTrailingSpace","nonLineBreakWhiteSpaceRegex","convertCharRangeToToken","tokenRange","tokenChars","tokenize","tokenizer","normalizeIgnoredCharacters","ignoredCharacters","ignoredChars","ignoredCharsArray","sort","char1","char2","charCodeAt","createWordOptions","language","defaultLanguage","defaultWordOptions","createNestedOptions","characterOptions","defaultCharacterOptions","getComputedDisplay","display","tableCssDisplayBlock","defaultDisplayValueForTag","isHidden","getAncestorsAndSelf","isVisibilityHiddenTextNode","isBlockNode","containsPositions","getAncestors","unshift","nextNodeDescendants","excludeChildren","previous","isWhitespaceNode","computedWhiteSpace","isCollapsedWhitespaceNode","isCollapsedNode","isIgnoredNode","Cache","store","createCachingGetter","objProperty","cache","cachedCount","uncachedCount","value","NodeWrapper","session","positions","Position","nodeWrapper","inspectPosition","startSession","endSession","currentSession","Session","getSession","createCharacterIterator","startPos","endPos","charPos","finished","previousVisible","nextVisible","previousTextPos","returnPreviousTextPos","character","getCharacter","rewind","dispose","createTokenizedTextProvider","consumeWord","forward","textChar","newChars","forwardIterator","backwardIterator","passedWordBoundary","insideWord","allWhiteSpaceRegex","forwardChars","backwardChars","reverse","forwardTokensBuffer","arrayIndexOf","backwardTokensBuffer","nextEndToken","lastToken","previousStartToken","movePositionBy","unit","count","currentPos","charIterator","nextPos","unitsMoved","newPos","absCount","abs","CHARACTER","WORD","tokenizedTextProvider","isLeadingSpace","isTrailingSpace","createRangeCharacterIterator","rangeStart","getRangeBoundaryPosition","rangeEnd","itStart","itEnd","getRangeCharacters","isWholeWord","expand","findTextFromPosition","initialPos","searchTerm","isRegex","searchScopeRange","findOptions","handleMatch","startIndex","endIndex","valid","wholeWordsOnly","currentChar","matchStartIndex","matchEndIndex","insideRegexMatch","caseSensitive","createEntryPointFunction","sessionRunning","createRangeBoundaryMover","moveOptions","defaultMoveOptions","boundaryIsStart","moveResult","createRangeTrimmer","trimCharCount","trimmed","createSelectionTrimmer","spacesRegex","spacesMinusLineBreaksRegex","trailingSpaceInBlockCollapses","trailingSpaceBeforeBrCollapses","trailingSpaceBeforeBlockCollapses","trailingSpaceBeforeLineBreakInPreLineCollapses","includeBlockContentTrailingSpace","includeSpaceBeforeBr","includeSpaceBeforeBlock","includePreLineTrailingSpace","ignoreCharacters","defaultCaretCharacterOptions","en","defaultFindOptions","withinRange","wrap","defaultExpandOptions","trimStart","trimEnd","defaultWordIteratorOptions","table","caption","colgroup","col","thead","tbody","tfoot","tr","td","th","key","nodeProto","getPosition","EMPTY","NON_SPACE","UNCOLLAPSIBLE_SPACE","COLLAPSIBLE_SPACE","TRAILING_SPACE_BEFORE_BLOCK","TRAILING_SPACE_IN_BLOCK","TRAILING_SPACE_BEFORE_BR","PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK","TRAILING_LINE_BREAK_AFTER_BR","INCLUDED_TRAILING_LINE_BREAK_AFTER_BR","getLength","isWhitespace","isCollapsedWhitespace","isIgnored","getTextNodeInfo","spaceRegex","collapseSpaces","cssWhitespace","preLine","hasInnerText","posAfterEl","firstPosInEl","prepopulateChar","isDefinitelyNonEmpty","isRenderedBlock","brs","getTrailingSpace","getNodeWrapper","getLeadingSpace","positionProto","characterType","isBr","prepopulatedChar","visibleChar","charType","finalizedChar","charAt","nodePassed","checkForTrailingSpace","checkForLeadingSpace","isCharInvariant","resolveLeadingAndTrailingSpaces","trailingSpace","leadingSpace","getPrecedingUncollapsedPosition","getPreviousPos","gotPreviousPos","previousPos","returnChar","thisChar","isIgnoredCharacter","cacheKey","cachedChar","collapsible","nextUncollapsed","nextOffset","previousOffset","createWrapperCache","nodeProperty","wrappersByProperty","wrapper","property","initCaches","uniqueIDSupported","elementCache","elementsCache","uniqueID","elWrapper","textNodeCache","otherNodeCache","wrapperCache","prefix","moveEnd","move","startTrimmed","endTrimmed","expandOptions","moved","endToken","newEndPos","startTokenizedTextProvider","startToken","newStartPos","endTokenizedTextProvider","selectCharacters","toCharacterRange","rangeStartsBeforeNode","rangeBetween","findText","searchTermParam","findResult","wrappedAround","pasteHtml","saveCharacterRanges","rangeInfos","characterRange","restoreCharacterRanges","saved","rangeInfo","createWordIterator","iteratorOptions","noMutation","createPosition","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","saveSelection","restored","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","implement","valueOf","source","toSource","hidden","object","block","context","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","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","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModernPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","isPlainObject","difference","diffObj","newObj","isFunction","Text","isEmpty","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","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","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","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","parents","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","visible","isVisible","getTextContent","prev","prevNode","types","ignoreBlankTexts","commonAncestor","parents1","parents2","lastLeafNode","leafClasses","escapeParent","newWrapper","split2","nodeWrap","curNode","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","attr","getAttributes","attrList","hasOneAttribute","attributeValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","ingoreEmpty","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","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","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","isLastItem","lastListItem","lastElementChild","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","innerHtml","simulatePlaceholder","editor","placeholderText","placeholderClassName","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","setValue","setTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","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","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","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","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","getColorParseMethod","colorStr","colorTypeConf","colorParseMethods","getColorFormat","rgba","rgb","hex6","radix","hex3","makeParamRegExp","styleParser","parseColor","stylesStr","paramName","paramsRegex","colorType","colorMatch","unparseColor","colorFormat","hexRadix","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","getWebkitSelectionFixNode","blankNode","placeholderRemover","delayedPlaceholderRemover","minWidth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","keyDownHandler","setAfter","ctrlKey","metaKey","zIndex","notVisual","fixWebkitSelection","lastSibling","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","deleteRangeContents","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","getBeforeSelection","includePrevLeaves","inTmpCaret","rng","prevLeaf","executeAndRestoreRangy","restoreScrollPosition","executeAndRestore","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","lastEditorElement","canAppendChild","anchorNodeTagNameLower","voidElements","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","_selectLineUniversal","initialBoundry","modify","toLineBoundary","location","getRangeRect","rect","testNode","getBoundingClientRect","amount","testRect","found","bottom","rangeBottom","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","getOwnNodes","splitBounds","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","selectAll","blankEndNode","blankStartNode","doSelect","notSelected","getHtml","getPlainText","isEndToEndInNode","nodeNames","isInThisEditable","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","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","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","commandValue","state","stateValue","bold","formatInline","getOptions","createLink","opts","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colorVals","colString","bgColorStyle","correctOptionsForSimilarityCheck","cleanup","allElements","BLOCK_ELEMENTS","classNames","uneditableContainer","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","cloneOuterInlines","innerNode","INLINE_ELEMENTS","outerNode","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","blocks","rangeStartContainer","similarOptions","similarOuterBlock","splitAllBlocks","firstOuterBlock","tmpEl","outerInlines","getParentBlockNodeName","newBlockElements","lastEl","lastOffset","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","hasNoClass","hasNoStyle","hasNoAttributes","isSameNode","element1","element2","classes1","classes2","createWrapNode","defaultTag","containsSameAttributes","updateElementAttributes","newAttributes","fullContain","updateFormatOfElement","nodeNameQuery","nodeQueryMatch","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","isSimilarNode","selectRange","selectTextNodes","lastText","selectTextNode","getState","caretNode","searchNodes","partial","caretIsInsideWord","beforeChar","afterChar","getRangeForWord","offsetStart","offsetEnd","txtNodes","wordOffset","mergeContents","mergeConsequentSimilarElements","cleanupAndSetSelection","cleanupAndSetCaret","formatTextNode","wrapNode","unformatTextNode","newWrapNode","removeFormatFromTextNode","formatTextRange","updateFormat","wordObj","exactState","removeFormat","textOffset","applyFormat","fixOptions","b","strong","em","insertBlockQuote","NODE_NAME","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","otherLists","innerLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","alignJustifyStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","tmpHTML","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","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","fixLastBrDeletionInTable","aNode","handleUneditableDeletion","fixDeleteInTheBeginnigOfHeading","selNode","commonAncestorNode","handleDeleteKeyPress","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","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","SourceView","switchToTextarea","composerStyles","switchToComposer","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","undef","defaultConfig","showToolbarAfterInit","showToolbarDialogsOnSelection","parserRules","br","div","u","pasteParserRulesets","parser","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","sourceView","synchronizer","Toolbar","isCompatible","htmlOrElement","customRules","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml","CLASS_NAME_OPENED","SELECTOR_FORM_ELEMENTS","SELECTOR_FIELDS","ATTRIBUTE_FIELDS","Dialog","_observed","callbackWrapper","_serialize","cancel","fields","_interpolate","avoidHiddenFields","field","fieldName","focusedElement","elementToChange","defaultValue","update","firstField","isOpen","_hide","linkStyles","wrapperStyles","margin","opacity","padding","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","getCommandState","dialog","multiselect","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","classNameCommandDisabled","classNameCommandsDisabled","classNameCommandActive","classNameActionActive","speechInputLinks","group","tracksBlankValue","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","_hideAllDialogs","_preventInstantFocus","commandsDisabled","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","commandObj","commandMapping","preventFocus","_ownerDocumentClick","displayDialogAttributeValue","actionMapping","dataset","showdialogonselection","Dialog_createTable","Dialog_foreColorStyle","colourMode","firstElement","colourStr","colour","colormode","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":["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","polyfills","win","doc","String","prototype","trim","rtrim","this","replace","s_add","s_rem","Element","on","fn","self","attachEvent","e","event","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","which","button","keyCode","call","detachEvent","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","length","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","document","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","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","normalizeHasCaretError","window","ret","t1","createTextNode","t2","t3","createRange","appendChild","body","setStart","setEnd","getSelection","removeAllRanges","addRange","normalize","childNodes","anchorNode","firstChild","anchorOffset","removeChild","getTextNodes","all","nextSibling","nodeType","normalizeFix","nf","Node","texts","ownerDocument","defaultView","anode","aoffset","aelement","undefined","fnode","focusNode","foffset","focusOffset","felement","prevTxt","shift","curText","nodeValue","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","previousSibling","F","removeEventListener","readyState","addEventListener","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","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","deprecationNotice","deprecated","replacement","createAliasForDeprecatedMethod","owner","util","toArray","shim","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","forEach","arr","func","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","el","arrayLike","addListener","eventType","listener","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","getWindow","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","createTestElement","html","contentEditable","bodyFirstChild","removeNode","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","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","getRangeRoot","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","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","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","rootContainerNodeTypes","setRangeStart","setRangeEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","sibling","mergeForward","appendData","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","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getDocSelection","winSelectionIsBackward","sel","backward","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","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","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","saveRanges","restoreRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","require","defaultTokenizer","chars","wordOptions","createTokenRange","isWord","tokenRanges","wordStart","wordEnd","word","lastWordEnd","wordRegex","exec","includeTrailingSpace","nonLineBreakWhiteSpaceRegex","convertCharRangeToToken","tokenRange","tokenChars","tokenize","tokenizer","normalizeIgnoredCharacters","ignoredCharacters","ignoredChars","ignoredCharsArray","sort","char1","char2","charCodeAt","createWordOptions","language","defaultLanguage","defaultWordOptions","createNestedOptions","characterOptions","defaultCharacterOptions","getComputedDisplay","display","tableCssDisplayBlock","defaultDisplayValueForTag","isHidden","getAncestorsAndSelf","isVisibilityHiddenTextNode","isBlockNode","containsPositions","getAncestors","unshift","nextNodeDescendants","excludeChildren","previous","isWhitespaceNode","computedWhiteSpace","isCollapsedWhitespaceNode","isCollapsedNode","isIgnoredNode","Cache","store","createCachingGetter","objProperty","cache","cachedCount","uncachedCount","value","NodeWrapper","session","positions","Position","nodeWrapper","inspectPosition","startSession","endSession","currentSession","Session","getSession","createCharacterIterator","startPos","endPos","charPos","finished","previousVisible","nextVisible","previousTextPos","returnPreviousTextPos","character","getCharacter","rewind","dispose","createTokenizedTextProvider","consumeWord","forward","textChar","newChars","forwardIterator","backwardIterator","passedWordBoundary","insideWord","allWhiteSpaceRegex","forwardChars","backwardChars","reverse","forwardTokensBuffer","arrayIndexOf","backwardTokensBuffer","nextEndToken","lastToken","previousStartToken","movePositionBy","unit","count","currentPos","charIterator","nextPos","unitsMoved","newPos","absCount","abs","CHARACTER","WORD","tokenizedTextProvider","isLeadingSpace","isTrailingSpace","createRangeCharacterIterator","rangeStart","getRangeBoundaryPosition","rangeEnd","itStart","itEnd","getRangeCharacters","isWholeWord","expand","findTextFromPosition","initialPos","searchTerm","isRegex","searchScopeRange","findOptions","handleMatch","startIndex","endIndex","valid","wholeWordsOnly","currentChar","matchStartIndex","matchEndIndex","insideRegexMatch","caseSensitive","createEntryPointFunction","sessionRunning","createRangeBoundaryMover","moveOptions","defaultMoveOptions","boundaryIsStart","moveResult","createRangeTrimmer","trimCharCount","trimmed","createSelectionTrimmer","spacesRegex","spacesMinusLineBreaksRegex","trailingSpaceInBlockCollapses","trailingSpaceBeforeBrCollapses","trailingSpaceBeforeBlockCollapses","trailingSpaceBeforeLineBreakInPreLineCollapses","includeBlockContentTrailingSpace","includeSpaceBeforeBr","includeSpaceBeforeBlock","includePreLineTrailingSpace","ignoreCharacters","defaultCaretCharacterOptions","en","defaultFindOptions","withinRange","wrap","defaultExpandOptions","trimStart","trimEnd","defaultWordIteratorOptions","table","caption","colgroup","col","thead","tbody","tfoot","tr","td","th","key","nodeProto","getPosition","EMPTY","NON_SPACE","UNCOLLAPSIBLE_SPACE","COLLAPSIBLE_SPACE","TRAILING_SPACE_BEFORE_BLOCK","TRAILING_SPACE_IN_BLOCK","TRAILING_SPACE_BEFORE_BR","PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK","TRAILING_LINE_BREAK_AFTER_BR","INCLUDED_TRAILING_LINE_BREAK_AFTER_BR","getLength","isWhitespace","isCollapsedWhitespace","isIgnored","getTextNodeInfo","spaceRegex","collapseSpaces","cssWhitespace","preLine","hasInnerText","posAfterEl","firstPosInEl","prepopulateChar","isDefinitelyNonEmpty","isRenderedBlock","brs","getTrailingSpace","getNodeWrapper","getLeadingSpace","positionProto","characterType","isBr","prepopulatedChar","visibleChar","charType","finalizedChar","charAt","nodePassed","checkForTrailingSpace","checkForLeadingSpace","isCharInvariant","resolveLeadingAndTrailingSpaces","trailingSpace","leadingSpace","getPrecedingUncollapsedPosition","getPreviousPos","gotPreviousPos","previousPos","returnChar","thisChar","isIgnoredCharacter","cacheKey","cachedChar","collapsible","nextUncollapsed","nextOffset","previousOffset","createWrapperCache","nodeProperty","wrappersByProperty","wrapper","property","initCaches","uniqueIDSupported","elementCache","elementsCache","uniqueID","elWrapper","textNodeCache","otherNodeCache","wrapperCache","prefix","moveEnd","move","startTrimmed","endTrimmed","expandOptions","moved","endToken","newEndPos","startTokenizedTextProvider","startToken","newStartPos","endTokenizedTextProvider","selectCharacters","toCharacterRange","rangeStartsBeforeNode","rangeBetween","findText","searchTermParam","findResult","wrappedAround","pasteHtml","saveCharacterRanges","rangeInfos","characterRange","restoreCharacterRanges","saved","rangeInfo","createWordIterator","iteratorOptions","noMutation","createPosition","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","saveSelection","restored","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","implement","valueOf","source","toSource","hidden","object","block","context","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","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","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModernPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","isPlainObject","difference","diffObj","newObj","isFunction","Text","isEmpty","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","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","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","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","parents","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","visible","isVisible","getTextContent","prev","prevNode","types","ignoreBlankTexts","commonAncestor","parents1","parents2","lastLeafNode","leafClasses","escapeParent","newWrapper","split2","nodeWrap","curNode","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","attr","getAttributes","attrList","hasOneAttribute","attributeValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","ingoreEmpty","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","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","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","isLastItem","lastListItem","lastElementChild","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","innerHtml","simulatePlaceholder","editor","placeholderText","placeholderClassName","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","setValue","setTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","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","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","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","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","getColorParseMethod","colorStr","colorTypeConf","colorParseMethods","getColorFormat","rgba","rgb","hex6","radix","hex3","makeParamRegExp","styleParser","parseColor","stylesStr","paramName","paramsRegex","colorType","colorMatch","unparseColor","colorFormat","hexRadix","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","getWebkitSelectionFixNode","blankNode","placeholderRemover","delayedPlaceholderRemover","minWidth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","keyDownHandler","setAfter","ctrlKey","metaKey","zIndex","notVisual","fixWebkitSelection","lastSibling","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","deleteRangeContents","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","getBeforeSelection","includePrevLeaves","inTmpCaret","rng","prevLeaf","executeAndRestoreRangy","restoreScrollPosition","executeAndRestore","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","lastEditorElement","canAppendChild","anchorNodeTagNameLower","voidElements","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","_selectLineUniversal","initialBoundry","modify","toLineBoundary","location","getRangeRect","rect","testNode","getBoundingClientRect","amount","testRect","found","bottom","rangeBottom","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","getOwnNodes","splitBounds","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","selectAll","blankEndNode","blankStartNode","doSelect","notSelected","getHtml","getPlainText","isEndToEndInNode","nodeNames","isInThisEditable","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","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","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","commandValue","state","stateValue","bold","formatInline","getOptions","createLink","opts","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colorVals","colString","bgColorStyle","correctOptionsForSimilarityCheck","cleanup","allElements","BLOCK_ELEMENTS","classNames","uneditableContainer","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","cloneOuterInlines","innerNode","INLINE_ELEMENTS","outerNode","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","blocks","rangeStartContainer","similarOptions","similarOuterBlock","splitAllBlocks","firstOuterBlock","tmpEl","outerInlines","getParentBlockNodeName","newBlockElements","lastEl","lastOffset","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","hasNoClass","hasNoStyle","hasNoAttributes","isSameNode","element1","element2","classes1","classes2","createWrapNode","defaultTag","containsSameAttributes","updateElementAttributes","newAttributes","fullContain","updateFormatOfElement","nodeNameQuery","nodeQueryMatch","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","isSimilarNode","selectRange","selectTextNodes","lastText","selectTextNode","getState","caretNode","searchNodes","partial","caretIsInsideWord","beforeChar","afterChar","getRangeForWord","offsetStart","offsetEnd","txtNodes","wordOffset","mergeContents","mergeConsequentSimilarElements","cleanupAndSetSelection","cleanupAndSetCaret","formatTextNode","wrapNode","unformatTextNode","newWrapNode","removeFormatFromTextNode","formatTextRange","updateFormat","wordObj","exactState","removeFormat","textOffset","applyFormat","fixOptions","b","strong","em","insertBlockQuote","NODE_NAME","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","otherLists","innerLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","alignJustifyStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","tmpHTML","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","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","fixLastBrDeletionInTable","aNode","handleUneditableDeletion","fixDeleteInTheBeginnigOfHeading","selNode","commonAncestorNode","handleDeleteKeyPress","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","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","SourceView","switchToTextarea","composerStyles","switchToComposer","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","undef","defaultConfig","showToolbarAfterInit","showToolbarDialogsOnSelection","parserRules","br","div","u","pasteParserRulesets","parser","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","sourceView","synchronizer","Toolbar","isCompatible","htmlOrElement","customRules","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml","CLASS_NAME_OPENED","SELECTOR_FORM_ELEMENTS","SELECTOR_FIELDS","ATTRIBUTE_FIELDS","Dialog","_observed","callbackWrapper","_serialize","cancel","fields","_interpolate","avoidHiddenFields","field","fieldName","focusedElement","elementToChange","defaultValue","update","firstField","isOpen","_hide","linkStyles","wrapperStyles","margin","opacity","padding","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","getCommandState","dialog","multiselect","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","classNameCommandDisabled","classNameCommandsDisabled","classNameCommandActive","classNameActionActive","speechInputLinks","group","tracksBlankValue","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","_hideAllDialogs","_preventInstantFocus","commandsDisabled","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","commandObj","commandMapping","preventFocus","_ownerDocumentClick","displayDialogAttributeValue","actionMapping","dataset","showdialogonselection","Dialog_createTable","Dialog_foreColorStyle","colourMode","firstElement","colourStr","colour","colormode","Dialog_fontSizeStyle"],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/wysihtml.js b/dist/wysihtml.js
index 6a47fae..b14e8c5 100644
--- a/dist/wysihtml.js
+++ b/dist/wysihtml.js
@@ -1,5 +1,5 @@
/**
- * @license wysihtml v0.5.0
+ * @license wysihtml v0.5.1
* https://github.com/Voog/wysihtml
*
* Author: Christopher Blum (https://github.com/tiff)
@@ -10,7 +10,7 @@
*
*/
var wysihtml5 = {
- version: "0.5.0",
+ version: "0.5.1",
// namespaces
commands: {},
@@ -9164,7 +9164,9 @@ wysihtml5.dom.parse = function(elementOrHtml_current, config_current) {
attributes["class"] = oldNode.getAttribute("class");
}
} else {
- attributes["class"] = wysihtml5.lang.array(classes).unique().join(" ");
+ if(classes && classes.length > 0) {
+ attributes["class"] = wysihtml5.lang.array(classes).unique().join(" ");
+ }
}
} else {
// make sure that wysihtml5 temp class doesn't get stripped out
diff --git a/dist/wysihtml.min.js b/dist/wysihtml.min.js
index e991cb2..a4b7dd0 100644
--- a/dist/wysihtml.min.js
+++ b/dist/wysihtml.min.js
@@ -1,10 +1,10 @@
-/*! wysihtml - v0.5.0 (2015-10-27) */
+/*! wysihtml - v0.5.1 (2015-10-28) */
-var wysihtml5={version:"0.5.0",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"\ufeff",INVISIBLE_SPACE_REG_EXP:/\uFEFF/g,EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,TAB_KEY:9,DELETE_KEY:46};wysihtml5.polyfills=function(a,b){String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){var c="addEventListener",d="removeEventListener";b[c]||(a.Element.prototype[c]=a[c]=b[c]=function(b,c,d){return(d=this).attachEvent("on"+b,function(b){var b=b||a.event;b.target=b.target||b.srcElement,b.preventDefault=b.preventDefault||function(){b.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0},b.which=b.button?2===b.button?3:4===b.button?2:b.button:b.keyCode,c.call(d,b)})},a.Element.prototype[d]=a[d]=b[d]=function(a,b){return this.detachEvent("on"+a,b)})}(),Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent").get&&!function(){var b=Object.getOwnPropertyDescriptor(a.Element.prototype,"innerText");Object.defineProperty(a.Element.prototype,"textContent",{get:function(){return b.get.call(this)},set:function(a){return b.set.call(this,a)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=this.length,d=-1,e=b>>>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}),a.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]}}(a.Element.prototype),"document"in a&&("classList"in b.createElement("_")?"DOMTokenList"in a&&!function(){"use strict";var c=b.createElement("_");if(c.classList.add("c1","c2"),!c.classList.contains("c2")){var d=function(b){var c=a.DOMTokenList.prototype[b];a.DOMTokenList.prototype[b]=function(a){var b,d=arguments.length;for(b=0;d>b;b++)a=arguments[b],c.call(this,a)}};d("add"),d("remove")}if(c.classList.toggle("c3",!1),c.classList.contains("c3")){var e=a.DOMTokenList.prototype.toggle;a.DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:e.call(this,a)}}c=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(++c0?c.childNodes[e]:void 0,g=b.focusNode,h=b.focusOffset,i=g&&1===g.nodeType&&h>0?g.childNodes[h-1]:void 0,j=this.ownerDocument.createRange(),k=a.shift(),l=k?a.shift():null;for(i&&3===i.nodeType&&(g=i,h=i.nodeValue.length,i=void 0),f&&3===f.nodeType&&(c=f,e=0,f=void 0),(c===g&&e>h||c!==g&&c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_PRECEDING&&!(c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_CONTAINS))&&(g=[c,c=g][0],h=[e,e=h][0]);k&&l;)l.previousSibling&&l.previousSibling===k?(c===l&&(c=k,e=k.nodeValue.length+e),g===l&&(g=k,h=k.nodeValue.length+h),k.nodeValue=k.nodeValue+l.nodeValue,l.parentNode.removeChild(l),l=a.shift()):(k=l,l=a.shift());i&&(h=Array.prototype.indexOf.call(i.parentNode.childNodes,i)+1),f&&(e=Array.prototype.indexOf.call(f.parentNode.childNodes,f)),c&&c.parentNode&&g&&g.parentNode&&(j.setStart(c,e),j.setEnd(g,h),b.removeAllRanges(),b.addRange(j))});Node.prototype.normalize=a},f=function(){window.removeEventListener("load",f),"Node"in window&&"normalize"in Node.prototype&&c()&&e()};"complete"!==b.readyState?window.addEventListener("load",f):f()},wysihtml5.polyfills(window,document),function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a():b.rangy=a()}(function(){function a(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function b(a,b){return!(typeof a[b]!=t||!a[b])}function c(a,b){return typeof a[b]!=v}function d(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function e(a){return a&&A(a,z)&&C(a,y)}function f(a){return b(a,"body")?a.body:a.getElementsByTagName("body")[0]}function g(b){typeof console!=v&&a(console,"log")&&console.log(b)}function h(a,b){F&&b?alert(a):g(a)}function i(a){H.initialized=!0,H.supported=!1,h("Rangy is not supported in this environment. Reason: "+a,H.config.alertOnFail)}function j(a){h("Rangy warning: "+a,H.config.alertOnWarn)}function k(a){return a.message||a.description||String(a)}function l(){if(F&&!H.initialized){var b,c=!1,d=!1;a(document,"createRange")&&(b=document.createRange(),A(b,x)&&C(b,w)&&(c=!0));var h=f(document);if(!h||"body"!=h.nodeName.toLowerCase())return void i("No body element found");if(h&&a(h,"createTextRange")&&(b=h.createTextRange(),e(b)&&(d=!0)),!c&&!d)return void i("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:c,implementsTextRange:d};var j,l;for(var m in E)(j=E[m])instanceof p&&j.init(j,H);for(var n=0,o=K.length;o>n;++n)try{K[n](H)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a,b,c){c&&(a+=" in module "+c.name),H.warn("DEPRECATED: "+a+" is deprecated. Please use "+b+" instead.")}function n(a,b,c,d){a[b]=function(){return m(b,c,d),a[c].apply(a,G.toArray(arguments))}}function o(a){a=a||window,l();for(var b=0,c=L.length;c>b;++b)L[b](a)}function p(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function q(a,b,c){var d=new p(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(H,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return E[a]=d,d}function r(){}function s(){}var t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=d(a),B=d(b),C=d(c),D=[].forEach?function(a,b){a.forEach(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)b(a[c],c)},E={},F=typeof window!=v&&typeof document!=v,G={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:e,getBody:f,forEach:D},H={version:"1.3.0",initialized:!1,isBrowser:F,supported:!0,util:G,features:{},modules:E,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==v?!0:rangyAutoInitialize}};H.fail=i,H.warn=j;var I;({}).hasOwnProperty?(G.extend=I=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&&I(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},G.createOptions=function(a,b){var c={};return I(c,b),a&&I(c,a),c}):i("hasOwnProperty not supported"),F||i("Rangy can only run in a browser"),function(){var a;if(F){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}),G.toArray=a}();var J;F&&(a(document,"addEventListener")?J=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?J=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),G.addListener=J);var K=[];G.deprecationNotice=m,G.createAliasForDeprecatedMethod=n,H.init=l,H.addInitListener=function(a){H.initialized?a(H):K.push(a)};var L=[];H.addShimListener=function(a){L.push(a)},F&&(H.shim=H.createMissingNativeApi=o,n(H,"createMissingNativeApi","shim")),p.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=E[b],!(a&&a instanceof p))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(a)},warn:function(a){H.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){H.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)}},H.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=q(a,c,b);H.initialized&&H.supported&&d.init()},H.createCoreModule=function(a,b,c){q(a,b,c)},H.RangePrototype=r,H.rangePrototype=new r,H.selectionPrototype=new s,H.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==F||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(K(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!=F)return a.ownerDocument;if(typeof a.document!=F)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!=F)return c.defaultView;if(typeof c.parentWindow!=F)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=F)return a.contentDocument;if(typeof a.contentWindow!=F)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=F)return a.contentWindow;if(typeof a.contentDocument!=F)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&G.isHostMethod(a,"setTimeout")&&G.isHostObject(a,"document")}function t(a,b,c){var d;if(a?G.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,b,c){var d=H(a),e=a.createElement("div");e.contentEditable=""+!!c,b&&(e.innerHTML=b);var f=d.firstChild;return f?d.insertBefore(e,f):d.appendChild(e),e}function A(a){return a.parentNode.removeChild(a)}function B(a){this.root=a,this._next=a}function C(a){return new B(a)}function D(a,b){this.node=a,this.offset=b}function E(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var F="undefined",G=a.util,H=G.getBody;G.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),G.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var I=document.createElement("div");G.areHostMethods(I,["insertBefore","appendChild","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),G.isHostProperty(I,"innerHTML")||b.fail("Element is missing innerHTML property");var J=document.createTextNode("test");G.areHostMethods(J,["splitText","deleteData","insertData","appendData","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"])||!G.areHostProperties(J,["data"]))||b.fail("Incomplete Text Node implementation");var K=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},L=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",L=w(c),a.features.crashyTextNodes=L}();var M;typeof window.getComputedStyle!=F?M=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=F?M=function(a,b){return a.currentStyle?a.currentStyle[b]:""}:b.fail("No means of obtaining computed style properties found"),B.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}},D.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()}},E.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},E.prototype.toString=function(){return this.message},a.dom={arrayContains:K,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:H,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:M,createTestElement:z,removeNode:A,fragmentFromNodeChildren:y,createIterator:C,DomPosition:D},a.DOMException=E}),H.createCoreModule("DomRange",["DomUtil"],function(a,b){function c(a,b){return 3!=a.nodeType&&(P(a,b.startContainer)||P(a,b.endContainer))}function d(a){return a.document||Q(a.startContainer)}function e(a){return W(a.startContainer)}function f(a){return new L(a.parentNode,O(a))}function g(a){return new L(a.parentNode,O(a)+1)}function h(a,b,c){var d=11==a.nodeType?a.firstChild:a;return N(b)?c==b.length?J.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:S(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function i(a,b,c){if(z(a),z(b),d(b)!=d(a))throw new M("WRONG_DOCUMENT_ERR");var e=R(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=R(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return c?0>=e&&f>=0:0>e&&f>0}function j(a){for(var b,c,e,f=d(a.range).createDocumentFragment();c=a.next();){if(b=a.isPartiallySelectedSubtree(),c=c.cloneNode(!b),b&&(e=a.getSubtreeIterator(),c.appendChild(j(e)),e.detach()),10==c.nodeType)throw new M("HIERARCHY_REQUEST_ERR");f.appendChild(c)}return f}function k(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(),k(g,b,c),g.detach(),c.stop)return}else for(d=J.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function l(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),l(b),b.detach()):a.remove()}function m(a){for(var b,c,e=d(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),c=a.getSubtreeIterator(),b.appendChild(m(c)),c.detach()):a.remove(),10==b.nodeType)throw new M("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function n(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return k(new p(a,!1),function(b){if((!e||d.test(b.nodeType))&&(!f||c(b))){var h=a.startContainer;if(b!=h||!N(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&N(i)&&0==a.endOffset||g.push(b)}}}),g}function o(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+J.inspectNode(a.startContainer)+":"+a.startOffset+", "+J.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function p(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&&N(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||N(this.sc)?T(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||N(this.ec)?T(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function q(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,V(a,d))return e;e=e.parentNode}return null}}function r(a,b){if(ea(a,b))throw new M("INVALID_NODE_TYPE_ERR")}function s(a,b){if(!V(b,a.nodeType))throw new M("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(N(a)?a.length:a.childNodes.length))throw new M("INDEX_SIZE_ERR")}function u(a,b){if(ca(a,!0)!==ca(b,!0))throw new M("WRONG_DOCUMENT_ERR")}function v(a){if(da(a,!0))throw new M("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new M(b)}function x(a,b){return b<=(N(a)?a.length:a.childNodes.length)}function y(a){return!!a.startContainer&&!!a.endContainer&&!(X&&(J.isBrokenNode(a.startContainer)||J.isBrokenNode(a.endContainer)))&&W(a.startContainer)==W(a.endContainer)&&x(a.startContainer,a.startOffset)&&x(a.endContainer,a.endOffset)}function z(a){if(!y(a))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+a.inspect()+")")}function A(a,b){z(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;N(e)&&f>0&&f0&&d=O(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function B(a){z(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function C(a){a.START_TO_START=ka,a.START_TO_END=la,a.END_TO_END=ma,a.END_TO_START=na,a.NODE_BEFORE=oa,a.NODE_AFTER=pa,a.NODE_BEFORE_AND_AFTER=qa,a.NODE_INSIDE=ra}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){z(this);var c,d,e=this.startContainer,f=this.startOffset,h=this.commonAncestorContainer,i=new p(this,!0);e!==h&&(c=T(e,h,!0),d=g(c),e=d.node,f=d.offset),k(i,v),i.reset();var j=a(i);return i.detach(),b(this,e,f,e,f),j}}function F(b,d){function e(a,b){return function(c){s(c,Z),s(W(c),$);var d=(a?f:g)(c);(b?h:i)(this,d.node,d.offset)}}function h(a,b,c){var e=a.endContainer,f=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((W(b)!=W(e)||1==R(b,c,e,f))&&(e=b,f=c),d(a,b,c,e,f))}function i(a,b,c){var e=a.startContainer,f=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((W(b)!=W(e)||-1==R(b,c,e,f))&&(e=b,f=c),d(a,e,f,b,c))}var j=function(){};j.prototype=a.rangePrototype,b.prototype=new j,K.extend(b.prototype,{setStart:function(a,b){r(a,!0),t(a,b),h(this,a,b)},setEnd:function(a,b){r(a,!0),t(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],e=b,f=c;switch(a.length){case 3:f=a[2];break;case 4:e=a[2],f=a[3]}d(this,b,c,e,f)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(a){z(this),a?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(a,!0),d(this,a,0,a,U(a))},selectNode:function(a){r(a,!1),s(a,Z);var b=f(a),c=g(a);d(this,b.node,b.offset,c.node,c.offset)},extractContents:E(m,d),deleteContents:E(l,d),canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},splitBoundaries:function(){A(this)},splitBoundariesPreservingPositions:function(a){A(this,a)},normalizeBoundaries:function(){z(this);var a,b=this.startContainer,c=this.startOffset,e=this.endContainer,f=this.endOffset,g=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(e=a,f=a.length,a.appendData(b.data),Y(b))},h=function(a){var d=a.previousSibling;if(d&&d.nodeType==a.nodeType){b=a;var g=a.length;if(c=d.length,a.insertData(0,d.data),Y(d),b==e)f+=c,e=b;else if(e==a.parentNode){var h=O(a);f==h?(e=a,f=g):f>h&&f--}}},i=!0;if(N(e))f==e.length?g(e):0==f&&(a=e.previousSibling,a&&a.nodeType==e.nodeType&&(f=a.length,b==e&&(i=!1),a.appendData(e.data),Y(e),e=a));else{if(f>0){var j=e.childNodes[f-1];j&&N(j)&&g(j)}i=!this.collapsed}if(i){if(N(b))0==c?h(b):c==b.length&&(a=b.nextSibling,a&&a.nodeType==b.nodeType&&(e==a&&(e=b,f+=b.length),b.appendData(a.data),Y(a)));else if(cx",ga=3==fa.firstChild.nodeType}catch(ha){}a.features.htmlParsingConforms=ga;var ia=ga?function(a){var b=this.startContainer,c=Q(b);if(!b)throw new M("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:N(b)&&(d=J.parentElement(b)),d=null===d||"HTML"==d.nodeName&&J.isHtmlNamespace(Q(d).documentElement)&&J.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,J.fragmentFromNodeChildren(d)}:function(a){var b=d(this),c=b.createElement("body");return c.innerHTML=a,J.fragmentFromNodeChildren(c)},ja=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ka=0,la=1,ma=2,na=3,oa=0,pa=1,qa=2,ra=3;K.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){z(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==na||a==ka?"start":"end",h=a==la||a==ka?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],R(c,d,e,f)},insertNode:function(a){if(z(this),s(a,aa),v(this.startContainer),P(a,this.startContainer))throw new M("HIERARCHY_REQUEST_ERR");var b=h(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){z(this);var a,b;if(this.collapsed)return d(this).createDocumentFragment();if(this.startContainer===this.endContainer&&N(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=d(this).createDocumentFragment(),b.appendChild(a),b;var c=new p(this,!0);return a=j(c),c.detach(),a},canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},surroundContents:function(a){if(s(a,ba),!this.canSurroundContents())throw new M("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);h(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){z(this);for(var a,b=new I(d(this)),c=ja.length;c--;)a=ja[c],b[a]=this[a];return b},toString:function(){z(this);var a=this.startContainer;if(a===this.endContainer&&N(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new p(this,!0);return k(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){z(this);var b=a.parentNode,c=O(a);if(!b)throw new M("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qa:oa:e>0?pa:ra},comparePoint:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)<0?-1:R(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ia,toHtml:function(){return B(this)},intersectsNode:function(a,b){if(z(this),W(a)!=e(this))return!1;var c=a.parentNode,d=O(a);if(!c)return!0;var f=R(c,d,this.endContainer,this.endOffset),g=R(c,d+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)>=0&&R(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return i(this,a,!1)},intersectsOrTouchesRange:function(a){return i(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=R(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=R(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==R(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==R(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new M("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==ra},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,U(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 z(this),n(this,a,b);
+var wysihtml5={version:"0.5.1",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"\ufeff",INVISIBLE_SPACE_REG_EXP:/\uFEFF/g,EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,TAB_KEY:9,DELETE_KEY:46};wysihtml5.polyfills=function(a,b){String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){var c="addEventListener",d="removeEventListener";b[c]||(a.Element.prototype[c]=a[c]=b[c]=function(b,c,d){return(d=this).attachEvent("on"+b,function(b){var b=b||a.event;b.target=b.target||b.srcElement,b.preventDefault=b.preventDefault||function(){b.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0},b.which=b.button?2===b.button?3:4===b.button?2:b.button:b.keyCode,c.call(d,b)})},a.Element.prototype[d]=a[d]=b[d]=function(a,b){return this.detachEvent("on"+a,b)})}(),Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent").get&&!function(){var b=Object.getOwnPropertyDescriptor(a.Element.prototype,"innerText");Object.defineProperty(a.Element.prototype,"textContent",{get:function(){return b.get.call(this)},set:function(a){return b.set.call(this,a)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=this.length,d=-1,e=b>>>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}),a.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]}}(a.Element.prototype),"document"in a&&("classList"in b.createElement("_")?"DOMTokenList"in a&&!function(){"use strict";var c=b.createElement("_");if(c.classList.add("c1","c2"),!c.classList.contains("c2")){var d=function(b){var c=a.DOMTokenList.prototype[b];a.DOMTokenList.prototype[b]=function(a){var b,d=arguments.length;for(b=0;d>b;b++)a=arguments[b],c.call(this,a)}};d("add"),d("remove")}if(c.classList.toggle("c3",!1),c.classList.contains("c3")){var e=a.DOMTokenList.prototype.toggle;a.DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:e.call(this,a)}}c=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(++c0?c.childNodes[e]:void 0,g=b.focusNode,h=b.focusOffset,i=g&&1===g.nodeType&&h>0?g.childNodes[h-1]:void 0,j=this.ownerDocument.createRange(),k=a.shift(),l=k?a.shift():null;for(i&&3===i.nodeType&&(g=i,h=i.nodeValue.length,i=void 0),f&&3===f.nodeType&&(c=f,e=0,f=void 0),(c===g&&e>h||c!==g&&c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_PRECEDING&&!(c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_CONTAINS))&&(g=[c,c=g][0],h=[e,e=h][0]);k&&l;)l.previousSibling&&l.previousSibling===k?(c===l&&(c=k,e=k.nodeValue.length+e),g===l&&(g=k,h=k.nodeValue.length+h),k.nodeValue=k.nodeValue+l.nodeValue,l.parentNode.removeChild(l),l=a.shift()):(k=l,l=a.shift());i&&(h=Array.prototype.indexOf.call(i.parentNode.childNodes,i)+1),f&&(e=Array.prototype.indexOf.call(f.parentNode.childNodes,f)),c&&c.parentNode&&g&&g.parentNode&&(j.setStart(c,e),j.setEnd(g,h),b.removeAllRanges(),b.addRange(j))});Node.prototype.normalize=a},f=function(){window.removeEventListener("load",f),"Node"in window&&"normalize"in Node.prototype&&c()&&e()};"complete"!==b.readyState?window.addEventListener("load",f):f()},wysihtml5.polyfills(window,document),function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a():b.rangy=a()}(function(){function a(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function b(a,b){return!(typeof a[b]!=t||!a[b])}function c(a,b){return typeof a[b]!=v}function d(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function e(a){return a&&A(a,z)&&C(a,y)}function f(a){return b(a,"body")?a.body:a.getElementsByTagName("body")[0]}function g(b){typeof console!=v&&a(console,"log")&&console.log(b)}function h(a,b){F&&b?alert(a):g(a)}function i(a){H.initialized=!0,H.supported=!1,h("Rangy is not supported in this environment. Reason: "+a,H.config.alertOnFail)}function j(a){h("Rangy warning: "+a,H.config.alertOnWarn)}function k(a){return a.message||a.description||String(a)}function l(){if(F&&!H.initialized){var b,c=!1,d=!1;a(document,"createRange")&&(b=document.createRange(),A(b,x)&&C(b,w)&&(c=!0));var h=f(document);if(!h||"body"!=h.nodeName.toLowerCase())return void i("No body element found");if(h&&a(h,"createTextRange")&&(b=h.createTextRange(),e(b)&&(d=!0)),!c&&!d)return void i("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:c,implementsTextRange:d};var j,l;for(var m in E)(j=E[m])instanceof p&&j.init(j,H);for(var n=0,o=K.length;o>n;++n)try{K[n](H)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a,b,c){c&&(a+=" in module "+c.name),H.warn("DEPRECATED: "+a+" is deprecated. Please use "+b+" instead.")}function n(a,b,c,d){a[b]=function(){return m(b,c,d),a[c].apply(a,G.toArray(arguments))}}function o(a){a=a||window,l();for(var b=0,c=L.length;c>b;++b)L[b](a)}function p(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function q(a,b,c){var d=new p(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(H,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return E[a]=d,d}function r(){}function s(){}var t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=d(a),B=d(b),C=d(c),D=[].forEach?function(a,b){a.forEach(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)b(a[c],c)},E={},F=typeof window!=v&&typeof document!=v,G={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:e,getBody:f,forEach:D},H={version:"1.3.0",initialized:!1,isBrowser:F,supported:!0,util:G,features:{},modules:E,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==v?!0:rangyAutoInitialize}};H.fail=i,H.warn=j;var I;({}).hasOwnProperty?(G.extend=I=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&&I(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},G.createOptions=function(a,b){var c={};return I(c,b),a&&I(c,a),c}):i("hasOwnProperty not supported"),F||i("Rangy can only run in a browser"),function(){var a;if(F){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}),G.toArray=a}();var J;F&&(a(document,"addEventListener")?J=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?J=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),G.addListener=J);var K=[];G.deprecationNotice=m,G.createAliasForDeprecatedMethod=n,H.init=l,H.addInitListener=function(a){H.initialized?a(H):K.push(a)};var L=[];H.addShimListener=function(a){L.push(a)},F&&(H.shim=H.createMissingNativeApi=o,n(H,"createMissingNativeApi","shim")),p.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=E[b],!(a&&a instanceof p))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(a)},warn:function(a){H.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){H.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)}},H.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=q(a,c,b);H.initialized&&H.supported&&d.init()},H.createCoreModule=function(a,b,c){q(a,b,c)},H.RangePrototype=r,H.rangePrototype=new r,H.selectionPrototype=new s,H.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==F||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(K(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!=F)return a.ownerDocument;if(typeof a.document!=F)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!=F)return c.defaultView;if(typeof c.parentWindow!=F)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=F)return a.contentDocument;if(typeof a.contentWindow!=F)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=F)return a.contentWindow;if(typeof a.contentDocument!=F)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&G.isHostMethod(a,"setTimeout")&&G.isHostObject(a,"document")}function t(a,b,c){var d;if(a?G.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,b,c){var d=H(a),e=a.createElement("div");e.contentEditable=""+!!c,b&&(e.innerHTML=b);var f=d.firstChild;return f?d.insertBefore(e,f):d.appendChild(e),e}function A(a){return a.parentNode.removeChild(a)}function B(a){this.root=a,this._next=a}function C(a){return new B(a)}function D(a,b){this.node=a,this.offset=b}function E(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var F="undefined",G=a.util,H=G.getBody;G.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),G.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var I=document.createElement("div");G.areHostMethods(I,["insertBefore","appendChild","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),G.isHostProperty(I,"innerHTML")||b.fail("Element is missing innerHTML property");var J=document.createTextNode("test");G.areHostMethods(J,["splitText","deleteData","insertData","appendData","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"])||!G.areHostProperties(J,["data"]))||b.fail("Incomplete Text Node implementation");var K=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},L=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",L=w(c),a.features.crashyTextNodes=L}();var M;typeof window.getComputedStyle!=F?M=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=F?M=function(a,b){return a.currentStyle?a.currentStyle[b]:""}:b.fail("No means of obtaining computed style properties found"),B.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}},D.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()}},E.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},E.prototype.toString=function(){return this.message},a.dom={arrayContains:K,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:H,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:M,createTestElement:z,removeNode:A,fragmentFromNodeChildren:y,createIterator:C,DomPosition:D},a.DOMException=E}),H.createCoreModule("DomRange",["DomUtil"],function(a,b){function c(a,b){return 3!=a.nodeType&&(P(a,b.startContainer)||P(a,b.endContainer))}function d(a){return a.document||Q(a.startContainer)}function e(a){return W(a.startContainer)}function f(a){return new L(a.parentNode,O(a))}function g(a){return new L(a.parentNode,O(a)+1)}function h(a,b,c){var d=11==a.nodeType?a.firstChild:a;return N(b)?c==b.length?J.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:S(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function i(a,b,c){if(z(a),z(b),d(b)!=d(a))throw new M("WRONG_DOCUMENT_ERR");var e=R(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=R(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return c?0>=e&&f>=0:0>e&&f>0}function j(a){for(var b,c,e,f=d(a.range).createDocumentFragment();c=a.next();){if(b=a.isPartiallySelectedSubtree(),c=c.cloneNode(!b),b&&(e=a.getSubtreeIterator(),c.appendChild(j(e)),e.detach()),10==c.nodeType)throw new M("HIERARCHY_REQUEST_ERR");f.appendChild(c)}return f}function k(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(),k(g,b,c),g.detach(),c.stop)return}else for(d=J.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function l(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),l(b),b.detach()):a.remove()}function m(a){for(var b,c,e=d(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),c=a.getSubtreeIterator(),b.appendChild(m(c)),c.detach()):a.remove(),10==b.nodeType)throw new M("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function n(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return k(new p(a,!1),function(b){if((!e||d.test(b.nodeType))&&(!f||c(b))){var h=a.startContainer;if(b!=h||!N(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&N(i)&&0==a.endOffset||g.push(b)}}}),g}function o(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+J.inspectNode(a.startContainer)+":"+a.startOffset+", "+J.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function p(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&&N(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||N(this.sc)?T(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||N(this.ec)?T(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function q(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,V(a,d))return e;e=e.parentNode}return null}}function r(a,b){if(ea(a,b))throw new M("INVALID_NODE_TYPE_ERR")}function s(a,b){if(!V(b,a.nodeType))throw new M("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(N(a)?a.length:a.childNodes.length))throw new M("INDEX_SIZE_ERR")}function u(a,b){if(ca(a,!0)!==ca(b,!0))throw new M("WRONG_DOCUMENT_ERR")}function v(a){if(da(a,!0))throw new M("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new M(b)}function x(a,b){return b<=(N(a)?a.length:a.childNodes.length)}function y(a){return!!a.startContainer&&!!a.endContainer&&!(X&&(J.isBrokenNode(a.startContainer)||J.isBrokenNode(a.endContainer)))&&W(a.startContainer)==W(a.endContainer)&&x(a.startContainer,a.startOffset)&&x(a.endContainer,a.endOffset)}function z(a){if(!y(a))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+a.inspect()+")")}function A(a,b){z(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;N(e)&&f>0&&f0&&d=O(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function B(a){z(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function C(a){a.START_TO_START=ka,a.START_TO_END=la,a.END_TO_END=ma,a.END_TO_START=na,a.NODE_BEFORE=oa,a.NODE_AFTER=pa,a.NODE_BEFORE_AND_AFTER=qa,a.NODE_INSIDE=ra}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){z(this);var c,d,e=this.startContainer,f=this.startOffset,h=this.commonAncestorContainer,i=new p(this,!0);e!==h&&(c=T(e,h,!0),d=g(c),e=d.node,f=d.offset),k(i,v),i.reset();var j=a(i);return i.detach(),b(this,e,f,e,f),j}}function F(b,d){function e(a,b){return function(c){s(c,Z),s(W(c),$);var d=(a?f:g)(c);(b?h:i)(this,d.node,d.offset)}}function h(a,b,c){var e=a.endContainer,f=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((W(b)!=W(e)||1==R(b,c,e,f))&&(e=b,f=c),d(a,b,c,e,f))}function i(a,b,c){var e=a.startContainer,f=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((W(b)!=W(e)||-1==R(b,c,e,f))&&(e=b,f=c),d(a,e,f,b,c))}var j=function(){};j.prototype=a.rangePrototype,b.prototype=new j,K.extend(b.prototype,{setStart:function(a,b){r(a,!0),t(a,b),h(this,a,b)},setEnd:function(a,b){r(a,!0),t(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],e=b,f=c;switch(a.length){case 3:f=a[2];break;case 4:e=a[2],f=a[3]}d(this,b,c,e,f)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(a){z(this),a?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(a,!0),d(this,a,0,a,U(a))},selectNode:function(a){r(a,!1),s(a,Z);var b=f(a),c=g(a);d(this,b.node,b.offset,c.node,c.offset)},extractContents:E(m,d),deleteContents:E(l,d),canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},splitBoundaries:function(){A(this)},splitBoundariesPreservingPositions:function(a){A(this,a)},normalizeBoundaries:function(){z(this);var a,b=this.startContainer,c=this.startOffset,e=this.endContainer,f=this.endOffset,g=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(e=a,f=a.length,a.appendData(b.data),Y(b))},h=function(a){var d=a.previousSibling;if(d&&d.nodeType==a.nodeType){b=a;var g=a.length;if(c=d.length,a.insertData(0,d.data),Y(d),b==e)f+=c,e=b;else if(e==a.parentNode){var h=O(a);f==h?(e=a,f=g):f>h&&f--}}},i=!0;if(N(e))f==e.length?g(e):0==f&&(a=e.previousSibling,a&&a.nodeType==e.nodeType&&(f=a.length,b==e&&(i=!1),a.appendData(e.data),Y(e),e=a));else{if(f>0){var j=e.childNodes[f-1];j&&N(j)&&g(j)}i=!this.collapsed}if(i){if(N(b))0==c?h(b):c==b.length&&(a=b.nextSibling,a&&a.nodeType==b.nodeType&&(e==a&&(e=b,f+=b.length),b.appendData(a.data),Y(a)));else if(cx",ga=3==fa.firstChild.nodeType}catch(ha){}a.features.htmlParsingConforms=ga;var ia=ga?function(a){var b=this.startContainer,c=Q(b);if(!b)throw new M("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:N(b)&&(d=J.parentElement(b)),d=null===d||"HTML"==d.nodeName&&J.isHtmlNamespace(Q(d).documentElement)&&J.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,J.fragmentFromNodeChildren(d)}:function(a){var b=d(this),c=b.createElement("body");return c.innerHTML=a,J.fragmentFromNodeChildren(c)},ja=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ka=0,la=1,ma=2,na=3,oa=0,pa=1,qa=2,ra=3;K.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){z(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==na||a==ka?"start":"end",h=a==la||a==ka?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],R(c,d,e,f)},insertNode:function(a){if(z(this),s(a,aa),v(this.startContainer),P(a,this.startContainer))throw new M("HIERARCHY_REQUEST_ERR");var b=h(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){z(this);var a,b;if(this.collapsed)return d(this).createDocumentFragment();if(this.startContainer===this.endContainer&&N(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=d(this).createDocumentFragment(),b.appendChild(a),b;var c=new p(this,!0);return a=j(c),c.detach(),a},canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},surroundContents:function(a){if(s(a,ba),!this.canSurroundContents())throw new M("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);h(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){z(this);for(var a,b=new I(d(this)),c=ja.length;c--;)a=ja[c],b[a]=this[a];return b},toString:function(){z(this);var a=this.startContainer;if(a===this.endContainer&&N(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new p(this,!0);return k(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){z(this);var b=a.parentNode,c=O(a);if(!b)throw new M("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qa:oa:e>0?pa:ra},comparePoint:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)<0?-1:R(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ia,toHtml:function(){return B(this)},intersectsNode:function(a,b){if(z(this),W(a)!=e(this))return!1;var c=a.parentNode,d=O(a);if(!c)return!0;var f=R(c,d,this.endContainer,this.endOffset),g=R(c,d+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)>=0&&R(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return i(this,a,!1)},intersectsOrTouchesRange:function(a){return i(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=R(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=R(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==R(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==R(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new M("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==ra},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,U(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 z(this),n(this,a,b);
},getDocument:function(){return d(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var c=d(this),e=a.createRange(c);b=b||J.getBody(c),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 I.rangesEqual(this,a)},isValid:function(){return y(this)},inspect:function(){return o(this)},detach:function(){}}),F(I,H),K.extend(I,{rangeProperties:ja,RangeIterator:p,copyComparisonConstants:D,createPrototypeRange:F,inspect:o,toHtml:B,getRangeDocument:d,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=I}),H.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),-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?k.compareBoundaryPoints=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)}:k.compareBoundaryPoints=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&&e.removeNode(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 e.removeNode(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=ba.length;e--;)if(c=ba[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(ba.splice(e,1),!0):d;return"deleteAll"==b&&(ba.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);if(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};else{if(!O)return b.fail("Neither document.selection or window.getSelection() detected."),!1;y=e,a.isSelectionValid=function(){return!0}}a.getNativeSelection=y;var R=y();if(!R)return b.fail("Native selection was null (possibly issue 138?)"),!1;var 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=C.createTestElement(document,"",!1),j=i.appendChild(document.createTextNode("Â Â Â ")),k=document.createRange();if(k.setStart(j,1),k.collapse(!0),b.removeAllRanges(),b.addRange(k),Y=1==b.rangeCount,b.removeAllRanges(),!d){var l=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(l&&parseInt(l[1])>=36)X=!1;else{var m=k.cloneRange();k.setStart(j,0),m.setEnd(j,3),m.setStart(j,2),b.addRange(k),b.addRange(m),X=2==b.rangeCount}}for(C.removeNode(i),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 aa;E(R,"getRangeAt")?aa=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(aa=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 ba=[],ca=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),ba.push({win:a,selection:b})),b};a.getSelection=ca,D.createAliasForDeprecatedMethod(a,"getIframeSelection","getSelection");var da=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){da.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var ea=function(a,b){Z(a.nativeSelection,b),a.refresh()};W?da.addRange=function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)ea(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=aa(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,ha(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:da.addRange=function(a,b){c(b)&&V?ea(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},da.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;da.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)},da.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))},da.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}da.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fa;if(Q)fa=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)fa=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],ha(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;fa=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=aa(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}da.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fa(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 ga=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)};_&&P?da.removeRange=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 ga(this,a)}:da.removeRange=function(a){ga(this,a)};var ha;!Q&&U&&J.implementsDomRange?(ha=g,da.isBackward=function(){return ha(this)}):ha=da.isBackward=function(){return!1},da.isBackwards=da.isBackward,da.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},da.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},da.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},da.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},da.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},da.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),C.removeNode(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])}}},da.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},da.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},da.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},da.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b||[]))}),c},da.setStart=w(!0),da.setEnd=w(!1),a.rangePrototype.select=function(a){ca(this.getDocument()).setSingleRange(this,a)},da.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)},da.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},da.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},da.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)},da.saveRanges=function(){return{backward:this.isBackward(),ranges:this.callMethodOnEachRange("cloneRange")}},da.restoreRanges=function(a){this.removeAllRanges();for(var b,c=0;b=a.ranges[c];++c)this.addRange(b,a.backward&&0==c)},da.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(da.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")}),da.getName=function(){return"WrappedSelection"},da.inspect=function(){return x(this)},da.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=da,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return ca(a)}),a=null})});var M=!1,N=function(a){M||(M=!0,!H.initialized&&H.config.autoInitialize&&l())};return F&&("complete"==document.readyState?N():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",N,!1),J(window,"load",N))),H},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){return a.createModule("TextRange",["WrappedSelection"],function(a,b){function c(a,b){function c(a,b,c){h.push({start:a,end:b,isWord:c})}for(var d,e,f,g=a.join(""),h=[],i=0;d=b.wordRegex.exec(g);){if(e=d.index,f=e+d[0].length,e>i&&c(i,e,!1),b.includeTrailingSpace)for(;$.test(a[f]);)++f;c(e,f,!0),i=f}return ie;++e)c[e].token=d;return d}function e(a,b,c){for(var e,f=c(a,b),g=[],h=0;e=f[h++];)g.push(d(a,e));return g}function f(a){var b=a||"",c="string"==typeof b?b.split(""):b;return c.sort(function(a,b){return a.charCodeAt(0)-b.charCodeAt(0)}),c.join("").replace(/(.)\1+/g,"$1")}function g(a){var b,c;return a?(b=a.language||_,c={},U(c,ia[b]||ia[_]),U(c,a),c):ia[_]}function h(a,b){var c=V(a,b);return b.hasOwnProperty("wordOptions")&&(c.wordOptions=g(c.wordOptions)),b.hasOwnProperty("characterOptions")&&(c.characterOptions=V(c.characterOptions,ga)),c}function i(a,b){var c=na(a,"display",b),d=a.tagName.toLowerCase();return"block"==c&&fa&&oa.hasOwnProperty(d)?oa[d]:c}function j(a){for(var b=o(a),c=0,d=b.length;d>c;++c)if(1==b[c].nodeType&&"none"==i(b[c]))return!0;return!1}function k(a){var b;return 3==a.nodeType&&(b=a.parentNode)&&"hidden"==na(b,"visibility")}function l(a){return a&&(1==a.nodeType&&!/^(inline(-block|-table)?|none)$/.test(i(a))||9==a.nodeType||11==a.nodeType)}function m(a){return S.isCharacterDataNode(a)||!/^(area|base|basefont|br|col|frame|hr|img|input|isindex|link|meta|param)$/i.test(a.nodeName)}function n(a){for(var b=[];a.parentNode;)b.unshift(a.parentNode),a=a.parentNode;return b}function o(a){return n(a).concat([a])}function p(a){for(;a&&!a.nextSibling;)a=a.parentNode;return a?a.nextSibling:null}function q(a,b){return!b&&a.hasChildNodes()?a.firstChild:p(a)}function r(a){var b=a.previousSibling;if(b){for(a=b;a.hasChildNodes();)a=a.lastChild;return a}var c=a.parentNode;return c&&1==c.nodeType?c:null}function s(a){if(!a||3!=a.nodeType)return!1;var b=a.data;if(""===b)return!0;var c=a.parentNode;if(!c||1!=c.nodeType)return!1;var d=na(a.parentNode,"whiteSpace");return/^[\t\n\r ]+$/.test(b)&&/^(normal|nowrap)$/.test(d)||/^[\t\r ]+$/.test(b)&&"pre-line"==d}function t(a){if(""===a.data)return!0;if(!s(a))return!1;var b=a.parentNode;return b?j(a)?!0:!1:!0}function u(a){var b=a.nodeType;return 7==b||8==b||j(a)||/^(script|style)$/i.test(a.nodeName)||k(a)||t(a)}function v(a,b){var c=a.nodeType;return 7==c||8==c||1==c&&"none"==i(a,b)}function w(){this.store={}}function x(a,b,c){return function(d){var e=this.cache;if(e.hasOwnProperty(a))return pa++,e[a];qa++;var f=b.call(this,c?this[c]:this,d);return e[a]=f,f}}function y(a,b){this.node=a,this.session=b,this.cache=new w,this.positions=new w}function z(a,b){this.offset=b,this.nodeWrapper=a,this.node=a.node,this.session=a.session,this.cache=new w}function A(){return"[Position("+S.inspectNode(this.node)+":"+this.offset+")]"}function B(){return D(),Da=new Ea}function C(){return Da||B()}function D(){Da&&Da.detach(),Da=null}function E(a,c,d,e){function f(){var a=null;return c?(a=h,i||(h=h.previousVisible(),i=!h||d&&h.equals(d))):i||(a=h=h.nextVisible(),i=!h||d&&h.equals(d)),i&&(h=null),a}d&&(c?u(d.node)&&(d=a.previousVisible()):u(d.node)&&(d=d.nextVisible()));var g,h=a,i=!1,j=!1;return{next:function(){if(j)return j=!1,g;for(var a,b;a=f();)if(b=a.getCharacter(e))return g=a,a;return null},rewind:function(){if(!g)throw b.createError("createCharacterIterator: cannot rewind. Only one position can be rewound.");j=!0},dispose:function(){a=d=null}}}function F(a,b,c){function d(a){for(var b,c,d=[],e=a?f:g,h=!1,i=!1;b=e.next();){if(c=b.character,Z.test(c))i&&(i=!1,h=!0);else{if(h){e.rewind();break}i=!0}d.push(b)}return d}var f=E(a,!1,null,b),g=E(a,!0,null,b),h=c.tokenizer,i=d(!0),j=d(!1).reverse(),k=e(j.concat(i),c,h),l=i.length?k.slice(Fa(k,i[0].token)):[],m=j.length?k.slice(0,Fa(k,j.pop().token)+1):[];return{nextEndToken:function(){for(var a,b;1==l.length&&!(a=l[0]).isWord&&(b=d(!0)).length>0;)l=e(a.chars.concat(b),c,h);return l.shift()},previousStartToken:function(){for(var a,b;1==m.length&&!(a=m[0]).isWord&&(b=d(!1)).length>0;)m=e(b.reverse().concat(a.chars),c,h);return m.pop()},dispose:function(){f.dispose(),g.dispose(),l=m=null}}}function G(a,b,c,d,e){var f,g,h,i,j=0,k=a,l=Math.abs(c);if(0!==c){var m=0>c;switch(b){case Q:for(g=E(a,m,null,d);(f=g.next())&&l>j;)++j,k=f;h=f,g.dispose();break;case R:for(var n=F(a,d,e),o=m?n.previousStartToken:n.nextEndToken;(i=o())&&l>j;)i.isWord&&(++j,k=m?i.chars[0]:i.chars[i.chars.length-1]);break;default:throw new Error("movePositionBy: unit '"+b+"' not implemented")}m?(k=k.previousVisible(),j=-j):k&&k.isLeadingSpace&&!k.isTrailingSpace&&(b==R&&(g=E(a,!1,null,d),h=g.next(),g.dispose()),h&&(k=h.previousVisible()))}return{position:k,unitsMoved:j}}function H(a,b,c,d){var e=a.getRangeBoundaryPosition(b,!0),f=a.getRangeBoundaryPosition(b,!1),g=d?f:e,h=d?e:f;return E(g,!!d,h,c)}function I(a,b,c){for(var d,e=[],f=H(a,b,c);d=f.next();)e.push(d);return f.dispose(),e}function J(b,c,d){var e=a.createRange(b.node);return e.setStartAndEnd(b.node,b.offset,c.node,c.offset),!e.expand("word",{wordOptions:d})}function K(a,b,c,d,e){function f(a,b){var c=p[a].previousVisible(),d=p[b-1],f=!e.wholeWordsOnly||J(c,d,e.wordOptions);return{startPos:c,endPos:d,valid:f}}for(var g,h,i,j,k,l,m=aa(e.direction),n=E(a,m,a.session.getRangeBoundaryPosition(d,m),e.characterOptions),o="",p=[],q=null;g=n.next();)if(h=g.character,c||e.caseSensitive||(h=h.toLowerCase()),m?(p.unshift(g),o=h+o):(p.push(g),o+=h),c){if(k=b.exec(o))if(i=k.index,j=i+k[0].length,l){if(!m&&j0){q=f(i,j);break}}else l=!0}else if(-1!=(i=o.indexOf(b))){q=f(i,i+b.length);break}return l&&(q=f(i,j)),n.dispose(),q}function L(a){return function(){var b=!!Da,c=C(),d=[c].concat(T.toArray(arguments)),e=a.apply(this,d);return b||D(),e}}function M(a,b){return L(function(c,d,e,f){typeof e==P&&(e=d,d=Q),f=h(f,ka);var g=a;b&&(g=e>=0,this.collapse(!g));var i=G(c.getRangeBoundaryPosition(this,g),d,e,f.characterOptions,f.wordOptions),j=i.position;return this[g?"setStart":"setEnd"](j.node,j.offset),i.unitsMoved})}function N(a){return L(function(b,c){c=V(c,ga);for(var d,e=H(b,this,c,!a),f=0;(d=e.next())&&Z.test(d.character);)++f;e.dispose();var g=f>0;return g&&this[a?"moveStart":"moveEnd"]("character",a?f:-f,{characterOptions:c}),g})}function O(a){return L(function(b,c){var d=!1;return this.changeEachRange(function(b){d=b[a](c)||d}),d})}var P="undefined",Q="character",R="word",S=a.dom,T=a.util,U=T.extend,V=T.createOptions,W=S.getBody,X=/^[ \t\f\r\n]+$/,Y=/^[ \t\f\r]+$/,Z=/^[\t-\r \u0085\u00A0\u1680\u180E\u2000-\u200B\u2028\u2029\u202F\u205F\u3000]+$/,$=/^[\t \u00A0\u1680\u180E\u2000-\u200B\u202F\u205F\u3000]+$/,_="en",aa=a.Selection.isDirectionBackward,ba=!1,ca=!1,da=!1,ea=!0;!function(){var b=S.createTestElement(document,"1
",!0),c=b.firstChild,d=a.getSelection();d.collapse(c.lastChild,2),d.setStart(c.firstChild,0),ba=1==(""+d).length,b.innerHTML="1
",d.collapse(b,2),d.setStart(b.firstChild,0),ca=1==(""+d).length,b.innerHTML="1 1
",d.collapse(b,2),d.setStart(b.firstChild,0),da=1==(""+d).length,S.removeNode(b),d.removeAllRanges()}();var fa,ga={includeBlockContentTrailingSpace:!0,includeSpaceBeforeBr:!0,includeSpaceBeforeBlock:!0,includePreLineTrailingSpace:!0,ignoreCharacters:""},ha={includeBlockContentTrailingSpace:!ea,includeSpaceBeforeBr:!ca,includeSpaceBeforeBlock:!da,includePreLineTrailingSpace:!0},ia={en:{wordRegex:/[a-z0-9]+('[a-z0-9]+)*/gi,includeTrailingSpace:!1,tokenizer:c}},ja={caseSensitive:!1,withinRange:null,wholeWordsOnly:!1,wrap:!1,direction:"forward",wordOptions:null,characterOptions:null},ka={wordOptions:null,characterOptions:null},la={wordOptions:null,characterOptions:null,trim:!1,trimStart:!0,trimEnd:!0},ma={wordOptions:null,characterOptions:null,direction:"forward"},na=S.getComputedStyleProperty;!function(){var a=document.createElement("table"),b=W(document);b.appendChild(a),fa="block"==na(a,"display"),b.removeChild(a)}();var oa={table:"table",caption:"table-caption",colgroup:"table-column-group",col:"table-column",thead:"table-header-group",tbody:"table-row-group",tfoot:"table-footer-group",tr:"table-row",td:"table-cell",th:"table-cell"};w.prototype={get:function(a){return this.store.hasOwnProperty(a)?this.store[a]:null},set:function(a,b){return this.store[a]=b}};var pa=0,qa=0,ra={getPosition:function(a){var b=this.positions;return b.get(a)||b.set(a,new z(this,a))},toString:function(){return"[NodeWrapper("+S.inspectNode(this.node)+")]"}};y.prototype=ra;var sa="EMPTY",ta="NON_SPACE",ua="UNCOLLAPSIBLE_SPACE",va="COLLAPSIBLE_SPACE",wa="TRAILING_SPACE_BEFORE_BLOCK",xa="TRAILING_SPACE_IN_BLOCK",ya="TRAILING_SPACE_BEFORE_BR",za="PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK",Aa="TRAILING_LINE_BREAK_AFTER_BR",Ba="INCLUDED_TRAILING_LINE_BREAK_AFTER_BR";U(ra,{isCharacterDataNode:x("isCharacterDataNode",S.isCharacterDataNode,"node"),getNodeIndex:x("nodeIndex",S.getNodeIndex,"node"),getLength:x("nodeLength",S.getNodeLength,"node"),containsPositions:x("containsPositions",m,"node"),isWhitespace:x("isWhitespace",s,"node"),isCollapsedWhitespace:x("isCollapsedWhitespace",t,"node"),getComputedDisplay:x("computedDisplay",i,"node"),isCollapsed:x("collapsed",u,"node"),isIgnored:x("ignored",v,"node"),next:x("nextPos",q,"node"),previous:x("previous",r,"node"),getTextNodeInfo:x("textNodeInfo",function(a){var b=null,c=!1,d=na(a.parentNode,"whiteSpace"),e="pre-line"==d;return e?(b=Y,c=!0):("normal"==d||"nowrap"==d)&&(b=X,c=!0),{node:a,text:a.data,spaceRegex:b,collapseSpaces:c,preLine:e}},"node"),hasInnerText:x("hasInnerText",function(a,b){for(var c=this.session,d=c.getPosition(a.parentNode,this.getNodeIndex()+1),e=c.getPosition(a,0),f=b?d:e,g=b?e:d;f!==g;){
if(f.prepopulateChar(),f.isDefinitelyNonEmpty())return!0;f=b?f.previousVisible():f.nextVisible()}return!1},"node"),isRenderedBlock:x("isRenderedBlock",function(a){for(var b=a.getElementsByTagName("br"),c=0,d=b.length;d>c;++c)if(!u(b[c]))return!0;return this.hasInnerText()},"node"),getTrailingSpace:x("trailingSpace",function(a){if("br"==a.tagName.toLowerCase())return"";switch(this.getComputedDisplay()){case"inline":for(var b=a.lastChild;b;){if(!v(b))return 1==b.nodeType?this.session.getNodeWrapper(b).getTrailingSpace():"";b=b.previousSibling}break;case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":break;case"table-cell":return" ";default:return this.isRenderedBlock(!0)?"\n":""}return""},"node"),getLeadingSpace:x("leadingSpace",function(a){switch(this.getComputedDisplay()){case"inline":case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":case"table-cell":break;default:return this.isRenderedBlock(!1)?"\n":""}return""},"node")});var Ca={character:"",characterType:sa,isBr:!1,prepopulateChar:function(){var a=this;if(!a.prepopulatedChar){var b=a.node,c=a.offset,d="",e=sa,f=!1;if(c>0)if(3==b.nodeType){var g=b.data,h=g.charAt(c-1),i=a.nodeWrapper.getTextNodeInfo(),j=i.spaceRegex;i.collapseSpaces?j.test(h)?c>1&&j.test(g.charAt(c-2))||(i.preLine&&"\n"===g.charAt(c)?(d=" ",e=za):(d=" ",e=va)):(d=h,e=ta,f=!0):(d=h,e=ua,f=!0)}else{var k=b.childNodes[c-1];if(k&&1==k.nodeType&&!u(k)&&("br"==k.tagName.toLowerCase()?(d="\n",a.isBr=!0,e=va,f=!1):a.checkForTrailingSpace=!0),!d){var l=b.childNodes[c];l&&1==l.nodeType&&!u(l)&&(a.checkForLeadingSpace=!0)}}a.prepopulatedChar=!0,a.character=d,a.characterType=e,a.isCharInvariant=f}},isDefinitelyNonEmpty:function(){var a=this.characterType;return a==ta||a==ua},resolveLeadingAndTrailingSpaces:function(){if(this.prepopulatedChar||this.prepopulateChar(),this.checkForTrailingSpace){var a=this.session.getNodeWrapper(this.node.childNodes[this.offset-1]).getTrailingSpace();a&&(this.isTrailingSpace=!0,this.character=a,this.characterType=va),this.checkForTrailingSpace=!1}if(this.checkForLeadingSpace){var b=this.session.getNodeWrapper(this.node.childNodes[this.offset]).getLeadingSpace();b&&(this.isLeadingSpace=!0,this.character=b,this.characterType=va),this.checkForLeadingSpace=!1}},getPrecedingUncollapsedPosition:function(a){for(var b,c=this;c=c.previousVisible();)if(b=c.getCharacter(a),""!==b)return c;return null},getCharacter:function(a){function b(){return n||(k=o.getPrecedingUncollapsedPosition(a),n=!0),k}this.resolveLeadingAndTrailingSpaces();var c,d=this.character,e=f(a.ignoreCharacters),g=""!==d&&e.indexOf(d)>-1;if(this.isCharInvariant)return c=g?"":d;var h=["character",a.includeSpaceBeforeBr,a.includeBlockContentTrailingSpace,a.includePreLineTrailingSpace,e].join("_"),i=this.cache.get(h);if(null!==i)return i;var j,k,l="",m=this.characterType==va,n=!1,o=this;return m&&(this.type==Ba?l="\n":" "==d&&(!b()||k.isTrailingSpace||"\n"==k.character||" "==k.character&&k.characterType==va)||("\n"==d&&this.isLeadingSpace?b()&&"\n"!=k.character&&(l="\n"):(j=this.nextUncollapsed(),j&&(j.isBr?this.type=ya:j.isTrailingSpace&&"\n"==j.character?this.type=xa:j.isLeadingSpace&&"\n"==j.character&&(this.type=wa),"\n"==j.character?(this.type!=ya||a.includeSpaceBeforeBr)&&(this.type!=wa||a.includeSpaceBeforeBlock)&&(this.type==xa&&j.isTrailingSpace&&!a.includeBlockContentTrailingSpace||(this.type!=za||j.type!=ta||a.includePreLineTrailingSpace)&&("\n"==d?j.isTrailingSpace?this.isTrailingSpace||this.isBr&&(j.type=Aa,b()&&k.isLeadingSpace&&!k.isTrailingSpace&&"\n"==k.character?j.character="":j.type=Ba):l="\n":" "==d&&(l=" "))):l=d)))),e.indexOf(l)>-1&&(l=""),this.cache.set(h,l),l},equals:function(a){return!!a&&this.node===a.node&&this.offset===a.offset},inspect:A,toString:function(){return this.character}};z.prototype=Ca,U(Ca,{next:x("nextPos",function(a){var b=a.nodeWrapper,c=a.node,d=a.offset,e=b.session;if(!c)return null;var f,g,h;return d==b.getLength()?(f=c.parentNode,g=f?b.getNodeIndex()+1:0):b.isCharacterDataNode()?(f=c,g=d+1):(h=c.childNodes[d],e.getNodeWrapper(h).containsPositions()?(f=h,g=0):(f=c,g=d+1)),f?e.getPosition(f,g):null}),previous:x("previous",function(a){var b,c,d,e=a.nodeWrapper,f=a.node,g=a.offset,h=e.session;return 0==g?(b=f.parentNode,c=b?e.getNodeIndex():0):e.isCharacterDataNode()?(b=f,c=g-1):(d=f.childNodes[g-1],h.getNodeWrapper(d).containsPositions()?(b=d,c=S.getNodeLength(d)):(b=f,c=g-1)),b?h.getPosition(b,c):null}),nextVisible:x("nextVisible",function(a){var b=a.next();if(!b)return null;var c=b.nodeWrapper,d=b.node,e=b;return c.isCollapsed()&&(e=c.session.getPosition(d.parentNode,c.getNodeIndex()+1)),e}),nextUncollapsed:x("nextUncollapsed",function(a){for(var b=a;b=b.nextVisible();)if(b.resolveLeadingAndTrailingSpaces(),""!==b.character)return b;return null}),previousVisible:x("previousVisible",function(a){var b=a.previous();if(!b)return null;var c=b.nodeWrapper,d=b.node,e=b;return c.isCollapsed()&&(e=c.session.getPosition(d.parentNode,c.getNodeIndex())),e})});var Da=null,Ea=function(){function a(a){var b=new w;return{get:function(c){var d=b.get(c[a]);if(d)for(var e,f=0;e=d[f++];)if(e.node===c)return e;return null},set:function(c){var d=c.node[a],e=b.get(d)||b.set(d,[]);e.push(c)}}}function b(){this.initCaches()}var c=T.isHostProperty(document.documentElement,"uniqueID");return b.prototype={initCaches:function(){this.elementCache=c?function(){var a=new w;return{get:function(b){return a.get(b.uniqueID)},set:function(b){a.set(b.node.uniqueID,b)}}}():a("tagName"),this.textNodeCache=a("data"),this.otherNodeCache=a("nodeName")},getNodeWrapper:function(a){var b;switch(a.nodeType){case 1:b=this.elementCache;break;case 3:b=this.textNodeCache;break;default:b=this.otherNodeCache}var c=b.get(a);return c||(c=new y(a,this),b.set(c)),c},getPosition:function(a,b){return this.getNodeWrapper(a).getPosition(b)},getRangeBoundaryPosition:function(a,b){var c=b?"start":"end";return this.getPosition(a[c+"Container"],a[c+"Offset"])},detach:function(){this.elementCache=this.textNodeCache=this.otherNodeCache=null}},b}();U(S,{nextNode:q,previousNode:r});var Fa=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)if(a[c]===b)return c;return-1};U(a.rangePrototype,{moveStart:M(!0,!1),moveEnd:M(!1,!1),move:M(!0,!0),trimStart:N(!0),trimEnd:N(!1),trim:L(function(a,b){var c=this.trimStart(b),d=this.trimEnd(b);return c||d}),expand:L(function(a,b,c){var d=!1;c=h(c,la);var e=c.characterOptions;if(b||(b=Q),b==R){var f,g,i=c.wordOptions,j=a.getRangeBoundaryPosition(this,!0),k=a.getRangeBoundaryPosition(this,!1),l=F(j,e,i),m=l.nextEndToken(),n=m.chars[0].previousVisible();if(this.collapsed)f=m;else{var o=F(k,e,i);f=o.previousStartToken()}return g=f.chars[f.chars.length-1],n.equals(j)||(this.setStart(n.node,n.offset),d=!0),g&&!g.equals(k)&&(this.setEnd(g.node,g.offset),d=!0),c.trim&&(c.trimStart&&(d=this.trimStart(e)||d),c.trimEnd&&(d=this.trimEnd(e)||d)),d}return this.moveEnd(Q,1,c)}),text:L(function(a,b){return this.collapsed?"":I(a,this,V(b,ga)).join("")}),selectCharacters:L(function(a,b,c,d,e){var f={characterOptions:e};b||(b=W(this.getDocument())),this.selectNodeContents(b),this.collapse(!0),this.moveStart("character",c,f),this.collapse(!0),this.moveEnd("character",d-c,f)}),toCharacterRange:L(function(a,b,c){b||(b=W(this.getDocument()));var d,e,f=b.parentNode,g=S.getNodeIndex(b),h=-1==S.comparePoints(this.startContainer,this.endContainer,f,g),i=this.cloneRange();return h?(i.setStartAndEnd(this.startContainer,this.startOffset,f,g),d=-i.text(c).length):(i.setStartAndEnd(f,g,this.startContainer,this.startOffset),d=i.text(c).length),e=d+this.text(c).length,{start:d,end:e}}),findText:L(function(b,c,d){d=h(d,ja),d.wholeWordsOnly&&(d.wordOptions.includeTrailingSpace=!1);var e=aa(d.direction),f=d.withinRange;f||(f=a.createRange(),f.selectNodeContents(this.getDocument()));var g=c,i=!1;"string"==typeof g?d.caseSensitive||(g=g.toLowerCase()):i=!0;var j=b.getRangeBoundaryPosition(this,!e),k=f.comparePoint(j.node,j.offset);-1===k?j=b.getRangeBoundaryPosition(f,!0):1===k&&(j=b.getRangeBoundaryPosition(f,!1));for(var l,m=j,n=!1;;)if(l=K(m,g,i,f,d)){if(l.valid)return this.setStartAndEnd(l.startPos.node,l.startPos.offset,l.endPos.node,l.endPos.offset),!0;m=e?l.startPos:l.endPos}else{if(!d.wrap||n)return!1;f=f.cloneRange(),m=b.getRangeBoundaryPosition(f,!e),f.setBoundary(j.node,j.offset,e),n=!0}}),pasteHtml:function(a){if(this.deleteContents(),a){var b=this.createContextualFragment(a),c=b.lastChild;this.insertNode(b),this.collapseAfter(c)}}}),U(a.selectionPrototype,{expand:L(function(a,b,c){this.changeEachRange(function(a){a.expand(b,c)})}),move:L(function(a,b,c,d){var e=0;if(this.focusNode){this.collapse(this.focusNode,this.focusOffset);var f=this.getRangeAt(0);d||(d={}),d.characterOptions=V(d.characterOptions,ha),e=f.move(b,c,d),this.setSingleRange(f)}return e}),trimStart:O("trimStart"),trimEnd:O("trimEnd"),trim:O("trim"),selectCharacters:L(function(b,c,d,e,f,g){var h=a.createRange(c);h.selectCharacters(c,d,e,g),this.setSingleRange(h,f)}),saveCharacterRanges:L(function(a,b,c){for(var d=this.getAllRanges(),e=d.length,f=[],g=1==e&&this.isBackward(),h=0,i=d.length;i>h;++h)f[h]={characterRange:d[h].toCharacterRange(b,c),backward:g,characterOptions:c};return f}),restoreCharacterRanges:L(function(b,c,d){this.removeAllRanges();for(var e,f,g,h=0,i=d.length;i>h;++h)f=d[h],g=f.characterRange,e=a.createRange(c),e.selectCharacters(c,g.start,g.end,f.characterOptions),this.addRange(e,f.backward)}),text:L(function(a,b){for(var c=[],d=0,e=this.rangeCount;e>d;++d)c[d]=this.getRangeAt(d).text(b);return c.join("")})}),a.innerText=function(b,c){var d=a.createRange(b);d.selectNodeContents(b);var e=d.text(c);return e},a.createWordIterator=function(a,b,c){var d=C();c=h(c,ma);var e=d.getPosition(a,b),f=F(e,c.characterOptions,c.wordOptions),g=aa(c.direction);return{next:function(){return g?f.previousStartToken():f.nextEndToken()},dispose:function(){f.dispose(),this.next=function(){}}}},a.noMutation=function(a){var b=C();a(b),D()},a.noMutation.createEntryPointFunction=L,a.textRange={isBlockNode:l,isCollapsedWhitespaceNode:t,createPosition:L(function(a,b,c){return a.getPosition(b,c)})}}),a},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){return 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(r)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),p(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(),i=q(c);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:i,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?(p(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),p(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=[],j=q(d);b=b.slice(0),b.sort(f);for(var k=0,l=b.length;l>k;++k)i[k]=g(b[k],j);for(k=l-1;k>=0;--k)e=b[k],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[k].markerId,h)):(e.setEndBefore(c(i[k].endMarkerId,h)),e.setStartAfter(c(i[k].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],f):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&&p(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=o.removeNode,q=a.Selection.isDirectionBackward,r="\ufeff";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})}),a},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;a-1?c=new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"):/Edge\/(\d+)./i.test(navigator.userAgent)&&(c=/Edge\/(\d+)./i)),c&&null!=c.exec(navigator.userAgent)&&(d=parseFloat(RegExp.$1)),-1===d?!1:a?b?"<"===b?d>a:">"===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(12,">")},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(9,">=")||c(12,"<="),insertOrderedList:c(9,">=")||c(12,"<=")},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(12,">")},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},supportsModernPaste:function(){return!c()},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){if(b.nodeType!==wysihtml5.ELEMENT_NODE){if(b.parentNode===a)return!0;b=b.parentNode}return 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){function b(a,b){for(var c=[a],d=a;b&&d&&d!==b||!b&&d;)c.unshift(d),d=d.parentNode;return c}a.dom.domNode=function(c){var d=[a.ELEMENT_NODE,a.TEXT_NODE];return{is:{emptyTextNode:function(b){var d=b?/^\s*$/g:/^[\r\n]*$/g;return c.nodeType===a.TEXT_NODE&&d.test(c.data)},visible:function(){var b=!/^\s*$/g.test(a.dom.getTextContent(c));return b||1===c.nodeType&&c.querySelector("img, br, hr, object, embed, canvas, input, textarea")&&(b=!0),b}},prev:function(b){var e=c.previousSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).prev(b):e:null},next:function(b){var e=c.nextSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).next(b):e:null},commonAncestor:function(a,d){var e=b(c,d),f=b(a,d);if(e[0]!=f[0])return null;for(var g=0;g0)for(var f=!1,g=Array.isArray(b.styleProperty)?b.styleProperty:[b.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),c.style[d]){if(!b.styleValue){f=!0;break}if(b.styleValue instanceof RegExp){if(c.style[d].trim().match(b.styleValue).length>0){f=!0;break}}else if(Array.isArray(b.styleValue)){if(b.styleValue.indexOf(c.style[d].trim())){f=!0;break}}else if(b.styleValue===c.style[d].trim().replace(/, /g,",")){f=!0;break}}if(!f)return!1}if(b.attribute){var j=a.dom.getAttributes(c),k=[],l=!1;Array.isArray(b.attribute)?k=b.attribute:k[b.attribute]=b.attributeValue;for(var m in k)if(k.hasOwnProperty(m))if("undefined"==typeof k[m]){if("undefined"!=typeof j[m]){l=!0;break}}else if(j[m]===k[m]){l=!0;break}if(!l)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(c){var e=b.ownerDocument,f=a.dom.domNode(b).next({ignoreBlankTexts:!0}),g=a.dom.domNode(b).prev({ignoreBlankTexts:!0});f&&!d(f)&&a.dom.insert(e.createElement("br")).after(b),g&&!d(g)&&a.dom.insert(e.createElement("br")).before(b)},remove:function(d){var e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&c(e)&&e.parentNode.removeChild(e),f&&c(f)&&f.parentNode.removeChild(f)}}}}(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=wysihtml5.lang.object(c).isFunction()?c:v[c];return f&&(e=f(b,d),"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)if(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 j["class"]=wysihtml5.lang.array(s).unique().join(" ");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,c){return b?b.replace(a,""):"IMG"===c?"":null}}(),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?a:null}}()},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&&/^[\n\r]*$/.test(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&&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,m=a.ownerDocument,n=m.createDocumentFragment(),o=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0}),p=wysihtml5.dom.domNode(a).next({ignoreBlankTexts:!0}),q=a.lastElementChild||a.lastChild;if(e)for(!o||b(o)||c(o)||d(n);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild,l=k===q;f=k.firstChild;)h=f===g,i=(!l||p&&!b(p))&&h&&!b(f)&&!c(f),n.appendChild(f),i&&d(n);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;)n.appendChild(f);else{for(j=m.createElement("p");f=k.firstChild;)j.appendChild(f);n.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(n,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.config.className||(this.config.className="wysihtml5-sandbox"),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=this.config.className,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)}a.polyfills&&a.polyfills(h,i),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||this.element.ownerDocument.parentWindow},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.config.className||(this.config.className="wysihtml5-sandbox"),d?this.element=this._bindElement(d):this.element=this._createElement()},destroy:function(){},_createElement:function(){var a=b.createElement("div");return a.className=this.config.className,this._loadElement(a),a},_bindElement:function(a){return 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.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(a){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,e){var f=e||"wysihtml5-placeholder",g=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,f)},h=function(){c.isEmpty()&&!c.placeholderSet&&(c.placeholderSet=!0,c.setValue(d,!1),a.addClass(c.element,f))};b.on("set_placeholder",h).on("unset_placeholder",g).on("focus:composer",g).on("paste:composer",g).on("blur:composer",h),h()}}(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 wysihtml5.browser.supportsModernPaste()&&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"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^
$/i.test(d.trim())&&(d=!1),b(d),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"},!1,a),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!==d&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(c){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(c,d){l.start=c,l.end=d,l.table=k.getParentElement(l.start,{query:"table"},!1,a),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(b){var c=wysihtml5.dom.getParentElement(b.target,{query:"td, th"},!1,a);c&&d(c)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"},!1,a)!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){function b(a){var b,c;for(b in d)if(d.hasOwnProperty(b)&&(c=d[b],c.regex.test(a)))return c}function c(a){var c=b(a);return c?c.name:void 0}var d={rgba:{regex:/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,name:"rgba"},rgb:{regex:/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,name:"rgb"},hex6:{regex:/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,name:"hex",radix:16},hex3:{regex:/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,name:"hex",radix:16}},e=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={getColorParseMethod:b,getColorFormat:c,parseColor:function(c,f){var g,h,i,j,k,l=c;if(f){if(g=e(f),!(h=c.match(g)))return!1;h=h.pop().split(":")[1],l=a.lang.string(h).trim()}return(i=b(l))&&(j=l.match(i.regex))?(k=i.radix||10,i===d.hex3?(j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k)*k+parseInt(a,k):parseFloat(a)})):(j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k):parseFloat(a)}))):!1},unparseColor:function(a,b){var c=16;return"hex"===b?(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"hash"===b?"#"+(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"rgb"===b?"rgb("+a[0]+","+a[1]+","+a[2]+")":"rgba"===b?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"csv"===b?a[0]+","+a[1]+","+a[2]+","+a[3]: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(e("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(b){var c=document.createElement("span"),d=function(a){b.removeEventListener("mouseup",d),b.removeEventListener("keydown",d),b.removeEventListener("touchstart",d),b.removeEventListener("focus",d),b.removeEventListener("blur",d),b.removeEventListener("paste",e),b.removeEventListener("drop",e),b.removeEventListener("beforepaste",e),c&&c.parentNode&&c.parentNode.removeChild(c)},e=function(a){c&&c.parentNode&&setTimeout(d,0)};return c.appendChild(document.createTextNode(a.INVISIBLE_SPACE)),c.className="_wysihtml5-temp-caret-fix",c.style.display="block",c.style.minWidth="1px",c.style.height="0px",b.addEventListener("mouseup",d),b.addEventListener("keydown",d),b.addEventListener("touchstart",d),b.addEventListener("focus",d),b.addEventListener("blur",d),b.addEventListener("paste",e),b.addEventListener("drop",e),b.addEventListener("beforepaste",e),c}function e(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 f=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.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return 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(b){var d;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)?(d=c.lastChild,a.dom.unwrap(c),this.setAfter(d)):c.parentNode.removeChild(c))}.bind(this),f=function(a){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.className="_wysihtml5-temp-caret-fix",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,d){var e,f=this.win,g=rangy.createRange(this.doc),h=function(){var d=b.parentNode,g=d?d.childNodes[d.childNodes.length-1]:null;if(!e||g===b&&1===b.nodeType&&"block"===f.getComputedStyle(b).display)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)}.bind(this);if(g.setStartAfter(b),g.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(g),h(),d&&d(e);else{var i=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(i),setTimeout(function(){e=this.setSelection(g),h(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),e=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=e?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=f.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&e&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&e?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();e(a),this.setSelection(a)},getSelectedOwnNodes:function(a){for(var b=this.getOwnRanges(),c=[],d=0,e=b.length;e>d;d++)c.push(b[d].commonAncestorContainer||this.doc.body);return c},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 a=this.getRange();this.deleteRangeContents(a),this.setSelection(a)},deleteRangeContents:function(b){var c,d,e,f;if(this.unselectableClass){(c=a.dom.getParentElement(b.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&b.setStartBefore(c),(d=a.dom.getParentElement(b.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&b.setEndAfter(d),e=b.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=e.length;g--;)try{f=new CustomEvent("wysihtml5:uneditable:delete"),e[g].dispatchEvent(f)}catch(h){}}b.deleteContents()},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(b){for(var c,d=this.getSelectedOwnNodes(),e=[],f=0,g=d.length;g>f;f++)c=d[f].nodeName&&"LI"===d[f].nodeName?d[f]:a.dom.getParentElement(d[f],{query:"li"},!1,this.contain),c&&e.push(c);return e.length?e: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},getBeforeSelection:function(b){var c,d,e=this.getSelection(),f=e.isBackwards()?e.focusNode:e.anchorNode,g=e.isBackwards()?e.focusOffset:e.anchorOffset,h=this.createRange();if(d=a.dom.getParentElement(f,{query:"._wysihtml5-temp-caret-fix"},1),d&&(f=d.parentNode,g=Array.prototype.indexOf.call(f.childNodes,d)),f){if(g>0)return 3===f.nodeType?(h.setStart(f,0),h.setEnd(f,g),{type:"text",range:h,offset:g,node:f}):(h.setStartBefore(f.childNodes[0]),c=f.childNodes[g-1],h.setEndAfter(c),{type:"element",range:h,offset:g,node:c});if(h.setStartAndEnd(f,0),b){var i=this.getPreviousNode(f,!0),j=null;if(i&&(j=1===i.nodeType&&a.dom.hasClass(i,this.unselectableClass)?i:a.dom.domNode(i).lastLeafNode()),j)return{type:"leafnode",range:h,offset:g,node:j}}return{type:"none",range:h,offset:g,node:f}}return null},executeAndRestoreRangy:function(a,b){var c=rangy.saveSelection(this.win);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,e,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)):(e=this.doc.createTextNode(a.INVISIBLE_SPACE),f.insert(e).after(d[0]),l.setStartBefore(e),l.setEndAfter(e)),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,d=this.getRange(),e=this.doc.createElement("DIV"),f=this.doc.createDocumentFragment();if(d){for(d.deleteContents(),e.innerHTML=a,b=e.lastChild;e.firstChild;)f.appendChild(e.firstChild);for(d.insertNode(f),c=this.contain.lastChild;c&&3===c.nodeType&&c.previousSibling&&/^\s*$/.test(c.data);)c=c.previousSibling;b&&(c&&b===c&&1===b.nodeType&&this.contain.appendChild(this.doc.createElement("br")),this.setAfter(b))}},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},canAppendChild:function(a){var b,c,d=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],e=this.getRange();return b=a||e.startContainer,b&&(c=(b.tagName||b.nodeName).toLowerCase()),-1===d.indexOf(c)},splitElementAtCaret:function(b,c){var d,e,f,g,h,i=this.getSelection();if(i.rangeCount>0){d=i.getRangeAt(0).cloneRange(),d.setEndAfter(b),e=d.extractContents(),h=e.childNodes;for(var j=h.length;j--;)a.dom.domNode(h[j]).is.visible()||e.removeChild(h[j]);b.parentNode.insertBefore(e,b.nextSibling),c?(f=c.firstChild||c,g=c.lastChild||c,b.parentNode.insertBefore(c,b.nextSibling),f&&g&&(d.setStartBefore(f),d.setEndAfter(g),this.setSelection(d))):(d.setStartAfter(b),d.setEndAfter(b)),a.dom.domNode(b).is.visible()||(""===a.dom.getTextContent(b)?b.parentNode.removeChild(b):b.parentNode.replaceChild(this.doc.createTextNode(" "),b))}},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():this._selectLineUniversal()},_selectLine_W3C:function(){var a=this.win.getSelection(),b=[a.anchorNode,a.anchorOffset,a.focusNode,a.focusOffset];a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary"),a.anchorNode===b[0]&&a.anchorOffset===b[1]&&a.focusNode===b[2]&&a.focusOffset===b[3]&&this._selectLineUniversal()},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},getRangeRect:function(a){var b,c=(this.doc.createTextNode("i"),this.doc.createTextNode("i"));return a.collapsed?(a.insertNode(c),a.selectNode(c),b=a.nativeRange.getBoundingClientRect(),a.deleteContents()):b=a.nativeRange.getBoundingClientRect(),b},_selectLineUniversal:function(){var a,b,c,d,e,f,g=this.getSelection(),h=g.getRangeAt(0),i=0;b=h.cloneRange(),c=h.cloneRange(),h.collapsed&&(h.expand("word",1),a=h.nativeRange.getBoundingClientRect());do d=h.moveStart("character",-1),e=h.nativeRange.getBoundingClientRect(),e&&Math.floor(e.top)===Math.floor(a.top)||(h.moveStart("character",1),f=!0),i++;while(0!==d&&!f&&2e3>i);i=0,f=!1,a=h.nativeRange.getBoundingClientRect();do d=h.moveEnd("character",1),e=h.nativeRange.getBoundingClientRect(),e&&Math.floor(e.bottom)===Math.floor(a.bottom)||(h.moveEnd("character",-1),f=!0),i++;while(0!==d&&!f&&2e3>i);h.select()},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection&&this.doc.selection.createRange?this.doc.selection.createRange():this.doc.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(window.r=f,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):[]},getOwnNodes:function(a,b,c){for(var d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)d[f]&&(c&&d[f].splitBoundaries(),e=e.concat(d[f].getNodes(Array.isArray(a)?a:[a],b)));return e},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=f.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=f.query(this.contain,"."+this.unselectableClass),c=f.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.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},selectAll:function(){var b,c=this.createRange(),e=this.composer,f=this,g=d(this.composer.element),h=d(this.composer.element),i=function(){c.setStart(e.element,0),c.setEnd(e.element,e.element.childNodes.length),b=f.setSelection(c)},j=function(){return!b||b.nativeSelection&&b.nativeSelection.type&&("Caret"===b.nativeSelection.type||"None"===b.nativeSelection.type)};a.dom.removeInvisibleSpaces(this.composer.element),i(),this.composer.element.firstChild&&j()&&(this.composer.element.appendChild(g),i(),j()&&(g.parentNode.removeChild(g),this.composer.element.insertBefore(h,this.composer.element.firstChild),i(),j()&&(this.composer.element.appendChild(g),i())))},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},isInThisEditable:function(){var b=this.getSelection(),c=b.focusNode,d=b.anchorNode;return c&&1!==c.nodeType&&(c=c.parentNode),d&&1!==d.nodeType&&(d=d.parentNode),d&&c&&(a.dom.contains(this.composer.element,c)||this.composer.element===c)&&(a.dom.contains(this.composer.element,d)||this.composer.element===d)},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);
+},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(c){var e=b.ownerDocument,f=a.dom.domNode(b).next({ignoreBlankTexts:!0}),g=a.dom.domNode(b).prev({ignoreBlankTexts:!0});f&&!d(f)&&a.dom.insert(e.createElement("br")).after(b),g&&!d(g)&&a.dom.insert(e.createElement("br")).before(b)},remove:function(d){var e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&c(e)&&e.parentNode.removeChild(e),f&&c(f)&&f.parentNode.removeChild(f)}}}}(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=wysihtml5.lang.object(c).isFunction()?c:v[c];return f&&(e=f(b,d),"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)if(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 s&&s.length>0&&(j["class"]=wysihtml5.lang.array(s).unique().join(" "));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,c){return b?b.replace(a,""):"IMG"===c?"":null}}(),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?a:null}}()},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&&/^[\n\r]*$/.test(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&&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,m=a.ownerDocument,n=m.createDocumentFragment(),o=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0}),p=wysihtml5.dom.domNode(a).next({ignoreBlankTexts:!0}),q=a.lastElementChild||a.lastChild;if(e)for(!o||b(o)||c(o)||d(n);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild,l=k===q;f=k.firstChild;)h=f===g,i=(!l||p&&!b(p))&&h&&!b(f)&&!c(f),n.appendChild(f),i&&d(n);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;)n.appendChild(f);else{for(j=m.createElement("p");f=k.firstChild;)j.appendChild(f);n.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(n,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.config.className||(this.config.className="wysihtml5-sandbox"),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=this.config.className,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)}a.polyfills&&a.polyfills(h,i),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||this.element.ownerDocument.parentWindow},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.config.className||(this.config.className="wysihtml5-sandbox"),d?this.element=this._bindElement(d):this.element=this._createElement()},destroy:function(){},_createElement:function(){var a=b.createElement("div");return a.className=this.config.className,this._loadElement(a),a},_bindElement:function(a){return 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.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(a){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,e){var f=e||"wysihtml5-placeholder",g=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,f)},h=function(){c.isEmpty()&&!c.placeholderSet&&(c.placeholderSet=!0,c.setValue(d,!1),a.addClass(c.element,f))};b.on("set_placeholder",h).on("unset_placeholder",g).on("focus:composer",g).on("paste:composer",g).on("blur:composer",h),h()}}(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 wysihtml5.browser.supportsModernPaste()&&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"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^
$/i.test(d.trim())&&(d=!1),b(d),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"},!1,a),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!==d&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(c){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(c,d){l.start=c,l.end=d,l.table=k.getParentElement(l.start,{query:"table"},!1,a),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(b){var c=wysihtml5.dom.getParentElement(b.target,{query:"td, th"},!1,a);c&&d(c)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"},!1,a)!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){function b(a){var b,c;for(b in d)if(d.hasOwnProperty(b)&&(c=d[b],c.regex.test(a)))return c}function c(a){var c=b(a);return c?c.name:void 0}var d={rgba:{regex:/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,name:"rgba"},rgb:{regex:/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,name:"rgb"},hex6:{regex:/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,name:"hex",radix:16},hex3:{regex:/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,name:"hex",radix:16}},e=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={getColorParseMethod:b,getColorFormat:c,parseColor:function(c,f){var g,h,i,j,k,l=c;if(f){if(g=e(f),!(h=c.match(g)))return!1;h=h.pop().split(":")[1],l=a.lang.string(h).trim()}return(i=b(l))&&(j=l.match(i.regex))?(k=i.radix||10,i===d.hex3?(j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k)*k+parseInt(a,k):parseFloat(a)})):(j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k):parseFloat(a)}))):!1},unparseColor:function(a,b){var c=16;return"hex"===b?(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"hash"===b?"#"+(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"rgb"===b?"rgb("+a[0]+","+a[1]+","+a[2]+")":"rgba"===b?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"csv"===b?a[0]+","+a[1]+","+a[2]+","+a[3]: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(e("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(b){var c=document.createElement("span"),d=function(a){b.removeEventListener("mouseup",d),b.removeEventListener("keydown",d),b.removeEventListener("touchstart",d),b.removeEventListener("focus",d),b.removeEventListener("blur",d),b.removeEventListener("paste",e),b.removeEventListener("drop",e),b.removeEventListener("beforepaste",e),c&&c.parentNode&&c.parentNode.removeChild(c)},e=function(a){c&&c.parentNode&&setTimeout(d,0)};return c.appendChild(document.createTextNode(a.INVISIBLE_SPACE)),c.className="_wysihtml5-temp-caret-fix",c.style.display="block",c.style.minWidth="1px",c.style.height="0px",b.addEventListener("mouseup",d),b.addEventListener("keydown",d),b.addEventListener("touchstart",d),b.addEventListener("focus",d),b.addEventListener("blur",d),b.addEventListener("paste",e),b.addEventListener("drop",e),b.addEventListener("beforepaste",e),c}function e(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 f=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.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return 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(b){var d;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)?(d=c.lastChild,a.dom.unwrap(c),this.setAfter(d)):c.parentNode.removeChild(c))}.bind(this),f=function(a){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.className="_wysihtml5-temp-caret-fix",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,d){var e,f=this.win,g=rangy.createRange(this.doc),h=function(){var d=b.parentNode,g=d?d.childNodes[d.childNodes.length-1]:null;if(!e||g===b&&1===b.nodeType&&"block"===f.getComputedStyle(b).display)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)}.bind(this);if(g.setStartAfter(b),g.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(g),h(),d&&d(e);else{var i=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(i),setTimeout(function(){e=this.setSelection(g),h(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),e=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=e?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=f.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&e&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&e?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();e(a),this.setSelection(a)},getSelectedOwnNodes:function(a){for(var b=this.getOwnRanges(),c=[],d=0,e=b.length;e>d;d++)c.push(b[d].commonAncestorContainer||this.doc.body);return c},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 a=this.getRange();this.deleteRangeContents(a),this.setSelection(a)},deleteRangeContents:function(b){var c,d,e,f;if(this.unselectableClass){(c=a.dom.getParentElement(b.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&b.setStartBefore(c),(d=a.dom.getParentElement(b.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&b.setEndAfter(d),e=b.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=e.length;g--;)try{f=new CustomEvent("wysihtml5:uneditable:delete"),e[g].dispatchEvent(f)}catch(h){}}b.deleteContents()},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(b){for(var c,d=this.getSelectedOwnNodes(),e=[],f=0,g=d.length;g>f;f++)c=d[f].nodeName&&"LI"===d[f].nodeName?d[f]:a.dom.getParentElement(d[f],{query:"li"},!1,this.contain),c&&e.push(c);return e.length?e: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},getBeforeSelection:function(b){var c,d,e=this.getSelection(),f=e.isBackwards()?e.focusNode:e.anchorNode,g=e.isBackwards()?e.focusOffset:e.anchorOffset,h=this.createRange();if(d=a.dom.getParentElement(f,{query:"._wysihtml5-temp-caret-fix"},1),d&&(f=d.parentNode,g=Array.prototype.indexOf.call(f.childNodes,d)),f){if(g>0)return 3===f.nodeType?(h.setStart(f,0),h.setEnd(f,g),{type:"text",range:h,offset:g,node:f}):(h.setStartBefore(f.childNodes[0]),c=f.childNodes[g-1],h.setEndAfter(c),{type:"element",range:h,offset:g,node:c});if(h.setStartAndEnd(f,0),b){var i=this.getPreviousNode(f,!0),j=null;if(i&&(j=1===i.nodeType&&a.dom.hasClass(i,this.unselectableClass)?i:a.dom.domNode(i).lastLeafNode()),j)return{type:"leafnode",range:h,offset:g,node:j}}return{type:"none",range:h,offset:g,node:f}}return null},executeAndRestoreRangy:function(a,b){var c=rangy.saveSelection(this.win);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,e,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)):(e=this.doc.createTextNode(a.INVISIBLE_SPACE),f.insert(e).after(d[0]),l.setStartBefore(e),l.setEndAfter(e)),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,d=this.getRange(),e=this.doc.createElement("DIV"),f=this.doc.createDocumentFragment();if(d){for(d.deleteContents(),e.innerHTML=a,b=e.lastChild;e.firstChild;)f.appendChild(e.firstChild);for(d.insertNode(f),c=this.contain.lastChild;c&&3===c.nodeType&&c.previousSibling&&/^\s*$/.test(c.data);)c=c.previousSibling;b&&(c&&b===c&&1===b.nodeType&&this.contain.appendChild(this.doc.createElement("br")),this.setAfter(b))}},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},canAppendChild:function(a){var b,c,d=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],e=this.getRange();return b=a||e.startContainer,b&&(c=(b.tagName||b.nodeName).toLowerCase()),-1===d.indexOf(c)},splitElementAtCaret:function(b,c){var d,e,f,g,h,i=this.getSelection();if(i.rangeCount>0){d=i.getRangeAt(0).cloneRange(),d.setEndAfter(b),e=d.extractContents(),h=e.childNodes;for(var j=h.length;j--;)a.dom.domNode(h[j]).is.visible()||e.removeChild(h[j]);b.parentNode.insertBefore(e,b.nextSibling),c?(f=c.firstChild||c,g=c.lastChild||c,b.parentNode.insertBefore(c,b.nextSibling),f&&g&&(d.setStartBefore(f),d.setEndAfter(g),this.setSelection(d))):(d.setStartAfter(b),d.setEndAfter(b)),a.dom.domNode(b).is.visible()||(""===a.dom.getTextContent(b)?b.parentNode.removeChild(b):b.parentNode.replaceChild(this.doc.createTextNode(" "),b))}},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():this._selectLineUniversal()},_selectLine_W3C:function(){var a=this.win.getSelection(),b=[a.anchorNode,a.anchorOffset,a.focusNode,a.focusOffset];a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary"),a.anchorNode===b[0]&&a.anchorOffset===b[1]&&a.focusNode===b[2]&&a.focusOffset===b[3]&&this._selectLineUniversal()},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},getRangeRect:function(a){var b,c=(this.doc.createTextNode("i"),this.doc.createTextNode("i"));return a.collapsed?(a.insertNode(c),a.selectNode(c),b=a.nativeRange.getBoundingClientRect(),a.deleteContents()):b=a.nativeRange.getBoundingClientRect(),b},_selectLineUniversal:function(){var a,b,c,d,e,f,g=this.getSelection(),h=g.getRangeAt(0),i=0;b=h.cloneRange(),c=h.cloneRange(),h.collapsed&&(h.expand("word",1),a=h.nativeRange.getBoundingClientRect());do d=h.moveStart("character",-1),e=h.nativeRange.getBoundingClientRect(),e&&Math.floor(e.top)===Math.floor(a.top)||(h.moveStart("character",1),f=!0),i++;while(0!==d&&!f&&2e3>i);i=0,f=!1,a=h.nativeRange.getBoundingClientRect();do d=h.moveEnd("character",1),e=h.nativeRange.getBoundingClientRect(),e&&Math.floor(e.bottom)===Math.floor(a.bottom)||(h.moveEnd("character",-1),f=!0),i++;while(0!==d&&!f&&2e3>i);h.select()},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection&&this.doc.selection.createRange?this.doc.selection.createRange():this.doc.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(window.r=f,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):[]},getOwnNodes:function(a,b,c){for(var d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)d[f]&&(c&&d[f].splitBoundaries(),e=e.concat(d[f].getNodes(Array.isArray(a)?a:[a],b)));return e},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=f.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=f.query(this.contain,"."+this.unselectableClass),c=f.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.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},selectAll:function(){var b,c=this.createRange(),e=this.composer,f=this,g=d(this.composer.element),h=d(this.composer.element),i=function(){c.setStart(e.element,0),c.setEnd(e.element,e.element.childNodes.length),b=f.setSelection(c)},j=function(){return!b||b.nativeSelection&&b.nativeSelection.type&&("Caret"===b.nativeSelection.type||"None"===b.nativeSelection.type)};a.dom.removeInvisibleSpaces(this.composer.element),i(),this.composer.element.firstChild&&j()&&(this.composer.element.appendChild(g),i(),j()&&(g.parentNode.removeChild(g),this.composer.element.insertBefore(h,this.composer.element.firstChild),i(),j()&&(this.composer.element.appendChild(g),i())))},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},isInThisEditable:function(){var b=this.getSelection(),c=b.focusNode,d=b.anchorNode;return c&&1!==c.nodeType&&(c=c.parentNode),d&&1!==d.nodeType&&(d=d.parentNode),d&&c&&(a.dom.contains(this.composer.element,c)||this.composer.element===c)&&(a.dom.contains(this.composer.element,d)||this.composer.element===d)},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},remove:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.remove;return e?(d.unshift(this.composer),e.apply(c,d)):void 0},state:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.state;if(e)return d.unshift(this.composer),e.apply(c,d);try{return this.doc.queryCommandState(a)}catch(f){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}}),function(a){var b={nodeName:"B",toggle:!0};a.commands.bold={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){function b(b){return a.lang.object({}).merge(c).merge({attribute:b}).get()}var c={nodeName:"A",toggle:!1};a.commands.createLink={exec:function(c,d,e){var f=b(e);if(c.selection.isCollapsed()&&!this.state(c,d)){var g=c.doc.createTextNode(f.attribute.href);c.selection.insertNode(g),c.selection.selectNode(g)}a.commands.formatInline.exec(c,d,f)},state:function(b,d){return a.commands.formatInline.state(b,d,c)}}}(wysihtml5),function(a){var b={nodeName:"A"};a.commands.removeLink={exec:function(c,d){a.commands.formatInline.remove(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.exec(c,d,{className:"wysiwyg-font-size-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-font-size-"+d})}}}(wysihtml5),function(a){a.commands.fontSizeStyle={exec:function(b,c,d){d=d.size||d,/^\s*$/.test(d)||a.commands.formatInline.exec(b,c,{styleProperty:"fontSize",styleValue:d,toggle:!1})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{styleProperty:"fontSize",styleValue:d||void 0})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"fontSize"})},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.exec(c,d,{className:"wysiwyg-color-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-color-"+d})}}}(wysihtml5),function(a){a.commands.foreColorStyle={exec:function(b,c,d){var e,f;d&&(e=a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"),e&&(f=(1===e[3]?"rgb("+[e[0],e[1],e[2]].join(", "):"rgba("+e.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"color",styleValue:f})))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"color",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"color"})},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,"color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){a.commands.bgColorStyle={exec:function(b,c,d){var e,f=a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color");f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"backgroundColor",styleValue:e}))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"backgroundColor",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"backgroundColor"})},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(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function c(b){for(var c=b.element,d=c.querySelectorAll(o),e=c.querySelectorAll(b.config.classNames.uneditableContainer),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML.replace(/[\uFEFF]/g,"")&&f[g].parentNode.removeChild(f[g])}function d(a){return a.config.useLineBreaks?"DIV":"P"}function e(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?o:n)&&(e=d),d=d.parentNode;return e}function f(a,b){for(var c,d,e,f=a,g=null;f&&b&&f!==b;)1===f.nodeType&&f.matches(p)&&(d=f,null===g?(g=f.cloneNode(!1),c=g):(e=f.cloneNode(!1),e.appendChild(g),g=e)),f=f.parentNode;return{parent:d,outerNode:g,innerNode:c}}function g(b,c,e){return b||(b=e.doc.createElement(c.nodeName||d(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),c.nodeName&&b.nodeName!==c.nodeName&&(b=m.renameElement(b,c.nodeName)),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),c.className&&b.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),b}function h(b,c,e){var f;c.styleProperty&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=""),c.className&&b.classList.remove(c.className),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),c.nodeName&&b.nodeName===c.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=m.renameElement(b,d(e)):m.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function i(b){for(var c=b.querySelectorAll(o)||[],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 j(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 k(c,h,k,l){var m=h?a.lang.object(h).clone(!0):null;m&&(m.nodeName=m.nodeName||k||d(l)),j(c,l);var p,q,r,s=c.cloneRange(),t=s.startContainer,u=s.extractContents(),v=l.doc.createDocumentFragment(),w=m?b(m):null,x=w?a.dom.getParentElement(t,w,null,l.element):null,y=!m||"BLOCKQUOTE"===k&&m.nodeName&&"BLOCKQUOTE"===m.nodeName,z=x||e(t,l.element,y);if(h&&h.nodeName&&"BLOCKQUOTE"===h.nodeName){var A=g(null,h,l);A.appendChild(u),v.appendChild(A),q=[A]}else{if(u.firstChild)for(;u.firstChild;)if(1==u.firstChild.nodeType&&u.firstChild.matches(o))if(h)g(u.firstChild,h,l),u.firstChild.matches(n)&&i(u.firstChild),v.appendChild(u.firstChild);else{i(u.firstChild),r=a.dom.unwrap(u.firstChild);for(var B=0,C=r.length;C>B;B++)v.appendChild(r[B]);v.childNodes.length>0&&v.appendChild(l.doc.createElement("BR"))}else if(h){for(p=g(null,m,l);u.firstChild&&(1!==u.firstChild.nodeType||!u.firstChild.matches(o));)1==u.firstChild.nodeType&&p.matches(n)&&i(u.firstChild),p.appendChild(u.firstChild);v.appendChild(p)}else 1==u.firstChild.nodeType&&i(u.firstChild),v.appendChild(u.firstChild);else v.appendChild(g(null,h,l));q=a.lang.array(v.childNodes).get()}if(z)l.selection.splitElementAtCaret(z,v);else{var D=f(t,l.element);if(D.outerNode&&D.innerNode&&D.parent){if(1===v.childNodes.length){for(;v.firstChild.firstChild;)D.innerNode.appendChild(v.firstChild.firstChild);v.firstChild.appendChild(D.outerNode)}l.selection.splitElementAtCaret(D.parent,v)}else s.insertNode(v)}return q}function l(b,c){var d=a.dom.getParentElement(b,{query:o},null,c.element);return d?d.nodeName:null}var m=a.dom,n="h1, h2, h3, h4, h5, h6, p, pre",o="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",p="b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u";a.commands.formatBlock={exec:function(b,d,e){var f,g,i,j,m,o=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(b,d,e))){j=rangy.saveSelection(b.win);for(var p=0,q=m.length;q>p;p++)h(m[p],e,b)}if(!m){b.selection.isCollapsed()&&(i=a.dom.getParentElement(b.selection.getOwnRanges()[0].startContainer,{query:n+", "+(e&&e.nodeName?e.nodeName.toLowerCase():"div")},null,b.element),i?(j=rangy.saveSelection(b.win),g=b.selection.createRange(),g.selectNode(i),b.selection.setSelection(g)):b.isEmpty()||(j=rangy.saveSelection(b.win),b.selection.selectLine())),f=b.selection.getOwnRanges();for(var r=f.length;r--;)o=o.concat(k(f[r],e,l(f[r].startContainer,b),b))}c(b);for(var s=o.length;s--;)o[s].parentNode||o.splice(s,1);if(j)a.dom.removeInvisibleSpaces(b.element),rangy.restoreSelection(j);else{a.dom.removeInvisibleSpaces(b.element),g=b.selection.createRange(),g.setStart(o[0],0);var t=o[o.length-1],u=1===t.nodeType&&t.childNodes?0|t.childNodes.length:t.length||0;g.setEnd(t,u),g.select()}},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:o})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=m.getParentElement(g[h],d||{query:o},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),function(a){a.commands.formatCode={exec:function(b,c,d){var e,f,g,h=this.state(b)[0];h?b.selection.executeAndRestore(function(){e=h.querySelector("code"),a.dom.replaceWithChildNodes(h),e&&a.dom.replaceWithChildNodes(e)}):(f=b.selection.getRange(),g=f.extractContents(),h=b.doc.createElement("pre"),e=b.doc.createElement("code"),d&&(e.className=d),h.appendChild(e),e.appendChild(g),f.insertNode(h),b.selection.selectNode(h))},state:function(b){var c,d=b.selection.getSelectedNode();return d&&d.nodeName&&"PRE"==d.nodeName&&d.firstChild&&d.firstChild.nodeName&&"CODE"==d.firstChild.nodeName?[d]:(c=a.dom.getParentElement(d,{query:"pre code"}),c?[c.parentNode]:!1)}}}(wysihtml5),function(a){function b(a){return/^\s*$/.test(a.className)}function c(a){return!a.getAttribute("style")||/^\s*$/.test(a.getAttribute("style"))}function d(b){var c=a.dom.getAttributes(b);return a.lang.object(c).isEmpty()}function e(b,c){var d,e,f,g;return 1!==b.nodeType||1!==c.nodeType?!1:b.nodeName!==c.nodeName?!1:(d=b.className.trim().replace(/\s+/g," ").split(" "),e=c.className.trim().replace(/\s+/g," ").split(" "),a.lang.array(d).without(e).length>0?!1:(f=a.dom.getAttributes(b),g=a.dom.getAttributes(c),f.length===g.length&&a.lang.object(a.lang.object(f).difference(g)).isEmpty()?!0:!1))}function f(b,c){var d=c&&c.nodeName||F,e=b.ownerDocument.createElement(d);if(c.classRegExp&&(e.className=e.className.replace(c.classRegExp,"")),c.className&&e.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(e.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),c.attribute)if("object"==typeof c.attribute)for(var f in c.attribute)c.attribute.hasOwnProperty(f)&&e.setAttribute(f,c.attribute[f]);else"undefined"!=typeof c.attributeValue&&e.setAttribute(c.attribute,c.attributeValue);return e}function g(a,b){for(var c in a)if(a.hasOwnProperty(c)&&(void 0===typeof b[c]||b[c]!==a[c]))return!1;return!0}function h(b,c,d){var e,f=a.dom.getAttributes(b),h=g(c,f);a.lang.object(f).difference(c);if(h&&d!==!1)for(e in c)c.hasOwnProperty(e)&&b.removeAttribute(e);else for(e in c)c.hasOwnProperty(e)&&b.setAttribute(e,c[e])}function i(e,f){var g,i,j;f.className&&(f.toggle!==!1&&e.classList.contains(f.className)?e.classList.remove(f.className):e.classList.add(f.className),b(e)&&e.removeAttribute("class")),f.styleProperty&&(f.toggle!==!1&&e.style[a.browser.fixStyleKey(f.styleProperty)].trim().replace(/, /g,",")===f.styleValue?e.style[a.browser.fixStyleKey(f.styleProperty)]="":e.style[a.browser.fixStyleKey(f.styleProperty)]=f.styleValue),c(e)&&e.removeAttribute("style"),f.attribute&&("object"==typeof f.attribute?g=f.attribute:(g={},g[f.attribute]=f.attributeValue||""),h(e,g,f.toggle)),i=f.nodeName?H[f.nodeName.toLowerCase()]||f.nodeName.toLowerCase():null,j=i?a.dom.domNode(e).test({query:i}):!1,(!f.nodeName||f.nodeName===F||j)&&(f.toggle!==!1&&j||!f.nodeName&&e.nodeName===F)&&b(e)&&c(e)&&d(e)&&a.dom.unwrap(e)}function j(b,c){var d=[];return b.isCollapsed()||(d=d.concat(b.getOwnNodes([3],function(b){return!a.dom.domNode(b).is.emptyTextNode()},c))),d}function k(a,b,c,d){var e=a,f=d?b:l(b);do{if(1===e.nodeType&&m(e,f))return e;e=e.parentNode}while(e&&e!==c);return null}function l(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function m(b,c){var d;if(c.nodeName){var e=H[c.nodeName.toLowerCase()]||c.nodeName.toLowerCase();return a.dom.domNode(b).test({query:e})}return d=a.lang.object(c).clone(),d.query=G,a.dom.domNode(b).test(d)}function n(b,c){var d=document.documentElement||document.body,e=d.scrollTop,f=d.scrollLeft;rangy.getSelection(b.win);rangy.getSelection(b.win).removeAllRanges();try{rangy.getSelection(b.win).addRange(c)}catch(g){}b.doc.activeElement&&a.dom.contains(b.element,b.doc.activeElement)||(b.element.focus(),d.scrollTop=e,d.scrollLeft=f,rangy.getSelection(b.win).addRange(c))}function o(a,b){var c=rangy.createRange(b.doc),d=a[a.length-1];a[0]&&d&&(c.setStart(a[0],0),c.setEnd(d,d.length),n(b,c))}function p(a,b,c,d){var e=rangy.createRange(a.doc);b&&(e.setStart(b,c),e.setEnd(b,"undefined"!=typeof d?d:c),n(a,e))}function q(a,b,c){var d,e,f,g=j(a.selection),h=[],i=!1;if(a.selection.isInThisEditable()){if(0===g.length&&a.selection.isCollapsed()){if(f=a.selection.getSelection().anchorNode,!f)return{nodes:[],partial:!1};3===f.nodeType&&(g=[f])}g.length||(e=a.selection.getOwnRanges()[0],e&&(g=[e.endContainer]));for(var l=0,m=g.length;m>l;l++)d=k(g[l],b,a.element,c),d?h.push(d):i=!0}return{nodes:h,partial:i}}function r(a){var b,c,d,e;return a&&(b=a.anchorNode,c=a.anchorOffset,b&&3===b.nodeType&&c>0&&c0&&/\w/.test(c.data[g-1]);)g--;for(;h0&&o(b,a),u(q(a,c).nodes),b.length>0&&o(b,a)}function w(a,b,c,d){p(a,b,c),u(q(a,d).nodes),p(a,b,c)}function x(a,b){var c=f(a,b);a.parentNode.insertBefore(c,a),c.appendChild(a)}function y(b,c,d){var e,f=c.element,g=k(b,d,f);g&&(e=g.cloneNode(!1),a.dom.domNode(b).escapeParent(g,e),i(e,d))}function z(b,c,d){var e=c.element,f=k(b,d,e);f&&a.dom.domNode(b).escapeParent(f)}function A(a,b,c){var d=f(a.endContainer,c);a.surroundContents(d),b.selection.selectNode(d)}function B(b,c,d,e){var f,g,h,j,l=q(b,e,!0),m=b.selection.getSelection();if(c.length){if(l.partial||e.toggle===!1)for(j=c.length;j--;)k(c[j],e,b.element)&&y(c[j],b,e),k(c[j],e,b.element)||x(c[j],e);else for(j=c.length;j--;)y(c[j],b,e);v(b,c,e)}else if(e.toggle!==!1)if(r(m))f=s(m),g=f.textNode,y(f.textNode,b,e),w(b,f.textNode,f.wordOffset,e);else{g=b.doc.createTextNode(a.INVISIBLE_SPACE),h=d.nodes[0].cloneNode(!1),h.appendChild(g),b.selection.splitElementAtCaret(d.nodes[0],h),i(h,e),v(b,[g],e);var n=b.selection.getSelection();if(n.anchorNode&&n.focusNode)try{n.collapseToEnd()}catch(o){}}else for(j=d.nodes.length;j--;)i(d.nodes[j],e)}function C(b,c,d,e){var f,g,h,i=b.selection.getSelection();if(c.length){for(h=c.length;h--;)z(c[h],b,e);v(b,c,e)}else{for(f=i.anchorNode,g=i.anchorOffset,h=d.nodes.length;h--;)a.dom.unwrap(d.nodes[h]);w(b,f,g,e)}}function D(a,b,c){var d,e,f=a.selection.getSelection();if(b.length){for(e=b.length;e--;)x(b[e],c);v(a,b,c)}else if(r(f))d=s(f),x(d.textNode,c),w(a,d.textNode,d.wordOffset,c);else{var g=a.selection.getOwnRanges()[0];g&&A(g,a,c)}}function E(a){return a="string"==typeof a?{nodeName:a}:a,a.nodeName&&(a.nodeName=a.nodeName.toUpperCase()),a}var F="SPAN",G="b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u",H={b:"b, strong",strong:"b, strong",em:"em, i",i:"em, i"};a.commands.formatInline={exec:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0?B(a,d,e,c):D(a,d,c),a.element.normalize()},remove:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0&&C(a,d,e,c),a.element.normalize()},state:function(a,b,c){c=E(c);var d=q(a,c,!0).nodes;return 0===d.length?!1:d}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.insertHTML={exec:function(a,b,c){a.selection.insertHTML(c)},state:function(){return!1}}}(wysihtml5),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(a,c){a.selection.insertHTML(b)},state:function(){return!1}}}(wysihtml5),function(a){a.commands.insertOrderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"OL")},state:function(b,c){return a.commands.insertList.state(b,c,"OL")}}}(wysihtml5),function(a){a.commands.insertUnorderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"UL")},state:function(b,c){return a.commands.insertList.state(b,c,"UL")}}}(wysihtml5),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"},!1,e.element),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,h="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(function(){if(e=f(h,d),e.length)for(var i=e.length;i--;)a.dom.renameElement(e[i],c.toLowerCase());else{g=f(["OL","UL"],d);for(var j=g.length;j--;)a.dom.resolveList(g[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(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){var d;c.selection.isCollapsed()||(d=rangy.saveSelection(c.win));var e,f,g="_wysihtml5-temp-"+(new Date).getTime(),h=c.selection.deblockAndSurround({nodeName:"div",className:g});h.innerHTML=h.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),h&&(e=/^(\s|(
))+$/i.test(h.innerHTML),f=a.dom.convertToList(h,b.toLowerCase(),c.parent.config.classNames.uneditableContainer),d&&rangy.restoreSelection(d),e&&c.selection.selectNode(f.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),function(a){var b={nodeName:"I",toggle:!0};a.commands.italic={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){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,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"justify",toggle:!0};a.commands.alignJustifyStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(a){return!1}}}(wysihtml5),function(a){var b={nodeName:"U",toggle:!0};a.commands.underline={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){a.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(a){return!1}}}(wysihtml5),function(a){a.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(a,b){return!1}}}(wysihtml5),function(a){a.commands.mergeTableCells={exec:function(b,c){b.tableSelection&&b.tableSelection.start&&b.tableSelection.end&&(this.state(b,c)?a.dom.table.unmergeCell(b.tableSelection.start):a.dom.table.mergeCellsBetween(b.tableSelection.start,b.tableSelection.end))},state:function(b,c){if(b.tableSelection){var d=b.tableSelection.start,e=b.tableSelection.end;if(d&&e&&d==e&&(a.dom.getAttribute(d,"colspan")&&parseInt(a.dom.getAttribute(d,"colspan"),10)>1||a.dom.getAttribute(d,"rowspan")&&parseInt(a.dom.getAttribute(d,"rowspan"),10)>1))return[d]}return!1}}}(wysihtml5),function(a){a.commands.addTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end);"before"==d||"above"==d?a.dom.table.addCells(e.start,d):("after"==d||"below"==d)&&a.dom.table.addCells(e.end,d),setTimeout(function(){b.tableSelection.select(e.start,e.end)},0)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.deleteTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e,f=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end),g=a.dom.table.indexOf(f.start),h=b.tableSelection.table;a.dom.table.removeCells(f.start,d),setTimeout(function(){e=a.dom.table.findCell(h,g),e||("row"==d&&(e=a.dom.table.findCell(h,{row:g.row-1,col:g.col})),"column"==d&&(e=a.dom.table.findCell(h,{row:g.row,col:g.col-1}))),e&&b.tableSelection.select(e,e)},0)}},state:function(a,b){return!1}}}(wysihtml5),
function(a){a.commands.indentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPushLiLevel(d,a.selection):!1},state:function(a,b){return!1},tryToPushLiLevel:function(b,c){var d,e,f,g,h,i=!1;return c.executeAndRestoreRangy(function(){for(var c=b.length;c--;)g=b[c],d="OL"===g.parentNode.nodeName?"OL":"UL",e=g.ownerDocument.createElement(d),f=a.dom.domNode(g).prev({nodeTypes:[a.ELEMENT_NODE]}),h=f?f.querySelector("ul, ol"):null,f&&(h?h.appendChild(g):(e.appendChild(g),f.appendChild(e)),i=!0)}),i}}}(wysihtml5),function(a){a.commands.outdentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPullLiLevel(d,a):!1},state:function(a,b){return!1},tryToPullLiLevel:function(b,c){var d,e,f,g,h,i=!1,j=this;return c.selection.executeAndRestoreRangy(function(){for(var k=b.length;k--;)if(g=b[k],g.parentNode&&(d=g.parentNode,"OL"===d.tagName||"UL"===d.tagName)){if(i=!0,e=a.dom.getParentElement(d.parentNode,{query:"ol, ul"},!1,c.element),f=a.dom.getParentElement(d.parentNode,{query:"li"},!1,c.element),e&&f)g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h)),e.insertBefore(g,f.nextSibling);else{g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h));for(var l=g.childNodes.length;l--;)d.parentNode.insertBefore(g.childNodes[l],d.nextSibling);d.parentNode.insertBefore(document.createElement("br"),d.nextSibling),g.parentNode.removeChild(g)}0===d.childNodes.length&&d.parentNode.removeChild(d)}}),i},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}}}(wysihtml5),function(a){var b={nodeName:"SUB",toggle:!0};a.commands.subscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b={nodeName:"SUP",toggle:!0};a.commands.superscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),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",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()?"":"
"},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!==!1&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(a){var b;this.selection&&(b=rangy.saveSelection(this.win)),this.parent.parse(this.element,void 0,a),b&&rangy.restoreSelection(b)},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))},getScrollPos:function(){if(this.doc&&this.win){var a={};return"undefined"!=typeof this.win.pageYOffset?a.y=this.win.pageYOffset:a.y=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollTop,"undefined"!=typeof this.win.pageXOffset?a.x=this.win.pageXOffset:a.x=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollLeft,a}},setScrollPos:function(a){a&&"undefined"!=typeof a.x&&"undefined"!=typeof a.y&&this.win.scrollTo(a.x,a.y)},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()},{className:this.config.classNames.sandbox},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()},{className:this.config.classNames.sandbox}),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,className:this.config.classNames.sandbox}),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.win=this.sandbox.getWindow(),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.classNames.uneditableContainer),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.classNames.composer),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.config.classNames.placeholder),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){var g=this.element.innerHTML;this.commands.exec("AutoUrlDetect",!1,!1),this.element.innerHTML=g}if(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.classNames.uneditableContainer),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.classNames.uneditableContainer])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.classNames.uneditableContainer])}));var h=this.sandbox.getDocument().getElementsByTagName("a"),i=b.autoLink.URL_REG_EXP,j=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(h.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=j(f),setTimeout(function(){var a=j(f);a!==c&&a.match(i)&&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(b,c){if(b.selection.caretIsLastInSelection()){var d=b.selection.getSelection(),e=d.anchorNode;if(e&&1===e.nodeType&&(a.dom.getParentElement(e,{query:"td, th"},!1,b.element)||c)){var f=e.childNodes[d.anchorOffset];if(f&&1===f.nodeType&"BR"===f.nodeName)return f.parentNode.removeChild(f),!0}}return!1},h=function(a){var b=a.selection.getBeforeSelection(!0);if(b&&("element"===b.type||"leafnode"===b.type)&&1===b.node.nodeType&&b.node.classList.contains(a.config.classNames.uneditableContainer)){if(g(a,!0))return!0;try{var c=new CustomEvent("wysihtml5:uneditable:delete");b.node.dispatchEvent(c)}catch(d){}return b.node.parentNode.removeChild(b.node),!0}return!1},i=function(b){var c=b.selection,d=c.getPreviousNode();if(c.caretIsFirstInSelection()&&d&&1===d.nodeType&&/block/.test(b.win.getComputedStyle(d).display)){if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=c.getSelectedNode(),g=a.dom.domNode(d).commonAncestor(f,b.element);if(curNode=g?a.dom.getParentElement(f,{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,g):null,curNode){for(;curNode.firstChild;)d.appendChild(curNode.firstChild);return c.setAfter(e),!0}if(3===f.nodeType)return d.appendChild(f),c.setAfter(e),!0}}return!1},j=function(a,b){var c=b.selection;b.element;if(c.isCollapsed()){if(i(b))return void a.preventDefault();if(g(b))return void a.preventDefault();if(h(b))return void a.preventDefault()}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},k=function(a,b,c){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li"))if(c){if(a.commands.exec("outdentList"))return}else if(a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},l=function(a){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},m=function(a){this.parent.fire("beforeinteraction",a).fire("beforeinteraction:composer",a),setTimeout(function(){this.parent.fire("interaction",a).fire("interaction:composer",a)}.bind(this),0)},n=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},o=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)},p=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)},q=function(b){this.config.copyedFromMarking&&(a.browser.supportsModernPaste()&&(b.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),b.clipboardData.setData("text/plain",this.selection.getPlainText()),b.preventDefault()),this.parent.fire(b.type,b).fire(b.type+":composer",b))},r=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},s=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.classNames.uneditableContainer+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},t=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)))},u=function(b){if(this.config.classNames.uneditableContainer){var c=a.dom.getParentElement(b.target,{query:"."+this.config.classNames.uneditableContainer},!1,this.element);c&&this.selection.setAfter(c)}},v=function(a){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(b){var c,e,f=b.keyCode,g=d[f];return!b.ctrlKey&&!b.metaKey||b.altKey||65!==f?((b.ctrlKey||b.metaKey)&&!b.altKey&&g&&(this.commands.exec(g),b.preventDefault()),f===a.BACKSPACE_KEY&&j(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)}.bind(this),0))),void(this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),k(this,this.element,b.shiftKey)))):(this.selection.selectAll(),void b.preventDefault())},x=function(){var b=function(){window.removeEventListener("load",b),this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")}.bind(this),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):window.addEventListener("load",b)),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"],l.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||l.call(this)},250)),this.config.handleTables&&x.call(this),e(d,["drop","paste","mouseup","focus","keyup"],m.bind(this)),d.addEventListener("focus",n.bind(this),!1),d.addEventListener("blur",o.bind(this),!1),e(this.element,["drop","paste","beforepaste"],p.bind(this),!1),this.element.addEventListener("copy",q.bind(this),!1),this.element.addEventListener("mousedown",s.bind(this),!1),this.element.addEventListener("mouseover",t.bind(this),!1),this.element.addEventListener("click",u.bind(this),!1),this.element.addEventListener("drop",v.bind(this),!1),this.element.addEventListener("keyup",r.bind(this),!1),this.element.addEventListener("keydown",w.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.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),function(a){a.views.SourceView=Base.extend({constructor:function(a,b){this.editor=a,this.composer=b,this._observe()},switchToTextarea:function(a){var b=this.composer.win.getComputedStyle(this.composer.element),c=parseFloat(b.width),d=Math.max(parseFloat(b.height),100);this.textarea||(this.textarea=this.composer.doc.createElement("textarea"),this.textarea.className="wysihtml5-source-view"),this.textarea.style.width=c+"px",this.textarea.style.height=d+"px",this.textarea.value=this.editor.getValue(a,!0),this.composer.element.parentNode.insertBefore(this.textarea,this.composer.element),this.editor.currentView="source",this.composer.element.style.display="none"},switchToComposer:function(a){var b=this.textarea.value;b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder")),this.textarea.parentNode.removeChild(this.textarea),this.editor.currentView=this.composer,this.composer.element.style.display=""},_observe:function(){this.editor.on("change_view",function(a){"composer"===a?this.switchToComposer(!0):"textarea"===a&&this.switchToTextarea(!0)}.bind(this))}})}(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!==!1&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(a){var b=this.parent.parse(this.element.value,void 0,a);this.element.value=b},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,showToolbarDialogsOnSelection:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{},b:{},i:{},u:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,classNames:{composer:"wysihtml5-editor",body:"wysihtml5-supported",sandbox:"wysihtml5-sandbox",placeholder:"wysihtml5-placeholder",uneditableContainer:"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(),d&&d.classNames&&a.lang.object(this.config.classNames).merge(d.classNames),"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.classNames.body),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.sourceView=new a.views.SourceView(this,this.composer):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(a){this.currentView.cleanUp(a)},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()},destroy:function(){this.composer&&this.composer.sandbox&&this.composer.sandbox.destroy(),this.toolbar&&this.toolbar.destroy(),this.off()},parse:function(b,c,d){var e=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,f=this.config.parser(b,{rules:d||this.config.parserRules,cleanUp:this.config.cleanUp,context:e,uneditableClass:this.config.classNames.uneditableContainer,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),f},_initParser:function(){var b;a.browser.supportsModernPaste()?this.on("paste:composer",function(c){c.preventDefault(),b=a.dom.getPastedHtml(c),b&&this._cleanAndPaste(b)}.bind(this)):this.on("beforepaste:composer",function(b){b.preventDefault();var c=this.composer.getScrollPos();a.dom.getPastedHtmlWithDiv(this.composer,function(a){a&&this._cleanAndPaste(a),this.composer.setScrollPos(c)}.bind(this))}.bind(this))},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.classNames.uneditableContainer});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 c118d23..feb84f5 100644
--- a/dist/wysihtml.min.map
+++ b/dist/wysihtml.min.map
@@ -1 +1 @@
-{"version":3,"file":"wysihtml.min.js","sources":["wysihtml.js"],"names":["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","polyfills","win","doc","String","prototype","trim","rtrim","this","replace","s_add","s_rem","Element","on","fn","self","attachEvent","e","event","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","which","button","keyCode","call","detachEvent","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","length","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","document","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","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","normalizeHasCaretError","window","ret","t1","createTextNode","t2","t3","createRange","appendChild","body","setStart","setEnd","getSelection","removeAllRanges","addRange","normalize","childNodes","anchorNode","firstChild","anchorOffset","removeChild","getTextNodes","all","nextSibling","nodeType","normalizeFix","nf","Node","texts","ownerDocument","defaultView","anode","aoffset","aelement","undefined","fnode","focusNode","foffset","focusOffset","felement","prevTxt","shift","curText","nodeValue","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","previousSibling","F","removeEventListener","readyState","addEventListener","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","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","deprecationNotice","deprecated","replacement","createAliasForDeprecatedMethod","owner","util","toArray","shim","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","forEach","arr","func","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","el","arrayLike","addListener","eventType","listener","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","getWindow","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","createTestElement","html","contentEditable","bodyFirstChild","removeNode","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","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","getRangeRoot","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","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","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","rootContainerNodeTypes","setRangeStart","setRangeEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","sibling","mergeForward","appendData","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","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getDocSelection","winSelectionIsBackward","sel","backward","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","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","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","saveRanges","restoreRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","require","defaultTokenizer","chars","wordOptions","createTokenRange","isWord","tokenRanges","wordStart","wordEnd","word","lastWordEnd","wordRegex","exec","includeTrailingSpace","nonLineBreakWhiteSpaceRegex","convertCharRangeToToken","tokenRange","tokenChars","tokenize","tokenizer","normalizeIgnoredCharacters","ignoredCharacters","ignoredChars","ignoredCharsArray","sort","char1","char2","charCodeAt","createWordOptions","language","defaultLanguage","defaultWordOptions","createNestedOptions","characterOptions","defaultCharacterOptions","getComputedDisplay","display","tableCssDisplayBlock","defaultDisplayValueForTag","isHidden","getAncestorsAndSelf","isVisibilityHiddenTextNode","isBlockNode","containsPositions","getAncestors","unshift","nextNodeDescendants","excludeChildren","previous","isWhitespaceNode","computedWhiteSpace","isCollapsedWhitespaceNode","isCollapsedNode","isIgnoredNode","Cache","store","createCachingGetter","objProperty","cache","cachedCount","uncachedCount","value","NodeWrapper","session","positions","Position","nodeWrapper","inspectPosition","startSession","endSession","currentSession","Session","getSession","createCharacterIterator","startPos","endPos","charPos","finished","previousVisible","nextVisible","previousTextPos","returnPreviousTextPos","character","getCharacter","rewind","dispose","createTokenizedTextProvider","consumeWord","forward","textChar","newChars","forwardIterator","backwardIterator","passedWordBoundary","insideWord","allWhiteSpaceRegex","forwardChars","backwardChars","reverse","forwardTokensBuffer","arrayIndexOf","backwardTokensBuffer","nextEndToken","lastToken","previousStartToken","movePositionBy","unit","count","currentPos","charIterator","nextPos","unitsMoved","newPos","absCount","abs","CHARACTER","WORD","tokenizedTextProvider","isLeadingSpace","isTrailingSpace","createRangeCharacterIterator","rangeStart","getRangeBoundaryPosition","rangeEnd","itStart","itEnd","getRangeCharacters","isWholeWord","expand","findTextFromPosition","initialPos","searchTerm","isRegex","searchScopeRange","findOptions","handleMatch","startIndex","endIndex","valid","wholeWordsOnly","currentChar","matchStartIndex","matchEndIndex","insideRegexMatch","caseSensitive","createEntryPointFunction","sessionRunning","createRangeBoundaryMover","moveOptions","defaultMoveOptions","boundaryIsStart","moveResult","createRangeTrimmer","trimCharCount","trimmed","createSelectionTrimmer","spacesRegex","spacesMinusLineBreaksRegex","trailingSpaceInBlockCollapses","trailingSpaceBeforeBrCollapses","trailingSpaceBeforeBlockCollapses","trailingSpaceBeforeLineBreakInPreLineCollapses","includeBlockContentTrailingSpace","includeSpaceBeforeBr","includeSpaceBeforeBlock","includePreLineTrailingSpace","ignoreCharacters","defaultCaretCharacterOptions","en","defaultFindOptions","withinRange","wrap","defaultExpandOptions","trimStart","trimEnd","defaultWordIteratorOptions","table","caption","colgroup","col","thead","tbody","tfoot","tr","td","th","key","nodeProto","getPosition","EMPTY","NON_SPACE","UNCOLLAPSIBLE_SPACE","COLLAPSIBLE_SPACE","TRAILING_SPACE_BEFORE_BLOCK","TRAILING_SPACE_IN_BLOCK","TRAILING_SPACE_BEFORE_BR","PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK","TRAILING_LINE_BREAK_AFTER_BR","INCLUDED_TRAILING_LINE_BREAK_AFTER_BR","getLength","isWhitespace","isCollapsedWhitespace","isIgnored","getTextNodeInfo","spaceRegex","collapseSpaces","cssWhitespace","preLine","hasInnerText","posAfterEl","firstPosInEl","prepopulateChar","isDefinitelyNonEmpty","isRenderedBlock","brs","getTrailingSpace","getNodeWrapper","getLeadingSpace","positionProto","characterType","isBr","prepopulatedChar","visibleChar","charType","finalizedChar","charAt","nodePassed","checkForTrailingSpace","checkForLeadingSpace","isCharInvariant","resolveLeadingAndTrailingSpaces","trailingSpace","leadingSpace","getPrecedingUncollapsedPosition","getPreviousPos","gotPreviousPos","previousPos","returnChar","thisChar","isIgnoredCharacter","cacheKey","cachedChar","collapsible","nextUncollapsed","nextOffset","previousOffset","createWrapperCache","nodeProperty","wrappersByProperty","wrapper","property","initCaches","uniqueIDSupported","elementCache","elementsCache","uniqueID","elWrapper","textNodeCache","otherNodeCache","wrapperCache","prefix","moveEnd","move","startTrimmed","endTrimmed","expandOptions","moved","endToken","newEndPos","startTokenizedTextProvider","startToken","newStartPos","endTokenizedTextProvider","selectCharacters","toCharacterRange","rangeStartsBeforeNode","rangeBetween","findText","searchTermParam","findResult","wrappedAround","pasteHtml","saveCharacterRanges","rangeInfos","characterRange","restoreCharacterRanges","saved","rangeInfo","createWordIterator","iteratorOptions","noMutation","createPosition","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","saveSelection","restored","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","implement","valueOf","source","toSource","hidden","object","block","context","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","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","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModernPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","isPlainObject","difference","diffObj","newObj","isFunction","Text","isEmpty","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","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","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","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","parents","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","visible","isVisible","getTextContent","prev","prevNode","types","ignoreBlankTexts","commonAncestor","parents1","parents2","lastLeafNode","leafClasses","escapeParent","newWrapper","split2","nodeWrap","curNode","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","attr","getAttributes","attrList","hasOneAttribute","attributeValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","ingoreEmpty","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","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","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","isLastItem","lastListItem","lastElementChild","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","innerHtml","simulatePlaceholder","editor","placeholderText","placeholderClassName","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","setValue","setTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","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","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","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","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","getColorParseMethod","colorStr","colorTypeConf","colorParseMethods","getColorFormat","rgba","rgb","hex6","radix","hex3","makeParamRegExp","styleParser","parseColor","stylesStr","paramName","paramsRegex","colorType","colorMatch","unparseColor","colorFormat","hexRadix","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","getWebkitSelectionFixNode","blankNode","placeholderRemover","delayedPlaceholderRemover","minWidth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","keyDownHandler","setAfter","ctrlKey","metaKey","zIndex","notVisual","fixWebkitSelection","lastSibling","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","deleteRangeContents","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","getBeforeSelection","includePrevLeaves","inTmpCaret","rng","prevLeaf","executeAndRestoreRangy","restoreScrollPosition","executeAndRestore","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","lastEditorElement","canAppendChild","anchorNodeTagNameLower","voidElements","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","_selectLineUniversal","initialBoundry","modify","toLineBoundary","location","getRangeRect","rect","testNode","getBoundingClientRect","amount","testRect","found","bottom","rangeBottom","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","getOwnNodes","splitBounds","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","selectAll","blankEndNode","blankStartNode","doSelect","notSelected","getHtml","getPlainText","isEndToEndInNode","nodeNames","isInThisEditable","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","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","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","commandValue","state","stateValue","bold","formatInline","getOptions","createLink","opts","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colorVals","colString","bgColorStyle","correctOptionsForSimilarityCheck","cleanup","allElements","BLOCK_ELEMENTS","classNames","uneditableContainer","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","cloneOuterInlines","innerNode","INLINE_ELEMENTS","outerNode","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","blocks","rangeStartContainer","similarOptions","similarOuterBlock","splitAllBlocks","firstOuterBlock","tmpEl","outerInlines","getParentBlockNodeName","newBlockElements","lastEl","lastOffset","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","hasNoClass","hasNoStyle","hasNoAttributes","isSameNode","element1","element2","classes1","classes2","createWrapNode","defaultTag","containsSameAttributes","updateElementAttributes","newAttributes","fullContain","updateFormatOfElement","nodeNameQuery","nodeQueryMatch","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","isSimilarNode","selectRange","selectTextNodes","lastText","selectTextNode","getState","caretNode","searchNodes","partial","caretIsInsideWord","beforeChar","afterChar","getRangeForWord","offsetStart","offsetEnd","txtNodes","wordOffset","mergeContents","mergeConsequentSimilarElements","cleanupAndSetSelection","cleanupAndSetCaret","formatTextNode","wrapNode","unformatTextNode","newWrapNode","removeFormatFromTextNode","formatTextRange","updateFormat","wordObj","exactState","removeFormat","textOffset","applyFormat","fixOptions","b","strong","em","insertBlockQuote","NODE_NAME","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","otherLists","innerLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","alignJustifyStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","tmpHTML","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","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","fixLastBrDeletionInTable","aNode","handleUneditableDeletion","fixDeleteInTheBeginnigOfHeading","selNode","commonAncestorNode","handleDeleteKeyPress","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","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","SourceView","switchToTextarea","composerStyles","switchToComposer","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","undef","defaultConfig","showToolbarAfterInit","showToolbarDialogsOnSelection","parserRules","br","div","u","pasteParserRulesets","parser","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","sourceView","synchronizer","Toolbar","isCompatible","htmlOrElement","customRules","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":["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","polyfills","win","doc","String","prototype","trim","rtrim","this","replace","s_add","s_rem","Element","on","fn","self","attachEvent","e","event","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","which","button","keyCode","call","detachEvent","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","length","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","document","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","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","normalizeHasCaretError","window","ret","t1","createTextNode","t2","t3","createRange","appendChild","body","setStart","setEnd","getSelection","removeAllRanges","addRange","normalize","childNodes","anchorNode","firstChild","anchorOffset","removeChild","getTextNodes","all","nextSibling","nodeType","normalizeFix","nf","Node","texts","ownerDocument","defaultView","anode","aoffset","aelement","undefined","fnode","focusNode","foffset","focusOffset","felement","prevTxt","shift","curText","nodeValue","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","previousSibling","F","removeEventListener","readyState","addEventListener","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","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","deprecationNotice","deprecated","replacement","createAliasForDeprecatedMethod","owner","util","toArray","shim","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","forEach","arr","func","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","el","arrayLike","addListener","eventType","listener","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","getWindow","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","createTestElement","html","contentEditable","bodyFirstChild","removeNode","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","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","getRangeRoot","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","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","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","rootContainerNodeTypes","setRangeStart","setRangeEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","sibling","mergeForward","appendData","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","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getDocSelection","winSelectionIsBackward","sel","backward","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","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","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","saveRanges","restoreRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","require","defaultTokenizer","chars","wordOptions","createTokenRange","isWord","tokenRanges","wordStart","wordEnd","word","lastWordEnd","wordRegex","exec","includeTrailingSpace","nonLineBreakWhiteSpaceRegex","convertCharRangeToToken","tokenRange","tokenChars","tokenize","tokenizer","normalizeIgnoredCharacters","ignoredCharacters","ignoredChars","ignoredCharsArray","sort","char1","char2","charCodeAt","createWordOptions","language","defaultLanguage","defaultWordOptions","createNestedOptions","characterOptions","defaultCharacterOptions","getComputedDisplay","display","tableCssDisplayBlock","defaultDisplayValueForTag","isHidden","getAncestorsAndSelf","isVisibilityHiddenTextNode","isBlockNode","containsPositions","getAncestors","unshift","nextNodeDescendants","excludeChildren","previous","isWhitespaceNode","computedWhiteSpace","isCollapsedWhitespaceNode","isCollapsedNode","isIgnoredNode","Cache","store","createCachingGetter","objProperty","cache","cachedCount","uncachedCount","value","NodeWrapper","session","positions","Position","nodeWrapper","inspectPosition","startSession","endSession","currentSession","Session","getSession","createCharacterIterator","startPos","endPos","charPos","finished","previousVisible","nextVisible","previousTextPos","returnPreviousTextPos","character","getCharacter","rewind","dispose","createTokenizedTextProvider","consumeWord","forward","textChar","newChars","forwardIterator","backwardIterator","passedWordBoundary","insideWord","allWhiteSpaceRegex","forwardChars","backwardChars","reverse","forwardTokensBuffer","arrayIndexOf","backwardTokensBuffer","nextEndToken","lastToken","previousStartToken","movePositionBy","unit","count","currentPos","charIterator","nextPos","unitsMoved","newPos","absCount","abs","CHARACTER","WORD","tokenizedTextProvider","isLeadingSpace","isTrailingSpace","createRangeCharacterIterator","rangeStart","getRangeBoundaryPosition","rangeEnd","itStart","itEnd","getRangeCharacters","isWholeWord","expand","findTextFromPosition","initialPos","searchTerm","isRegex","searchScopeRange","findOptions","handleMatch","startIndex","endIndex","valid","wholeWordsOnly","currentChar","matchStartIndex","matchEndIndex","insideRegexMatch","caseSensitive","createEntryPointFunction","sessionRunning","createRangeBoundaryMover","moveOptions","defaultMoveOptions","boundaryIsStart","moveResult","createRangeTrimmer","trimCharCount","trimmed","createSelectionTrimmer","spacesRegex","spacesMinusLineBreaksRegex","trailingSpaceInBlockCollapses","trailingSpaceBeforeBrCollapses","trailingSpaceBeforeBlockCollapses","trailingSpaceBeforeLineBreakInPreLineCollapses","includeBlockContentTrailingSpace","includeSpaceBeforeBr","includeSpaceBeforeBlock","includePreLineTrailingSpace","ignoreCharacters","defaultCaretCharacterOptions","en","defaultFindOptions","withinRange","wrap","defaultExpandOptions","trimStart","trimEnd","defaultWordIteratorOptions","table","caption","colgroup","col","thead","tbody","tfoot","tr","td","th","key","nodeProto","getPosition","EMPTY","NON_SPACE","UNCOLLAPSIBLE_SPACE","COLLAPSIBLE_SPACE","TRAILING_SPACE_BEFORE_BLOCK","TRAILING_SPACE_IN_BLOCK","TRAILING_SPACE_BEFORE_BR","PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK","TRAILING_LINE_BREAK_AFTER_BR","INCLUDED_TRAILING_LINE_BREAK_AFTER_BR","getLength","isWhitespace","isCollapsedWhitespace","isIgnored","getTextNodeInfo","spaceRegex","collapseSpaces","cssWhitespace","preLine","hasInnerText","posAfterEl","firstPosInEl","prepopulateChar","isDefinitelyNonEmpty","isRenderedBlock","brs","getTrailingSpace","getNodeWrapper","getLeadingSpace","positionProto","characterType","isBr","prepopulatedChar","visibleChar","charType","finalizedChar","charAt","nodePassed","checkForTrailingSpace","checkForLeadingSpace","isCharInvariant","resolveLeadingAndTrailingSpaces","trailingSpace","leadingSpace","getPrecedingUncollapsedPosition","getPreviousPos","gotPreviousPos","previousPos","returnChar","thisChar","isIgnoredCharacter","cacheKey","cachedChar","collapsible","nextUncollapsed","nextOffset","previousOffset","createWrapperCache","nodeProperty","wrappersByProperty","wrapper","property","initCaches","uniqueIDSupported","elementCache","elementsCache","uniqueID","elWrapper","textNodeCache","otherNodeCache","wrapperCache","prefix","moveEnd","move","startTrimmed","endTrimmed","expandOptions","moved","endToken","newEndPos","startTokenizedTextProvider","startToken","newStartPos","endTokenizedTextProvider","selectCharacters","toCharacterRange","rangeStartsBeforeNode","rangeBetween","findText","searchTermParam","findResult","wrappedAround","pasteHtml","saveCharacterRanges","rangeInfos","characterRange","restoreCharacterRanges","saved","rangeInfo","createWordIterator","iteratorOptions","noMutation","createPosition","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","saveSelection","restored","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","implement","valueOf","source","toSource","hidden","object","block","context","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","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","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModernPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","isPlainObject","difference","diffObj","newObj","isFunction","Text","isEmpty","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","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","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","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","parents","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","visible","isVisible","getTextContent","prev","prevNode","types","ignoreBlankTexts","commonAncestor","parents1","parents2","lastLeafNode","leafClasses","escapeParent","newWrapper","split2","nodeWrap","curNode","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","attr","getAttributes","attrList","hasOneAttribute","attributeValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","ingoreEmpty","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","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","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","isLastItem","lastListItem","lastElementChild","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","innerHtml","simulatePlaceholder","editor","placeholderText","placeholderClassName","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","setValue","setTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","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","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","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","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","getColorParseMethod","colorStr","colorTypeConf","colorParseMethods","getColorFormat","rgba","rgb","hex6","radix","hex3","makeParamRegExp","styleParser","parseColor","stylesStr","paramName","paramsRegex","colorType","colorMatch","unparseColor","colorFormat","hexRadix","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","getWebkitSelectionFixNode","blankNode","placeholderRemover","delayedPlaceholderRemover","minWidth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","keyDownHandler","setAfter","ctrlKey","metaKey","zIndex","notVisual","fixWebkitSelection","lastSibling","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","deleteRangeContents","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","getBeforeSelection","includePrevLeaves","inTmpCaret","rng","prevLeaf","executeAndRestoreRangy","restoreScrollPosition","executeAndRestore","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","lastEditorElement","canAppendChild","anchorNodeTagNameLower","voidElements","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","_selectLineUniversal","initialBoundry","modify","toLineBoundary","location","getRangeRect","rect","testNode","getBoundingClientRect","amount","testRect","found","bottom","rangeBottom","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","getOwnNodes","splitBounds","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","selectAll","blankEndNode","blankStartNode","doSelect","notSelected","getHtml","getPlainText","isEndToEndInNode","nodeNames","isInThisEditable","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","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","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","commandValue","state","stateValue","bold","formatInline","getOptions","createLink","opts","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colorVals","colString","bgColorStyle","correctOptionsForSimilarityCheck","cleanup","allElements","BLOCK_ELEMENTS","classNames","uneditableContainer","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","cloneOuterInlines","innerNode","INLINE_ELEMENTS","outerNode","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","blocks","rangeStartContainer","similarOptions","similarOuterBlock","splitAllBlocks","firstOuterBlock","tmpEl","outerInlines","getParentBlockNodeName","newBlockElements","lastEl","lastOffset","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","hasNoClass","hasNoStyle","hasNoAttributes","isSameNode","element1","element2","classes1","classes2","createWrapNode","defaultTag","containsSameAttributes","updateElementAttributes","newAttributes","fullContain","updateFormatOfElement","nodeNameQuery","nodeQueryMatch","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","isSimilarNode","selectRange","selectTextNodes","lastText","selectTextNode","getState","caretNode","searchNodes","partial","caretIsInsideWord","beforeChar","afterChar","getRangeForWord","offsetStart","offsetEnd","txtNodes","wordOffset","mergeContents","mergeConsequentSimilarElements","cleanupAndSetSelection","cleanupAndSetCaret","formatTextNode","wrapNode","unformatTextNode","newWrapNode","removeFormatFromTextNode","formatTextRange","updateFormat","wordObj","exactState","removeFormat","textOffset","applyFormat","fixOptions","b","strong","em","insertBlockQuote","NODE_NAME","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","otherLists","innerLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","alignJustifyStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","tmpHTML","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","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","fixLastBrDeletionInTable","aNode","handleUneditableDeletion","fixDeleteInTheBeginnigOfHeading","selNode","commonAncestorNode","handleDeleteKeyPress","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","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","SourceView","switchToTextarea","composerStyles","switchToComposer","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","undef","defaultConfig","showToolbarAfterInit","showToolbarDialogsOnSelection","parserRules","br","div","u","pasteParserRulesets","parser","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","sourceView","synchronizer","Toolbar","isCompatible","htmlOrElement","customRules","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml"],"mappings":"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"}
\ No newline at end of file
diff --git a/package.json b/package.json
index e62d990..dc4c089 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wysihtml",
- "version": "0.5.0",
+ "version": "0.5.1",
"devDependencies": {
"grunt": "~0.4.4",
"grunt-cli": "^0.1.13",
@@ -16,7 +16,7 @@
"dependencies": {
"rangy": "^1.3.0"
},
- "description": "h1. wysihtml 0.5.0",
+ "description": "h1. wysihtml 0.5.1",
"main": "Gruntfile.js",
"directories": {
"example": "examples",