diff --git a/build-config.js b/build-config.js index 9b663479de..f8cd425825 100644 --- a/build-config.js +++ b/build-config.js @@ -6,8 +6,13 @@ 'use strict'; module.exports = { + // The editor creator to use. editor: '@ckeditor/ckeditor5-editor-classic/src/classiceditor', + + // The name under which the editor will be exported. moduleName: 'ClassicEditor', + + // Plugins to include in the build. plugins: [ '@ckeditor/ckeditor5-presets/src/essentials', @@ -24,6 +29,11 @@ module.exports = { '@ckeditor/ckeditor5-list/src/list', '@ckeditor/ckeditor5-paragraph/src/paragraph', ], + + // UI language. Language codes follow the https://en.wikipedia.org/wiki/ISO_639-1 format. + language: 'en', + + // Editor config. config: { toolbar: [ 'headings', diff --git a/build/ckeditor.compat.js b/build/ckeditor.compat.js index ec783970dc..8e0cd0e8e8 100644 --- a/build/ckeditor.compat.js +++ b/build/ckeditor.compat.js @@ -2,5 +2,5 @@ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md. */ -var _NumberPOSITIVE_INFINITY=Number.POSITIVE_INFINITY,_Mathfloor=Math.floor,_Mathmax=Math.max,_Mathmin=Math.min;(function(u,d){if('object'==typeof exports&&'object'==typeof module)module.exports=d();else if('function'==typeof define&&define.amd)define([],d);else{var s=d();for(var f in s)('object'==typeof exports?exports:u)[f]=s[f]}})(this,function(){return function(r){function u(s){if(d[s])return d[s].exports;var f=d[s]={i:s,l:!1,exports:{}};return r[s].call(f.exports,f,f.exports,u),f.l=!0,f.exports}var d={};return u.m=r,u.c=d,u.i=function(s){return s},u.d=function(s,f,h){u.o(s,f)||Object.defineProperty(s,f,{configurable:!1,enumerable:!0,get:h})},u.n=function(s){var f=s&&s.__esModule?function(){return s['default']}:function(){return s};return u.d(f,'a',f),f},u.o=function(s,f){return Object.prototype.hasOwnProperty.call(s,f)},u.p='',u(u.s=542)}([function(r,u){'use strict';function s(M,C){if(!(M instanceof C))throw new TypeError('Cannot call a class as a function')}function f(M,C){if(!M)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return C&&('object'==typeof C||'function'==typeof C)?C:M}function h(M,C){if('function'!=typeof C&&null!==C)throw new TypeError('Super expression must either be null or a function, not '+typeof C);M.prototype=Object.create(C&&C.prototype,{constructor:{value:M,enumerable:!1,writable:!0,configurable:!0}}),C&&(Object.setPrototypeOf?Object.setPrototypeOf(M,C):M.__proto__=C)}Object.defineProperty(u,'__esModule',{value:!0});var P=function(){function M(C,O){for(var S=0,T;Sq?0:q,D}},{key:'isAfter',value:function(L){return'after'==this.compareWith(L)}},{key:'isBefore',value:function(L){return'before'==this.compareWith(L)}},{key:'isEqual',value:function(L){return'same'==this.compareWith(L)}},{key:'isTouching',value:function(L){var D=null,q=null,z=this.compareWith(L);switch(z){case'same':return!0;case'before':D=N.createFromPosition(this),q=N.createFromPosition(L);break;case'after':D=N.createFromPosition(L),q=N.createFromPosition(this);break;default:return!1;}for(var W=D.parent;D.path.length+q.path.length;){if(D.isEqual(q))return!0;if(D.path.length>q.path.length){if(D.offset!==W.maxOffset)return!1;D.path=D.path.slice(0,-1),W=W.parent,D.offset++}else{if(0!==q.offset)return!1;q.path=q.path.slice(0,-1)}}}},{key:'_getTransformedByDeletion',value:function(L,D){var q=N.createFromPosition(this);if(this.root!=L.root)return q;if('same'==(0,S.default)(L.getParentPath(),this.getParentPath())){if(L.offsetthis.offset)return null;q.offset-=D}}else if('prefix'==(0,S.default)(L.getParentPath(),this.getParentPath())){var z=L.path.length-1;if(L.offset<=this.path[z]){if(L.offset+D>this.path[z])return null;q.path[z]-=D}}return q}},{key:'_getTransformedByInsertion',value:function(L,D,q){var z=N.createFromPosition(this);if(this.root!=L.root)return z;if('same'==(0,S.default)(L.getParentPath(),this.getParentPath()))(L.offsetN+1;)D=L.maxOffset-F.offset,0!=D&&R.push(new I(F,F.getShiftedBy(D))),F.path=F.path.slice(0,-1),F.offset++,L=L.parent;for(;F.path.length<=this.end.path.length;){var q=this.end.path[F.path.length-1],z=q-F.offset;0!=z&&R.push(new I(F,F.getShiftedBy(z))),F.offset=q,F.path.push(0)}return R}},{key:'getWalker',value:function(){var R=0=V;V++)R=String.fromCharCode(V),I[R.toLowerCase()]=V;for(var N=48;57>=N;N++)I[N-48]=N;for(var F=112;123>=F;F++)I['f'+(F-111)]=F;return I}()},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}function f(C,O,S,T,E){var I=-1,V=C.length;for(S||(S=M.default),E||(E=[]);++IL?0:L,F}},{key:'getLastMatchingPosition',value:function(N){var F=1this.offset-N.offset?'before':'after';var F=this.getAncestors(),L=N.getAncestors(),D=(0,C.default)(F,L),q;switch(D){case 0:return'different';case'prefix':q=F.length-1;break;case'extension':q=L.length-1;break;default:q=D-1;}var z=F[q],W=F[q+1],K=L[q+1];if(z===this.parent){var H=this.offset-K.index;return 0>=H?'before':'after'}if(z===N.parent){var $=W.index-N.offset;return 0>$?'before':'after'}var U=W.index-K.index;return 0>U?'before':'after'}},{key:'nodeAfter',get:function(){return this.parent.is('text')?null:this.parent.getChild(this.offset)||null}},{key:'nodeBefore',get:function(){return this.parent.is('text')?null:this.parent.getChild(this.offset-1)||null}},{key:'isAtStart',get:function(){return 0===this.offset}},{key:'isAtEnd',get:function(){var N=this.parent.is('text')?this.parent.data.length:this.parent.childCount;return this.offset===N}},{key:'root',get:function(){return this.parent.root}},{key:'editableElement',get:function(){for(var N=this.parent;!(N instanceof E.default);)if(N.parent)N=N.parent;else return null;return N}}],[{key:'createAt',value:function(N,F){if(N instanceof V)return this.createFromPosition(N);var L=N;if('end'==F)F=L.is('text')?L.data.length:L.childCount;else{if('before'==F)return this.createBefore(L);if('after'==F)return this.createAfter(L);F||(F=0)}return new V(L,F)}},{key:'createAfter',value:function(N){if(N.is('textProxy'))return new V(N.textNode,N.offsetInText+N.data.length);if(!N.parent)throw new S.default('view-position-after-root: You can not make position after root.',{root:N});return new V(N.parent,N.index+1)}},{key:'createBefore',value:function(N){if(N.is('textProxy'))return new V(N.textNode,N.offsetInText);if(!N.parent)throw new S.default('view-position-before-root: You can not make position before root.',{root:N});return new V(N.parent,N.index)}},{key:'createFromPosition',value:function(N){return new this(N.parent,N.offset)}}]),V}();u.default=I},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f,h){for(var P=-1,w=f.length,M=Array(w);++PK.maxOffset)throw new V.default('move-operation-nodes-do-not-exist: The nodes which should be moved do not exist.');else if(K===H&&$=$&&this.targetPosition.path[G]<$+this.howMany)throw new V.default('move-operation-node-into-itself: Trying to move a range of nodes into one of nodes from that range.')}var J=L.default.move(E.default.createFromPositionAndShift(this.sourcePosition,this.howMany),this.targetPosition);return{sourcePosition:this.sourcePosition,range:J}}},{key:'type',get:function(){return'move'}}],[{key:'fromJSON',value:function(K,H){var $=S.default.fromJSON(K.sourcePosition,H),U=S.default.fromJSON(K.targetPosition,H),G=new this($,K.howMany,U,K.baseVersion);return K.isSticky&&(G.isSticky=!0),G}},{key:'className',get:function(){return'engine.model.operation.MoveOperation'}}]),z}(C.default);u.default=D},function(r,u,d){'use strict';function f(S,T){if(!(S instanceof T))throw new TypeError('Cannot call a class as a function')}function h(S,T){if(!S)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return T&&('object'==typeof T||'function'==typeof T)?T:S}function P(S,T){if('function'!=typeof T&&null!==T)throw new TypeError('Super expression must either be null or a function, not '+typeof T);S.prototype=Object.create(T&&T.prototype,{constructor:{value:S,enumerable:!1,writable:!0,configurable:!0}}),T&&(Object.setPrototypeOf?Object.setPrototypeOf(S,T):S.__proto__=T)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function S(T,E){for(var I=0,V;IH&&(H=this.boundaries.start.offset),K=q.offset-H}var $=q.offset-W.startOffset,U=new O.default(W,$-K,K);return q.offset-=K,this.position=q,h('text',U,D,q,K)}return q.path.pop(),this.position=q,this._visitedParent=z.parent,h('elementStart',z,D,q,1)}}]),F}();u.default=N},function(r,u,d){'use strict';function s(T){return T&&T.__esModule?T:{default:T}}function f(T,E){if(!(T instanceof E))throw new TypeError('Cannot call a class as a function')}function h(T){return T.item.is('attributeElement')||T.item.is('uiElement')}Object.defineProperty(u,'__esModule',{value:!0});var P=function(){function T(E,I){for(var V=0,R;Vh&&(h=-h>M?0:M+h),P=P>M?M:P,0>P&&(P+=M),M=h>P?0:P-h>>>0,h>>>=0;for(var C=Array(M);++w=this._holderElementOffset&&this.sourcePosition.path[0]++}return M(L.prototype.__proto__||Object.getPrototypeOf(L.prototype),'_execute',this).call(this)}},{key:'type',get:function(){return'remove'}},{key:'_holderElementOffset',get:function(){return this.targetPosition.path[0]},set:function(q){this.targetPosition.path[0]=q}}],[{key:'fromJSON',value:function(q,z){var W=T.default.fromJSON(q.sourcePosition,z),K=new L(W,q.howMany,q.baseVersion);return K.targetPosition=T.default.fromJSON(q.targetPosition,z),K._needsHolderElement=q._needsHolderElement,K}},{key:'className',get:function(){return'engine.model.operation.RemoveOperation'}}]),L}(O.default);u.default=N},function(r,u,d){'use strict';function f(E,I){if(!(E instanceof I))throw new TypeError('Cannot call a class as a function')}function h(E,I){if(!E)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return I&&('object'==typeof I||'function'==typeof I)?I:E}function P(E,I){if('function'!=typeof I&&null!==I)throw new TypeError('Super expression must either be null or a function, not '+typeof I);E.prototype=Object.create(I&&I.prototype,{constructor:{value:E,enumerable:!1,writable:!0,configurable:!0}}),I&&(Object.setPrototypeOf?Object.setPrototypeOf(E,I):E.__proto__=I)}function w(){return 0===this.childCount?0:null}Object.defineProperty(u,'__esModule',{value:!0});var M=function(){function E(I,V){for(var R=0,N;R=200){var U=L?null:(0,I.default)(F);if(U)return(0,R.default)(U);K=!1,z=T.default,$=new P.default}else $=L?[]:H;outer:for(;++qS||S>O.offsetSize)throw new w.default('model-textproxy-wrong-offsetintext: Given offsetInText value is incorrect.');if(0>T||S+T>O.offsetSize)throw new w.default('model-textproxy-wrong-length: Given length value is incorrect.');this.data=O.data.substring(S,S+T),this.offsetInText=S}return h(C,[{key:'is',value:function(S){return'textProxy'==S}},{key:'getPath',value:function(){var S=this.textNode.getPath();return 0=200&&(W=R.default,K=!1,L=new P.default(L));outer:for(;++zh;h++)f+=_Mathfloor(65536*(1+Math.random())).toString(16).substring(1);return f}},function(r,u,d){'use strict';function s(T){return T&&T.__esModule?T:{default:T}}function f(T){if(Array.isArray(T)){for(var E=0,I=Array(T.length);E=V&&Ithis._items.length||0>F)throw new C.default('collection-add-item-invalid-index');return this._items.splice(F,0,N),this._itemMap.set(L,N),this.fire('add',N,F),this}},{key:'get',value:function(N){var F;if('string'==typeof N)F=this._itemMap.get(N);else if('number'==typeof N)F=this._items[N];else throw new C.default('collection-get-invalid-arg: Index or id must be given.');return F||null}},{key:'getIndex',value:function(N){var F;return F='string'==typeof N?this._itemMap.get(N):N,this._items.indexOf(F)}},{key:'remove',value:function(N){var q=!1,z=this._idProperty,F,L,D;if('string'==typeof N?(L=N,D=this._itemMap.get(L),q=!D,D&&(F=this._items.indexOf(D))):'number'==typeof N?(F=N,D=this._items[F],q=!D,D&&(L=D[z])):(D=N,L=D[z],F=this._items.indexOf(D),q=-1==F||!this._itemMap.get(L)),q)throw new C.default('collection-remove-404: Item not found.');this._items.splice(F,1),this._itemMap.delete(L);var W=this._bindToInternalToExternalMap.get(D);return this._bindToInternalToExternalMap.delete(D),this._bindToExternalToInternalMap.delete(W),this.fire('remove',D),D}},{key:'map',value:function(N,F){return this._items.map(N,F)}},{key:'find',value:function(N,F){return this._items.find(N,F)}},{key:'filter',value:function(N,F){return this._items.filter(N,F)}},{key:'clear',value:function(){for(this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);this.length;)this.remove(0)}},{key:'bindTo',value:function(N){var F=this;if(this._bindToCollection)throw new C.default('collection-bind-to-rebind: The collection cannot be bound more than once.');return this._bindToCollection=N,{as:function(D){F._setUpBindToBinding(function(q){return new D(q)})},using:function(D){'function'==typeof D?F._setUpBindToBinding(function(q){return D(q)}):F._setUpBindToBinding(function(q){return q[D]})}}}},{key:'_setUpBindToBinding',value:function(N){var F=this,L=this._bindToCollection,D=function(G,J,Z){var Q=L._bindToCollection==F,Y=L._bindToInternalToExternalMap.get(J);if(Q&&Y)F._bindToExternalToInternalMap.set(J,Y),F._bindToInternalToExternalMap.set(Y,J);else{var X=N(J);F._bindToExternalToInternalMap.set(J,X),F._bindToInternalToExternalMap.set(X,J),F.add(X,Z)}},q=!0,z=!1,W;try{for(var K=L[Symbol.iterator](),H,$;!(q=(H=K.next()).done);q=!0)$=H.value,D(null,$)}catch(U){z=!0,W=U}finally{try{!q&&K.return&&K.return()}finally{if(z)throw W}}this.listenTo(L,'add',D),this.listenTo(L,'remove',function(U,G){var J=F._bindToExternalToInternalMap.get(G);J&&F.remove(J)})}},{key:Symbol.iterator,value:function(){return this._items[Symbol.iterator]()}},{key:'length',get:function(){return this._items.length}}]),V}();u.default=I,(0,E.default)(I,w.default)},function(r,u,d){'use strict';function s(N){return N&&N.__esModule?N:{default:N}}function f(N,F){if(!(N instanceof F))throw new TypeError('Cannot call a class as a function')}function h(N){return N['data-ck-expando']||(N['data-ck-expando']=(0,O.default)())}function P(N){return N&&(0,I.default)(N.addEventListener)}Object.defineProperty(u,'__esModule',{value:!0});var w=d(7),M=s(w),C=d(72),O=s(C),S=d(50),T=s(S),E=d(234),I=s(E),V=(0,T.default)({},M.default,{listenTo:function(){for(var F=arguments.length,L=Array(F),D=0;D>>1){for(;R>>1,L=E[F];null!==L&&!(0,O.default)(L)&&(V?L<=I:LD._priority)||!(L._priority=V||0>ae||ee&&oe>=G}function q(){var re=(0,M.default)();return D(re)?z(re):void(Z=setTimeout(q,L(re)))}function z(re){return(clearTimeout(Z),Z=void 0,te&&$)?N(re):($=U=void 0,J)}function H(){var re=(0,M.default)(),ae=D(re);if($=arguments,U=this,Q=re,ae){if(void 0===Z)return F(Q);if(ee)return clearTimeout(Z),Z=setTimeout(q,V),N(Q)}return void 0===Z&&(Z=setTimeout(q,V)),J}var Q=0,Y=0,X=!1,ee=!1,te=!0,$,U,G,J,Z;if('function'!=typeof I)throw new TypeError('Expected a function');return V=(0,O.default)(V)||0,(0,P.default)(R)&&(X=!!R.leading,ee='maxWait'in R,G=ee?_Mathmax((0,O.default)(R.maxWait)||0,V):G,te='trailing'in R?!!R.trailing:te),H.cancel=function(){void 0!==Z&&clearTimeout(Z),Q=Y=0,$=U=Z=void 0},H.flush=function(){return void 0===Z?J:z((0,M.default)())},H}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(41),P=s(h),w=d(15),M=s(w);u.default=function(C,O,S){var T=C?C.length:0;return T?(O=S||void 0===O?1:(0,M.default)(O),(0,P.default)(C,0>O?0:O,T)):[]}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(41),P=s(h),w=d(15),M=s(w);u.default=function(C,O,S){var T=C?C.length:0;return T?(O=S||void 0===O?1:(0,M.default)(O),O=T-O,(0,P.default)(C,0,0>O?0:O)):[]}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return f&&f.length?f[0]:void 0}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(13),P=function(T){return T&&T.__esModule?T:{default:T}}(h),M=Object.prototype,C=M.hasOwnProperty,O=M.toString,S=M.propertyIsEnumerable;u.default=function(T){return(0,P.default)(T)&&C.call(T,'callee')&&(!S.call(T,'callee')||O.call(T)=='[object Arguments]')}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(14),P=function(S){return S&&S.__esModule?S:{default:S}}(h),C=Object.prototype,O=C.toString;u.default=function(S){var T=(0,P.default)(S)?O.call(S):'';return T=='[object Function]'||T=='[object GeneratorFunction]'}},function(r,u,d){'use strict';function s(T){return T&&T.__esModule?T:{default:T}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(12),P=s(h),w=d(51),M=s(w),O=Object.prototype,S=O.toString;u.default=function(T){return'string'==typeof T||!(0,P.default)(T)&&(0,M.default)(T)&&S.call(T)=='[object String]'}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(132),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){return w&&w.length&&M&&M.length?(0,P.default)(w,M):w}},function(r,u,d){'use strict';function s(S){return S&&S.__esModule?S:{default:S}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(193),P=s(h),w=d(27),M=s(w),C=d(100),O=s(C);u.default=function(S,T){if(!(S&&S.length))return[];var E=(0,O.default)(S);return null==T?E:(0,M.default)(E,function(I){return(0,P.default)(T,void 0,I)})}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(C){return(0,P.default)(C)?(0,M.default)(C):new Map(C)};var h=d(99),P=s(h),w=d(273),M=s(w)},function(r,u){'use strict';function h(E,I){E.setCustomProperty(O,I)}function M(){return null}Object.defineProperty(u,'__esModule',{value:!0}),u.isWidget=function(E){return!!E.getCustomProperty(C)},u.toWidget=function(E,I){return I=I||{},E.setAttribute('contenteditable',!1),E.getFillerOffset=M,E.addClass(S),E.setCustomProperty(C,!0),I.label&&h(E,I.label),E},u.setLabel=h,u.getLabel=function(E){var I=E.getCustomProperty(O);return I?'function'==typeof I?I():I:''},u.toWidgetEditable=function(E){return E.setAttribute('contenteditable','true'),E.addClass('ck-editable'),E.on('change:isFocused',function(I,V,R){R?E.addClass('ck-editable_focused'):E.removeClass('ck-editable_focused')}),E};var C=Symbol('isWidget'),O=Symbol('label'),S=u.WIDGET_CLASS_NAME='ck-widget',T=u.WIDGET_SELECTED_CLASS_NAME='ck-widget_selected'},function(r){'use strict';var s='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?function(h){return typeof h}:function(h){return h&&'function'==typeof Symbol&&h.constructor===Symbol&&h!==Symbol.prototype?'symbol':typeof h},f;f=function(){return this}();try{f=f||Function('return this')()||(1,eval)('this')}catch(h){'object'===('undefined'==typeof window?'undefined':s(window))&&(f=window)}r.exports=f},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(w,M,C){if(M.isCollapsed)return C.check({name:'$text',inside:M.getFirstPosition(),attributes:w});var O=M.getRanges(),S=!0,T=!1,E;try{for(var I=O[Symbol.iterator](),V;!(S=(V=I.next()).done);S=!0)for(var R=V.value,N=new P.default({boundaries:R,mergeCharacters:!0}),F=N.position,L=N.next(),D;!L.done;){if(D=L.value.item.name||'$text',C.check({name:D,inside:F,attributes:w}))return!0;F=N.position,L=N.next()}}catch(q){T=!0,E=q}finally{try{!S&&I.return&&I.return()}finally{if(T)throw E}}return!1};var h=d(37),P=function(w){return w&&w.__esModule?w:{default:w}}(h)},function(r,u,d){'use strict';function s(V){return V&&V.__esModule?V:{default:V}}function f(V,R){if(!(V instanceof R))throw new TypeError('Cannot call a class as a function')}function h(V,R){if(!V)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return R&&('object'==typeof R||'function'==typeof R)?R:V}function P(V,R){if('function'!=typeof R&&null!==R)throw new TypeError('Super expression must either be null or a function, not '+typeof R);V.prototype=Object.create(R&&R.prototype,{constructor:{value:V,enumerable:!1,writable:!0,configurable:!0}}),R&&(Object.setPrototypeOf?Object.setPrototypeOf(V,R):V.__proto__=R)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function V(R,N){for(var F=0,L;Foe?0:oe),new I.default(ae,oe)):null}if(0===re){var ne=this.getCorrespondingView(te);if(ne)return new I.default(ne,0)}else{var le=this.getCorrespondingView(te.childNodes[re-1]);if(le&&le.parent)return new I.default(le.parent,le.index+1)}return null}},{key:'getCorrespondingView',value:function(te){return this.isElement(te)?this.getCorrespondingViewElement(te):this.isDocumentFragment(te)?this.getCorrespondingViewDocumentFragment(te):this.isText(te)?this.getCorrespondingViewText(te):null}},{key:'getCorrespondingViewElement',value:function(te){return this._domToViewMapping.get(te)}},{key:'getCorrespondingViewDocumentFragment',value:function(te){return this._domToViewMapping.get(te)}},{key:'getCorrespondingViewText',value:function(te){if((0,W.isInlineFiller)(te))return null;var re=te.previousSibling;if(re){if(!this.isElement(re))return null;var ae=this.getCorrespondingViewElement(re);if(ae){var oe=ae.nextSibling;return oe instanceof O.default?ae.nextSibling:null}}else{var ne=this.getCorrespondingViewElement(te.parentNode);if(ne){var le=ne.getChild(0);return le instanceof O.default?le:null}}return null}},{key:'getCorrespondingDom',value:function(te){return te instanceof T.default?this.getCorrespondingDomElement(te):te instanceof D.default?this.getCorrespondingDomDocumentFragment(te):te instanceof O.default?this.getCorrespondingDomText(te):null}},{key:'getCorrespondingDomElement',value:function(te){return this._viewToDomMapping.get(te)}},{key:'getCorrespondingDomDocumentFragment',value:function(te){return this._viewToDomMapping.get(te)}},{key:'getCorrespondingDomText',value:function(te){var re=te.previousSibling;return re&&this.getCorrespondingDom(re)?this.getCorrespondingDom(re).nextSibling:!re&&te.parent&&this.getCorrespondingDom(te.parent)?this.getCorrespondingDom(te.parent).childNodes[0]:null}},{key:'focus',value:function(te){var re=this.getCorrespondingDomElement(te);if(re&&re.ownerDocument.activeElement!==re){var ae=H.default.window,oe=ae.scrollX,ne=ae.scrollY,le=[];P(re,function(ue){var ie=ue.scrollLeft,de=ue.scrollTop;le.push([ie,de])}),re.focus(),P(re,function(ue){var ie=le.shift(),de=w(ie,2),se=de[0],fe=de[1];ue.scrollLeft=se,ue.scrollTop=fe}),H.default.window.scrollTo(oe,ne)}}},{key:'isText',value:function(te){return te&&te.nodeType==Node.TEXT_NODE}},{key:'isElement',value:function(te){return te&&te.nodeType==Node.ELEMENT_NODE}},{key:'isDocumentFragment',value:function(te){return te&&te.nodeType==Node.DOCUMENT_FRAGMENT_NODE}},{key:'isComment',value:function(te){return te&&te.nodeType==Node.COMMENT_NODE}},{key:'isDomSelectionBackward',value:function(te){if(te.isCollapsed)return!1;var re=document.createRange();re.setStart(te.anchorNode,te.anchorOffset),re.setEnd(te.focusNode,te.focusOffset);var ae=re.collapsed;return re.detach(),ae}},{key:'_processDataFromViewText',value:function(te){var re=this,ae=te.data;if(te.getAncestors().some(function(de){return re.preElements.includes(de.name)}))return ae;var oe=this._getTouchingViewTextNode(te,!1),ne=this._getTouchingViewTextNode(te,!0),le=ae.match(/ *$/)[0],ue=ae.substr(0,ae.length-le.length);if(oe&&' '!=oe.data.charAt(oe.data.length-1)||(ue=ue.replace(/^ /,'\xA0')),ue=ue.replace(/ {2}/g,' \xA0'),0=this.limit&&this._reset(!0)}},{key:'lock',value:function(){this.isLocked=!0}},{key:'unlock',value:function(){this.isLocked=!1}},{key:'destroy',value:function(){this.document.off('change',this._changeCallback),this.document.selection.off('change:range',this._selectionChangeCallback),this.document.selection.off('change:attribute',this._selectionChangeCallback)}},{key:'_onBatch',value:function(S){'transparent'!=S.type&&S!==this._batch&&1>=(0,w.default)(S.getOperations())&&this._reset(!0)}},{key:'_reset',value:function(S){(!this.isLocked||S)&&(this._batch=null,this.size=0)}},{key:'batch',get:function(){return this._batch||(this._batch=this.document.batch()),this._batch}}]),C}();u.default=M},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){var h=f.emitter,P=f.activator,w=f.callback,M=f.contextElement;h.listenTo(document,'mouseup',function(C,O){var S=O.target;P()&&!M.contains(S)&&w()})}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return f.bindTemplate.to(function(h){h.target===f.element&&h.preventDefault()})}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){var h=f.view;h.listenTo(h.element,'submit',function(P,w){w.preventDefault(),h.fire('submit')},{useCapture:!0})}},function(r,u,d){'use strict';function s(E){return E&&E.__esModule?E:{default:E}}function f(E,I){if(!(E instanceof I))throw new TypeError('Cannot call a class as a function')}function h(E,I){if(!E)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return I&&('object'==typeof I||'function'==typeof I)?I:E}function P(E,I){if('function'!=typeof I&&null!==I)throw new TypeError('Super expression must either be null or a function, not '+typeof I);E.prototype=Object.create(I&&I.prototype,{constructor:{value:E,enumerable:!1,writable:!0,configurable:!0}}),I&&(Object.setPrototypeOf?Object.setPrototypeOf(E,I):E.__proto__=I)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function E(I,V){for(var R=0,N;RD?-1:1;I[F+q]&&(I[F]=I[F+q].slice(0)),I[F]||(I[F]=[]),I[F].push(L>D?M:C);for(var z=_Mathmax(L,D),W=z-F;WE;N--)V[N]=w(N);V[E]=w(E),R++}while(V[E]!==T);return I[E].slice(1)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){for(var h=[];f&&f.nodeType!=Node.DOCUMENT_NODE;)h.unshift(f),f=f.parentNode;return h}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return'[object Range]'==Object.prototype.toString.apply(f)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return function(h){return h+f}}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(55),h=s(f),P=d(31),w=s(P),M=(0,h.default)(w.default,'Map');u.default=M},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(55),h=s(f),P=d(31),w=s(P),M=(0,h.default)(w.default,'Set');u.default=M},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var f=d(31),h=function(w){return w&&w.__esModule?w:{default:w}}(f),P=h.default.Uint8Array;u.default=P},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f,h,P){var w=P.length;return 0===w?f.call(h):1===w?f.call(h,P[0]):2===w?f.call(h,P[0],P[1]):3===w?f.call(h,P[0],P[1],P[2]):f.apply(h,P)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f,h,P,w){var M=-1,C=f.length;for(w&&C&&(P=f[++M]);++MF))return!1;var D=R.get(S);if(D)return D==T;var q=-1,z=!0,W=V&1?new P.default:void 0;for(R.set(S,T);++qI)return[];for(var N=0,F=0,L=Array(S(R/I));NT&&(T=_Mathmax(E+T,0)),(0,P.default)(O,S,T)):-1}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(145),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return(0,P.default)(w,1)}},function(r,u,d){'use strict';function s(E){return E&&E.__esModule?E:{default:E}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(27),h=s(f),P=d(129),w=s(P),M=d(137),C=s(M),O=d(8),S=s(O),T=(0,S.default)(function(E){var I=(0,h.default)(E,C.default);return I.length&&I[0]===E[0]?(0,w.default)(I):[]});u.default=T},function(r,u,d){'use strict';function s(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(27),h=s(f),P=d(129),w=s(P),M=d(10),C=s(M),O=d(137),S=s(O),T=d(18),E=s(T),I=d(8),V=s(I),R=(0,V.default)(function(N){var F=(0,E.default)(N),L=(0,h.default)(N,S.default);return F===(0,E.default)(L)?F=void 0:L.pop(),L.length&&L[0]===N[0]?(0,w.default)(L,(0,C.default)(F)):[]});u.default=R},function(r,u,d){'use strict';function s(V){return V&&V.__esModule?V:{default:V}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(27),h=s(f),P=d(129),w=s(P),M=d(137),C=s(M),O=d(18),S=s(O),T=d(8),E=s(T),I=(0,E.default)(function(V){var R=(0,S.default)(V),N=(0,h.default)(V,C.default);return R===(0,S.default)(N)?R=void 0:N.pop(),N.length&&N[0]===V[0]?(0,w.default)(N,void 0,R):[]});u.default=I},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(51),P=s(h),w=d(99),M=s(w);u.default=function(C){return!!C&&1===C.nodeType&&(0,P.default)(C)&&!(0,M.default)(C)}},function(r,u,d){'use strict';function s(L){return L&&L.__esModule?L:{default:L}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(148),P=s(h),w=d(91),M=s(w),C=d(14),O=s(C),S=d(209),T=s(S),E=/[\\^$.*+?()[\]{}|]/g,I=/^\[object .+?Constructor\]$/,V=Object.prototype,R=Function.prototype.toString,N=V.hasOwnProperty,F=RegExp('^'+R.call(N).replace(E,'\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,'$1.*?')+'$');u.default=function(L){if(!(0,O.default)(L))return!1;var D=(0,P.default)(L)||(0,M.default)(L)?F:I;return D.test((0,T.default)(L))}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var f=Array.prototype,h=f.join;u.default=function(P,w){return P?h.call(P,w):''}},function(r,u,d){'use strict';function s(S){return S&&S.__esModule?S:{default:S}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(206),P=s(h),w=d(15),M=s(w);u.default=function(S,T,E){var I=S?S.length:0;if(!I)return-1;var V=I;if(void 0!==E&&(V=(0,M.default)(E),V=(0>V?_Mathmax(I+V,0):_Mathmin(V,I-1))+1),T!==T)return(0,P.default)(S,V,!0);for(;V--;)if(S[V]===T)return V;return-1}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(432),P=s(h),w=d(15),M=s(w);u.default=function(C,O){return C&&C.length?(0,P.default)(C,(0,M.default)(O)):void 0}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(150),h=s(f),P=d(8),w=s(P),M=(0,w.default)(h.default);u.default=M},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(10),P=s(h),w=d(132),M=s(w);u.default=function(C,O,S){return C&&C.length&&O&&O.length?(0,M.default)(C,O,(0,P.default)(S)):C}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(132),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M,C){return w&&w.length&&M&&M.length?(0,P.default)(w,M,void 0,C):w}},function(r,u,d){'use strict';function s(L){return L&&L.__esModule?L:{default:L}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(27),h=s(f),P=d(419),w=s(P),M=d(23),C=s(M),O=d(198),S=s(O),T=d(445),E=s(T),I=d(42),V=s(I),R=d(8),N=s(R),F=(0,N.default)(function(L,D){D=(0,C.default)(D,1);var q=L?L.length:0,z=(0,w.default)(L,D);return(0,S.default)(L,(0,h.default)(D,function(W){return(0,V.default)(W,q)?+W:W}).sort(E.default)),z});u.default=F},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(10),P=s(h),w=d(198),M=s(w);u.default=function(C,O){var S=[];if(!(C&&C.length))return S;var T=-1,E=[],I=C.length;for(O=(0,P.default)(O,3);++TO?0:O)):[]}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(41),P=s(h),w=d(15),M=s(w);u.default=function(C,O,S){var T=C?C.length:0;return T?(O=S||void 0===O?1:(0,M.default)(O),O=T-O,(0,P.default)(C,0>O?0:O,T)):[]}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(10),P=s(h),w=d(88),M=s(w);u.default=function(C,O){return C&&C.length?(0,M.default)(C,(0,P.default)(O,3),!1,!0):[]}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(10),P=s(h),w=d(88),M=s(w);u.default=function(C,O){return C&&C.length?(0,M.default)(C,(0,P.default)(O,3)):[]}},function(r,u,d){'use strict';function s(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(148),P=s(h),w=d(14),M=s(w),C=d(52),O=s(C),S=0/0,T=/^\s+|\s+$/g,E=/^[-+]0x[0-9a-f]+$/i,I=/^0b[01]+$/i,V=/^0o[0-7]+$/i,R=parseInt;u.default=function(N){if('number'==typeof N)return N;if((0,O.default)(N))return S;if((0,M.default)(N)){var F=(0,P.default)(N.valueOf)?N.valueOf():N;N=(0,M.default)(F)?F+'':F}if('string'!=typeof N)return 0===N?N:+N;N=N.replace(T,'');var L=I.test(N);return L||V.test(N)?R(N.slice(2),L?2:8):E.test(N)?S:+N}},function(r,u,d){'use strict';function s(E){return E&&E.__esModule?E:{default:E}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(23),h=s(f),P=d(49),w=s(P),M=d(13),C=s(M),O=d(8),S=s(O),T=(0,S.default)(function(E){return(0,w.default)((0,h.default)(E,1,C.default,!0))});u.default=T},function(r,u,d){'use strict';function s(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(23),h=s(f),P=d(10),w=s(P),M=d(49),C=s(M),O=d(13),S=s(O),T=d(18),E=s(T),I=d(8),V=s(I),R=(0,V.default)(function(N){var F=(0,E.default)(N);return(0,S.default)(F)&&(F=void 0),(0,C.default)((0,h.default)(N,1,S.default,!0),(0,w.default)(F))});u.default=R},function(r,u,d){'use strict';function s(V){return V&&V.__esModule?V:{default:V}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(23),h=s(f),P=d(49),w=s(P),M=d(13),C=s(M),O=d(18),S=s(O),T=d(8),E=s(T),I=(0,E.default)(function(V){var R=(0,S.default)(V);return(0,C.default)(R)&&(R=void 0),(0,w.default)((0,h.default)(V,1,C.default,!0),void 0,R)});u.default=I},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(49),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return w&&w.length?(0,P.default)(w):[]}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(10),P=s(h),w=d(49),M=s(w);u.default=function(C,O){return C&&C.length?(0,M.default)(C,(0,P.default)(O)):[]}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(49),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){return w&&w.length?(0,P.default)(w,void 0,M):[]}},function(r,u,d){'use strict';function s(S){return S&&S.__esModule?S:{default:S}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(70),h=s(f),P=d(13),w=s(P),M=d(8),C=s(M),O=(0,C.default)(function(S,T){return(0,w.default)(S)?(0,h.default)(S,T):[]});u.default=O},function(r,u,d){'use strict';function s(E){return E&&E.__esModule?E:{default:E}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(84),h=s(f),P=d(135),w=s(P),M=d(13),C=s(M),O=d(8),S=s(O),T=(0,S.default)(function(E){return(0,w.default)((0,h.default)(E,C.default))});u.default=T},function(r,u,d){'use strict';function s(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(84),h=s(f),P=d(10),w=s(P),M=d(135),C=s(M),O=d(13),S=s(O),T=d(18),E=s(T),I=d(8),V=s(I),R=(0,V.default)(function(N){var F=(0,E.default)(N);return(0,S.default)(F)&&(F=void 0),(0,C.default)((0,h.default)(N,S.default),(0,w.default)(F))});u.default=R},function(r,u,d){'use strict';function s(V){return V&&V.__esModule?V:{default:V}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(84),h=s(f),P=d(135),w=s(P),M=d(13),C=s(M),O=d(18),S=s(O),T=d(8),E=s(T),I=(0,E.default)(function(V){var R=(0,S.default)(V);return(0,C.default)(R)&&(R=void 0),(0,w.default)((0,h.default)(V,C.default),void 0,R)});u.default=I},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(8),h=s(f),P=d(100),w=s(P),M=(0,h.default)(w.default);u.default=M},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(69),P=s(h),w=d(201),M=s(w);u.default=function(C,O){return(0,M.default)(C||[],O||[],P.default)}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(434),P=s(h),w=d(201),M=s(w);u.default=function(C,O){return(0,M.default)(C||[],O||[],P.default)}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(8),h=s(f),P=d(151),w=s(P),M=(0,h.default)(function(C){var O=C.length,S=1\s$/,'blockQuote')}}],[{key:'pluginName',get:function(){return'autoformat/autoformat'}}]),R}(E.default);u.default=I},function(r,u,d){'use strict';function s(O){return O&&O.__esModule?O:{default:O}}function f(O,S){if(!(O instanceof S))throw new TypeError('Cannot call a class as a function')}Object.defineProperty(u,'__esModule',{value:!0});var h=d(3),P=s(h),w=d(61),M=s(w);u.default=function O(S,T,E){f(this,O);var I;if('function'==typeof E)I=E;else{I=function(N){var F=N.batch;S.execute(E,{batch:F})}}S.document.on('change',function(R,N,F){if('insert'==N){var L=F.range.getItems().next().value;if(L instanceof M.default){var D=L.textNode,q=D.data;if('paragraph'===D.parent.name&&q){var z=T.exec(q);z&&S.document.enqueueChanges(function(){var W=S.document.batch(),K=P.default.createFromParentsAndOffsets(D.parent,0,D.parent,z[0].length);W.remove(K),I({batch:W,match:z})})}}}})}},function(r,u,d){'use strict';function s(S){return S&&S.__esModule?S:{default:S}}function f(S,T){if(!(S instanceof T))throw new TypeError('Cannot call a class as a function')}function h(S){return Array.from(S.getChildren()).reduce(function(T,E){return T+E.data},'')}Object.defineProperty(u,'__esModule',{value:!0});var P=d(112),w=s(P),M=d(102),C=s(M);u.default=function S(T,E,I){var V=this;f(this,S),this.editor=T;var R,N,F,L;E instanceof RegExp?R=E:F=E,'string'==typeof I?N=I:L=I,F=F||function(D){for(var z=[],W=[],q;null!==(q=R.exec(D))&&!(q&&4>q.length);){var K=q,H=K.index,$=K[1],U=K[2],G=K[3];H+=q[0].length-($+U+G).length;var Z=[H,H+$.length],Q=[H+$.length+U.length,H+$.length+U.length+G.length];z.push(Z),z.push(Q),W.push([H+$.length,H+$.length+U.length])}return{remove:z,format:W}},L=L||function(D,q){var z=!0,W=!1,K;try{for(var H=q[Symbol.iterator](),$,U;!(z=($=H.next()).done);z=!0)U=$.value,D.setAttribute(U,N,!0)}catch(G){W=!0,K=G}finally{try{!z&&H.return&&H.return()}finally{if(W)throw K}}},T.document.on('change',function(D,q){if('insert'===q){var z=V.editor.document.selection;if(z.isCollapsed&&z.focus&&z.focus.parent){var W=z.focus.parent,K=h(W).slice(0,z.focus.offset),H=F(K),$=[];H.format.forEach(function(J){void 0===J[0]||void 0===J[1]||$.push(w.default.createFromParentsAndOffsets(W,J[0],W,J[1]))});var U=[];if(H.remove.slice().reverse().forEach(function(J){void 0===J[0]||void 0===J[1]||U.push(w.default.createFromParentsAndOffsets(W,J[0],W,J[1]))}),!!($.length&&U.length)){var G=T.document.batch();T.document.enqueueChanges(function(){var J=(0,C.default)(N,$,T.document.schema);L(G,J);var Z=!0,Q=!1,Y;try{for(var X=U[Symbol.iterator](),ee,te;!(Z=(ee=X.next()).done);Z=!0)te=ee.value,G.remove(te)}catch(re){Q=!0,Y=re}finally{try{!Z&&X.return&&X.return()}finally{if(Q)throw Y}}})}}}})}},function(r,u,d){'use strict';function s(N){return N&&N.__esModule?N:{default:N}}function f(N,F){if(!(N instanceof F))throw new TypeError('Cannot call a class as a function')}function h(N,F){if(!N)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return F&&('object'==typeof F||'function'==typeof F)?F:N}function P(N,F){if('function'!=typeof F&&null!==F)throw new TypeError('Super expression must either be null or a function, not '+typeof F);N.prototype=Object.create(F&&F.prototype,{constructor:{value:N,enumerable:!1,writable:!0,configurable:!0}}),F&&(Object.setPrototypeOf?Object.setPrototypeOf(N,F):N.__proto__=F)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function N(F,L){for(var D=0,q;D(\s+)<\/span>/g,function(h,P){return 1==P.length?' ':P})}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return f=f.replace(//g,'>').replace(/\n\n/g,'

').replace(/\n/g,' ').replace(/^\s/,' ').replace(/\s$/,' ').replace(/\s\s/g,'  '),-1

')&&(f='

'+f+'

'),f}},function(r,u){'use strict';function s(h){var P='';if(h.is('text')||h.is('textProxy'))P=h.data;else if(h.is('img')&&h.hasAttribute('alt'))P=h.getAttribute('alt');else{var w=null,M=!0,C=!1,O;try{for(var S=h.getChildren()[Symbol.iterator](),T;!(M=(T=S.next()).done);M=!0){var E=T.value,I=s(E);w&&(w.is('containerElement')||E.is('containerElement'))&&(f.includes(w.name)||f.includes(E.name)?P+='\n':P+='\n\n'),P+=I,w=E}}catch(V){C=!0,O=V}finally{try{!M&&S.return&&S.return()}finally{if(C)throw O}}}return P}Object.defineProperty(u,'__esModule',{value:!0}),u.default=s;var f=['figcaption','li']},function(r,u,d){'use strict';function f(T,E){if(!(T instanceof E))throw new TypeError('Cannot call a class as a function')}function h(T,E){if(!T)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return E&&('object'==typeof E||'function'==typeof E)?E:T}function P(T,E){if('function'!=typeof E&&null!==E)throw new TypeError('Super expression must either be null or a function, not '+typeof E);T.prototype=Object.create(E&&E.prototype,{constructor:{value:T,enumerable:!1,writable:!0,configurable:!0}}),E&&(Object.setPrototypeOf?Object.setPrototypeOf(T,E):T.__proto__=E)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function T(E,I){for(var V=0,R;Vye.position.offset;return he&&ve?[ye.getReversed(),me.clone()]:ge(me,ye,be)}),pe(Z.default,$.default,function(me,ye,be){return me.position.isEqual(ye.position)?[P()]:ge(me,ye,be)}),pe(Z.default,Y.default,function(me,ye,be){var he=me.position.root==ye.sourcePosition.root&&'same'===(0,ce.default)(me.position.getParentPath(),ye.sourcePosition.getParentPath()),ve=ye.sourcePosition.offset<=me.position.offset&&ye.sourcePosition.offset+ye.howMany>me.position.offset;return he&&ve?[P()]:ge(me,ye,be)}),pe(ee.default,ee.default,function(me,ye,be){var he=me.position.getParentPath(),ve=ye.position.getParentPath();if('same'==(0,ce.default)(he,ve)){if(me.position.offset==ye.position.offset)return[P()];if(me.position.offsetye._cloneOperation.sourcePosition.offset&&ke._cloneOperation.sourcePosition.offset--,[ke]}var Pe=me.clone();return Pe._cloneOperation.position.offset++,Pe._moveOperation.sourcePosition.path[Pe._moveOperation.sourcePosition.path.length-2]++,Pe._moveOperation.targetPosition.path[Pe._moveOperation.targetPosition.path.length-2]++,Pe._moveOperation.sourcePosition.offset=me.position.offset-ye.position.offset,me._cloneOperation instanceof D.default&&ye._cloneOperation instanceof D.default&&me._cloneOperation.sourcePosition.offset>ye._cloneOperation.sourcePosition.offset&&Pe._cloneOperation.sourcePosition.offset--,[Pe]}return ge(me,ye,be)}),pe(ee.default,le.default,function(me,ye,be){return'same'===(0,ce.default)(ye.position.path,me.position.getParentPath())?[P()]:ge(me,ye,be)}),pe(ee.default,oe.default,function(me,ye,be){var he='same'===(0,ce.default)(me.position.getParentPath(),ye.range.start.getParentPath()),ve=ye.range.start.offset=me.position.offset;if(he&&ve)return[P()];if('same'===(0,ce.default)(me.position.getParentPath(),ye.range.end.getShiftedBy(-1).path)){var ke=me.clone(),Pe=T.default.createFromPosition(ye.range.start);Pe.path.push(ye.howMany-1);var we=Pe.getShiftedBy(1);ke._cloneOperation.position=we;var xe=T.default.createFromPosition(Pe);xe.path.push(me.position.offset),ke._moveOperation.sourcePosition=xe;var Me=T.default.createFromPosition(we);return Me.path.push(0),ke._moveOperation.targetPosition=Me,[ke]}return ge(me,ye,be)}),pe(ee.default,K.default,function(me,ye){me=me.clone();var be=new T.default(me.position.root,me.position.path.slice(0,-1));if(me._cloneOperation instanceof F.default){var he=!0,ve=!1,ke;try{for(var Pe=ye.operations[Symbol.iterator](),we,xe;!(he=(we=Pe.next()).done);he=!0)if(xe=we.value,xe.range.containsPosition(be)||xe.range.start.isEqual(be)){null===xe.newValue?me._cloneOperation.nodes.getNode(0).removeAttribute(xe.key):me._cloneOperation.nodes.getNode(0).setAttribute(xe.key,xe.newValue);break}}catch(Me){ve=!0,ke=Me}finally{try{!he&&Pe.return&&Pe.return()}finally{if(ve)throw ke}}}return[me]}),pe(le.default,ee.default,function(me,ye,be){if('same'===(0,ce.default)(me.position.path,ye.position.getParentPath())){var he=[ye.getReversed(),me.clone()];return he[1].operations[1].targetPosition.path[0]++,he}return ge(me,ye,be)}),pe(re.default,K.default,function(me,ye){var be=[me.clone()];return ye.range.containsPosition(me.position)&&be.push(h(me,ye)),be}),pe(oe.default,ee.default,function(me,ye,be){var he='same'===(0,ce.default)(me.range.start.getParentPath(),ye.position.getParentPath()),ve=me.range.start.offset=ye.position.offset;if(he&&ve)return[ye.getReversed(),me.clone()];if('same'===(0,ce.default)(ye.position.getParentPath(),me.range.end.getShiftedBy(-1).path)){var ke=me.clone();return ke._insertOperation.position.offset++,ke._moveOperation.howMany++,ke._moveOperation.targetPosition.path[ke._moveOperation.targetPosition.path.length-2]++,[ke]}return ge(me,ye,be)}),pe(ie.default,ee.default,function(me,ye,be){var he=new T.default(ye.position.root,ye.position.path.slice(0,-1)),ve=ge(me,ye,be);if(me.operations[0].position.isEqual(he)){var ke=me.clone();ke.operations[0].position=me.operations[0].position.getShiftedBy(1),ve.push(ke)}return ve}),pe(ee.default,ie.default,function(me,ye){me=me.clone();var be=new T.default(me.position.root,me.position.path.slice(0,-1));return me._cloneOperation instanceof F.default&&ye.operations[0].position.isEqual(be)&&(me._cloneOperation.nodes.getNode(0).name=ye.operations[0].newName),[me]}),pe(se.default,ee.default,function(me,ye,be){var he=ge(me,ye,be),ve=ye._cloneOperation.position,ke=!0,Pe=!1,we;try{for(var xe=he[Symbol.iterator](),Me;!(ke=(Me=xe.next()).done);ke=!0){var Ce=Me.value,Oe=!0,Se=!1,Ae=void 0;try{for(var Te=Ce.operations[Symbol.iterator](),Ee;!(Oe=(Ee=Te.next()).done);Oe=!0){var Ie=Ee.value,Ve=Ie.sourcePosition.getShiftedBy(Ie.howMany);Ve.isEqual(ve)&&(Ie.howMany+=1)}}catch(Re){Se=!0,Ae=Re}finally{try{!Oe&&Te.return&&Te.return()}finally{if(Se)throw Ae}}}}catch(Re){Pe=!0,we=Re}finally{try{!ke&&xe.return&&xe.return()}finally{if(Pe)throw we}}return he}),pe(ee.default,se.default,function(me,ye,be){ye=ye.clone();var he=me._cloneOperation.position,ve=!0,ke=!1,Pe;try{for(var we=ye.operations[Symbol.iterator](),xe;!(ve=(xe=we.next()).done);ve=!0){var Me=xe.value,Ce=Me.sourcePosition.getShiftedBy(Me.howMany);Ce.isEqual(he)&&(Me.howMany+=1)}}catch(Oe){ke=!0,Pe=Oe}finally{try{!ve&&we.return&&we.return()}finally{if(ke)throw Pe}}return ge(me,ye,be)})},function(r,u,d){'use strict';function s(L){return L&&L.__esModule?L:{default:L}}function f(L,D){if(!(L instanceof D))throw new TypeError('Cannot call a class as a function')}function h(L,D){if(!L)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return D&&('object'==typeof D||'function'==typeof D)?D:L}function P(L,D){if('function'!=typeof D&&null!==D)throw new TypeError('Super expression must either be null or a function, not '+typeof D);L.prototype=Object.create(D&&D.prototype,{constructor:{value:L,enumerable:!1,writable:!0,configurable:!0}}),D&&(Object.setPrototypeOf?Object.setPrototypeOf(L,D):L.__proto__=D)}function w(L,D,q,z){var W=L.document,K=new F,H=new V.default(D,q,z,W.markers,W.version);L.addDelta(K),K.addOperation(H),W.applyOperation(H)}Object.defineProperty(u,'__esModule',{value:!0});var M=function(){function L(D,q){for(var z=0,W;z=E)){N.next=9;break}return N.abrupt('break',13);case 9:return N.next=11,V;case 11:N.next=5;break;case 13:case'end':return N.stop();}},S,this)})},{key:'getDelta',value:function(T){var E=this._historyPoints.get(T);if(void 0===E)return null;var I=[];for(E;ET&&this._historyPoints.set(G,this._historyPoints.get(G)+z)}catch(J){K=!0,H=J}finally{try{!W&&$.return&&$.return()}finally{if(K)throw H}}}}},{key:'_getIndex',value:function(T){var E=this._historyPoints.get(T);if(void 0===E){var I=this._deltas[this._deltas.length-1],V=I.baseVersion+I.operations.length;if(0>T||T>=V)return-1;throw new M.default('model-history-wrong-version: Given base version points to the middle of a delta.')}return E}}]),O}();u.default=C},function(r,u,d){'use strict';function s(Y){return Y&&Y.__esModule?Y:{default:Y}}function f(Y,X){if(!(Y instanceof X))throw new TypeError('Cannot call a class as a function')}function h(Y,X){if(!Y)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return X&&('object'==typeof X||'function'==typeof X)?X:Y}function P(Y,X){if('function'!=typeof X&&null!==X)throw new TypeError('Super expression must either be null or a function, not '+typeof X);Y.prototype=Object.create(X&&X.prototype,{constructor:{value:Y,enumerable:!1,writable:!0,configurable:!0}}),X&&(Object.setPrototypeOf?Object.setPrototypeOf(Y,X):Y.__proto__=X)}function w(Y){return Y instanceof D.default||Y instanceof F.default?Y.getAttributes():null}Object.defineProperty(u,'__esModule',{value:!0});var M=function(){function Y(X,ee){var te=[],re=!0,ae=!1,oe;try{for(var ne=X[Symbol.iterator](),le;!(re=(le=ne.next()).done)&&(te.push(le.value),!(ee&&te.length===ee));re=!0);}catch(ue){ae=!0,oe=ue}finally{try{!re&&ne['return']&&ne['return']()}finally{if(ae)throw oe}}return te}return function(X,ee){if(Array.isArray(X))return X;if(Symbol.iterator in Object(X))return Y(X,ee);throw new TypeError('Invalid attempt to destructure non-iterable instance')}}(),C=function(){function Y(X,ee){for(var te=0,re;te=Y._holderElementOffset&&(Q=Q.clone(),Q.range.start.path[0]++,Q.range.end.path[0]++);var te=M(Q.range.getDifference(X)),re=Q.range.getIntersection(X);return null!==te&&(te.start=te.start._getTransformedByDeletion(Y.sourcePosition,Y.howMany),te.end=te.end._getTransformedByDeletion(Y.sourcePosition,Y.howMany),ee=te._getTransformedByInsertion(Y.getMovedRangeStart(),Y.howMany,!0,!1).reverse()),null!==re&&(re.start=re.start._getCombined(Y.sourcePosition,Y.getMovedRangeStart()),re.end=re.end._getCombined(Y.sourcePosition,Y.getMovedRangeStart()),ee.push(re)),ee.map(function(ae){return new T.default(ae,Q.key,Q.oldValue,Q.newValue,Q.baseVersion)})}},RootAttributeOperation:{InsertOperation:h,AttributeOperation:h,RootAttributeOperation:function(Q,Y,X){return Q.root!==Y.root||Q.key!==Y.key||(Q.newValue===Y.newValue||X)&&Q.newValue!==Y.newValue?[Q.clone()]:[new K.default(Q.baseVersion)]},RenameOperation:h,MarkerOperation:h,MoveOperation:h},RenameOperation:{InsertOperation:function(Q,Y){var X=Q.clone();return X.position=X.position._getTransformedByInsertion(Y.position,Y.nodes.maxOffset,!0),[X]},AttributeOperation:h,RootAttributeOperation:h,RenameOperation:function(Q,Y,X){var ee=Q.clone();if(Q.position.isEqual(Y.position))if(X)ee.oldName=Y.newName;else return[new K.default(Q.baseVersion)];return[ee]},MarkerOperation:h,MoveOperation:function(Q,Y){var X=Q.clone(),ee=X.position.isEqual(Y.sourcePosition);return X.position=X.position._getTransformedByMove(Y.sourcePosition,Y.targetPosition,Y.howMany,!0,ee),[X]}},MarkerOperation:{InsertOperation:function(Q,Y){var X=Q.clone();return X.oldRange&&(X.oldRange=X.oldRange._getTransformedByInsertion(Y.position,Y.nodes.maxOffset,!1,!1)[0]),X.newRange&&(X.newRange=X.newRange._getTransformedByInsertion(Y.position,Y.nodes.maxOffset,!1,!1)[0]),[X]},AttributeOperation:h,RootAttributeOperation:h,RenameOperation:h,MarkerOperation:function(Q,Y,X){var ee=Q.clone();if(Q.name==Y.name)if(X)ee.oldRange=Y.newRange;else return[new K.default(Q.baseVersion)];return[ee]},MoveOperation:function(Q,Y){var X=Q.clone();if(X.oldRange){var ee=X.oldRange._getTransformedByMove(Y.sourcePosition,Y.targetPosition,Y.howMany);X.oldRange=$.default.createFromRanges(ee)}if(X.newRange){var te=X.newRange._getTransformedByMove(Y.sourcePosition,Y.targetPosition,Y.howMany);X.newRange=$.default.createFromRanges(te)}return[X]}},MoveOperation:{InsertOperation:function(Q,Y,X){var ee=$.default.createFromPositionAndShift(Q.sourcePosition,Q.howMany);ee=ee._getTransformedByInsertion(Y.position,Y.nodes.maxOffset,!1,Q.isSticky)[0];var te=new Q.constructor(ee.start,ee.end.offset-ee.start.offset,Q instanceof z.default?Q.baseVersion:Q.targetPosition._getTransformedByInsertion(Y.position,Y.nodes.maxOffset,!X),Q instanceof z.default?void 0:Q.baseVersion);return te.isSticky=Q.isSticky,Q instanceof z.default&&(te._needsHolderElement=Q._needsHolderElement,te._holderElementOffset=Q._holderElementOffset),[te]},AttributeOperation:h,RootAttributeOperation:h,RenameOperation:h,MarkerOperation:h,MoveOperation:function(Q,Y,X){if(w(Q,Y)&&w(Y,Q))return[Y.getReversed()];if(Y instanceof z.default&&Y._needsHolderElement){Q=Q.clone();var ee=Q.sourcePosition.path[0],te=Q.targetPosition.path[0];Q.sourcePosition.root==Y.targetPosition.root&&(ee>Y._holderElementOffset||ee==Y._holderElementOffset)&&Q.sourcePosition.path[0]++,Q.targetPosition.root==Y.targetPosition.root&&(te>Y._holderElementOffset||te==Y._holderElementOffset&&X)&&Q.targetPosition.path[0]++}Q instanceof z.default&&!(Y instanceof z.default)?X=!0:!(Q instanceof z.default)&&Y instanceof z.default&&(X=!1);var re=$.default.createFromPositionAndShift(Q.sourcePosition,Q.howMany),ae=$.default.createFromPositionAndShift(Y.sourcePosition,Y.howMany),oe=[],ne=M(re.getDifference(ae));ne&&(ne.start=ne.start._getTransformedByMove(Y.sourcePosition,Y.targetPosition,Y.howMany,!Q.isSticky,!1),ne.end=ne.end._getTransformedByMove(Y.sourcePosition,Y.targetPosition,Y.howMany,Q.isSticky,!1),oe.push(ne));var le=re.getIntersection(ae),ue=(0,G.default)(Q.sourcePosition.getParentPath(),Y.sourcePosition.getParentPath()),ie=re.containsPosition(Y.targetPosition)||re.start.isEqual(Y.targetPosition)&&Q.isSticky||re.end.isEqual(Y.targetPosition)&&Q.isSticky,de=ae.containsRange(re)&&(ae.containsPosition(Q.targetPosition)||ae.start.isEqual(Q.targetPosition)||ae.end.isEqual(Q.targetPosition));if(null!==le&&('extension'===ue||'same'===ue&&X||de)&&!ie&&(le.start=le.start._getCombined(Y.sourcePosition,Y.getMovedRangeStart()),le.end=le.end._getCombined(Y.sourcePosition,Y.getMovedRangeStart()),ne&&re.start.isBefore(ae.start)?oe.push(le):oe.unshift(le)),0===oe.length)return Q instanceof z.default?(Q=Q.clone(),Q.howMany=0,Q.sourcePosition=Y.targetPosition,[Q]):[new K.default(Q.baseVersion)];var se=Q.targetPosition._getTransformedByMove(Y.sourcePosition,Y.targetPosition,Y.howMany,!X,Y.isSticky||de);return oe.reverse().map(function(fe,ce){var pe=new Q.constructor(fe.start,fe.end.offset-fe.start.offset,Q instanceof z.default?Q.baseVersion:se,Q instanceof z.default?void 0:Q.baseVersion);return pe.isSticky=Q.isSticky,Q instanceof z.default&&(pe._needsHolderElement=Q._needsHolderElement&&0===ce,pe._holderElementOffset=Q._holderElementOffset),pe})}}}},function(r,u,d){'use strict';function f(T,E){if(!(T instanceof E))throw new TypeError('Cannot call a class as a function')}function h(T,E){if(!T)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return E&&('object'==typeof E||'function'==typeof E)?E:T}function P(T,E){if('function'!=typeof E&&null!==E)throw new TypeError('Super expression must either be null or a function, not '+typeof E);T.prototype=Object.create(E&&E.prototype,{constructor:{value:T,enumerable:!1,writable:!0,configurable:!0}}),E&&(Object.setPrototypeOf?Object.setPrototypeOf(T,E):T.__proto__=E)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function T(E,I){for(var V=0,R;VS||S>O.data.length)throw new w.default('view-textproxy-wrong-offsetintext: Given offsetInText value is incorrect.');if(0>T||S+T>O.data.length)throw new w.default('view-textproxy-wrong-length: Given length value is incorrect.');this.data=O.data.substring(S,S+T),this.offsetInText=S}return h(C,[{key:'is',value:function(S){return'textProxy'==S}},{key:'getAncestors',value:function(){for(var S=0be;){he>me.getAttribute('indent')&&(he=me.getAttribute('indent'));var ke=me.getAttribute('indent')-he;ve.push({item:me,indent:ke}),me=me.nextSibling}if(0=he;)ye.getAttribute('type')!=ve&&ye.getAttribute('indent')==he&&me.setAttribute(ye,'type',ve),ye=ye[pe?'previousSibling':'nextSibling']})}function D(ce,pe){var ge='numbered'==ce.getAttribute('type')?'ol':'ul',me=new U.default,ye=new ae.default(ge,null);return ye.appendChildren(me),pe.bindElements(ce,me),me}function q(ce,pe){for(var ge=pe.getNext?'nextSibling':'previousSibling',me=pe.getNext?'nodeAfter':'nodeBefore',ye=!!pe.checkAllSiblings,be=!!pe.sameIndent,he=!!pe.biggerIndent,ve=!!pe.smallerIndent,ke=!!pe.isMapped,Pe=ce instanceof Q.default?ce.getAttribute('indent'):pe.indent,we=ce instanceof Q.default?ce[ge]:ce[me],xe;we&&'listItem'==we.name;){if(xe=we.getAttribute('indent'),be&&Pe==xe||he&&Pexe){if(!ke||pe.mapper.toViewElement(we))return we;we=we[ge];continue}if(!ye)return null;we=we[ge]}return null}function z(ce,pe){return ce&&pe&&('ul'==ce.name||'ol'==ce.name)&&ce.name==pe.name?fe.default.mergeContainers(ne.default.createAfter(ce)):null}function W(ce,pe,ge,me){var ye=pe.parent,be,he=q(ce,{sameIndent:!0,smallerIndent:!0,checkAllSiblings:!0});if(he&&he.getAttribute('indent')==ce.getAttribute('indent')){var ve=ge.toViewElement(he);be=fe.default.breakContainer(ne.default.createAfter(ve))}else he=ce.previousSibling,be=he&&'listItem'==he.name?he.getAttribute('indent')=ge;)ce=ce[me],ce.getAttribute('indent')==ge&&(ye=ce);return ye}Object.defineProperty(u,'__esModule',{value:!0}),u.modelViewInsertion=function(ce,pe,ge,me){if(ge.test(pe.item,'insert')&&ge.test(pe.item,'addAttribute:type')&&ge.test(pe.item,'addAttribute:indent')){ge.consume(pe.item,'insert'),ge.consume(pe.item,'addAttribute:type'),ge.consume(pe.item,'addAttribute:indent');var ye=pe.item,be=D(ye,me.mapper),he=me.mapper.toViewPosition(X.default.createBefore(ye));W(ye,be,me.mapper,he)}},u.modelViewChangeType=function(ce,pe,ge,me){if(ge.consume(pe.item,'changeAttribute:type')){var ye=me.mapper.toViewElement(pe.item);fe.default.breakContainer(ne.default.createBefore(ye)),fe.default.breakContainer(ne.default.createAfter(ye));var be=ye.parent,he='numbered'==pe.attributeNewValue?'ol':'ul';be=fe.default.rename(be,he),z(be,be.nextSibling),z(be.previousSibling,be)}},u.modelViewRemove=function(ce,pe,ge,me){if(ge.consume(pe.item,'remove')){var ye=me.mapper.toViewPosition(pe.sourcePosition),be=ye.nodeAfter.is('li')?ye.nodeAfter:ye.nodeAfter.getChild(0);fe.default.breakContainer(ne.default.createBefore(be)),fe.default.breakContainer(ne.default.createAfter(be));var he=be.parent,ve=he.previousSibling,ke=ue.default.createOn(he);fe.default.remove(ke),ve&&ve.nextSibling&&z(ve,ve.nextSibling),K(pe.item.getAttribute('indent')+1,pe.sourcePosition,ke.start,be,me.mapper),'$graveyard'==pe.item.root.rootName&&me.mapper.unbindModelElement(pe.item)}},u.modelViewChangeIndent=function(ce,pe,ge,me){if(ge.consume(pe.item,'changeAttribute:indent')){var ye=me.mapper.toViewElement(pe.item);fe.default.breakContainer(ne.default.createBefore(ye)),fe.default.breakContainer(ne.default.createAfter(ye));var be=ye.parent,he=be.previousSibling,ve=ue.default.createOn(be);fe.default.remove(ve);var ke;he&&he.nextSibling&&(ke=z(he,he.nextSibling)),ke||(ke=ve.start),K(pe.attributeOldValue+1,pe.range.start,ve.start,ye,me.mapper),W(pe.item,ye,me.mapper,ke)}},u.modelViewSplitOnInsert=function(ce,pe,ge,me){if('listItem'!=pe.item.name){for(var ye=me.mapper.toViewPosition(pe.range.start),be=[];('ul'==ye.parent.name||'ol'==ye.parent.name)&&(ye=fe.default.breakContainer(ye),'li'==ye.parent.name);){var he=ye,ve=ne.default.createAt(ye.parent,'end');if(!he.isEqual(ve)){var ke=fe.default.remove(new ue.default(he,ve));be.push(ke)}ye=ne.default.createAfter(ye.parent)}if(0=V.getAttribute('indent');){if(N.getAttribute('indent')==V.getAttribute('indent'))return N;N=N[R?'nextSibling':'previousSibling']}return null}Object.defineProperty(u,'__esModule',{value:!0});var C=function(){function V(R,N){for(var F=0,L;Fz.getAttribute('indent');)q.push(W),W=W.nextSibling;0>F._indentBy&&(q=q.reverse());var K=!0,H=!1,$;try{for(var U=q[Symbol.iterator](),G;!(K=(G=U.next()).done);K=!0){var J=G.value,Z=J.getAttribute('indent')+F._indentBy;0>Z?D.rename(J,'paragraph'):D.setAttribute(J,'indent',Z)}}catch(ae){H=!0,$=ae}finally{try{!K&&U.return&&U.return()}finally{if(H)throw $}}0>F._indentBy&&(q=q.reverse());var Q=!0,Y=!1,X;try{for(var ee=q[Symbol.iterator](),te,re;!(Q=(te=ee.next()).done);Q=!0)re=te.value,w(re,D)}catch(ae){Y=!0,X=ae}finally{try{!Q&&ee.return&&ee.return()}finally{if(Y)throw X}}})}},{key:'_checkEnabled',value:function(){var F=(0,E.default)(this.editor.document.selection.getSelectedBlocks());if(!F||!F.is('listItem'))return!1;if(0=L;){if(q.getAttribute('indent')==L)return q.getAttribute('type')==D;q=q.previousSibling}return!1}return!0}}]),R}(S.default);u.default=I},function(r,u,d){'use strict';function s(D){return D&&D.__esModule?D:{default:D}}function f(D,q){if(!(D instanceof q))throw new TypeError('Cannot call a class as a function')}function h(D,q){if(!D)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return q&&('object'==typeof q||'function'==typeof q)?q:D}function P(D,q){if('function'!=typeof q&&null!==q)throw new TypeError('Super expression must either be null or a function, not '+typeof q);D.prototype=Object.create(q&&q.prototype,{constructor:{value:D,enumerable:!1,writable:!0,configurable:!0}}),q&&(Object.setPrototypeOf?Object.setPrototypeOf(D,q):D.__proto__=q)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function D(q,z){for(var W=0,K;W=F;)q>D.getAttribute('indent')&&(q=D.getAttribute('indent')),D.getAttribute('indent')==q&&R[N?'unshift':'push'](D),D=D[N?'previousSibling':'nextSibling']}Object.defineProperty(u,'__esModule',{value:!0});var M=function(){function R(N,F){for(var L=0,D;L=G;G++)U.push(G)},function(r,u,d){'use strict';function s(I){return I&&I.__esModule?I:{default:I}}function f(I,V){if(!(I instanceof V))throw new TypeError('Cannot call a class as a function')}function h(I,V){if(!I)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return V&&('object'==typeof V||'function'==typeof V)?V:I}function P(I,V){if('function'!=typeof V&&null!==V)throw new TypeError('Super expression must either be null or a function, not '+typeof V);I.prototype=Object.create(V&&V.prototype,{constructor:{value:I,enumerable:!1,writable:!0,configurable:!0}}),V&&(Object.setPrototypeOf?Object.setPrototypeOf(I,V):I.__proto__=V)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function I(V,R){for(var N=0,F;Nz.top&&this._toolbarRect.height+this.limiterOffsetq&&$():!L&&F?Q>D&&$():Y>q&&Q>=D?$():Y>=q&&Q>D&&$(),Q===K}),z?[W,z]:null}function w(V){var R=V.left,N=V.top,F=O.default.window,L=F.scrollX,D=F.scrollY;return{left:R+L,top:N+D}}Object.defineProperty(u,'__esModule',{value:!0});var M=function(){function V(R,N){var F=[],L=!0,D=!1,q;try{for(var z=R[Symbol.iterator](),W;!(L=(W=z.next()).done)&&(F.push(W.value),!(N&&F.length===N));L=!0);}catch(K){D=!0,q=K}finally{try{!L&&z['return']&&z['return']()}finally{if(D)throw q}}return F}return function(R,N){if(Array.isArray(R))return R;if(Symbol.iterator in Object(R))return V(R,N);throw new TypeError('Invalid attempt to destructure non-iterable instance')}}();u.getOptimalPosition=function(V){var R=V.element,N=V.target,F=V.positions,L=V.limiter,D=V.fitInViewport;'function'==typeof N&&(N=N());var q=(0,I.default)(R.parentElement),z=new T.default(R),W=new T.default(N),K,H;if(!L&&!D){var $=h(F[0],W,z),U=M($,2);H=U[0],K=U[1]}else{var G=L&&new T.default(L).getVisible(),J=D&&T.default.getViewportRect(),Z=P(F,W,z,G,J)||h(F[0],W,z),Q=M(Z,2);H=Q[0],K=Q[1]}var Y=w(K),X=Y.left,ee=Y.top;if(q){var te=w(new T.default(q)),re=O.default.window.getComputedStyle(q);X-=te.left,ee-=te.top,X+=q.scrollLeft,ee+=q.scrollTop,X-=parseInt(re.borderLeftWidth,10),ee-=parseInt(re.borderTopWidth,10)}return{left:X,top:ee,name:H}};var C=d(40),O=s(C),S=d(403),T=s(S),E=d(399),I=s(E)},function(r,u,d){'use strict';function s(V){return V&&V.__esModule?V:{default:V}}function f(V,R){if(!(V instanceof R))throw new TypeError('Cannot call a class as a function')}function h(V,R){var N=!0,F=!1,L;try{for(var D=I[Symbol.iterator](),q,z;!(N=(q=D.next()).done);N=!0)z=q.value,V[z]=R[z]}catch(W){F=!0,L=W}finally{try{!N&&D.return&&D.return()}finally{if(F)throw L}}}Object.defineProperty(u,'__esModule',{value:!0});var P=function(){function V(R,N){for(var F=0,L;FF.width||0>F.height?null:new V(F)}},{key:'getIntersectionArea',value:function(N){var F=this.getIntersection(N);return F?F.getArea():0}},{key:'getArea',value:function(){return this.width*this.height}},{key:'getVisible',value:function(){var N=this._source,F=this.clone();if(N!=M.default.document.body)for(var L=N.parentNode||N.commonAncestorContainer;L&&L!=M.default.document.body;){var D=new V(L),q=F.getIntersection(D);if(q)q.getArea()=h?f:h)),f}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(14),P=function(M){return M&&M.__esModule?M:{default:M}}(h),w=Object.create;u.default=function(M){return(0,P.default)(M)?w(M):{}}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(15),P=s(h),w=d(503),M=s(w);u.default=function(C,O,S,T){var E=C.length;for(S=(0,P.default)(S),0>S&&(S=-S>E?0:E+S),T=void 0===T||T>E?E:(0,P.default)(T),0>T&&(T+=E),T=S>T?0:(0,M.default)(T);SM?C:0,(0,P.default)(M,C)?w[M]:void 0}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(127),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return function(M){return(0,P.default)(M,w)}}},function(r,u,d){'use strict';function s(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(69),P=s(h),w=d(89),M=s(w),C=d(42),O=s(C),S=d(56),T=s(S),E=d(14),I=s(E),V=d(57),R=s(V);u.default=function(N,F,L,D){F=(0,T.default)(F,N)?[F]:(0,M.default)(F);for(var q=-1,z=F.length,K=N,H;null!=K&&++qM||T&&E&&V&&!I&&!R||O&&E&&V||!C&&V||!S)return 1;if(!O&&!T&&!R&&wE?void 0:I,E=1),O=Object(O);++TS)return!1;var T=O.length-1;return S==T?O.pop():M.call(O,S,1),!0}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(86),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){var M=this.__data__,C=(0,P.default)(M,w);return 0>C?void 0:M[C][1]}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(86),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return-1<(0,P.default)(this.__data__,w)}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(86),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){var C=this.__data__,O=(0,P.default)(C,w);return 0>O?C.push([w,M]):C[O][1]=M,this}},function(r,u,d){'use strict';function s(S){return S&&S.__esModule?S:{default:S}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(410),P=s(h),w=d(82),M=s(w),C=d(190),O=s(C);u.default=function(){this.__data__={hash:new P.default,map:new(O.default||M.default),string:new P.default}}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(90),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return(0,P.default)(this,w)['delete'](w)}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(90),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return(0,P.default)(this,w).get(w)}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(90),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return(0,P.default)(this,w).has(w)}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(90),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){return(0,P.default)(this,w).set(w,M),this}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(127),P=s(h),w=d(41),M=s(w);u.default=function(C,O){return 1==O.length?C:(0,P.default)(C,(0,M.default)(O,0,-1))}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0});u.default=function(h){return this.__data__.set(h,'__lodash_hash_undefined__'),this}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return this.__data__.has(f)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){var h=-1,P=Array(f.size);return f.forEach(function(w){P[++h]=[w,w]}),P}},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(82),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(){this.__data__=new P.default}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return this.__data__['delete'](f)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return this.__data__.get(f)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return this.__data__.has(f)}},function(r,u,d){'use strict';function s(O){return O&&O.__esModule?O:{default:O}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(82),P=s(h),w=d(122),M=s(w);u.default=function(O,S){var T=this.__data__;return T instanceof P.default&&T.__data__.length==200&&(T=this.__data__=new M.default(T.__data__)),T.set(O,S),this}},function(r,u,d){'use strict';function s(S){return S&&S.__esModule?S:{default:S}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(497),h=s(f),P=d(505),w=s(P),M=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,C=/\\(\\)?/g,O=(0,h.default)(function(S){var T=[];return(0,w.default)(S).replace(M,function(E,I,V,R){T.push(V?R.replace(C,'$1'):I||E)}),T});u.default=O},function(r,u,d){'use strict';function s(Jt){return Jt&&Jt.__esModule?Jt:{default:Jt}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(210),h=s(f),P=d(211),w=s(P),M=d(212),C=s(M),O=d(213),S=s(O),T=d(214),E=s(T),I=d(215),V=s(I),R=d(144),N=s(R),F=d(145),L=s(F),D=d(216),q=s(D),z=d(217),W=s(z),K=d(218),H=s(K),$=d(219),U=s($),G=d(220),J=s(G),Z=d(221),Q=s(Z),Y=d(222),X=s(Y),ee=d(223),te=s(ee),re=d(224),ae=s(re),oe=d(225),ne=s(oe),le=d(146),ue=s(le),ie=d(228),de=s(ie),se=d(229),fe=s(se),ce=d(230),pe=s(ce),ge=d(231),me=s(ge),ye=d(232),be=s(ye),he=d(235),ve=s(he),ke=d(18),Pe=s(ke),we=d(236),xe=s(we),Me=d(237),Ce=s(Me),Oe=d(238),Se=s(Oe),Ae=d(150),Te=s(Ae),Ee=d(239),Ie=s(Ee),Ve=d(240),Re=s(Ve),Ne=d(241),Fe=s(Ne),Le=d(242),Be=s(Le),De=d(243),je=s(De),qe=d(244),ze=s(qe),We=d(245),Ke=s(We),He=d(246),$e=s(He),Ue=d(247),Ge=s(Ue),Je=d(248),Ze=s(Je),Qe=d(249),Ye=s(Qe),Xe=d(250),et=s(Xe),tt=d(251),rt=s(tt),at=d(252),nt=s(at),lt=d(253),ut=s(lt),it=d(254),dt=s(it),st=d(255),ft=s(st),ct=d(256),pt=s(ct),gt=d(257),mt=s(gt),yt=d(259),bt=s(yt),ht=d(260),vt=s(ht),kt=d(261),Pt=s(kt),wt=d(262),xt=s(wt),Mt=d(263),Ct=s(Mt),Ot=d(264),St=s(Ot),At=d(100),Tt=s(At),Et=d(151),It=s(Et),Vt=d(265),Rt=s(Vt),Nt=d(266),Ft=s(Nt),Lt=d(267),Bt=s(Lt),Dt=d(268),jt=s(Dt),qt=d(269),zt=s(qt),Wt=d(270),Kt=s(Wt),Ht=d(271),$t=s(Ht),Ut=d(272),Gt=s(Ut);u.default={chunk:h.default,compact:w.default,concat:C.default,difference:S.default,differenceBy:E.default,differenceWith:V.default,drop:N.default,dropRight:L.default,dropRightWhile:q.default,dropWhile:W.default,fill:H.default,findIndex:U.default,findLastIndex:J.default,first:Q.default,flatten:X.default,flattenDeep:te.default,flattenDepth:ae.default,fromPairs:ne.default,head:ue.default,indexOf:de.default,initial:fe.default,intersection:pe.default,intersectionBy:me.default,intersectionWith:be.default,join:ve.default,last:Pe.default,lastIndexOf:xe.default,nth:Ce.default,pull:Se.default,pullAll:Te.default,pullAllBy:Ie.default,pullAllWith:Re.default,pullAt:Fe.default,remove:Be.default,reverse:je.default,slice:ze.default,sortedIndex:Ke.default,sortedIndexBy:$e.default,sortedIndexOf:Ge.default,sortedLastIndex:Ze.default,sortedLastIndexBy:Ye.default,sortedLastIndexOf:et.default,sortedUniq:rt.default,sortedUniqBy:nt.default,tail:ut.default,take:dt.default,takeRight:ft.default,takeRightWhile:pt.default,takeWhile:mt.default,union:bt.default,unionBy:vt.default,unionWith:Pt.default,uniq:xt.default,uniqBy:Ct.default,uniqWith:St.default,unzip:Tt.default,unzipWith:It.default,without:Rt.default,xor:Ft.default,xorBy:Bt.default,xorWith:jt.default,zip:zt.default,zipObject:Kt.default,zipObjectDeep:$t.default,zipWith:Gt.default}},function(r,u,d){'use strict';function s(Le){return Le&&Le.__esModule?Le:{default:Le}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(210);Object.defineProperty(u,'chunk',{enumerable:!0,get:function(){return s(f).default}});var h=d(211);Object.defineProperty(u,'compact',{enumerable:!0,get:function(){return s(h).default}});var P=d(212);Object.defineProperty(u,'concat',{enumerable:!0,get:function(){return s(P).default}});var w=d(213);Object.defineProperty(u,'difference',{enumerable:!0,get:function(){return s(w).default}});var M=d(214);Object.defineProperty(u,'differenceBy',{enumerable:!0,get:function(){return s(M).default}});var C=d(215);Object.defineProperty(u,'differenceWith',{enumerable:!0,get:function(){return s(C).default}});var O=d(144);Object.defineProperty(u,'drop',{enumerable:!0,get:function(){return s(O).default}});var S=d(145);Object.defineProperty(u,'dropRight',{enumerable:!0,get:function(){return s(S).default}});var T=d(216);Object.defineProperty(u,'dropRightWhile',{enumerable:!0,get:function(){return s(T).default}});var E=d(217);Object.defineProperty(u,'dropWhile',{enumerable:!0,get:function(){return s(E).default}});var I=d(218);Object.defineProperty(u,'fill',{enumerable:!0,get:function(){return s(I).default}});var V=d(219);Object.defineProperty(u,'findIndex',{enumerable:!0,get:function(){return s(V).default}});var R=d(220);Object.defineProperty(u,'findLastIndex',{enumerable:!0,get:function(){return s(R).default}});var N=d(221);Object.defineProperty(u,'first',{enumerable:!0,get:function(){return s(N).default}});var F=d(222);Object.defineProperty(u,'flatten',{enumerable:!0,get:function(){return s(F).default}});var L=d(223);Object.defineProperty(u,'flattenDeep',{enumerable:!0,get:function(){return s(L).default}});var D=d(224);Object.defineProperty(u,'flattenDepth',{enumerable:!0,get:function(){return s(D).default}});var q=d(225);Object.defineProperty(u,'fromPairs',{enumerable:!0,get:function(){return s(q).default}});var z=d(146);Object.defineProperty(u,'head',{enumerable:!0,get:function(){return s(z).default}});var W=d(228);Object.defineProperty(u,'indexOf',{enumerable:!0,get:function(){return s(W).default}});var K=d(229);Object.defineProperty(u,'initial',{enumerable:!0,get:function(){return s(K).default}});var H=d(230);Object.defineProperty(u,'intersection',{enumerable:!0,get:function(){return s(H).default}});var $=d(231);Object.defineProperty(u,'intersectionBy',{enumerable:!0,get:function(){return s($).default}});var U=d(232);Object.defineProperty(u,'intersectionWith',{enumerable:!0,get:function(){return s(U).default}});var G=d(235);Object.defineProperty(u,'join',{enumerable:!0,get:function(){return s(G).default}});var J=d(18);Object.defineProperty(u,'last',{enumerable:!0,get:function(){return s(J).default}});var Z=d(236);Object.defineProperty(u,'lastIndexOf',{enumerable:!0,get:function(){return s(Z).default}});var Q=d(237);Object.defineProperty(u,'nth',{enumerable:!0,get:function(){return s(Q).default}});var Y=d(238);Object.defineProperty(u,'pull',{enumerable:!0,get:function(){return s(Y).default}});var X=d(150);Object.defineProperty(u,'pullAll',{enumerable:!0,get:function(){return s(X).default}});var ee=d(239);Object.defineProperty(u,'pullAllBy',{enumerable:!0,get:function(){return s(ee).default}});var te=d(240);Object.defineProperty(u,'pullAllWith',{enumerable:!0,get:function(){return s(te).default}});var re=d(241);Object.defineProperty(u,'pullAt',{enumerable:!0,get:function(){return s(re).default}});var ae=d(242);Object.defineProperty(u,'remove',{enumerable:!0,get:function(){return s(ae).default}});var oe=d(243);Object.defineProperty(u,'reverse',{enumerable:!0,get:function(){return s(oe).default}});var ne=d(244);Object.defineProperty(u,'slice',{enumerable:!0,get:function(){return s(ne).default}});var le=d(245);Object.defineProperty(u,'sortedIndex',{enumerable:!0,get:function(){return s(le).default}});var ue=d(246);Object.defineProperty(u,'sortedIndexBy',{enumerable:!0,get:function(){return s(ue).default}});var ie=d(247);Object.defineProperty(u,'sortedIndexOf',{enumerable:!0,get:function(){return s(ie).default}});var de=d(248);Object.defineProperty(u,'sortedLastIndex',{enumerable:!0,get:function(){return s(de).default}});var se=d(249);Object.defineProperty(u,'sortedLastIndexBy',{enumerable:!0,get:function(){return s(se).default}});var fe=d(250);Object.defineProperty(u,'sortedLastIndexOf',{enumerable:!0,get:function(){return s(fe).default}});var ce=d(251);Object.defineProperty(u,'sortedUniq',{enumerable:!0,get:function(){return s(ce).default}});var pe=d(252);Object.defineProperty(u,'sortedUniqBy',{enumerable:!0,get:function(){return s(pe).default}});var ge=d(253);Object.defineProperty(u,'tail',{enumerable:!0,get:function(){return s(ge).default}});var me=d(254);Object.defineProperty(u,'take',{enumerable:!0,get:function(){return s(me).default}});var ye=d(255);Object.defineProperty(u,'takeRight',{enumerable:!0,get:function(){return s(ye).default}});var be=d(256);Object.defineProperty(u,'takeRightWhile',{enumerable:!0,get:function(){return s(be).default}});var he=d(257);Object.defineProperty(u,'takeWhile',{enumerable:!0,get:function(){return s(he).default}});var ve=d(259);Object.defineProperty(u,'union',{enumerable:!0,get:function(){return s(ve).default}});var ke=d(260);Object.defineProperty(u,'unionBy',{enumerable:!0,get:function(){return s(ke).default}});var Pe=d(261);Object.defineProperty(u,'unionWith',{enumerable:!0,get:function(){return s(Pe).default}});var we=d(262);Object.defineProperty(u,'uniq',{enumerable:!0,get:function(){return s(we).default}});var xe=d(263);Object.defineProperty(u,'uniqBy',{enumerable:!0,get:function(){return s(xe).default}});var Me=d(264);Object.defineProperty(u,'uniqWith',{enumerable:!0,get:function(){return s(Me).default}});var Ce=d(100);Object.defineProperty(u,'unzip',{enumerable:!0,get:function(){return s(Ce).default}});var Oe=d(151);Object.defineProperty(u,'unzipWith',{enumerable:!0,get:function(){return s(Oe).default}});var Se=d(265);Object.defineProperty(u,'without',{enumerable:!0,get:function(){return s(Se).default}});var Ae=d(266);Object.defineProperty(u,'xor',{enumerable:!0,get:function(){return s(Ae).default}});var Te=d(267);Object.defineProperty(u,'xorBy',{enumerable:!0,get:function(){return s(Te).default}});var Ee=d(268);Object.defineProperty(u,'xorWith',{enumerable:!0,get:function(){return s(Ee).default}});var Ie=d(269);Object.defineProperty(u,'zip',{enumerable:!0,get:function(){return s(Ie).default}});var Ve=d(270);Object.defineProperty(u,'zipObject',{enumerable:!0,get:function(){return s(Ve).default}});var Re=d(271);Object.defineProperty(u,'zipObjectDeep',{enumerable:!0,get:function(){return s(Re).default}});var Ne=d(272);Object.defineProperty(u,'zipWith',{enumerable:!0,get:function(){return s(Ne).default}});var Fe=d(487);Object.defineProperty(u,'default',{enumerable:!0,get:function(){return s(Fe).default}})},function(r,u,d){'use strict';function s(D){return D&&D.__esModule?D:{default:D}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(69),h=s(f),P=d(139),w=s(P),M=d(447),C=s(M),O=d(97),S=s(O),T=d(93),E=s(T),I=d(496),V=s(I),R=Object.prototype,N=R.propertyIsEnumerable,F=!N.call({valueOf:1},'valueOf'),L=(0,C.default)(function(D,q){if(F||(0,E.default)(q)||(0,S.default)(q))return void(0,w.default)(q,(0,V.default)(q),D);for(var z in q)(0,h.default)(D,z,q[z])});u.default=L},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(195),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){return(0,P.default)(w,!0,!0,M)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return function(){return f}}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(424),P=s(h),w=d(455),M=s(w);u.default=function(C,O){return null!=C&&(0,M.default)(C,O,P.default)}},function(r,u,d){'use strict';(function(s){function f(R){return R&&R.__esModule?R:{default:R}}Object.defineProperty(u,'__esModule',{value:!0});var h='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?function(R){return typeof R}:function(R){return R&&'function'==typeof Symbol&&R.constructor===Symbol&&R!==Symbol.prototype?'symbol':typeof R},P=d(491),w=f(P),M=d(31),C=f(M),O={'function':!0,object:!0},S=O[h(u)]&&u&&!u.nodeType?u:void 0,T=O[h(s)]&&s&&!s.nodeType?s:void 0,E=T&&T.exports===S?S:void 0,I=E?C.default.Buffer:void 0,V=I?function(R){return R instanceof I}:(0,w.default)(!1);u.default=V}).call(u,d(101)(r))},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(130),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){return(0,P.default)(w,M)}},function(r,u,d){'use strict';function s(re){return re&&re.__esModule?re:{default:re}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(98),P=s(h),w=d(51),M=s(w),X={};X['[object Float32Array]']=X['[object Float64Array]']=X['[object Int8Array]']=X['[object Int16Array]']=X['[object Int32Array]']=X['[object Uint8Array]']=X['[object Uint8ClampedArray]']=X['[object Uint16Array]']=X['[object Uint32Array]']=!0,X['[object Arguments]']=X['[object Array]']=X['[object ArrayBuffer]']=X['[object Boolean]']=X['[object DataView]']=X['[object Date]']=X['[object Error]']=X['[object Function]']=X['[object Map]']=X['[object Number]']=X['[object Object]']=X['[object RegExp]']=X['[object Set]']=X['[object String]']=X['[object WeakMap]']=!1;var ee=Object.prototype,te=ee.toString;u.default=function(re){return(0,M.default)(re)&&(0,P.default)(re.length)&&!!X[te.call(re)]}},function(r,u,d){'use strict';function s(V){return V&&V.__esModule?V:{default:V}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(429),P=s(h),w=d(205),M=s(w),C=d(42),O=s(C),S=d(93),T=s(S),E=Object.prototype,I=E.hasOwnProperty;u.default=function(V){for(var R=-1,N=(0,T.default)(V),F=(0,P.default)(V),L=F.length,D=(0,M.default)(V),z=D||[],W=z.length,K;++RC?-1:1;return O*1.7976931348623157e308}return C===C?C:0}},function(r,u,d){'use strict';function s(O){return O&&O.__esModule?O:{default:O}}Object.defineProperty(u,'__esModule',{value:!0});var h=d(420),P=s(h),w=d(15),M=s(w);u.default=function(O){return O?(0,P.default)((0,M.default)(O),0,4294967295):0}},function(r,u,d){'use strict';function s(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=d(449),h=s(f),P=d(71),w=s(P),M=(0,h.default)(w.default);u.default=M},function(r,u,d){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=d(436),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return null==w?'':(0,P.default)(w)}},function(r,u,d){'use strict';function s(w,M){if(!(w instanceof M))throw new TypeError('Cannot call a class as a function')}Object.defineProperty(u,'__esModule',{value:!0});var f=function(){function w(M,C){for(var O=0,S;O*{margin-right:.4em}.ck-toolbar>:last-child{margin-right:0}.ck-toolbar-container .ck-toolbar{border:0}.ck-dropdown:after{border-style:solid;border-width:.4em .4em 0;border-color:#707070 transparent;right:.8em}.ck-dropdown .ck-button.ck-dropdown__button{padding-right:1.6em}.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled{background:#fff;border-color:#d9d9d9}.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled:not(.ck-disabled):focus,.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled:not(.ck-disabled):hover{background:#fff;border-color:#bfbfbf}.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled:not(.ck-disabled):active{background:#f2f2f2;border-color:#b3b3b3;box-shadow:inset 0 2px 2px #d9d9d9}.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:.5}.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{width:7em;overflow:hidden;text-overflow:ellipsis}.ck-dropdown__panel{border:1px solid #b9b9b9;bottom:1px;background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.2)}.ck-dropdown__panel.ck-rounded-corners,.ck-rounded-corners .ck-dropdown__panel{border-radius:2px}.ck-list{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;list-style-type:none;background:#fff}.ck-list.ck-rounded-corners,.ck-rounded-corners .ck-list{border-radius:2px}.ck-list__item{padding:.64em;cursor:default;min-width:12em}.ck-list__item:focus,.ck-list__item:hover{background:#f7f7f7}.ck-list__item:focus{box-shadow:0 0 3px 2px #9bcdfb;position:relative;z-index:1;outline:none}.ck-list__item:last-of-type{border:none}.ck-list__item_active{background:#1a8bf1;color:#fff}.ck-list__item_active:focus,.ck-list__item_active:hover{background:#0e7ee2}.ck-label{font-weight:700}.ck-input-text{box-shadow:inset 2px 2px 3px #e6e6e6;border:1px solid #b9b9b9;padding:.64em;min-width:250px}.ck-input-text.ck-rounded-corners,.ck-rounded-corners .ck-input-text{border-radius:2px}.ck-input-text:focus{outline:none;border:1px solid #6ab5f9;box-shadow:0 0 3px 2px #9bcdfb,inset 2px 2px 3px #e6e6e6}.ck-balloon-panel{box-shadow:0 1px 2px 0 rgba(0,0,0,.2);min-height:15px;background:#fff;border:1px solid #b9b9b9}.ck-balloon-panel.ck-rounded-corners,.ck-rounded-corners .ck-balloon-panel{border-radius:2px}.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck-balloon-panel.ck-balloon-panel_with-arrow:before{width:0;height:0;border-style:solid}.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck-balloon-panel.ck-balloon-panel_arrow_n:before,.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck-balloon-panel.ck-balloon-panel_arrow_ne:before,.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{border-width:0 10px 15px}.ck-balloon-panel.ck-balloon-panel_arrow_n:before,.ck-balloon-panel.ck-balloon-panel_arrow_ne:before,.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{border-color:transparent transparent #b9b9b9}.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck-balloon-panel.ck-balloon-panel_arrow_nw:after{border-color:transparent transparent #fff;margin-top:2px}.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck-balloon-panel.ck-balloon-panel_arrow_s:before,.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck-balloon-panel.ck-balloon-panel_arrow_se:before,.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{border-width:15px 10px 0}.ck-balloon-panel.ck-balloon-panel_arrow_s:before,.ck-balloon-panel.ck-balloon-panel_arrow_se:before,.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{border-color:#b9b9b9 transparent transparent}.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck-balloon-panel.ck-balloon-panel_arrow_sw:after{border-color:#fff transparent transparent;margin-bottom:2px}.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:-10px;top:-15px}.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{left:20px;top:-15px}.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{right:20px;top:-15px}.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck-balloon-panel.ck-balloon-panel_arrow_s:before{left:50%;margin-left:-10px;bottom:-15px}.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck-balloon-panel.ck-balloon-panel_arrow_se:before{left:20px;bottom:-15px}.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{right:20px;bottom:-15px}.ck-editor-toolbar{border-radius:0}.ck-editor-toolbar .ck-button{border-width:0}.ck-editor-toolbar .ck-button.ck-disabled,.ck-editor-toolbar .ck-button:not(:hover):not(:focus):not(.ck-on){background:#f7f7f7}.ck-editor-toolbar .ck-button.ck-on{background:#dedede;border-color:#a1a1a1}.ck-editor-toolbar .ck-button.ck-on:not(.ck-disabled):focus,.ck-editor-toolbar .ck-button.ck-on:not(.ck-disabled):hover{background:#c6c6c6;border-color:#888}.ck-editor-toolbar .ck-button.ck-on:not(.ck-disabled):active{background:#b9b9b9;border-color:#7c7c7c;box-shadow:inset 0 2px 2px #a1a1a1}.ck-editor-toolbar .ck-dropdown__button{border-width:1px}.ck-editor-toolbar .ck-dropdown__button:not(:hover):not(:focus):not(.ck-on){background:#fff}.ck-toolbar-container .ck-editor-toolbar{background:#f7f7f7}.ck-editor-toolbar-container.ck-balloon-panel_arrow_n:after,.ck-editor-toolbar-container.ck-balloon-panel_arrow_ne:after,.ck-editor-toolbar-container.ck-balloon-panel_arrow_nw:after{border-bottom-color:#f7f7f7}.ck-editor-toolbar-container.ck-balloon-panel_arrow_s:after,.ck-editor-toolbar-container.ck-balloon-panel_arrow_se:after,.ck-editor-toolbar-container.ck-balloon-panel_arrow_sw:after{border-top-color:#f7f7f7}.ck-editor .ck-toolbar.ck-toolbar_sticky{box-shadow:0 1px 2px 0 rgba(0,0,0,.2);border:1px solid #bfbfbf;border-width:0 0 1px;background:#f7f7f7}.ck-editor{position:relative}.ck-editor.ck-rounded-corners,.ck-rounded-corners .ck-editor{border-radius:2px}.ck-editor .ck-editor__top .ck-toolbar{border-top:0;border-left:0;border-right:0}.ck-editor .ck-editor__main{background:#fff}.ck-editor .ck-editor__bottom{border-bottom:0;border-left:0;border-right:0;padding:.8em}.ck-editor .ck-editor__editable.ck-focused{outline:1px solid #6ab5f9;box-shadow:inset 2px 2px 3px #e6e6e6}.ck-editor .ck-editor__editable_inline{overflow:auto;padding:0 .8em}.ck-editor,.ck-editor-bottom{background:#f7f7f7;border:1px solid #b9b9b9}',''])},function(r,u,d){u=r.exports=d(28)(void 0),u.push([r.i,'.ck-placeholder:before{content:attr(data-placeholder);cursor:text;color:#c2c2c2}',''])},function(r,u,d){u=r.exports=d(28)(void 0),u.push([r.i,'.ck-heading_heading1{font-size:1.5em}.ck-heading_heading2{font-size:1.3em}.ck-heading_heading3{font-size:1.1em}[class*=ck-heading_]{line-height:21.6px;padding:9.6px}[class*=ck-heading_heading]{font-weight:700}.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}',''])},function(r,u,d){u=r.exports=d(28)(void 0),u.push([r.i,'.ck-editor__editable .image>figcaption{background-color:#f7f7f7;padding:.8em;font-size:.75rem;color:#858585;outline-offset:-1px}',''])},function(r,u,d){u=r.exports=d(28)(void 0),u.push([r.i,'.cke-text-alternative-form{padding:1.2em;overflow:hidden}.cke-text-alternative-form .ck-label{margin-bottom:.4em}.cke-text-alternative-form__actions{clear:both;padding-top:1.2em}.cke-text-alternative-form__actions .ck-button{float:right}.cke-text-alternative-form__actions .ck-button+.ck-button{margin-right:.64em}.cke-text-alternative-form__actions .ck-button+.ck-button+.ck-button{float:left}',''])},function(r,u,d){u=r.exports=d(28)(void 0),u.push([r.i,'.ck-editor__editable .image{text-align:center;clear:both}.ck-editor__editable .image.image-style-side{float:right;margin-left:.8em;max-width:50%}.ck-editor__editable .image>img{display:block;margin:0 auto;max-width:100%}',''])},function(r,u,d){u=r.exports=d(28)(void 0),u.push([r.i,'.ck-link-form{padding:1.2em;overflow:hidden}.ck-link-form:focus{outline:none}.ck-link-form .ck-label{margin-bottom:.4em}.ck-link-form__actions{clear:both;padding-top:1.2em}.ck-link-form__actions .ck-button{float:right}.ck-link-form__actions .ck-button+.ck-button{margin-right:.64em}.ck-link-form__actions .ck-button+.ck-button+.ck-button{float:left}',''])},function(r,u,d){u=r.exports=d(28)(void 0),u.push([r.i,'.ck-widget{margin:.8em 0;padding:0}.ck-widget.ck-widget_selected,.ck-widget.ck-widget_selected:hover{outline:3px solid #6ab5f9}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected{outline:3px solid #ddd}.ck-widget:hover{outline:3px solid #ffd25c}.ck-widget .ck-editable.ck-editable_focused,.ck-widget .ck-editable:focus{outline:1px solid #6ab5f9;box-shadow:inset 2px 2px 3px #e6e6e6;background-color:#fff}',''])},function(r){r.exports='\n\n \n bold\n Created with Sketch.\n \n \n \n \n \n \n \n \n'},function(r){r.exports='\n\n \n italic\n Created with Sketch.\n \n \n \n \n \n \n \n \n'},function(r){r.exports='\n'},function(r){r.exports='\n'},function(r){r.exports='\n'},function(r){r.exports='\n\n \n quote\n Created with Sketch.\n \n \n \n \n \n \n \n \n'},function(r){r.exports='\n\n \n link\n Created with Sketch.\n \n \n \n \n \n \n \n \n \n \n \n'},function(r){r.exports='\n\n \n unlink\n Created with Sketch.\n \n \n \n \n \n \n \n \n \n \n \n'},function(r){r.exports='\n\n \n bulletedlist\n Created with Sketch.\n \n \n \n \n \n \n \n \n'},function(r){r.exports='\n\n \n numberedlist\n Created with Sketch.\n \n \n \n \n \n \n \n \n \n \n \n \n \n'},function(r){r.exports='\n\n \n redo\n Created with Sketch.\n \n \n \n \n \n \n \n \n'},function(r){r.exports='\n\n \n undo\n Created with Sketch.\n \n \n \n \n \n \n \n \n'},function(r,u,d){var s=d(512);'string'==typeof s&&(s=[[r.i,s,'']]);d(33)(s,{});s.locals&&(r.exports=s.locals),!1},function(r,u,d){var s=d(513);'string'==typeof s&&(s=[[r.i,s,'']]);d(33)(s,{});s.locals&&(r.exports=s.locals),!1},function(r,u,d){var s=d(514);'string'==typeof s&&(s=[[r.i,s,'']]);d(33)(s,{});s.locals&&(r.exports=s.locals),!1},function(r,u,d){var s=d(515);'string'==typeof s&&(s=[[r.i,s,'']]);d(33)(s,{});s.locals&&(r.exports=s.locals),!1},function(r,u,d){var s=d(516);'string'==typeof s&&(s=[[r.i,s,'']]);d(33)(s,{});s.locals&&(r.exports=s.locals),!1},function(r,u,d){var s=d(517);'string'==typeof s&&(s=[[r.i,s,'']]);d(33)(s,{});s.locals&&(r.exports=s.locals),!1},function(r,u,d){var s=d(518);'string'==typeof s&&(s=[[r.i,s,'']]);d(33)(s,{});s.locals&&(r.exports=s.locals),!1},function(r,u,d){var s=d(519);'string'==typeof s&&(s=[[r.i,s,'']]);d(33)(s,{});s.locals&&(r.exports=s.locals),!1},function(r,u,d){var s=d(520);'string'==typeof s&&(s=[[r.i,s,'']]);d(33)(s,{});s.locals&&(r.exports=s.locals),!1},function(r,u,d){d(275),r.exports=d(276)}])}); +var _NumberPOSITIVE_INFINITY=Number.POSITIVE_INFINITY,_Mathfloor=Math.floor,_Mathmax=Math.max,_Mathmin=Math.min;(function(u,s){if('object'==typeof exports&&'object'==typeof module)module.exports=s();else if('function'==typeof define&&define.amd)define([],s);else{var d=s();for(var f in d)('object'==typeof exports?exports:u)[f]=d[f]}})(this,function(){return function(r){function u(d){if(s[d])return s[d].exports;var f=s[d]={i:d,l:!1,exports:{}};return r[d].call(f.exports,f,f.exports,u),f.l=!0,f.exports}var s={};return u.m=r,u.c=s,u.i=function(d){return d},u.d=function(d,f,h){u.o(d,f)||Object.defineProperty(d,f,{configurable:!1,enumerable:!0,get:h})},u.n=function(d){var f=d&&d.__esModule?function(){return d['default']}:function(){return d};return u.d(f,'a',f),f},u.o=function(d,f){return Object.prototype.hasOwnProperty.call(d,f)},u.p='',u(u.s=542)}([function(r,u){'use strict';function d(M,C){if(!(M instanceof C))throw new TypeError('Cannot call a class as a function')}function f(M,C){if(!M)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return C&&('object'==typeof C||'function'==typeof C)?C:M}function h(M,C){if('function'!=typeof C&&null!==C)throw new TypeError('Super expression must either be null or a function, not '+typeof C);M.prototype=Object.create(C&&C.prototype,{constructor:{value:M,enumerable:!1,writable:!0,configurable:!0}}),C&&(Object.setPrototypeOf?Object.setPrototypeOf(M,C):M.__proto__=C)}Object.defineProperty(u,'__esModule',{value:!0});var P=function(){function M(C,O){for(var T=0,S;Tq?0:q,L}},{key:'isAfter',value:function(D){return'after'==this.compareWith(D)}},{key:'isBefore',value:function(D){return'before'==this.compareWith(D)}},{key:'isEqual',value:function(D){return'same'==this.compareWith(D)}},{key:'isTouching',value:function(D){var L=null,q=null,z=this.compareWith(D);switch(z){case'same':return!0;case'before':L=N.createFromPosition(this),q=N.createFromPosition(D);break;case'after':L=N.createFromPosition(D),q=N.createFromPosition(this);break;default:return!1;}for(var W=L.parent;L.path.length+q.path.length;){if(L.isEqual(q))return!0;if(L.path.length>q.path.length){if(L.offset!==W.maxOffset)return!1;L.path=L.path.slice(0,-1),W=W.parent,L.offset++}else{if(0!==q.offset)return!1;q.path=q.path.slice(0,-1)}}}},{key:'_getTransformedByDeletion',value:function(D,L){var q=N.createFromPosition(this);if(this.root!=D.root)return q;if('same'==(0,T.default)(D.getParentPath(),this.getParentPath())){if(D.offsetthis.offset)return null;q.offset-=L}}else if('prefix'==(0,T.default)(D.getParentPath(),this.getParentPath())){var z=D.path.length-1;if(D.offset<=this.path[z]){if(D.offset+L>this.path[z])return null;q.path[z]-=L}}return q}},{key:'_getTransformedByInsertion',value:function(D,L,q){var z=N.createFromPosition(this);if(this.root!=D.root)return z;if('same'==(0,T.default)(D.getParentPath(),this.getParentPath()))(D.offsetN+1;)L=D.maxOffset-F.offset,0!=L&&V.push(new I(F,F.getShiftedBy(L))),F.path=F.path.slice(0,-1),F.offset++,D=D.parent;for(;F.path.length<=this.end.path.length;){var q=this.end.path[F.path.length-1],z=q-F.offset;0!=z&&V.push(new I(F,F.getShiftedBy(z))),F.offset=q,F.path.push(0)}return V}},{key:'getWalker',value:function(){var V=0D?0:D,F}},{key:'getLastMatchingPosition',value:function(N){var F=1this.offset-N.offset?'before':'after';var F=this.getAncestors(),D=N.getAncestors(),L=(0,C.default)(F,D),q;switch(L){case 0:return'different';case'prefix':q=F.length-1;break;case'extension':q=D.length-1;break;default:q=L-1;}var z=F[q],W=F[q+1],H=D[q+1];if(z===this.parent){var U=this.offset-H.index;return 0>=U?'before':'after'}if(z===N.parent){var K=W.index-N.offset;return 0>K?'before':'after'}var $=W.index-H.index;return 0>$?'before':'after'}},{key:'nodeAfter',get:function(){return this.parent.is('text')?null:this.parent.getChild(this.offset)||null}},{key:'nodeBefore',get:function(){return this.parent.is('text')?null:this.parent.getChild(this.offset-1)||null}},{key:'isAtStart',get:function(){return 0===this.offset}},{key:'isAtEnd',get:function(){var N=this.parent.is('text')?this.parent.data.length:this.parent.childCount;return this.offset===N}},{key:'root',get:function(){return this.parent.root}},{key:'editableElement',get:function(){for(var N=this.parent;!(N instanceof E.default);)if(N.parent)N=N.parent;else return null;return N}}],[{key:'createAt',value:function(N,F){if(N instanceof R)return this.createFromPosition(N);var D=N;if('end'==F)F=D.is('text')?D.data.length:D.childCount;else{if('before'==F)return this.createBefore(D);if('after'==F)return this.createAfter(D);F||(F=0)}return new R(D,F)}},{key:'createAfter',value:function(N){if(N.is('textProxy'))return new R(N.textNode,N.offsetInText+N.data.length);if(!N.parent)throw new T.default('view-position-after-root: You can not make position after root.',{root:N});return new R(N.parent,N.index+1)}},{key:'createBefore',value:function(N){if(N.is('textProxy'))return new R(N.textNode,N.offsetInText);if(!N.parent)throw new T.default('view-position-before-root: You can not make position before root.',{root:N});return new R(N.parent,N.index)}},{key:'createFromPosition',value:function(N){return new this(N.parent,N.offset)}}]),R}();u.default=I},function(r,u,s){'use strict';function d(D){return D&&D.__esModule?D:{default:D}}function f(D,L){if(!(D instanceof L))throw new TypeError('Cannot call a class as a function')}function h(D,L){if(!D)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return L&&('object'==typeof L||'function'==typeof L)?L:D}function P(D,L){if('function'!=typeof L&&null!==L)throw new TypeError('Super expression must either be null or a function, not '+typeof L);D.prototype=Object.create(L&&L.prototype,{constructor:{value:D,enumerable:!1,writable:!0,configurable:!0}}),L&&(Object.setPrototypeOf?Object.setPrototypeOf(D,L):D.__proto__=L)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function D(L,q){for(var z=0,W;z=R;R++)V=String.fromCharCode(R),I[V.toLowerCase()]=R;for(var N=48;57>=N;N++)I[N-48]=N;for(var F=112;123>=F;F++)I['f'+(F-111)]=F;return I}()},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}function f(C,O,T,S,E){var I=-1,R=C.length;for(T||(T=M.default),E||(E=[]);++IH.maxOffset)throw new R.default('move-operation-nodes-do-not-exist: The nodes which should be moved do not exist.');else if(H===U&&K<$&&$=K&&this.targetPosition.path[J]h&&(h=-h>M?0:M+h),P=P>M?M:P,0>P&&(P+=M),M=h>P?0:P-h>>>0,h>>>=0;for(var C=Array(M);++w=200){var $=D?null:(0,I.default)(F);if($)return(0,V.default)($);H=!1,z=S.default,K=new P.default}else K=D?[]:U;outer:for(;++qU&&(U=this.boundaries.start.offset),H=q.offset-U}var K=q.offset-W.startOffset,$=new O.default(W,K-H,H);return q.offset-=H,this.position=q,h('text',$,L,q,H)}return q.path.pop(),this.position=q,this._visitedParent=z.parent,h('elementStart',z,L,q,1)}}]),F}();u.default=N},function(r,u,s){'use strict';function d(T){return T&&T.__esModule?T:{default:T}}function f(T,S){if(!(T instanceof S))throw new TypeError('Cannot call a class as a function')}Object.defineProperty(u,'__esModule',{value:!0});var h=function(){function T(S,E){for(var I=0,R;IT||T>O.offsetSize)throw new w.default('model-textproxy-wrong-offsetintext: Given offsetInText value is incorrect.');if(0>S||T+S>O.offsetSize)throw new w.default('model-textproxy-wrong-length: Given length value is incorrect.');this.data=O.data.substring(T,T+S),this.offsetInText=T}return h(C,[{key:'is',value:function(T){return'textProxy'==T}},{key:'getPath',value:function(){var T=this.textNode.getPath();return 0=200&&(W=V.default,H=!1,D=new P.default(D));outer:for(;++zh;h++)f+=_Mathfloor(65536*(1+Math.random())).toString(16).substring(1);return f}},function(r,u,s){'use strict';function d(K){return K&&K.__esModule?K:{default:K}}function f(K,$){if(!(K instanceof $))throw new TypeError('Cannot call a class as a function')}function h(K,$){if(!K)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return $&&('object'==typeof $||'function'==typeof $)?$:K}function P(K,$){if('function'!=typeof $&&null!==$)throw new TypeError('Super expression must either be null or a function, not '+typeof $);K.prototype=Object.create($&&$.prototype,{constructor:{value:K,enumerable:!1,writable:!0,configurable:!0}}),$&&(Object.setPrototypeOf?Object.setPrototypeOf(K,$):K.__proto__=$)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function K($,J){for(var G=0,Q;G=R&&Ithis._items.length||0>F)throw new C.default('collection-add-item-invalid-index');return this._items.splice(F,0,N),this._itemMap.set(D,N),this.fire('add',N,F),this}},{key:'get',value:function(N){var F;if('string'==typeof N)F=this._itemMap.get(N);else if('number'==typeof N)F=this._items[N];else throw new C.default('collection-get-invalid-arg: Index or id must be given.');return F||null}},{key:'getIndex',value:function(N){var F;return F='string'==typeof N?this._itemMap.get(N):N,this._items.indexOf(F)}},{key:'remove',value:function(N){var q=!1,z=this._idProperty,F,D,L;if('string'==typeof N?(D=N,L=this._itemMap.get(D),q=!L,L&&(F=this._items.indexOf(L))):'number'==typeof N?(F=N,L=this._items[F],q=!L,L&&(D=L[z])):(L=N,D=L[z],F=this._items.indexOf(L),q=-1==F||!this._itemMap.get(D)),q)throw new C.default('collection-remove-404: Item not found.');this._items.splice(F,1),this._itemMap.delete(D);var W=this._bindToInternalToExternalMap.get(L);return this._bindToInternalToExternalMap.delete(L),this._bindToExternalToInternalMap.delete(W),this.fire('remove',L),L}},{key:'map',value:function(N,F){return this._items.map(N,F)}},{key:'find',value:function(N,F){return this._items.find(N,F)}},{key:'filter',value:function(N,F){return this._items.filter(N,F)}},{key:'clear',value:function(){for(this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);this.length;)this.remove(0)}},{key:'bindTo',value:function(N){var F=this;if(this._bindToCollection)throw new C.default('collection-bind-to-rebind: The collection cannot be bound more than once.');return this._bindToCollection=N,{as:function(L){F._setUpBindToBinding(function(q){return new L(q)})},using:function(L){'function'==typeof L?F._setUpBindToBinding(function(q){return L(q)}):F._setUpBindToBinding(function(q){return q[L]})}}}},{key:'_setUpBindToBinding',value:function(N){var F=this,D=this._bindToCollection,L=function(J,G,Q){var Y=D._bindToCollection==F,X=D._bindToInternalToExternalMap.get(G);if(Y&&X)F._bindToExternalToInternalMap.set(G,X),F._bindToInternalToExternalMap.set(X,G);else{var Z=N(G);F._bindToExternalToInternalMap.set(G,Z),F._bindToInternalToExternalMap.set(Z,G),F.add(Z,Q)}},q=!0,z=!1,W;try{for(var H=D[Symbol.iterator](),U,K;!(q=(U=H.next()).done);q=!0)K=U.value,L(null,K)}catch($){z=!0,W=$}finally{try{!q&&H.return&&H.return()}finally{if(z)throw W}}this.listenTo(D,'add',L),this.listenTo(D,'remove',function($,J){var G=F._bindToExternalToInternalMap.get(J);G&&F.remove(G)})}},{key:Symbol.iterator,value:function(){return this._items[Symbol.iterator]()}},{key:'length',get:function(){return this._items.length}}]),R}();u.default=I,(0,E.default)(I,w.default)},function(r,u,s){'use strict';function d(N){return N&&N.__esModule?N:{default:N}}function f(N,F){if(!(N instanceof F))throw new TypeError('Cannot call a class as a function')}function h(N){return N['data-ck-expando']||(N['data-ck-expando']=(0,O.default)())}function P(N){return N&&(0,I.default)(N.addEventListener)}Object.defineProperty(u,'__esModule',{value:!0});var w=s(9),M=d(w),C=s(72),O=d(C),T=s(50),S=d(T),E=s(232),I=d(E),R=(0,S.default)({},M.default,{listenTo:function(){for(var F=arguments.length,D=Array(F),L=0;L>>1){for(;V>>1,D=E[F];null!==D&&!(0,O.default)(D)&&(R?D<=I:Dne?0:ne),new I.default(oe,ne)):null}if(0===re){var le=this.mapDomToView(te);if(le)return new I.default(le,0)}else{var ue=te.childNodes[re-1],ie=this.isText(ue)?this.findCorrespondingViewText(ue):this.mapDomToView(ue);if(ie&&ie.parent)return new I.default(ie.parent,ie.index+1)}return null}},{key:'mapDomToView',value:function(te){return this.getParentUIElement(te)||this._domToViewMapping.get(te)}},{key:'findCorrespondingViewText',value:function(te){if((0,W.isInlineFiller)(te))return null;var re=this.getParentUIElement(te);if(re)return re;var ae=te.previousSibling;if(ae){if(!this.isElement(ae))return null;var oe=this.mapDomToView(ae);if(oe){var ne=oe.nextSibling;return ne instanceof O.default?oe.nextSibling:null}}else{var le=this.mapDomToView(te.parentNode);if(le){var ue=le.getChild(0);return ue instanceof O.default?ue:null}}return null}},{key:'mapViewToDom',value:function(te){return this._viewToDomMapping.get(te)}},{key:'findCorrespondingDomText',value:function(te){var re=te.previousSibling;return re&&this.mapViewToDom(re)?this.mapViewToDom(re).nextSibling:!re&&te.parent&&this.mapViewToDom(te.parent)?this.mapViewToDom(te.parent).childNodes[0]:null}},{key:'focus',value:function(te){var re=this.mapViewToDom(te);if(re&&re.ownerDocument.activeElement!==re){var ae=U.default.window,oe=ae.scrollX,ne=ae.scrollY,le=[];P(re,function(ue){var ie=ue.scrollLeft,se=ue.scrollTop;le.push([ie,se])}),re.focus(),P(re,function(ue){var ie=le.shift(),se=w(ie,2),de=se[0],fe=se[1];ue.scrollLeft=de,ue.scrollTop=fe}),U.default.window.scrollTo(oe,ne)}}},{key:'isText',value:function(te){return te&&te.nodeType==Node.TEXT_NODE}},{key:'isElement',value:function(te){return te&&te.nodeType==Node.ELEMENT_NODE}},{key:'isDocumentFragment',value:function(te){return te&&te.nodeType==Node.DOCUMENT_FRAGMENT_NODE}},{key:'isComment',value:function(te){return te&&te.nodeType==Node.COMMENT_NODE}},{key:'isDomSelectionBackward',value:function(te){if(te.isCollapsed)return!1;var re=document.createRange();re.setStart(te.anchorNode,te.anchorOffset),re.setEnd(te.focusNode,te.focusOffset);var ae=re.collapsed;return re.detach(),ae}},{key:'getParentUIElement',value:function(te){var re=(0,G.default)(te);for(re.pop();re.length;){var ae=re.pop(),oe=this._domToViewMapping.get(ae);if(oe&&oe.is('uiElement'))return oe}return null}},{key:'isDomSelectionCorrect',value:function(te){return this._isDomSelectionPositionCorrect(te.anchorNode,te.anchorOffset)&&this._isDomSelectionPositionCorrect(te.focusNode,te.focusOffset)}},{key:'_isDomSelectionPositionCorrect',value:function(te,re){if(this.isText(te)&&(0,W.startsWithFiller)(te)&&reO?0:O,S)):[]}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(40),P=d(h),w=s(14),M=d(w);u.default=function(C,O,T){var S=C?C.length:0;return S?(O=T||void 0===O?1:(0,M.default)(O),O=S-O,(0,P.default)(C,0,0>O?0:O)):[]}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return f&&f.length?f[0]:void 0}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(13),P=function(S){return S&&S.__esModule?S:{default:S}}(h),M=Object.prototype,C=M.hasOwnProperty,O=M.toString,T=M.propertyIsEnumerable;u.default=function(S){return(0,P.default)(S)&&C.call(S,'callee')&&(!T.call(S,'callee')||O.call(S)=='[object Arguments]')}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(17),P=function(T){return T&&T.__esModule?T:{default:T}}(h),C=Object.prototype,O=C.toString;u.default=function(T){var S=(0,P.default)(T)?O.call(T):'';return S=='[object Function]'||S=='[object GeneratorFunction]'}},function(r,u,s){'use strict';function d(S){return S&&S.__esModule?S:{default:S}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(12),P=d(h),w=s(51),M=d(w),O=Object.prototype,T=O.toString;u.default=function(S){return'string'==typeof S||!(0,P.default)(S)&&(0,M.default)(S)&&T.call(S)=='[object String]'}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(136),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){return w&&w.length&&M&&M.length?(0,P.default)(w,M):w}},function(r,u,s){'use strict';function d(T){return T&&T.__esModule?T:{default:T}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(190),P=d(h),w=s(29),M=d(w),C=s(107),O=d(C);u.default=function(T,S){if(!(T&&T.length))return[];var E=(0,O.default)(T);return null==S?E:(0,M.default)(E,function(I){return(0,P.default)(S,void 0,I)})}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(C){return(0,P.default)(C)?(0,M.default)(C):new Map(C)};var h=s(106),P=d(h),w=s(271),M=d(w)},function(r,u){'use strict';function h(E,I){E.setCustomProperty(O,I)}function M(){return null}Object.defineProperty(u,'__esModule',{value:!0}),u.isWidget=function(E){return!!E.getCustomProperty(C)},u.toWidget=function(E){var I=1=this.limit&&this._reset(!0)}},{key:'lock',value:function(){this.isLocked=!0}},{key:'unlock',value:function(){this.isLocked=!1}},{key:'destroy',value:function(){this.document.off('change',this._changeCallback),this.document.selection.off('change:range',this._selectionChangeCallback),this.document.selection.off('change:attribute',this._selectionChangeCallback)}},{key:'_onBatch',value:function(T){'transparent'!=T.type&&T!==this._batch&&1>=(0,w.default)(T.getOperations())&&this._reset(!0)}},{key:'_reset',value:function(T){(!this.isLocked||T)&&(this._batch=null,this.size=0)}},{key:'batch',get:function(){return this._batch||(this._batch=this.document.batch()),this._batch}}]),C}();u.default=M},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){var h=f.emitter,P=f.activator,w=f.callback,M=f.contextElements;h.listenTo(document,'mousedown',function(C,O){var T=O.target;if(P()){var S=!0,E=!1,I;try{for(var R=M[Symbol.iterator](),V,N;!(S=(V=R.next()).done);S=!0)if(N=V.value,N.contains(T))return}catch(F){E=!0,I=F}finally{try{!S&&R.return&&R.return()}finally{if(E)throw I}}w()}})}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return f.bindTemplate.to(function(h){h.target===f.element&&h.preventDefault()})}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){var h=f.view;h.listenTo(h.element,'submit',function(P,w){w.preventDefault(),h.fire('submit')},{useCapture:!0})}},function(r,u,s){'use strict';function d(E){return E&&E.__esModule?E:{default:E}}function f(E,I){if(!(E instanceof I))throw new TypeError('Cannot call a class as a function')}function h(E,I){if(!E)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return I&&('object'==typeof I||'function'==typeof I)?I:E}function P(E,I){if('function'!=typeof I&&null!==I)throw new TypeError('Super expression must either be null or a function, not '+typeof I);E.prototype=Object.create(I&&I.prototype,{constructor:{value:E,enumerable:!1,writable:!0,configurable:!0}}),I&&(Object.setPrototypeOf?Object.setPrototypeOf(E,I):E.__proto__=I)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function E(I,R){for(var V=0,N;VL?-1:1;I[F+q]&&(I[F]=I[F+q].slice(0)),I[F]||(I[F]=[]),I[F].push(D>L?M:C);for(var z=_Mathmax(D,L),W=z-F;WE;N--)R[N]=w(N);R[E]=w(E),V++}while(R[E]!==S);return I[E].slice(1)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){for(var h=[];f&&f.nodeType!=Node.DOCUMENT_NODE;)h.unshift(f),f=f.parentNode;return h}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return'[object Range]'==Object.prototype.toString.apply(f)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return function(h){return h+f}}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(57),h=d(f),P=s(32),w=d(P),M=(0,h.default)(w.default,'Map');u.default=M},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(57),h=d(f),P=s(32),w=d(P),M=(0,h.default)(w.default,'Set');u.default=M},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var f=s(32),h=function(w){return w&&w.__esModule?w:{default:w}}(f),P=h.default.Uint8Array;u.default=P},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f,h,P){var w=P.length;return 0===w?f.call(h):1===w?f.call(h,P[0]):2===w?f.call(h,P[0],P[1]):3===w?f.call(h,P[0],P[1],P[2]):f.apply(h,P)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f,h,P,w){var M=-1,C=f.length;for(w&&C&&(P=f[++M]);++MF))return!1;var L=V.get(T);if(L)return L==S;var q=-1,z=!0,W=R&1?new P.default:void 0;for(V.set(T,S);++qI)return[];for(var N=0,F=0,D=Array(T(V/I));N=R||0>ae||ee&&oe>=J}function q(){var re=(0,M.default)();return L(re)?z(re):void(Q=setTimeout(q,D(re)))}function z(re){return(clearTimeout(Q),Q=void 0,te&&K)?N(re):(K=$=void 0,G)}function U(){var re=(0,M.default)(),ae=L(re);if(K=arguments,$=this,Y=re,ae){if(void 0===Q)return F(Y);if(ee)return clearTimeout(Q),Q=setTimeout(q,R),N(Y)}return void 0===Q&&(Q=setTimeout(q,R)),G}var Y=0,X=0,Z=!1,ee=!1,te=!0,K,$,J,G,Q;if('function'!=typeof I)throw new TypeError('Expected a function');return R=(0,O.default)(R)||0,(0,P.default)(V)&&(Z=!!V.leading,ee='maxWait'in V,J=ee?_Mathmax((0,O.default)(V.maxWait)||0,R):J,te='trailing'in V?!!V.trailing:te),U.cancel=function(){void 0!==Q&&clearTimeout(Q),Y=X=0,K=$=Q=void 0},U.flush=function(){return void 0===Q?G:z((0,M.default)())},U}},function(r,u,s){'use strict';function d(E){return E&&E.__esModule?E:{default:E}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(69),h=d(f),P=s(25),w=d(P),M=s(13),C=d(M),O=s(8),T=d(O),S=(0,T.default)(function(E,I){return(0,C.default)(E)?(0,h.default)(E,(0,w.default)(I,1,C.default,!0)):[]});u.default=S},function(r,u,s){'use strict';function d(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(69),h=d(f),P=s(25),w=d(P),M=s(10),C=d(M),O=s(13),T=d(O),S=s(18),E=d(S),I=s(8),R=d(I),V=(0,R.default)(function(N,F){var D=(0,E.default)(F);return(0,T.default)(D)&&(D=void 0),(0,T.default)(N)?(0,h.default)(N,(0,w.default)(F,1,T.default,!0),(0,C.default)(D)):[]});u.default=V},function(r,u,s){'use strict';function d(R){return R&&R.__esModule?R:{default:R}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(69),h=d(f),P=s(25),w=d(P),M=s(13),C=d(M),O=s(18),T=d(O),S=s(8),E=d(S),I=(0,E.default)(function(R,V){var N=(0,T.default)(V);return(0,C.default)(N)&&(N=void 0),(0,C.default)(R)?(0,h.default)(R,(0,w.default)(V,1,C.default,!0),void 0,N):[]});u.default=I},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(10),P=d(h),w=s(96),M=d(w);u.default=function(C,O){return C&&C.length?(0,M.default)(C,(0,P.default)(O,3),!0,!0):[]}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(10),P=d(h),w=s(96),M=d(w);u.default=function(C,O){return C&&C.length?(0,M.default)(C,(0,P.default)(O,3),!0):[]}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(422),P=d(h),w=s(100),M=d(w);u.default=function(C,O,T,S){var E=C?C.length:0;return E?(T&&'number'!=typeof T&&(0,M.default)(C,O,T)&&(T=0,S=E),(0,P.default)(C,O,T,S)):[]}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(193),P=d(h),w=s(10),M=d(w);u.default=function(C,O){return C&&C.length?(0,P.default)(C,(0,M.default)(O,3)):-1}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(193),P=d(h),w=s(10),M=d(w);u.default=function(C,O){return C&&C.length?(0,P.default)(C,(0,M.default)(O,3),!0):-1}},function(r,u,s){'use strict';function d(h){return h&&h.__esModule?h:{default:h}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(149);Object.defineProperty(u,'default',{enumerable:!0,get:function(){return d(f).default}})},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(25),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){var M=w?w.length:0;return M?(0,P.default)(w,1):[]}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(25),P=function(M){return M&&M.__esModule?M:{default:M}}(h);u.default=function(M){var C=M?M.length:0;return C?(0,P.default)(M,1/0):[]}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(25),P=d(h),w=s(14),M=d(w);u.default=function(C,O){var T=C?C.length:0;return T?(O=void 0===O?1:(0,M.default)(O),(0,P.default)(C,O)):[]}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){for(var h=-1,P=f?f.length:0,w={},M;++hS&&(S=_Mathmax(E+S,0)),(0,P.default)(O,T,S)):-1}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(148),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return(0,P.default)(w,1)}},function(r,u,s){'use strict';function d(E){return E&&E.__esModule?E:{default:E}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(29),h=d(f),P=s(134),w=d(P),M=s(141),C=d(M),O=s(8),T=d(O),S=(0,T.default)(function(E){var I=(0,h.default)(E,C.default);return I.length&&I[0]===E[0]?(0,w.default)(I):[]});u.default=S},function(r,u,s){'use strict';function d(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(29),h=d(f),P=s(134),w=d(P),M=s(10),C=d(M),O=s(141),T=d(O),S=s(18),E=d(S),I=s(8),R=d(I),V=(0,R.default)(function(N){var F=(0,E.default)(N),D=(0,h.default)(N,T.default);return F===(0,E.default)(D)?F=void 0:D.pop(),D.length&&D[0]===N[0]?(0,w.default)(D,(0,C.default)(F)):[]});u.default=V},function(r,u,s){'use strict';function d(R){return R&&R.__esModule?R:{default:R}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(29),h=d(f),P=s(134),w=d(P),M=s(141),C=d(M),O=s(18),T=d(O),S=s(8),E=d(S),I=(0,E.default)(function(R){var V=(0,T.default)(R),N=(0,h.default)(R,C.default);return V===(0,T.default)(N)?V=void 0:N.pop(),N.length&&N[0]===R[0]?(0,w.default)(N,void 0,V):[]});u.default=I},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(51),P=d(h),w=s(106),M=d(w);u.default=function(C){return!!C&&1===C.nodeType&&(0,P.default)(C)&&!(0,M.default)(C)}},function(r,u,s){'use strict';function d(D){return D&&D.__esModule?D:{default:D}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(151),P=d(h),w=s(99),M=d(w),C=s(17),O=d(C),T=s(206),S=d(T),E=/[\\^$.*+?()[\]{}|]/g,I=/^\[object .+?Constructor\]$/,R=Object.prototype,V=Function.prototype.toString,N=R.hasOwnProperty,F=RegExp('^'+V.call(N).replace(E,'\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,'$1.*?')+'$');u.default=function(D){if(!(0,O.default)(D))return!1;var L=(0,P.default)(D)||(0,M.default)(D)?F:I;return L.test((0,S.default)(D))}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var f=Array.prototype,h=f.join;u.default=function(P,w){return P?h.call(P,w):''}},function(r,u,s){'use strict';function d(T){return T&&T.__esModule?T:{default:T}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(203),P=d(h),w=s(14),M=d(w);u.default=function(T,S,E){var I=T?T.length:0;if(!I)return-1;var R=I;if(void 0!==E&&(R=(0,M.default)(E),R=(0>R?_Mathmax(I+R,0):_Mathmin(R,I-1))+1),S!==S)return(0,P.default)(T,R,!0);for(;R--;)if(T[R]===S)return R;return-1}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(432),P=d(h),w=s(14),M=d(w);u.default=function(C,O){return C&&C.length?(0,P.default)(C,(0,M.default)(O)):void 0}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(153),h=d(f),P=s(8),w=d(P),M=(0,w.default)(h.default);u.default=M},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(10),P=d(h),w=s(136),M=d(w);u.default=function(C,O,T){return C&&C.length&&O&&O.length?(0,M.default)(C,O,(0,P.default)(T)):C}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(136),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M,C){return w&&w.length&&M&&M.length?(0,P.default)(w,M,void 0,C):w}},function(r,u,s){'use strict';function d(D){return D&&D.__esModule?D:{default:D}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(29),h=d(f),P=s(419),w=d(P),M=s(25),C=d(M),O=s(195),T=d(O),S=s(445),E=d(S),I=s(41),R=d(I),V=s(8),N=d(V),F=(0,N.default)(function(D,L){L=(0,C.default)(L,1);var q=D?D.length:0,z=(0,w.default)(D,L);return(0,T.default)(D,(0,h.default)(L,function(W){return(0,R.default)(W,q)?+W:W}).sort(E.default)),z});u.default=F},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(10),P=d(h),w=s(195),M=d(w);u.default=function(C,O){var T=[];if(!(C&&C.length))return T;var S=-1,E=[],I=C.length;for(O=(0,P.default)(O,3);++SO?0:O)):[]}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(40),P=d(h),w=s(14),M=d(w);u.default=function(C,O,T){var S=C?C.length:0;return S?(O=T||void 0===O?1:(0,M.default)(O),O=S-O,(0,P.default)(C,0>O?0:O,S)):[]}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(10),P=d(h),w=s(96),M=d(w);u.default=function(C,O){return C&&C.length?(0,M.default)(C,(0,P.default)(O,3),!1,!0):[]}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(10),P=d(h),w=s(96),M=d(w);u.default=function(C,O){return C&&C.length?(0,M.default)(C,(0,P.default)(O,3)):[]}},function(r,u,s){'use strict';function d(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(151),P=d(h),w=s(17),M=d(w),C=s(52),O=d(C),T=0/0,S=/^\s+|\s+$/g,E=/^[-+]0x[0-9a-f]+$/i,I=/^0b[01]+$/i,R=/^0o[0-7]+$/i,V=parseInt;u.default=function(N){if('number'==typeof N)return N;if((0,O.default)(N))return T;if((0,M.default)(N)){var F=(0,P.default)(N.valueOf)?N.valueOf():N;N=(0,M.default)(F)?F+'':F}if('string'!=typeof N)return 0===N?N:+N;N=N.replace(S,'');var D=I.test(N);return D||R.test(N)?V(N.slice(2),D?2:8):E.test(N)?T:+N}},function(r,u,s){'use strict';function d(E){return E&&E.__esModule?E:{default:E}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(25),h=d(f),P=s(49),w=d(P),M=s(13),C=d(M),O=s(8),T=d(O),S=(0,T.default)(function(E){return(0,w.default)((0,h.default)(E,1,C.default,!0))});u.default=S},function(r,u,s){'use strict';function d(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(25),h=d(f),P=s(10),w=d(P),M=s(49),C=d(M),O=s(13),T=d(O),S=s(18),E=d(S),I=s(8),R=d(I),V=(0,R.default)(function(N){var F=(0,E.default)(N);return(0,T.default)(F)&&(F=void 0),(0,C.default)((0,h.default)(N,1,T.default,!0),(0,w.default)(F))});u.default=V},function(r,u,s){'use strict';function d(R){return R&&R.__esModule?R:{default:R}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(25),h=d(f),P=s(49),w=d(P),M=s(13),C=d(M),O=s(18),T=d(O),S=s(8),E=d(S),I=(0,E.default)(function(R){var V=(0,T.default)(R);return(0,C.default)(V)&&(V=void 0),(0,w.default)((0,h.default)(R,1,C.default,!0),void 0,V)});u.default=I},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(49),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return w&&w.length?(0,P.default)(w):[]}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(10),P=d(h),w=s(49),M=d(w);u.default=function(C,O){return C&&C.length?(0,M.default)(C,(0,P.default)(O)):[]}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(49),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){return w&&w.length?(0,P.default)(w,void 0,M):[]}},function(r,u,s){'use strict';function d(T){return T&&T.__esModule?T:{default:T}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(69),h=d(f),P=s(13),w=d(P),M=s(8),C=d(M),O=(0,C.default)(function(T,S){return(0,w.default)(T)?(0,h.default)(T,S):[]});u.default=O},function(r,u,s){'use strict';function d(E){return E&&E.__esModule?E:{default:E}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(91),h=d(f),P=s(139),w=d(P),M=s(13),C=d(M),O=s(8),T=d(O),S=(0,T.default)(function(E){return(0,w.default)((0,h.default)(E,C.default))});u.default=S},function(r,u,s){'use strict';function d(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(91),h=d(f),P=s(10),w=d(P),M=s(139),C=d(M),O=s(13),T=d(O),S=s(18),E=d(S),I=s(8),R=d(I),V=(0,R.default)(function(N){var F=(0,E.default)(N);return(0,T.default)(F)&&(F=void 0),(0,C.default)((0,h.default)(N,T.default),(0,w.default)(F))});u.default=V},function(r,u,s){'use strict';function d(R){return R&&R.__esModule?R:{default:R}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(91),h=d(f),P=s(139),w=d(P),M=s(13),C=d(M),O=s(18),T=d(O),S=s(8),E=d(S),I=(0,E.default)(function(R){var V=(0,T.default)(R);return(0,C.default)(V)&&(V=void 0),(0,w.default)((0,h.default)(R,C.default),void 0,V)});u.default=I},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(8),h=d(f),P=s(107),w=d(P),M=(0,h.default)(w.default);u.default=M},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(68),P=d(h),w=s(198),M=d(w);u.default=function(C,O){return(0,M.default)(C||[],O||[],P.default)}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(434),P=d(h),w=s(198),M=d(w);u.default=function(C,O){return(0,M.default)(C||[],O||[],P.default)}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(8),h=d(f),P=s(154),w=d(P),M=(0,h.default)(function(C){var O=C.length,T=1\s$/,'blockQuote')}}],[{key:'pluginName',get:function(){return'Autoformat'}}]),V}(E.default);u.default=I},function(r,u,s){'use strict';function d(O){return O&&O.__esModule?O:{default:O}}function f(O,T){if(!(O instanceof T))throw new TypeError('Cannot call a class as a function')}Object.defineProperty(u,'__esModule',{value:!0});var h=s(3),P=d(h),w=s(63),M=d(w);u.default=function O(T,S,E){f(this,O);var I;if('function'==typeof E)I=E;else{I=function(N){var F=N.batch;T.execute(E,{batch:F})}}T.document.on('change',function(V,N,F,D){if('transparent'!=D.type&&'insert'==N){var L=F.range.getItems().next().value;if(L instanceof M.default){var q=L.textNode,z=q.data;if('paragraph'===q.parent.name&&z){var W=S.exec(z);W&&T.document.enqueueChanges(function(){var H=T.document.batch(),U=P.default.createFromParentsAndOffsets(q.parent,0,q.parent,W[0].length);H.remove(U),I({fixBatch:H,match:W})})}}}})}},function(r,u,s){'use strict';function f(C,O){if(!(C instanceof O))throw new TypeError('Cannot call a class as a function')}function h(C){return Array.from(C.getChildren()).reduce(function(O,T){return O+T.data},'')}Object.defineProperty(u,'__esModule',{value:!0});var P=s(113),w=function(C){return C&&C.__esModule?C:{default:C}}(P);u.default=function C(O,T,S){f(this,C);var E,I,R,V;T instanceof RegExp?E=T:R=T,'string'==typeof S?I=S:V=S,R=R||function(N){for(var D=[],L=[],F;null!==(F=E.exec(N))&&!(F&&4>F.length);){var q=F,z=q.index,W=q[1],H=q[2],U=q[3];z+=F[0].length-(W+H+U).length;var $=[z,z+W.length],J=[z+W.length+H.length,z+W.length+H.length+U.length];D.push($),D.push(J),L.push([z+W.length,z+W.length+H.length])}return{remove:D,format:L}},V=V||function(N,F){var D=!0,L=!1,q;try{for(var z=F[Symbol.iterator](),W,H;!(D=(W=z.next()).done);D=!0)H=W.value,N.setAttribute(H,I,!0)}catch(U){L=!0,q=U}finally{try{!D&&z.return&&z.return()}finally{if(L)throw q}}},O.document.on('change',function(N,F,D,L){if('transparent'!=L.type&&'insert'===F){var q=O.document.selection;if(q.isCollapsed&&q.focus&&q.focus.parent){var z=q.focus.parent,W=h(z).slice(0,q.focus.offset),H=R(W),U=[];H.format.forEach(function($){void 0===$[0]||void 0===$[1]||U.push(w.default.createFromParentsAndOffsets(z,$[0],z,$[1]))});var K=[];H.remove.slice().reverse().forEach(function($){void 0===$[0]||void 0===$[1]||K.push(w.default.createFromParentsAndOffsets(z,$[0],z,$[1]))}),U.length&&K.length&&O.document.enqueueChanges(function(){var $=O.document.batch(),J=O.document.schema.getValidRanges(U,I);V($,J);var G=!0,Q=!1,Y;try{for(var X=K[Symbol.iterator](),Z,ee;!(G=(Z=X.next()).done);G=!0)ee=Z.value,$.remove(ee)}catch(te){Q=!0,Y=te}finally{try{!G&&X.return&&X.return()}finally{if(Q)throw Y}}})}}})}},function(r,u,s){'use strict';function d(N){return N&&N.__esModule?N:{default:N}}function f(N,F){if(!(N instanceof F))throw new TypeError('Cannot call a class as a function')}function h(N,F){if(!N)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return F&&('object'==typeof F||'function'==typeof F)?F:N}function P(N,F){if('function'!=typeof F&&null!==F)throw new TypeError('Super expression must either be null or a function, not '+typeof F);N.prototype=Object.create(F&&F.prototype,{constructor:{value:N,enumerable:!1,writable:!0,configurable:!0}}),F&&(Object.setPrototypeOf?Object.setPrototypeOf(N,F):N.__proto__=F)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function N(F,D){for(var L=0,q;L(\s+)<\/span>/g,function(h,P){return 1==P.length?' ':P})}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return f=f.replace(//g,'>').replace(/\n\n/g,'

').replace(/\n/g,' ').replace(/^\s/,' ').replace(/\s$/,' ').replace(/\s\s/g,'  '),-1

')&&(f='

'+f+'

'),f}},function(r,u){'use strict';function d(h){var P='';if(h.is('text')||h.is('textProxy'))P=h.data;else if(h.is('img')&&h.hasAttribute('alt'))P=h.getAttribute('alt');else{var w=null,M=!0,C=!1,O;try{for(var T=h.getChildren()[Symbol.iterator](),S;!(M=(S=T.next()).done);M=!0){var E=S.value,I=d(E);w&&(w.is('containerElement')||E.is('containerElement'))&&(f.includes(w.name)||f.includes(E.name)?P+='\n':P+='\n\n'),P+=I,w=E}}catch(R){C=!0,O=R}finally{try{!M&&T.return&&T.return()}finally{if(C)throw O}}}return P}Object.defineProperty(u,'__esModule',{value:!0}),u.default=d;var f=['figcaption','li']},function(r,u,s){'use strict';function f(C,O){if(!(C instanceof O))throw new TypeError('Cannot call a class as a function')}Object.defineProperty(u,'__esModule',{value:!0});var h=function(){function C(O,T){for(var S=0,E;Sme.position.offset;return ye&&be?[me.getReversed(),pe.clone()]:ce(pe,me,ge)}),fe(J.default,H.default,function(pe,me,ge){return pe.position.isEqual(me.position)?[P()]:ce(pe,me,ge)}),fe(J.default,Q.default,function(pe,me,ge){var ye=pe.position.root==me.sourcePosition.root&&'same'===(0,de.default)(pe.position.getParentPath(),me.sourcePosition.getParentPath()),be=me.sourcePosition.offset<=pe.position.offset&&me.sourcePosition.offset+me.howMany>pe.position.offset;return ye&&be?[P()]:ce(pe,me,ge)}),fe(X.default,X.default,function(pe,me,ge){var ye=pe.position.getParentPath(),be=me.position.getParentPath();if(pe.position.root==me.position.root&&'same'==(0,de.default)(ye,be)){var he=Object.assign({},ge);return pe.position.offset!=me.position.offset&&(he.isStrong=pe.position.offset>me.position.offset),void 0===ge.insertBefore&&(he.insertBefore=he.isStrong),ce(pe,me,he)}return ce(pe,me,ge)}),fe(X.default,oe.default,function(pe,me,ge){return pe.position.root==me.position.root&&'same'===(0,de.default)(me.position.path,pe.position.getParentPath())?[P()]:ce(pe,me,ge)}),fe(X.default,re.default,function(pe,me,ge){var ye=pe.position.root==me.range.start.root,be=ye&&'same'===(0,de.default)(pe.position.getParentPath(),me.range.start.getParentPath()),he=me.range.start.offset=pe.position.offset;if(be&&he)return[P()];if(ye&&'same'===(0,de.default)(pe.position.getParentPath(),me.range.end.getShiftedBy(-1).path)){var ve=pe.clone(),ke=S.default.createFromPosition(me.range.start);ke.path.push(me.howMany-1);var Pe=ke.getShiftedBy(1);ve._cloneOperation.position=Pe;var we=S.default.createFromPosition(ke);we.path.push(pe.position.offset),ve._moveOperation.sourcePosition=we;var xe=S.default.createFromPosition(Pe);return xe.path.push(0),ve._moveOperation.targetPosition=xe,[ve]}return ce(pe,me,ge)}),fe(X.default,z.default,function(pe,me){pe=pe.clone();var ge=new S.default(pe.position.root,pe.position.path.slice(0,-1));if(pe._cloneOperation instanceof F.default){var ye=!0,be=!1,he;try{for(var ve=me.operations[Symbol.iterator](),ke,Pe;!(ye=(ke=ve.next()).done);ye=!0)if(Pe=ke.value,Pe.range.containsPosition(ge)||Pe.range.start.isEqual(ge)){null===Pe.newValue?pe._cloneOperation.nodes.getNode(0).removeAttribute(Pe.key):pe._cloneOperation.nodes.getNode(0).setAttribute(Pe.key,Pe.newValue);break}}catch(we){be=!0,he=we}finally{try{!ye&&ve.return&&ve.return()}finally{if(be)throw he}}}return[pe]}),fe(oe.default,X.default,function(pe,me,ge){return pe.position.root==me.position.root&&'same'===(0,de.default)(pe.position.path,me.position.getParentPath())?[me.getReversed(),pe.clone()]:ce(pe,me,ge)}),fe(ee.default,z.default,function(pe,me){var ge=[pe.clone()];return me.range.containsPosition(pe.position)&&ge.push(h(pe,me)),ge}),fe(re.default,X.default,function(pe,me,ge){var ye=pe.range.start.root==me.position.root,be=ye&&'same'===(0,de.default)(pe.range.start.getParentPath(),me.position.getParentPath()),he=pe.range.start.offset=me.position.offset;if(be&&he)return[me.getReversed(),pe.clone()];if(ye&&'same'===(0,de.default)(me.position.getParentPath(),pe.range.end.getShiftedBy(-1).path)){var ve=pe.clone();return ve._insertOperation.position.offset++,ve._moveOperation.howMany++,ve._moveOperation.targetPosition.path[ve._moveOperation.targetPosition.path.length-2]++,[ve]}return ce(pe,me,ge)}),fe(le.default,X.default,function(pe,me,ge){var ye=ge.aWasUndone||ge.bWasUndone,be=new S.default(me.position.root,me.position.path.slice(0,-1)),he=ce(pe,me,ge);if(!ye&&pe.operations[0].position.isEqual(be)){var ve=pe.clone();ve.operations[0].position=be.getShiftedBy(1),he.push(ve)}return he}),fe(X.default,le.default,function(pe,me,ge){var ye=ge.aWasUndone||ge.bWasUndone,be=new S.default(pe.position.root,pe.position.path.slice(0,-1));if(!ye&&me.operations[0].position.isEqual(be)){var he=me.clone();return he.operations[0].position=be.getShiftedBy(1),he.operations[0].oldName=pe._cloneOperation.nodes.getNode(0).name,[pe.clone(),he]}return[pe.clone()]}),fe(ie.default,X.default,function(pe,me,ge){var ye=ce(pe,me,ge),be=me._cloneOperation.position||me._cloneOperation.targetPosition;if(!be)return ce(pe,me,ge);var he=!0,ve=!1,ke;try{for(var Pe=ye[Symbol.iterator](),we,xe;!(he=(we=Pe.next()).done);he=!0)if(xe=we.value,xe instanceof ie.default){var Me=xe._moveOperation,Ce=Me.sourcePosition.getShiftedBy(Me.howMany);Ce.isEqual(be)&&(Me.howMany+=1)}}catch(Oe){ve=!0,ke=Oe}finally{try{!he&&Pe.return&&Pe.return()}finally{if(ve)throw ke}}return ye}),fe(X.default,ie.default,function(pe,me,ge){var ye=pe._cloneOperation.position||pe._cloneOperation.targetPosition;if(!ye)return ce(pe,me,ge);me=me.clone();var be=me._moveOperation,he=be.sourcePosition.getShiftedBy(be.howMany);return he.isEqual(ye)&&(be.howMany+=1),ce(pe,me,ge)})},function(r,u,s){'use strict';function d(D){return D&&D.__esModule?D:{default:D}}function f(D,L){if(!(D instanceof L))throw new TypeError('Cannot call a class as a function')}function h(D,L){if(!D)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return L&&('object'==typeof L||'function'==typeof L)?L:D}function P(D,L){if('function'!=typeof L&&null!==L)throw new TypeError('Super expression must either be null or a function, not '+typeof L);D.prototype=Object.create(L&&L.prototype,{constructor:{value:D,enumerable:!1,writable:!0,configurable:!0}}),L&&(Object.setPrototypeOf?Object.setPrototypeOf(D,L):D.__proto__=L)}function w(D,L,q,z){var W=D.document,H=new F,U=new R.default(L,q,z,W.markers,W.version);D.addDelta(H),H.addOperation(U),W.applyOperation(U)}Object.defineProperty(u,'__esModule',{value:!0});var M=function(){function D(L,q){for(var z=0,W;z=S)){V.next=9;break}return V.abrupt('break',13);case 9:return V.next=11,I;case 11:V.next=5;break;case 13:case'end':return V.stop();}},O,this)})},{key:'getDelta',value:function(T){var S=this._historyPoints.get(T);return void 0===S?null:this._deltas[S]}},{key:'setDeltaAsUndone',value:function(T,S){this._undoPairs.set(S,T),this._undoneDeltas.add(T)}},{key:'isUndoingDelta',value:function(T){return this._undoPairs.has(T)}},{key:'isUndoneDelta',value:function(T){return this._undoneDeltas.has(T)}},{key:'getUndoneDelta',value:function(T){return this._undoPairs.get(T)}},{key:'_getIndex',value:function(T){var S=this._historyPoints.get(T);if(void 0===S){var E=this._deltas[this._deltas.length-1],I=E.baseVersion+E.operations.length;if(0>T||T>=I)return-1;throw new w.default('model-history-wrong-version: Given base version points to the middle of a delta.')}return S}}]),C}();u.default=M},function(r,u,s){'use strict';function d(L){return L&&L.__esModule?L:{default:L}}function f(L,q){if(!(L instanceof q))throw new TypeError('Cannot call a class as a function')}Object.defineProperty(u,'__esModule',{value:!0});var h=function(){function L(q,z){for(var W=0,H;WT||T>O.data.length)throw new w.default('view-textproxy-wrong-offsetintext: Given offsetInText value is incorrect.');if(0>S||T+S>O.data.length)throw new w.default('view-textproxy-wrong-length: Given length value is incorrect.');this.data=O.data.substring(T,T+S),this.offsetInText=T}return h(C,[{key:'is',value:function(T){return'textProxy'==T}},{key:'getAncestors',value:function(){for(var T=0ve;){ke>be.getAttribute('indent')&&(ke=be.getAttribute('indent'));var we=be.getAttribute('indent')-ke;Pe.push({item:be,indent:we}),be=be.nextSibling}if(0=ke;)he.getAttribute('type')!=Pe&&he.getAttribute('indent')==ke&&be.setAttribute(he,'type',Pe),he=he[ge?'previousSibling':'nextSibling']})}function L(me,ge){var ye='numbered'==me.getAttribute('type')?'ol':'ul',be=new G.default,he=new ne.default(ye,null);return he.appendChildren(be),ge.bindElements(me,be),be}function q(me,ge){for(var ye=ge.getNext?'nextSibling':'previousSibling',be=ge.getNext?'nodeAfter':'nodeBefore',he=!!ge.checkAllSiblings,ve=!!ge.sameIndent,ke=!!ge.biggerIndent,Pe=!!ge.smallerIndent,we=!!ge.isMapped,xe=me instanceof Z.default?me.getAttribute('indent'):ge.indent,Me=me instanceof Z.default?me[ye]:me[be],Ce;Me&&'listItem'==Me.name;){if(Ce=Me.getAttribute('indent'),ve&&xe==Ce||ke&&xeCe){if(!we||ge.mapper.toViewElement(Me))return Me;Me=Me[ye];continue}if(!he)return null;Me=Me[ye]}return null}function z(me,ge){return me&&ge&&('ul'==me.name||'ol'==me.name)&&me.name==ge.name?pe.default.mergeContainers(ue.default.createAfter(me)):null}function W(me,ge,ye,be){var he=ge.parent,ve,ke=q(me,{sameIndent:!0,smallerIndent:!0,checkAllSiblings:!0});if(ke&&ke.getAttribute('indent')==me.getAttribute('indent')){var Pe=ye.toViewElement(ke);ve=pe.default.breakContainer(ue.default.createAfter(Pe))}else ke=me.previousSibling,ve=ke&&'listItem'==ke.name?ke.getAttribute('indent')=ye;)me=me[be],me.getAttribute('indent')==ye&&(he=me);return he}function K(me){return me.getLastMatchingPosition(function(ge){return ge.item.is('uiElement')})}Object.defineProperty(u,'__esModule',{value:!0});var $=function(){function me(ge,ye){var be=[],he=!0,ve=!1,ke;try{for(var Pe=ge[Symbol.iterator](),we;!(he=(we=Pe.next()).done)&&(be.push(we.value),!(ye&&be.length===ye));he=!0);}catch(xe){ve=!0,ke=xe}finally{try{!he&&Pe['return']&&Pe['return']()}finally{if(ve)throw ke}}return be}return function(ge,ye){if(Array.isArray(ge))return ge;if(Symbol.iterator in Object(ge))return me(ge,ye);throw new TypeError('Invalid attempt to destructure non-iterable instance')}}();u.modelViewInsertion=function(me,ge,ye,be){if(ye.test(ge.item,'insert')&&ye.test(ge.item,'addAttribute:type')&&ye.test(ge.item,'addAttribute:indent')){ye.consume(ge.item,'insert'),ye.consume(ge.item,'addAttribute:type'),ye.consume(ge.item,'addAttribute:indent');var he=ge.item,ve=L(he,be.mapper),ke=be.mapper.toViewPosition(te.default.createBefore(he));W(he,ve,be.mapper,ke)}},u.modelViewChangeType=function(me,ge,ye,be){if(ye.consume(ge.item,'changeAttribute:type')){var he=be.mapper.toViewElement(ge.item);pe.default.breakContainer(ue.default.createBefore(he)),pe.default.breakContainer(ue.default.createAfter(he));var ve=he.parent,ke='numbered'==ge.attributeNewValue?'ol':'ul';ve=pe.default.rename(ve,ke),z(ve,ve.nextSibling),z(ve.previousSibling,ve)}},u.modelViewRemove=function(me,ge,ye,be){if(ye.consume(ge.item,'remove')){var he=be.mapper.toViewPosition(ge.sourcePosition),ve=he.nodeAfter.is('li')?he.nodeAfter:he.nodeAfter.getChild(0);pe.default.breakContainer(ue.default.createBefore(ve)),pe.default.breakContainer(ue.default.createAfter(ve));var ke=ve.parent,Pe=ke.previousSibling,we=se.default.createOn(ke);pe.default.remove(we),Pe&&Pe.nextSibling&&z(Pe,Pe.nextSibling),H(ge.item.getAttribute('indent')+1,ge.sourcePosition,we.start,ve,be.mapper),'$graveyard'==ge.item.root.rootName&&be.mapper.unbindModelElement(ge.item)}},u.modelViewChangeIndent=function(me,ge,ye,be){if(ye.consume(ge.item,'changeAttribute:indent')){var he=be.mapper.toViewElement(ge.item);pe.default.breakContainer(ue.default.createBefore(he)),pe.default.breakContainer(ue.default.createAfter(he));var ve=he.parent,ke=ve.previousSibling,Pe=se.default.createOn(ve);pe.default.remove(Pe);var we;ke&&ke.nextSibling&&(we=z(ke,ke.nextSibling)),we||(we=Pe.start),H(ge.attributeOldValue+1,ge.range.start,Pe.start,he,be.mapper),W(ge.item,he,be.mapper,we)}},u.modelViewSplitOnInsert=function(me,ge,ye,be){if('listItem'!=ge.item.name){for(var he=be.mapper.toViewPosition(ge.range.start),ve=[];('ul'==he.parent.name||'ol'==he.parent.name)&&(he=pe.default.breakContainer(he),'li'==he.parent.name);){var ke=he,Pe=ue.default.createAt(he.parent,'end');if(!ke.isEqual(Pe)){var we=pe.default.remove(new se.default(ke,Pe));ve.push(we)}he=ue.default.createAfter(he.parent)}if(0=R.getAttribute('indent');){if(N.getAttribute('indent')==R.getAttribute('indent'))return N;N=N[V?'nextSibling':'previousSibling']}return null}Object.defineProperty(u,'__esModule',{value:!0});var C=function(){function R(V,N){for(var F=0,D;Fz.getAttribute('indent');)q.push(W),W=W.nextSibling;0>F._indentBy&&(q=q.reverse());var H=!0,U=!1,K;try{for(var $=q[Symbol.iterator](),J;!(H=(J=$.next()).done);H=!0){var G=J.value,Q=G.getAttribute('indent')+F._indentBy;0>Q?L.rename(G,'paragraph'):L.setAttribute(G,'indent',Q)}}catch(ae){U=!0,K=ae}finally{try{!H&&$.return&&$.return()}finally{if(U)throw K}}0>F._indentBy&&(q=q.reverse());var Y=!0,X=!1,Z;try{for(var ee=q[Symbol.iterator](),te,re;!(Y=(te=ee.next()).done);Y=!0)re=te.value,w(re,L)}catch(ae){X=!0,Z=ae}finally{try{!Y&&ee.return&&ee.return()}finally{if(X)throw Z}}})}},{key:'_checkEnabled',value:function(){var F=(0,E.default)(this.editor.document.selection.getSelectedBlocks());if(!F||!F.is('listItem'))return!1;if(0=D;){if(q.getAttribute('indent')==D)return q.getAttribute('type')==L;q=q.previousSibling}return!1}return!0}}]),V}(T.default);u.default=I},function(r,u,s){'use strict';function d(L){return L&&L.__esModule?L:{default:L}}function f(L,q){if(!(L instanceof q))throw new TypeError('Cannot call a class as a function')}function h(L,q){if(!L)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return q&&('object'==typeof q||'function'==typeof q)?q:L}function P(L,q){if('function'!=typeof q&&null!==q)throw new TypeError('Super expression must either be null or a function, not '+typeof q);L.prototype=Object.create(q&&q.prototype,{constructor:{value:L,enumerable:!1,writable:!0,configurable:!0}}),q&&(Object.setPrototypeOf?Object.setPrototypeOf(L,q):L.__proto__=q)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function L(q,z){for(var W=0,H;W=D;)z>q.getAttribute('indent')&&(z=q.getAttribute('indent')),q.getAttribute('indent')==z&&N[F?'unshift':'push'](q),q=q[F?'previousSibling':'nextSibling']}function M(N,F){return F.check({name:'listItem',attributes:['type','indent'],inside:E.default.createBefore(N)})}Object.defineProperty(u,'__esModule',{value:!0});var C=function(){function N(F,D){for(var L=0,q;L=te;te++)ee.push(te)},function(r,u,s){'use strict';function d(I){return I&&I.__esModule?I:{default:I}}function f(I,R){if(!(I instanceof R))throw new TypeError('Cannot call a class as a function')}function h(I,R){if(!I)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return R&&('object'==typeof R||'function'==typeof R)?R:I}function P(I,R){if('function'!=typeof R&&null!==R)throw new TypeError('Super expression must either be null or a function, not '+typeof R);I.prototype=Object.create(R&&R.prototype,{constructor:{value:I,enumerable:!1,writable:!0,configurable:!0}}),R&&(Object.setPrototypeOf?Object.setPrototypeOf(I,R):I.__proto__=R)}Object.defineProperty(u,'__esModule',{value:!0});var w=function(){function I(R,V){for(var N=0,F;Nq&&K():!D&&F?Y>L&&K():X>q&&Y>=L?K():X>=q&&Y>L&&K(),Y===H}),z?[W,z]:null}function w(R){var V=R.left,N=R.top,F=O.default.window,D=F.scrollX,L=F.scrollY;return{left:V+D,top:N+L}}Object.defineProperty(u,'__esModule',{value:!0});var M=function(){function R(V,N){var F=[],D=!0,L=!1,q;try{for(var z=V[Symbol.iterator](),W;!(D=(W=z.next()).done)&&(F.push(W.value),!(N&&F.length===N));D=!0);}catch(H){L=!0,q=H}finally{try{!D&&z['return']&&z['return']()}finally{if(L)throw q}}return F}return function(V,N){if(Array.isArray(V))return V;if(Symbol.iterator in Object(V))return R(V,N);throw new TypeError('Invalid attempt to destructure non-iterable instance')}}();u.getOptimalPosition=function(R){var V=R.element,N=R.target,F=R.positions,D=R.limiter,L=R.fitInViewport;'function'==typeof N&&(N=N());var q=(0,I.default)(V.parentElement),z=new S.default(V),W=new S.default(N),H,U;if(!D&&!L){var K=h(F[0],W,z),$=M(K,2);U=$[0],H=$[1]}else{var J=D&&new S.default(D).getVisible(),G=L&&S.default.getViewportRect(),Q=P(F,W,z,J,G)||h(F[0],W,z),Y=M(Q,2);U=Y[0],H=Y[1]}var X=w(H),Z=X.left,ee=X.top;if(q){var te=w(new S.default(q)),re=O.default.window.getComputedStyle(q);Z-=te.left,ee-=te.top,Z+=q.scrollLeft,ee+=q.scrollTop,Z-=parseInt(re.borderLeftWidth,10),ee-=parseInt(re.borderTopWidth,10)}return{left:Z,top:ee,name:U}};var C=s(46),O=d(C),T=s(403),S=d(T),E=s(399),I=d(E)},function(r,u,s){'use strict';function d(R){return R&&R.__esModule?R:{default:R}}function f(R,V){if(!(R instanceof V))throw new TypeError('Cannot call a class as a function')}function h(R,V){var N=!0,F=!1,D;try{for(var L=I[Symbol.iterator](),q,z;!(N=(q=L.next()).done);N=!0)z=q.value,R[z]=V[z]}catch(W){F=!0,D=W}finally{try{!N&&L.return&&L.return()}finally{if(F)throw D}}}Object.defineProperty(u,'__esModule',{value:!0});var P=function(){function R(V,N){for(var F=0,D;FF.width||0>F.height?null:new R(F)}},{key:'getIntersectionArea',value:function(N){var F=this.getIntersection(N);return F?F.getArea():0}},{key:'getArea',value:function(){return this.width*this.height}},{key:'getVisible',value:function(){var N=this._source,F=this.clone();if(N!=M.default.document.body)for(var D=N.parentNode||N.commonAncestorContainer;D&&D!=M.default.document.body;){var L=new R(D),q=F.getIntersection(L);if(q)q.getArea()=h?f:h)),f}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(17),P=function(M){return M&&M.__esModule?M:{default:M}}(h),w=Object.create;u.default=function(M){return(0,P.default)(M)?w(M):{}}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(14),P=d(h),w=s(503),M=d(w);u.default=function(C,O,T,S){var E=C.length;for(T=(0,P.default)(T),0>T&&(T=-T>E?0:E+T),S=void 0===S||S>E?E:(0,P.default)(S),0>S&&(S+=E),S=T>S?0:(0,M.default)(S);TM?C:0,(0,P.default)(M,C)?w[M]:void 0}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(132),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return function(M){return(0,P.default)(M,w)}}},function(r,u,s){'use strict';function d(N){return N&&N.__esModule?N:{default:N}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(68),P=d(h),w=s(97),M=d(w),C=s(41),O=d(C),T=s(58),S=d(T),E=s(17),I=d(E),R=s(59),V=d(R);u.default=function(N,F,D,L){F=(0,S.default)(F,N)?[F]:(0,M.default)(F);for(var q=-1,z=F.length,H=N,U;null!=H&&++qM||S&&E&&R&&!I&&!V||O&&E&&R||!C&&R||!T)return 1;if(!O&&!S&&!V&&wE?void 0:I,E=1),O=Object(O);++ST)return!1;var S=O.length-1;return T==S?O.pop():M.call(O,T,1),!0}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(93),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){var M=this.__data__,C=(0,P.default)(M,w);return 0>C?void 0:M[C][1]}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(93),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return-1<(0,P.default)(this.__data__,w)}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(93),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){var C=this.__data__,O=(0,P.default)(C,w);return 0>O?C.push([w,M]):C[O][1]=M,this}},function(r,u,s){'use strict';function d(T){return T&&T.__esModule?T:{default:T}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(410),P=d(h),w=s(89),M=d(w),C=s(187),O=d(C);u.default=function(){this.__data__={hash:new P.default,map:new(O.default||M.default),string:new P.default}}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(98),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return(0,P.default)(this,w)['delete'](w)}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(98),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return(0,P.default)(this,w).get(w)}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(98),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return(0,P.default)(this,w).has(w)}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(98),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){return(0,P.default)(this,w).set(w,M),this}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(132),P=d(h),w=s(40),M=d(w);u.default=function(C,O){return 1==O.length?C:(0,P.default)(C,(0,M.default)(O,0,-1))}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0});u.default=function(h){return this.__data__.set(h,'__lodash_hash_undefined__'),this}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return this.__data__.has(f)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){var h=-1,P=Array(f.size);return f.forEach(function(w){P[++h]=[w,w]}),P}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(89),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(){this.__data__=new P.default}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return this.__data__['delete'](f)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return this.__data__.get(f)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return this.__data__.has(f)}},function(r,u,s){'use strict';function d(O){return O&&O.__esModule?O:{default:O}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(89),P=d(h),w=s(127),M=d(w);u.default=function(O,T){var S=this.__data__;return S instanceof P.default&&S.__data__.length==200&&(S=this.__data__=new M.default(S.__data__)),S.set(O,T),this}},function(r,u,s){'use strict';function d(T){return T&&T.__esModule?T:{default:T}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(498),h=d(f),P=s(505),w=d(P),M=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,C=/\\(\\)?/g,O=(0,h.default)(function(T){var S=[];return(0,w.default)(T).replace(M,function(E,I,R,V){S.push(R?V.replace(C,'$1'):I||E)}),S});u.default=O},function(r,u,s){'use strict';function d(Gt){return Gt&&Gt.__esModule?Gt:{default:Gt}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(207),h=d(f),P=s(208),w=d(P),M=s(209),C=d(M),O=s(211),T=d(O),S=s(212),E=d(S),I=s(213),R=d(I),V=s(147),N=d(V),F=s(148),D=d(F),L=s(214),q=d(L),z=s(215),W=d(z),H=s(216),U=d(H),K=s(217),$=d(K),J=s(218),G=d(J),Q=s(219),Y=d(Q),X=s(220),Z=d(X),ee=s(221),te=d(ee),re=s(222),ae=d(re),oe=s(223),ne=d(oe),le=s(149),ue=d(le),ie=s(226),se=d(ie),de=s(227),fe=d(de),ce=s(228),pe=d(ce),me=s(229),ge=d(me),ye=s(230),be=d(ye),he=s(233),ve=d(he),ke=s(18),Pe=d(ke),we=s(234),xe=d(we),Me=s(235),Ce=d(Me),Oe=s(236),Ae=d(Oe),Te=s(153),Se=d(Te),Ee=s(237),Ie=d(Ee),Re=s(238),Ve=d(Re),Ne=s(239),Fe=d(Ne),Be=s(240),De=d(Be),je=s(241),Le=d(je),qe=s(242),ze=d(qe),We=s(243),He=d(We),Ue=s(244),Ke=d(Ue),$e=s(245),Je=d($e),Ge=s(246),Qe=d(Ge),Ye=s(247),Xe=d(Ye),Ze=s(248),et=d(Ze),tt=s(249),rt=d(tt),at=s(250),nt=d(at),lt=s(251),ut=d(lt),it=s(252),st=d(it),dt=s(253),ft=d(dt),ct=s(254),pt=d(ct),mt=s(255),gt=d(mt),yt=s(257),bt=d(yt),ht=s(258),vt=d(ht),kt=s(259),Pt=d(kt),wt=s(260),xt=d(wt),Mt=s(261),Ct=d(Mt),Ot=s(262),At=d(Ot),Tt=s(107),St=d(Tt),Et=s(154),It=d(Et),Rt=s(263),Vt=d(Rt),Nt=s(264),Ft=d(Nt),Bt=s(265),Dt=d(Bt),jt=s(266),Lt=d(jt),qt=s(267),zt=d(qt),Wt=s(268),Ht=d(Wt),Ut=s(269),Kt=d(Ut),$t=s(270),Jt=d($t);u.default={chunk:h.default,compact:w.default,concat:C.default,difference:T.default,differenceBy:E.default,differenceWith:R.default,drop:N.default,dropRight:D.default,dropRightWhile:q.default,dropWhile:W.default,fill:U.default,findIndex:$.default,findLastIndex:G.default,first:Y.default,flatten:Z.default,flattenDeep:te.default,flattenDepth:ae.default,fromPairs:ne.default,head:ue.default,indexOf:se.default,initial:fe.default,intersection:pe.default,intersectionBy:ge.default,intersectionWith:be.default,join:ve.default,last:Pe.default,lastIndexOf:xe.default,nth:Ce.default,pull:Ae.default,pullAll:Se.default,pullAllBy:Ie.default,pullAllWith:Ve.default,pullAt:Fe.default,remove:De.default,reverse:Le.default,slice:ze.default,sortedIndex:He.default,sortedIndexBy:Ke.default,sortedIndexOf:Je.default,sortedLastIndex:Qe.default,sortedLastIndexBy:Xe.default,sortedLastIndexOf:et.default,sortedUniq:rt.default,sortedUniqBy:nt.default,tail:ut.default,take:st.default,takeRight:ft.default,takeRightWhile:pt.default,takeWhile:gt.default,union:bt.default,unionBy:vt.default,unionWith:Pt.default,uniq:xt.default,uniqBy:Ct.default,uniqWith:At.default,unzip:St.default,unzipWith:It.default,without:Vt.default,xor:Ft.default,xorBy:Dt.default,xorWith:Lt.default,zip:zt.default,zipObject:Ht.default,zipObjectDeep:Kt.default,zipWith:Jt.default}},function(r,u,s){'use strict';function d(Be){return Be&&Be.__esModule?Be:{default:Be}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(207);Object.defineProperty(u,'chunk',{enumerable:!0,get:function(){return d(f).default}});var h=s(208);Object.defineProperty(u,'compact',{enumerable:!0,get:function(){return d(h).default}});var P=s(209);Object.defineProperty(u,'concat',{enumerable:!0,get:function(){return d(P).default}});var w=s(211);Object.defineProperty(u,'difference',{enumerable:!0,get:function(){return d(w).default}});var M=s(212);Object.defineProperty(u,'differenceBy',{enumerable:!0,get:function(){return d(M).default}});var C=s(213);Object.defineProperty(u,'differenceWith',{enumerable:!0,get:function(){return d(C).default}});var O=s(147);Object.defineProperty(u,'drop',{enumerable:!0,get:function(){return d(O).default}});var T=s(148);Object.defineProperty(u,'dropRight',{enumerable:!0,get:function(){return d(T).default}});var S=s(214);Object.defineProperty(u,'dropRightWhile',{enumerable:!0,get:function(){return d(S).default}});var E=s(215);Object.defineProperty(u,'dropWhile',{enumerable:!0,get:function(){return d(E).default}});var I=s(216);Object.defineProperty(u,'fill',{enumerable:!0,get:function(){return d(I).default}});var R=s(217);Object.defineProperty(u,'findIndex',{enumerable:!0,get:function(){return d(R).default}});var V=s(218);Object.defineProperty(u,'findLastIndex',{enumerable:!0,get:function(){return d(V).default}});var N=s(219);Object.defineProperty(u,'first',{enumerable:!0,get:function(){return d(N).default}});var F=s(220);Object.defineProperty(u,'flatten',{enumerable:!0,get:function(){return d(F).default}});var D=s(221);Object.defineProperty(u,'flattenDeep',{enumerable:!0,get:function(){return d(D).default}});var L=s(222);Object.defineProperty(u,'flattenDepth',{enumerable:!0,get:function(){return d(L).default}});var q=s(223);Object.defineProperty(u,'fromPairs',{enumerable:!0,get:function(){return d(q).default}});var z=s(149);Object.defineProperty(u,'head',{enumerable:!0,get:function(){return d(z).default}});var W=s(226);Object.defineProperty(u,'indexOf',{enumerable:!0,get:function(){return d(W).default}});var H=s(227);Object.defineProperty(u,'initial',{enumerable:!0,get:function(){return d(H).default}});var U=s(228);Object.defineProperty(u,'intersection',{enumerable:!0,get:function(){return d(U).default}});var K=s(229);Object.defineProperty(u,'intersectionBy',{enumerable:!0,get:function(){return d(K).default}});var $=s(230);Object.defineProperty(u,'intersectionWith',{enumerable:!0,get:function(){return d($).default}});var J=s(233);Object.defineProperty(u,'join',{enumerable:!0,get:function(){return d(J).default}});var G=s(18);Object.defineProperty(u,'last',{enumerable:!0,get:function(){return d(G).default}});var Q=s(234);Object.defineProperty(u,'lastIndexOf',{enumerable:!0,get:function(){return d(Q).default}});var Y=s(235);Object.defineProperty(u,'nth',{enumerable:!0,get:function(){return d(Y).default}});var X=s(236);Object.defineProperty(u,'pull',{enumerable:!0,get:function(){return d(X).default}});var Z=s(153);Object.defineProperty(u,'pullAll',{enumerable:!0,get:function(){return d(Z).default}});var ee=s(237);Object.defineProperty(u,'pullAllBy',{enumerable:!0,get:function(){return d(ee).default}});var te=s(238);Object.defineProperty(u,'pullAllWith',{enumerable:!0,get:function(){return d(te).default}});var re=s(239);Object.defineProperty(u,'pullAt',{enumerable:!0,get:function(){return d(re).default}});var ae=s(240);Object.defineProperty(u,'remove',{enumerable:!0,get:function(){return d(ae).default}});var oe=s(241);Object.defineProperty(u,'reverse',{enumerable:!0,get:function(){return d(oe).default}});var ne=s(242);Object.defineProperty(u,'slice',{enumerable:!0,get:function(){return d(ne).default}});var le=s(243);Object.defineProperty(u,'sortedIndex',{enumerable:!0,get:function(){return d(le).default}});var ue=s(244);Object.defineProperty(u,'sortedIndexBy',{enumerable:!0,get:function(){return d(ue).default}});var ie=s(245);Object.defineProperty(u,'sortedIndexOf',{enumerable:!0,get:function(){return d(ie).default}});var se=s(246);Object.defineProperty(u,'sortedLastIndex',{enumerable:!0,get:function(){return d(se).default}});var de=s(247);Object.defineProperty(u,'sortedLastIndexBy',{enumerable:!0,get:function(){return d(de).default}});var fe=s(248);Object.defineProperty(u,'sortedLastIndexOf',{enumerable:!0,get:function(){return d(fe).default}});var ce=s(249);Object.defineProperty(u,'sortedUniq',{enumerable:!0,get:function(){return d(ce).default}});var pe=s(250);Object.defineProperty(u,'sortedUniqBy',{enumerable:!0,get:function(){return d(pe).default}});var me=s(251);Object.defineProperty(u,'tail',{enumerable:!0,get:function(){return d(me).default}});var ge=s(252);Object.defineProperty(u,'take',{enumerable:!0,get:function(){return d(ge).default}});var ye=s(253);Object.defineProperty(u,'takeRight',{enumerable:!0,get:function(){return d(ye).default}});var be=s(254);Object.defineProperty(u,'takeRightWhile',{enumerable:!0,get:function(){return d(be).default}});var he=s(255);Object.defineProperty(u,'takeWhile',{enumerable:!0,get:function(){return d(he).default}});var ve=s(257);Object.defineProperty(u,'union',{enumerable:!0,get:function(){return d(ve).default}});var ke=s(258);Object.defineProperty(u,'unionBy',{enumerable:!0,get:function(){return d(ke).default}});var Pe=s(259);Object.defineProperty(u,'unionWith',{enumerable:!0,get:function(){return d(Pe).default}});var we=s(260);Object.defineProperty(u,'uniq',{enumerable:!0,get:function(){return d(we).default}});var xe=s(261);Object.defineProperty(u,'uniqBy',{enumerable:!0,get:function(){return d(xe).default}});var Me=s(262);Object.defineProperty(u,'uniqWith',{enumerable:!0,get:function(){return d(Me).default}});var Ce=s(107);Object.defineProperty(u,'unzip',{enumerable:!0,get:function(){return d(Ce).default}});var Oe=s(154);Object.defineProperty(u,'unzipWith',{enumerable:!0,get:function(){return d(Oe).default}});var Ae=s(263);Object.defineProperty(u,'without',{enumerable:!0,get:function(){return d(Ae).default}});var Te=s(264);Object.defineProperty(u,'xor',{enumerable:!0,get:function(){return d(Te).default}});var Se=s(265);Object.defineProperty(u,'xorBy',{enumerable:!0,get:function(){return d(Se).default}});var Ee=s(266);Object.defineProperty(u,'xorWith',{enumerable:!0,get:function(){return d(Ee).default}});var Ie=s(267);Object.defineProperty(u,'zip',{enumerable:!0,get:function(){return d(Ie).default}});var Re=s(268);Object.defineProperty(u,'zipObject',{enumerable:!0,get:function(){return d(Re).default}});var Ve=s(269);Object.defineProperty(u,'zipObjectDeep',{enumerable:!0,get:function(){return d(Ve).default}});var Ne=s(270);Object.defineProperty(u,'zipWith',{enumerable:!0,get:function(){return d(Ne).default}});var Fe=s(487);Object.defineProperty(u,'default',{enumerable:!0,get:function(){return d(Fe).default}})},function(r,u,s){'use strict';function d(L){return L&&L.__esModule?L:{default:L}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(68),h=d(f),P=s(143),w=d(P),M=s(447),C=d(M),O=s(104),T=d(O),S=s(101),E=d(S),I=s(497),R=d(I),V=Object.prototype,N=V.propertyIsEnumerable,F=!N.call({valueOf:1},'valueOf'),D=(0,C.default)(function(L,q){if(F||(0,E.default)(q)||(0,T.default)(q))return void(0,w.default)(q,(0,R.default)(q),L);for(var z in q)(0,h.default)(L,z,q[z])});u.default=D},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(192),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){return(0,P.default)(w,!0,!0,M)}},function(r,u){'use strict';Object.defineProperty(u,'__esModule',{value:!0}),u.default=function(f){return function(){return f}}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(424),P=d(h),w=s(455),M=d(w);u.default=function(C,O){return null!=C&&(0,M.default)(C,O,P.default)}},function(r,u,s){'use strict';(function(d){function f(V){return V&&V.__esModule?V:{default:V}}Object.defineProperty(u,'__esModule',{value:!0});var h='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?function(V){return typeof V}:function(V){return V&&'function'==typeof Symbol&&V.constructor===Symbol&&V!==Symbol.prototype?'symbol':typeof V},P=s(491),w=f(P),M=s(32),C=f(M),O={function:!0,object:!0},T=O[h(u)]&&u&&!u.nodeType?u:void 0,S=O[h(d)]&&d&&!d.nodeType?d:void 0,E=S&&S.exports===T?T:void 0,I=E?C.default.Buffer:void 0,R=I?function(V){return V instanceof I}:(0,w.default)(!1);u.default=R}).call(u,s(108)(r))},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(94),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M){return(0,P.default)(w,M)}},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(94),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w,M,C){C='function'==typeof C?C:void 0;var O=C?C(w,M):void 0;return O===void 0?(0,P.default)(w,M,C):!!O}},function(r,u,s){'use strict';function d(re){return re&&re.__esModule?re:{default:re}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(105),P=d(h),w=s(51),M=d(w),Z={};Z['[object Float32Array]']=Z['[object Float64Array]']=Z['[object Int8Array]']=Z['[object Int16Array]']=Z['[object Int32Array]']=Z['[object Uint8Array]']=Z['[object Uint8ClampedArray]']=Z['[object Uint16Array]']=Z['[object Uint32Array]']=!0,Z['[object Arguments]']=Z['[object Array]']=Z['[object ArrayBuffer]']=Z['[object Boolean]']=Z['[object DataView]']=Z['[object Date]']=Z['[object Error]']=Z['[object Function]']=Z['[object Map]']=Z['[object Number]']=Z['[object Object]']=Z['[object RegExp]']=Z['[object Set]']=Z['[object String]']=Z['[object WeakMap]']=!1;var ee=Object.prototype,te=ee.toString;u.default=function(re){return(0,M.default)(re)&&(0,P.default)(re.length)&&!!Z[te.call(re)]}},function(r,u,s){'use strict';function d(R){return R&&R.__esModule?R:{default:R}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(429),P=d(h),w=s(202),M=d(w),C=s(41),O=d(C),T=s(101),S=d(T),E=Object.prototype,I=E.hasOwnProperty;u.default=function(R){for(var V=-1,N=(0,S.default)(R),F=(0,P.default)(R),D=F.length,L=(0,M.default)(R),z=L||[],W=z.length,H;++VC?-1:1;return O*1.7976931348623157e308}return C===C?C:0}},function(r,u,s){'use strict';function d(O){return O&&O.__esModule?O:{default:O}}Object.defineProperty(u,'__esModule',{value:!0});var h=s(420),P=d(h),w=s(14),M=d(w);u.default=function(O){return O?(0,P.default)((0,M.default)(O),0,4294967295):0}},function(r,u,s){'use strict';function d(C){return C&&C.__esModule?C:{default:C}}Object.defineProperty(u,'__esModule',{value:!0});var f=s(449),h=d(f),P=s(71),w=d(P),M=(0,h.default)(w.default);u.default=M},function(r,u,s){'use strict';Object.defineProperty(u,'__esModule',{value:!0});var h=s(436),P=function(w){return w&&w.__esModule?w:{default:w}}(h);u.default=function(w){return null==w?'':(0,P.default)(w)}},function(r,u,s){'use strict';function d(w,M){if(!(w instanceof M))throw new TypeError('Cannot call a class as a function')}Object.defineProperty(u,'__esModule',{value:!0});var f=function(){function w(M,C){for(var O=0,T;O*{margin-right:.4em}.ck-toolbar>:last-child{margin-right:0}.ck-toolbar-container .ck-toolbar{border:0}.ck-dropdown:after{border-style:solid;border-width:.4em .4em 0;border-color:#707070 transparent;right:.8em}.ck-dropdown .ck-button.ck-dropdown__button{padding-right:1.6em}.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:.5}.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{width:7em;overflow:hidden;text-overflow:ellipsis}.ck-dropdown__panel{border:1px solid #b9b9b9;bottom:1px;background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.2)}.ck-dropdown__panel.ck-rounded-corners,.ck-rounded-corners .ck-dropdown__panel{border-radius:2px}.ck-list{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;list-style-type:none;background:#fff}.ck-list.ck-rounded-corners,.ck-rounded-corners .ck-list{border-radius:2px}.ck-list__item{padding:.64em;cursor:default;min-width:12em}.ck-list__item:focus,.ck-list__item:hover{background:#f7f7f7}.ck-list__item:focus{box-shadow:0 0 3px 2px #9bcdfb;position:relative;z-index:1;outline:none}.ck-list__item:last-of-type{border:none}.ck-list__item_active{background:#1a8bf1;color:#fff}.ck-list__item_active:focus,.ck-list__item_active:hover{background:#0e7ee2}.ck-label{font-weight:700}.ck-input-text{box-shadow:inset 2px 2px 3px #e6e6e6;border:1px solid #b9b9b9;padding:.64em;min-width:250px}.ck-input-text.ck-rounded-corners,.ck-rounded-corners .ck-input-text{border-radius:2px}.ck-input-text:focus{outline:none;border:1px solid #6ab5f9;box-shadow:0 0 3px 2px #9bcdfb,inset 2px 2px 3px #e6e6e6}.ck-input-text[readonly]{border:1px solid #d2d2d2;background:#f7f7f7;color:#5c5c5c}.ck-balloon-panel{box-shadow:0 1px 2px 0 rgba(0,0,0,.2);min-height:15px;background:#fff;border:1px solid #b9b9b9}.ck-balloon-panel.ck-rounded-corners,.ck-rounded-corners .ck-balloon-panel{border-radius:2px}.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck-balloon-panel.ck-balloon-panel_with-arrow:before{width:0;height:0;border-style:solid}.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck-balloon-panel.ck-balloon-panel_arrow_n:before,.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck-balloon-panel.ck-balloon-panel_arrow_ne:before,.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{border-width:0 10px 15px}.ck-balloon-panel.ck-balloon-panel_arrow_n:before,.ck-balloon-panel.ck-balloon-panel_arrow_ne:before,.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{border-color:transparent transparent #b9b9b9}.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck-balloon-panel.ck-balloon-panel_arrow_nw:after{border-color:transparent transparent #fff;margin-top:2px}.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck-balloon-panel.ck-balloon-panel_arrow_s:before,.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck-balloon-panel.ck-balloon-panel_arrow_se:before,.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{border-width:15px 10px 0}.ck-balloon-panel.ck-balloon-panel_arrow_s:before,.ck-balloon-panel.ck-balloon-panel_arrow_se:before,.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{border-color:#b9b9b9 transparent transparent}.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck-balloon-panel.ck-balloon-panel_arrow_sw:after{border-color:#fff transparent transparent;margin-bottom:2px}.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:-10px;top:-15px}.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:20px;top:-15px}.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:20px;top:-15px}.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck-balloon-panel.ck-balloon-panel_arrow_s:before{left:50%;margin-left:-10px;bottom:-15px}.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{left:20px;bottom:-15px}.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck-balloon-panel.ck-balloon-panel_arrow_se:before{right:20px;bottom:-15px}.ck-editor-toolbar{border-radius:0}.ck-editor-toolbar .ck-button{border-width:0}.ck-editor-toolbar .ck-button.ck-disabled,.ck-editor-toolbar .ck-button:not(:hover):not(:focus):not(.ck-on){background:#f7f7f7}.ck-editor-toolbar .ck-button.ck-on{background:#dedede;border-color:#a1a1a1}.ck-editor-toolbar .ck-button.ck-on:not(.ck-disabled):focus,.ck-editor-toolbar .ck-button.ck-on:not(.ck-disabled):hover{background:#c6c6c6;border-color:#888}.ck-editor-toolbar .ck-button.ck-on:not(.ck-disabled):active{background:#b9b9b9;border-color:#7c7c7c;box-shadow:inset 0 2px 2px #a1a1a1}.ck-editor-toolbar .ck-button.ck-on.ck-disabled{background:#f7f7f7;border-color:#b9b9b9}.ck-editor-toolbar .ck-dropdown__button{border-width:1px}.ck-editor-toolbar .ck-dropdown__button:not(:hover):not(:focus):not(.ck-on){background:#fff}.ck-toolbar-container .ck-editor-toolbar{background:#f7f7f7}.ck-editor-toolbar-container.ck-balloon-panel_arrow_n:after,.ck-editor-toolbar-container.ck-balloon-panel_arrow_ne:after,.ck-editor-toolbar-container.ck-balloon-panel_arrow_nw:after{border-bottom-color:#f7f7f7}.ck-editor-toolbar-container.ck-balloon-panel_arrow_s:after,.ck-editor-toolbar-container.ck-balloon-panel_arrow_se:after,.ck-editor-toolbar-container.ck-balloon-panel_arrow_sw:after{border-top-color:#f7f7f7}.ck-editor .ck-toolbar.ck-toolbar_sticky{box-shadow:0 1px 2px 0 rgba(0,0,0,.2);border:1px solid #bfbfbf;border-width:0 0 1px;background:#f7f7f7}.ck-editor{position:relative}.ck-editor.ck-rounded-corners,.ck-rounded-corners .ck-editor{border-radius:2px}.ck-editor .ck-editor__top .ck-toolbar{border-top:0;border-left:0;border-right:0;z-index:999}.ck-editor .ck-editor__main{background:#fff}.ck-editor .ck-editor__bottom{border-bottom:0;border-left:0;border-right:0;padding:.8em}.ck-editor .ck-editor__editable.ck-focused{outline:1px solid #6ab5f9;box-shadow:inset 2px 2px 3px #e6e6e6}.ck-editor .ck-editor__editable_inline{overflow:auto;padding:0 .8em}.ck-editor,.ck-editor-bottom{background:#f7f7f7;border:1px solid #b9b9b9}',''])},function(r,u,s){u=r.exports=s(30)(void 0),u.push([r.i,'.ck-placeholder:before{content:attr(data-placeholder);cursor:text;color:#c2c2c2;pointer-events:none}',''])},function(r,u,s){u=r.exports=s(30)(void 0),u.push([r.i,'.ck-heading_heading1{font-size:1.5em}.ck-heading_heading2{font-size:1.3em}.ck-heading_heading3{font-size:1.1em}[class*=ck-heading_]{line-height:21.6px;padding:9.6px}[class*=ck-heading_heading]{font-weight:700}.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}',''])},function(r,u,s){u=r.exports=s(30)(void 0),u.push([r.i,'.ck-editor__editable .image>figcaption{background-color:#f7f7f7;padding:.8em;font-size:.75rem;color:#858585;outline-offset:-1px}',''])},function(r,u,s){u=r.exports=s(30)(void 0),u.push([r.i,'.cke-text-alternative-form{padding:1.2em;overflow:hidden}.cke-text-alternative-form .ck-label{margin-bottom:.4em}.cke-text-alternative-form__actions{clear:both;padding-top:1.2em}.cke-text-alternative-form__actions .ck-button{float:right}.cke-text-alternative-form__actions .ck-button+.ck-button{margin-right:.64em}.cke-text-alternative-form__actions .ck-button+.ck-button+.ck-button{float:left}',''])},function(r,u,s){u=r.exports=s(30)(void 0),u.push([r.i,'.ck-editor__editable .image{text-align:center;clear:both}.ck-editor__editable .image.image-style-side{float:right;margin-left:.8em;max-width:50%}.ck-editor__editable .image>img{display:block;margin:0 auto;max-width:100%}',''])},function(r,u,s){u=r.exports=s(30)(void 0),u.push([r.i,'.ck-link-form{padding:1.2em;overflow:hidden}.ck-link-form:focus{outline:none}.ck-link-form .ck-label{margin-bottom:.4em}.ck-link-form__actions{clear:both;padding-top:1.2em}.ck-link-form__actions .ck-button{float:right}.ck-link-form__actions .ck-button+.ck-button{margin-right:.64em}.ck-link-form__actions .ck-button+.ck-button+.ck-button{float:left}',''])},function(r,u,s){u=r.exports=s(30)(void 0),u.push([r.i,'.ck-widget{margin:.8em 0;padding:0}.ck-widget.ck-widget_selected,.ck-widget.ck-widget_selected:hover{outline:3px solid #6ab5f9}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected{outline:3px solid #ddd}.ck-widget:hover{outline:3px solid #ffd25c}.ck-widget .ck-editable.ck-editable_focused,.ck-widget .ck-editable:focus{outline:1px solid #6ab5f9;box-shadow:inset 2px 2px 3px #e6e6e6;background-color:#fff}',''])},function(r){r.exports=''},function(r){r.exports=''},function(r){r.exports=''},function(r){r.exports=''},function(r){r.exports=''},function(r){r.exports=''},function(r){r.exports=''},function(r){r.exports=''},function(r){r.exports=''},function(r){r.exports=''},function(r){r.exports=''},function(r){r.exports=''},function(r,u,s){var d=s(512);'string'==typeof d&&(d=[[r.i,d,'']]);s(33)(d,{});d.locals&&(r.exports=d.locals),!1},function(r,u,s){var d=s(513);'string'==typeof d&&(d=[[r.i,d,'']]);s(33)(d,{});d.locals&&(r.exports=d.locals),!1},function(r,u,s){var d=s(514);'string'==typeof d&&(d=[[r.i,d,'']]);s(33)(d,{});d.locals&&(r.exports=d.locals),!1},function(r,u,s){var d=s(515);'string'==typeof d&&(d=[[r.i,d,'']]);s(33)(d,{});d.locals&&(r.exports=d.locals),!1},function(r,u,s){var d=s(516);'string'==typeof d&&(d=[[r.i,d,'']]);s(33)(d,{});d.locals&&(r.exports=d.locals),!1},function(r,u,s){var d=s(517);'string'==typeof d&&(d=[[r.i,d,'']]);s(33)(d,{});d.locals&&(r.exports=d.locals),!1},function(r,u,s){var d=s(518);'string'==typeof d&&(d=[[r.i,d,'']]);s(33)(d,{});d.locals&&(r.exports=d.locals),!1},function(r,u,s){var d=s(519);'string'==typeof d&&(d=[[r.i,d,'']]);s(33)(d,{});d.locals&&(r.exports=d.locals),!1},function(r,u,s){var d=s(520);'string'==typeof d&&(d=[[r.i,d,'']]);s(33)(d,{});d.locals&&(r.exports=d.locals),!1},function(r,u,s){s(273),r.exports=s(274)}])}); //# sourceMappingURL=ckeditor.compat.js.map \ No newline at end of file diff --git a/build/ckeditor.compat.js.map b/build/ckeditor.compat.js.map index 339bdc3d23..69d2d02255 100644 --- a/build/ckeditor.compat.js.map +++ b/build/ckeditor.compat.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///../ckeditor5-engine/src/view/writer.js","webpack:///../ckeditor5-utils/src/uid.js","webpack:///../ckeditor5-utils/src/lib/lodash/rest.js","webpack:///../ckeditor5-engine/src/model/position.js","webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap ecb096a2104482aaa84d","webpack:///../ckeditor5-utils/src/ckeditorerror.js","webpack:///../ckeditor5-core/src/plugin.js","webpack:///../ckeditor5-engine/src/model/range.js","webpack:///../ckeditor5-utils/src/mix.js","webpack:///../ckeditor5-engine/src/model/element.js","webpack:///../ckeditor5-ui/src/template.js","webpack:///../ckeditor5-utils/src/emittermixin.js","webpack:///../ckeditor5-ui/src/view.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseIteratee.js","webpack:///../ckeditor5-core/src/command/command.js","webpack:///../ckeditor5-utils/src/lib/lodash/isArray.js","webpack:///../ckeditor5-utils/src/lib/lodash/isArrayLikeObject.js","webpack:///../ckeditor5-utils/src/lib/lodash/isObject.js","webpack:///../ckeditor5-utils/src/lib/lodash/toInteger.js","webpack:///../ckeditor5-engine/src/model/batch.js","webpack:///../ckeditor5-engine/src/model/delta/deltafactory.js","webpack:///../ckeditor5-utils/src/lib/lodash/last.js","webpack:///../ckeditor5-engine/src/model/delta/delta.js","webpack:///../ckeditor5-engine/src/model/writer.js","webpack:///../ckeditor5-ui/src/button/buttonview.js","webpack:///../ckeditor5-utils/src/keyboard.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseFlatten.js","webpack:///../ckeditor5-engine/src/model/text.js","webpack:///../ckeditor5-engine/src/view/element.js","webpack:///../ckeditor5-engine/src/view/position.js","webpack:///../ckeditor5-utils/src/lib/lodash/_arrayMap.js","webpack:////Users/pomek/Projects/ckeditor/ckeditor5/~/css-loader/lib/css-base.js","webpack:///../ckeditor5-engine/src/model/operation/moveoperation.js","webpack:///../ckeditor5-engine/src/view/text.js","webpack:///../ckeditor5-utils/src/lib/lodash/_root.js","webpack:///../ckeditor5-utils/src/observablemixin.js","webpack:////Users/pomek/Projects/ckeditor/ckeditor5/~/style-loader/addStyles.js","webpack:///../ckeditor5-engine/src/conversion/buildviewconverter.js","webpack:///../ckeditor5-engine/src/model/documentfragment.js","webpack:///../ckeditor5-engine/src/model/operation/operation.js","webpack:///../ckeditor5-engine/src/model/treewalker.js","webpack:///../ckeditor5-engine/src/view/range.js","webpack:///../ckeditor5-image/src/image/utils.js","webpack:///../ckeditor5-utils/src/dom/global.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseSlice.js","webpack:///../ckeditor5-utils/src/lib/lodash/_isIndex.js","webpack:///../ckeditor5-utils/src/log.js","webpack:///../ckeditor5-engine/src/conversion/buildmodelconverter.js","webpack:///../ckeditor5-engine/src/model/operation/insertoperation.js","webpack:///../ckeditor5-engine/src/model/operation/removeoperation.js","webpack:///../ckeditor5-engine/src/view/containerelement.js","webpack:///../ckeditor5-utils/src/isiterable.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseUniq.js","webpack:///../ckeditor5-utils/src/lib/lodash/extend.js","webpack:///../ckeditor5-utils/src/lib/lodash/isObjectLike.js","webpack:///../ckeditor5-utils/src/lib/lodash/isSymbol.js","webpack:///../ckeditor5-engine/src/view/observer/observer.js","webpack:///../ckeditor5-engine/src/view/treewalker.js","webpack:///../ckeditor5-utils/src/lib/lodash/_getNative.js","webpack:///../ckeditor5-utils/src/lib/lodash/_isKey.js","webpack:///../ckeditor5-utils/src/lib/lodash/_toKey.js","webpack:///../ckeditor5-utils/src/lib/lodash/eq.js","webpack:///../ckeditor5-engine/src/model/node.js","webpack:///../ckeditor5-engine/src/model/selection.js","webpack:///../ckeditor5-engine/src/model/textproxy.js","webpack:///../ckeditor5-engine/src/view/filler.js","webpack:///../ckeditor5-engine/src/view/observer/domeventobserver.js","webpack:///../ckeditor5-engine/src/view/selection.js","webpack:///../ckeditor5-utils/src/comparearrays.js","webpack:///../ckeditor5-utils/src/first.js","webpack:///../ckeditor5-utils/src/focustracker.js","webpack:///../ckeditor5-utils/src/keystrokehandler.js","webpack:///../ckeditor5-utils/src/lib/lodash/_assignValue.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseDifference.js","webpack:///../ckeditor5-utils/src/lib/lodash/keys.js","webpack:///../ckeditor5-engine/src/model/nodelist.js","webpack:///../ckeditor5-engine/src/model/operation/attributeoperation.js","webpack:///../ckeditor5-engine/src/model/operation/nooperation.js","webpack:///../ckeditor5-engine/src/view/editableelement.js","webpack:///../ckeditor5-engine/src/view/node.js","webpack:///../ckeditor5-paragraph/src/paragraph.js","webpack:///../ckeditor5-utils/src/collection.js","webpack:///../ckeditor5-utils/src/dom/emittermixin.js","webpack:///../ckeditor5-utils/src/lib/lodash/_ListCache.js","webpack:///../ckeditor5-utils/src/lib/lodash/_SetCache.js","webpack:///../ckeditor5-utils/src/lib/lodash/_arrayFilter.js","webpack:///../ckeditor5-utils/src/lib/lodash/_arrayPush.js","webpack:///../ckeditor5-utils/src/lib/lodash/_assocIndexOf.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseSortedIndex.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseWhile.js","webpack:///../ckeditor5-utils/src/lib/lodash/_castPath.js","webpack:///../ckeditor5-utils/src/lib/lodash/_getMapData.js","webpack:///../ckeditor5-utils/src/lib/lodash/_isHostObject.js","webpack:///../ckeditor5-utils/src/lib/lodash/_isIterateeCall.js","webpack:///../ckeditor5-utils/src/lib/lodash/_isPrototype.js","webpack:///../ckeditor5-utils/src/lib/lodash/_nativeCreate.js","webpack:///../ckeditor5-utils/src/lib/lodash/_setToArray.js","webpack:///../ckeditor5-utils/src/lib/lodash/clone.js","webpack:///../ckeditor5-utils/src/lib/lodash/isArrayLike.js","webpack:///../ckeditor5-utils/src/lib/lodash/isLength.js","webpack:///../ckeditor5-utils/src/lib/lodash/isPlainObject.js","webpack:///../ckeditor5-utils/src/lib/lodash/unzip.js","webpack:///(webpack)/buildin/module.js","webpack:///../ckeditor5-core/src/command/helpers/getschemavalidranges.js","webpack:///../ckeditor5-engine/src/conversion/model-to-view-converters.js","webpack:///../ckeditor5-engine/src/model/delta/insertdelta.js","webpack:///../ckeditor5-engine/src/model/delta/mergedelta.js","webpack:///../ckeditor5-engine/src/model/delta/movedelta.js","webpack:///../ckeditor5-engine/src/model/delta/removedelta.js","webpack:///../ckeditor5-engine/src/model/delta/splitdelta.js","webpack:///../ckeditor5-engine/src/model/delta/transform.js","webpack:///../ckeditor5-engine/src/model/delta/unwrapdelta.js","webpack:///../ckeditor5-engine/src/model/delta/wrapdelta.js","webpack:///../ckeditor5-engine/src/model/liverange.js","webpack:///../ckeditor5-engine/src/model/operation/markeroperation.js","webpack:///../ckeditor5-engine/src/model/operation/reinsertoperation.js","webpack:///../ckeditor5-engine/src/model/operation/renameoperation.js","webpack:///../ckeditor5-engine/src/model/operation/rootattributeoperation.js","webpack:///../ckeditor5-engine/src/view/attributeelement.js","webpack:///../ckeditor5-engine/src/view/documentfragment.js","webpack:///../ckeditor5-engine/src/view/observer/domeventdata.js","webpack:///../ckeditor5-ui/src/focuscycler.js","webpack:///../ckeditor5-ui/src/viewcollection.js","webpack:///../ckeditor5-utils/src/lib/lodash/_MapCache.js","webpack:///../ckeditor5-utils/src/lib/lodash/_Stack.js","webpack:///../ckeditor5-utils/src/lib/lodash/_Symbol.js","webpack:///../ckeditor5-utils/src/lib/lodash/_arrayIncludes.js","webpack:///../ckeditor5-utils/src/lib/lodash/_arrayIncludesWith.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseGet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseIndexOf.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseIntersection.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseIsEqual.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseProperty.js","webpack:///../ckeditor5-utils/src/lib/lodash/_basePullAll.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseSortedIndexBy.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseUnary.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseXor.js","webpack:///../ckeditor5-utils/src/lib/lodash/_cacheHas.js","webpack:///../ckeditor5-utils/src/lib/lodash/_castArrayLikeObject.js","webpack:///../ckeditor5-utils/src/lib/lodash/_cloneArrayBuffer.js","webpack:///../ckeditor5-utils/src/lib/lodash/_copyObject.js","webpack:///../ckeditor5-utils/src/lib/lodash/_getPrototype.js","webpack:///../ckeditor5-utils/src/lib/lodash/_getTag.js","webpack:///../ckeditor5-utils/src/lib/lodash/_mapToArray.js","webpack:///../ckeditor5-utils/src/lib/lodash/debounce.js","webpack:///../ckeditor5-utils/src/lib/lodash/drop.js","webpack:///../ckeditor5-utils/src/lib/lodash/dropRight.js","webpack:///../ckeditor5-utils/src/lib/lodash/head.js","webpack:///../ckeditor5-utils/src/lib/lodash/isArguments.js","webpack:///../ckeditor5-utils/src/lib/lodash/isFunction.js","webpack:///../ckeditor5-utils/src/lib/lodash/isString.js","webpack:///../ckeditor5-utils/src/lib/lodash/pullAll.js","webpack:///../ckeditor5-utils/src/lib/lodash/unzipWith.js","webpack:///../ckeditor5-utils/src/tomap.js","webpack:///../ckeditor5-widget/src/utils.js","webpack:///(webpack)/buildin/global.js","webpack:///../ckeditor5-core/src/command/helpers/isattributeallowedinselection.js","webpack:///../ckeditor5-core/src/command/toggleattributecommand.js","webpack:///../ckeditor5-engine/src/conversion/mapper.js","webpack:///../ckeditor5-engine/src/conversion/model-selection-to-view-converters.js","webpack:///../ckeditor5-engine/src/conversion/modelconversiondispatcher.js","webpack:///../ckeditor5-engine/src/dataprocessor/htmldataprocessor.js","webpack:///../ckeditor5-engine/src/model/delta/attributedelta.js","webpack:///../ckeditor5-engine/src/model/delta/renamedelta.js","webpack:///../ckeditor5-engine/src/model/delta/weakinsertdelta.js","webpack:///../ckeditor5-engine/src/model/liveposition.js","webpack:///../ckeditor5-engine/src/view/domconverter.js","webpack:///../ckeditor5-engine/src/view/emptyelement.js","webpack:///../ckeditor5-engine/src/view/matcher.js","webpack:///../ckeditor5-engine/src/view/observer/mutationobserver.js","webpack:///../ckeditor5-engine/src/view/rooteditableelement.js","webpack:///../ckeditor5-engine/src/view/uielement.js","webpack:///../ckeditor5-image/src/image/imageengine.js","webpack:///../ckeditor5-image/src/image/ui/imageballoonpanelview.js","webpack:///../ckeditor5-image/src/imagetoolbar.js","webpack:///../ckeditor5-link/src/findlinkrange.js","webpack:///../ckeditor5-link/src/linkelement.js","webpack:///../ckeditor5-typing/src/changebuffer.js","webpack:///../ckeditor5-ui/src/bindings/clickoutsidehandler.js","webpack:///../ckeditor5-ui/src/bindings/preventdefault.js","webpack:///../ckeditor5-ui/src/bindings/submithandler.js","webpack:///../ckeditor5-ui/src/inputtext/inputtextview.js","webpack:///../ckeditor5-ui/src/labeledinput/labeledinputview.js","webpack:///../ckeditor5-ui/src/panel/balloon/balloonpanelview.js","webpack:///../ckeditor5-ui/src/toolbar/toolbarview.js","webpack:///../ckeditor5-undo/src/basecommand.js","webpack:///../ckeditor5-utils/src/count.js","webpack:///../ckeditor5-utils/src/diff.js","webpack:///../ckeditor5-utils/src/dom/getancestors.js","webpack:///../ckeditor5-utils/src/dom/isrange.js","webpack:///../ckeditor5-utils/src/dom/tounit.js","webpack:///../ckeditor5-utils/src/lib/lodash/_Map.js","webpack:///../ckeditor5-utils/src/lib/lodash/_Set.js","webpack:///../ckeditor5-utils/src/lib/lodash/_Uint8Array.js","webpack:///../ckeditor5-utils/src/lib/lodash/_apply.js","webpack:///../ckeditor5-utils/src/lib/lodash/_arrayReduce.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseClone.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseFindIndex.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseHas.js","webpack:///../ckeditor5-utils/src/lib/lodash/_basePullAt.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseSortedUniq.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseTimes.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseZipObject.js","webpack:///../ckeditor5-utils/src/lib/lodash/_copyArray.js","webpack:///../ckeditor5-utils/src/lib/lodash/_equalArrays.js","webpack:///../ckeditor5-utils/src/lib/lodash/_getSymbols.js","webpack:///../ckeditor5-utils/src/lib/lodash/_indexKeys.js","webpack:///../ckeditor5-utils/src/lib/lodash/_indexOfNaN.js","webpack:///../ckeditor5-utils/src/lib/lodash/_isStrictComparable.js","webpack:///../ckeditor5-utils/src/lib/lodash/_matchesStrictComparable.js","webpack:///../ckeditor5-utils/src/lib/lodash/_toSource.js","webpack:///../ckeditor5-utils/src/lib/lodash/chunk.js","webpack:///../ckeditor5-utils/src/lib/lodash/compact.js","webpack:///../ckeditor5-utils/src/lib/lodash/concat.js","webpack:///../ckeditor5-utils/src/lib/lodash/difference.js","webpack:///../ckeditor5-utils/src/lib/lodash/differenceBy.js","webpack:///../ckeditor5-utils/src/lib/lodash/differenceWith.js","webpack:///../ckeditor5-utils/src/lib/lodash/dropRightWhile.js","webpack:///../ckeditor5-utils/src/lib/lodash/dropWhile.js","webpack:///../ckeditor5-utils/src/lib/lodash/fill.js","webpack:///../ckeditor5-utils/src/lib/lodash/findIndex.js","webpack:///../ckeditor5-utils/src/lib/lodash/findLastIndex.js","webpack:///../ckeditor5-utils/src/lib/lodash/first.js","webpack:///../ckeditor5-utils/src/lib/lodash/flatten.js","webpack:///../ckeditor5-utils/src/lib/lodash/flattenDeep.js","webpack:///../ckeditor5-utils/src/lib/lodash/flattenDepth.js","webpack:///../ckeditor5-utils/src/lib/lodash/fromPairs.js","webpack:///../ckeditor5-utils/src/lib/lodash/get.js","webpack:///../ckeditor5-utils/src/lib/lodash/identity.js","webpack:///../ckeditor5-utils/src/lib/lodash/indexOf.js","webpack:///../ckeditor5-utils/src/lib/lodash/initial.js","webpack:///../ckeditor5-utils/src/lib/lodash/intersection.js","webpack:///../ckeditor5-utils/src/lib/lodash/intersectionBy.js","webpack:///../ckeditor5-utils/src/lib/lodash/intersectionWith.js","webpack:///../ckeditor5-utils/src/lib/lodash/isElement.js","webpack:///../ckeditor5-utils/src/lib/lodash/isNative.js","webpack:///../ckeditor5-utils/src/lib/lodash/join.js","webpack:///../ckeditor5-utils/src/lib/lodash/lastIndexOf.js","webpack:///../ckeditor5-utils/src/lib/lodash/nth.js","webpack:///../ckeditor5-utils/src/lib/lodash/pull.js","webpack:///../ckeditor5-utils/src/lib/lodash/pullAllBy.js","webpack:///../ckeditor5-utils/src/lib/lodash/pullAllWith.js","webpack:///../ckeditor5-utils/src/lib/lodash/pullAt.js","webpack:///../ckeditor5-utils/src/lib/lodash/remove.js","webpack:///../ckeditor5-utils/src/lib/lodash/reverse.js","webpack:///../ckeditor5-utils/src/lib/lodash/slice.js","webpack:///../ckeditor5-utils/src/lib/lodash/sortedIndex.js","webpack:///../ckeditor5-utils/src/lib/lodash/sortedIndexBy.js","webpack:///../ckeditor5-utils/src/lib/lodash/sortedIndexOf.js","webpack:///../ckeditor5-utils/src/lib/lodash/sortedLastIndex.js","webpack:///../ckeditor5-utils/src/lib/lodash/sortedLastIndexBy.js","webpack:///../ckeditor5-utils/src/lib/lodash/sortedLastIndexOf.js","webpack:///../ckeditor5-utils/src/lib/lodash/sortedUniq.js","webpack:///../ckeditor5-utils/src/lib/lodash/sortedUniqBy.js","webpack:///../ckeditor5-utils/src/lib/lodash/tail.js","webpack:///../ckeditor5-utils/src/lib/lodash/take.js","webpack:///../ckeditor5-utils/src/lib/lodash/takeRight.js","webpack:///../ckeditor5-utils/src/lib/lodash/takeRightWhile.js","webpack:///../ckeditor5-utils/src/lib/lodash/takeWhile.js","webpack:///../ckeditor5-utils/src/lib/lodash/toNumber.js","webpack:///../ckeditor5-utils/src/lib/lodash/union.js","webpack:///../ckeditor5-utils/src/lib/lodash/unionBy.js","webpack:///../ckeditor5-utils/src/lib/lodash/unionWith.js","webpack:///../ckeditor5-utils/src/lib/lodash/uniq.js","webpack:///../ckeditor5-utils/src/lib/lodash/uniqBy.js","webpack:///../ckeditor5-utils/src/lib/lodash/uniqWith.js","webpack:///../ckeditor5-utils/src/lib/lodash/without.js","webpack:///../ckeditor5-utils/src/lib/lodash/xor.js","webpack:///../ckeditor5-utils/src/lib/lodash/xorBy.js","webpack:///../ckeditor5-utils/src/lib/lodash/xorWith.js","webpack:///../ckeditor5-utils/src/lib/lodash/zip.js","webpack:///../ckeditor5-utils/src/lib/lodash/zipObject.js","webpack:///../ckeditor5-utils/src/lib/lodash/zipObjectDeep.js","webpack:///../ckeditor5-utils/src/lib/lodash/zipWith.js","webpack:///../ckeditor5-utils/src/objecttomap.js","webpack:///../ckeditor5-utils/src/unicode.js","webpack:////Users/pomek/Projects/ckeditor/ckeditor5/~/regenerator-runtime/runtime.js","webpack:///./ckeditor.js","webpack:////Users/pomek/Projects/ckeditor/ckeditor5/~/style-loader/fixUrls.js","webpack:///../ckeditor5-autoformat/src/autoformat.js","webpack:///../ckeditor5-autoformat/src/blockautoformatengine.js","webpack:///../ckeditor5-autoformat/src/inlineautoformatengine.js","webpack:///../ckeditor5-basic-styles/src/bold.js","webpack:///../ckeditor5-basic-styles/src/boldengine.js","webpack:///../ckeditor5-basic-styles/src/italic.js","webpack:///../ckeditor5-basic-styles/src/italicengine.js","webpack:///../ckeditor5-block-quote/src/blockquote.js","webpack:///../ckeditor5-block-quote/src/blockquotecommand.js","webpack:///../ckeditor5-block-quote/src/blockquoteengine.js","webpack:///../ckeditor5-clipboard/src/clipboard.js","webpack:///../ckeditor5-clipboard/src/clipboardobserver.js","webpack:///../ckeditor5-clipboard/src/datatransfer.js","webpack:///../ckeditor5-clipboard/src/utils/normalizeclipboarddata.js","webpack:///../ckeditor5-clipboard/src/utils/plaintexttohtml.js","webpack:///../ckeditor5-clipboard/src/utils/viewtoplaintext.js","webpack:///../ckeditor5-core/src/editingkeystrokehandler.js","webpack:///../ckeditor5-core/src/editor/editor.js","webpack:///../ckeditor5-core/src/editor/standardeditor.js","webpack:///../ckeditor5-core/src/plugincollection.js","webpack:///../ckeditor5-editor-classic/src/classic.js","webpack:///../ckeditor5-editor-classic/src/classiceditorui.js","webpack:///../ckeditor5-editor-classic/src/classiceditoruiview.js","webpack:///../ckeditor5-engine/src/controller/datacontroller.js","webpack:///../ckeditor5-engine/src/controller/deletecontent.js","webpack:///../ckeditor5-engine/src/controller/editingcontroller.js","webpack:///../ckeditor5-engine/src/controller/getselectedcontent.js","webpack:///../ckeditor5-engine/src/controller/insertcontent.js","webpack:///../ckeditor5-engine/src/controller/modifyselection.js","webpack:///../ckeditor5-engine/src/conversion/modelconsumable.js","webpack:///../ckeditor5-engine/src/conversion/view-selection-to-model-converters.js","webpack:///../ckeditor5-engine/src/conversion/view-to-model-converters.js","webpack:///../ckeditor5-engine/src/conversion/viewconsumable.js","webpack:///../ckeditor5-engine/src/conversion/viewconversiondispatcher.js","webpack:///../ckeditor5-engine/src/dataprocessor/basichtmlwriter.js","webpack:///../ckeditor5-engine/src/model/delta/basic-deltas.js","webpack:///../ckeditor5-engine/src/model/delta/basic-transformations.js","webpack:///../ckeditor5-engine/src/model/delta/markerdelta.js","webpack:///../ckeditor5-engine/src/model/document.js","webpack:///../ckeditor5-engine/src/model/history.js","webpack:///../ckeditor5-engine/src/model/liveselection.js","webpack:///../ckeditor5-engine/src/model/markercollection.js","webpack:///../ckeditor5-engine/src/model/operation/operationfactory.js","webpack:///../ckeditor5-engine/src/model/operation/transform.js","webpack:///../ckeditor5-engine/src/model/rootelement.js","webpack:///../ckeditor5-engine/src/model/schema.js","webpack:///../ckeditor5-engine/src/view/document.js","webpack:///../ckeditor5-engine/src/view/observer/clickobserver.js","webpack:///../ckeditor5-engine/src/view/observer/fakeselectionobserver.js","webpack:///../ckeditor5-engine/src/view/observer/focusobserver.js","webpack:///../ckeditor5-engine/src/view/observer/keyobserver.js","webpack:///../ckeditor5-engine/src/view/observer/mouseobserver.js","webpack:///../ckeditor5-engine/src/view/observer/selectionobserver.js","webpack:///../ckeditor5-engine/src/view/placeholder.js","webpack:///../ckeditor5-engine/src/view/renderer.js","webpack:///../ckeditor5-engine/src/view/textproxy.js","webpack:///../ckeditor5-enter/src/enter.js","webpack:///../ckeditor5-enter/src/entercommand.js","webpack:///../ckeditor5-enter/src/enterobserver.js","webpack:///../ckeditor5-heading/src/heading.js","webpack:///../ckeditor5-heading/src/headingcommand.js","webpack:///../ckeditor5-heading/src/headingengine.js","webpack:///../ckeditor5-image/src/image.js","webpack:///../ckeditor5-image/src/image/converters.js","webpack:///../ckeditor5-image/src/imagecaption.js","webpack:///../ckeditor5-image/src/imagecaption/imagecaptionengine.js","webpack:///../ckeditor5-image/src/imagecaption/utils.js","webpack:///../ckeditor5-image/src/imagestyle.js","webpack:///../ckeditor5-image/src/imagestyle/converters.js","webpack:///../ckeditor5-image/src/imagestyle/imagestylecommand.js","webpack:///../ckeditor5-image/src/imagestyle/imagestyleengine.js","webpack:///../ckeditor5-image/src/imagetextalternative.js","webpack:///../ckeditor5-image/src/imagetextalternative/imagetextalternativecommand.js","webpack:///../ckeditor5-image/src/imagetextalternative/imagetextalternativeengine.js","webpack:///../ckeditor5-image/src/imagetextalternative/ui/textalternativeformview.js","webpack:///../ckeditor5-link/src/link.js","webpack:///../ckeditor5-link/src/linkcommand.js","webpack:///../ckeditor5-link/src/linkengine.js","webpack:///../ckeditor5-link/src/ui/linkformview.js","webpack:///../ckeditor5-link/src/unlinkcommand.js","webpack:///../ckeditor5-list/src/converters.js","webpack:///../ckeditor5-list/src/indentcommand.js","webpack:///../ckeditor5-list/src/list.js","webpack:///../ckeditor5-list/src/listcommand.js","webpack:///../ckeditor5-list/src/listengine.js","webpack:///../ckeditor5-list/src/viewlistitemelement.js","webpack:///../ckeditor5-paragraph/src/paragraphcommand.js","webpack:///../ckeditor5-presets/src/essentials.js","webpack:///../ckeditor5-typing/src/delete.js","webpack:///../ckeditor5-typing/src/deletecommand.js","webpack:///../ckeditor5-typing/src/deleteobserver.js","webpack:///../ckeditor5-typing/src/input.js","webpack:///../ckeditor5-typing/src/inputcommand.js","webpack:///../ckeditor5-typing/src/typing.js","webpack:///../ckeditor5-ui/src/bindings/escpresshandler.js","webpack:///../ckeditor5-ui/src/componentfactory.js","webpack:///../ckeditor5-ui/src/dropdown/createdropdown.js","webpack:///../ckeditor5-ui/src/dropdown/dropdownpanelview.js","webpack:///../ckeditor5-ui/src/dropdown/dropdownview.js","webpack:///../ckeditor5-ui/src/dropdown/list/createlistdropdown.js","webpack:///../ckeditor5-ui/src/editableui/editableuiview.js","webpack:///../ckeditor5-ui/src/editableui/inline/inlineeditableuiview.js","webpack:///../ckeditor5-ui/src/editorui/boxed/boxededitoruiview.js","webpack:///../ckeditor5-ui/src/editorui/editoruiview.js","webpack:///../ckeditor5-ui/src/icon/iconview.js","webpack:///../ckeditor5-ui/src/label/labelview.js","webpack:///../ckeditor5-ui/src/list/listitemview.js","webpack:///../ckeditor5-ui/src/list/listview.js","webpack:///../ckeditor5-ui/src/model.js","webpack:///../ckeditor5-ui/src/panel/balloon/contextualballoon.js","webpack:///../ckeditor5-ui/src/toolbar/enabletoolbarkeyboardfocus.js","webpack:///../ckeditor5-ui/src/toolbar/sticky/stickytoolbarview.js","webpack:///../ckeditor5-ui/src/toolbar/toolbarseparatorview.js","webpack:///../ckeditor5-undo/src/redocommand.js","webpack:///../ckeditor5-undo/src/undo.js","webpack:///../ckeditor5-undo/src/undocommand.js","webpack:///../ckeditor5-undo/src/undoengine.js","webpack:///../ckeditor5-utils/src/config.js","webpack:///../ckeditor5-utils/src/difftochanges.js","webpack:///../ckeditor5-utils/src/dom/getcommonancestor.js","webpack:///../ckeditor5-utils/src/dom/getdatafromelement.js","webpack:///../ckeditor5-utils/src/dom/getpositionedancestor.js","webpack:///../ckeditor5-utils/src/dom/indexof.js","webpack:///../ckeditor5-utils/src/dom/insertat.js","webpack:///../ckeditor5-utils/src/dom/position.js","webpack:///../ckeditor5-utils/src/dom/rect.js","webpack:///../ckeditor5-utils/src/dom/remove.js","webpack:///../ckeditor5-utils/src/dom/setdatainelement.js","webpack:///../ckeditor5-utils/src/elementreplacer.js","webpack:///../ckeditor5-utils/src/env.js","webpack:///../ckeditor5-utils/src/eventinfo.js","webpack:///../ckeditor5-utils/src/lib/lodash/_DataView.js","webpack:///../ckeditor5-utils/src/lib/lodash/_Hash.js","webpack:///../ckeditor5-utils/src/lib/lodash/_Promise.js","webpack:///../ckeditor5-utils/src/lib/lodash/_Reflect.js","webpack:///../ckeditor5-utils/src/lib/lodash/_WeakMap.js","webpack:///../ckeditor5-utils/src/lib/lodash/_addMapEntry.js","webpack:///../ckeditor5-utils/src/lib/lodash/_addSetEntry.js","webpack:///../ckeditor5-utils/src/lib/lodash/_arrayEach.js","webpack:///../ckeditor5-utils/src/lib/lodash/_arraySome.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseAssign.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseAt.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseClamp.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseCreate.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseFill.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseGetAllKeys.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseHasIn.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseIndexOfWith.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseIsEqualDeep.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseIsMatch.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseKeys.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseKeysIn.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseMatches.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseMatchesProperty.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseNth.js","webpack:///../ckeditor5-utils/src/lib/lodash/_basePropertyDeep.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseSet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseToPairs.js","webpack:///../ckeditor5-utils/src/lib/lodash/_baseToString.js","webpack:///../ckeditor5-utils/src/lib/lodash/_checkGlobal.js","webpack:///../ckeditor5-utils/src/lib/lodash/_cloneBuffer.js","webpack:///../ckeditor5-utils/src/lib/lodash/_cloneDataView.js","webpack:///../ckeditor5-utils/src/lib/lodash/_cloneMap.js","webpack:///../ckeditor5-utils/src/lib/lodash/_cloneRegExp.js","webpack:///../ckeditor5-utils/src/lib/lodash/_cloneSet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_cloneSymbol.js","webpack:///../ckeditor5-utils/src/lib/lodash/_cloneTypedArray.js","webpack:///../ckeditor5-utils/src/lib/lodash/_compareAscending.js","webpack:///../ckeditor5-utils/src/lib/lodash/_copySymbols.js","webpack:///../ckeditor5-utils/src/lib/lodash/_createAssigner.js","webpack:///../ckeditor5-utils/src/lib/lodash/_createSet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_createToPairs.js","webpack:///../ckeditor5-utils/src/lib/lodash/_equalByTag.js","webpack:///../ckeditor5-utils/src/lib/lodash/_equalObjects.js","webpack:///../ckeditor5-utils/src/lib/lodash/_getAllKeys.js","webpack:///../ckeditor5-utils/src/lib/lodash/_getLength.js","webpack:///../ckeditor5-utils/src/lib/lodash/_getMatchData.js","webpack:///../ckeditor5-utils/src/lib/lodash/_hasPath.js","webpack:///../ckeditor5-utils/src/lib/lodash/_hashClear.js","webpack:///../ckeditor5-utils/src/lib/lodash/_hashDelete.js","webpack:///../ckeditor5-utils/src/lib/lodash/_hashGet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_hashHas.js","webpack:///../ckeditor5-utils/src/lib/lodash/_hashSet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_initCloneArray.js","webpack:///../ckeditor5-utils/src/lib/lodash/_initCloneByTag.js","webpack:///../ckeditor5-utils/src/lib/lodash/_initCloneObject.js","webpack:///../ckeditor5-utils/src/lib/lodash/_isFlattenable.js","webpack:///../ckeditor5-utils/src/lib/lodash/_isKeyable.js","webpack:///../ckeditor5-utils/src/lib/lodash/_iteratorToArray.js","webpack:///../ckeditor5-utils/src/lib/lodash/_listCacheClear.js","webpack:///../ckeditor5-utils/src/lib/lodash/_listCacheDelete.js","webpack:///../ckeditor5-utils/src/lib/lodash/_listCacheGet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_listCacheHas.js","webpack:///../ckeditor5-utils/src/lib/lodash/_listCacheSet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_mapCacheClear.js","webpack:///../ckeditor5-utils/src/lib/lodash/_mapCacheDelete.js","webpack:///../ckeditor5-utils/src/lib/lodash/_mapCacheGet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_mapCacheHas.js","webpack:///../ckeditor5-utils/src/lib/lodash/_mapCacheSet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_parent.js","webpack:///../ckeditor5-utils/src/lib/lodash/_setCacheAdd.js","webpack:///../ckeditor5-utils/src/lib/lodash/_setCacheHas.js","webpack:///../ckeditor5-utils/src/lib/lodash/_setToPairs.js","webpack:///../ckeditor5-utils/src/lib/lodash/_stackClear.js","webpack:///../ckeditor5-utils/src/lib/lodash/_stackDelete.js","webpack:///../ckeditor5-utils/src/lib/lodash/_stackGet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_stackHas.js","webpack:///../ckeditor5-utils/src/lib/lodash/_stackSet.js","webpack:///../ckeditor5-utils/src/lib/lodash/_stringToPath.js","webpack:///../ckeditor5-utils/src/lib/lodash/array.default.js","webpack:///../ckeditor5-utils/src/lib/lodash/array.js","webpack:///../ckeditor5-utils/src/lib/lodash/assignIn.js","webpack:///../ckeditor5-utils/src/lib/lodash/cloneDeepWith.js","webpack:///../ckeditor5-utils/src/lib/lodash/constant.js","webpack:///../ckeditor5-utils/src/lib/lodash/hasIn.js","webpack:///../ckeditor5-utils/src/lib/lodash/isBuffer.js","webpack:///../ckeditor5-utils/src/lib/lodash/isEqual.js","webpack:///../ckeditor5-utils/src/lib/lodash/isTypedArray.js","webpack:///../ckeditor5-utils/src/lib/lodash/keysIn.js","webpack:///../ckeditor5-utils/src/lib/lodash/memoize.js","webpack:///../ckeditor5-utils/src/lib/lodash/noop.js","webpack:///../ckeditor5-utils/src/lib/lodash/now.js","webpack:///../ckeditor5-utils/src/lib/lodash/property.js","webpack:///../ckeditor5-utils/src/lib/lodash/throttle.js","webpack:///../ckeditor5-utils/src/lib/lodash/toFinite.js","webpack:///../ckeditor5-utils/src/lib/lodash/toLength.js","webpack:///../ckeditor5-utils/src/lib/lodash/toPairs.js","webpack:///../ckeditor5-utils/src/lib/lodash/toString.js","webpack:///../ckeditor5-utils/src/locale.js","webpack:///../ckeditor5-utils/src/mapsequal.js","webpack:///../ckeditor5-utils/src/priorities.js","webpack:///../ckeditor5-utils/src/spy.js","webpack:///../ckeditor5-utils/src/translation-service.js","webpack:///../ckeditor5-widget/src/widget.js","webpack:///../ckeditor5-block-quote/theme/theme.scss","webpack:///../ckeditor5-editor-classic/theme/theme.scss","webpack:///../ckeditor5-engine/theme/placeholder.scss","webpack:///../ckeditor5-heading/theme/theme.scss","webpack:///../ckeditor5-image/theme/imagecaption/theme.scss","webpack:///../ckeditor5-image/theme/imagetextalternative/theme.scss","webpack:///../ckeditor5-image/theme/theme.scss","webpack:///../ckeditor5-link/theme/theme.scss","webpack:///../ckeditor5-widget/theme/theme.scss","webpack:///../ckeditor5-basic-styles/theme/icons/bold.svg","webpack:///../ckeditor5-basic-styles/theme/icons/italic.svg","webpack:///../ckeditor5-core/theme/icons/low-vision.svg","webpack:///../ckeditor5-core/theme/icons/object-center.svg","webpack:///../ckeditor5-core/theme/icons/object-right.svg","webpack:///../ckeditor5-core/theme/icons/quote.svg","webpack:///../ckeditor5-link/theme/icons/link.svg","webpack:///../ckeditor5-link/theme/icons/unlink.svg","webpack:///../ckeditor5-list/theme/icons/bulletedlist.svg","webpack:///../ckeditor5-list/theme/icons/numberedlist.svg","webpack:///../ckeditor5-undo/theme/icons/redo.svg","webpack:///../ckeditor5-undo/theme/icons/undo.svg","webpack:///../ckeditor5-block-quote/theme/theme.scss?6f1f","webpack:///../ckeditor5-editor-classic/theme/theme.scss?044c","webpack:///../ckeditor5-engine/theme/placeholder.scss?7c03","webpack:///../ckeditor5-heading/theme/theme.scss?ae38","webpack:///../ckeditor5-image/theme/imagecaption/theme.scss?5d0d","webpack:///../ckeditor5-image/theme/imagetextalternative/theme.scss?34a9","webpack:///../ckeditor5-image/theme/theme.scss?1607","webpack:///../ckeditor5-link/theme/theme.scss?6cb5","webpack:///../ckeditor5-widget/theme/theme.scss?e2b9"],"names":[],"mappings":"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EA,eACA,SAEA,iBACA,OACA,cACA,oBACA,sBACA,KAAE,QACF,WACA,wBACA,wCACA,wCACA,yBACA,6BACA,mBACA,eACA,GACA,KACA,4BACA,KAEA,QACA,iBACA,eACA,GACA,EAGA,YAEA,cACA,MACA,sDACA,UACA,WACA,EACA,KAEA,IACA,EAWA,mBACA,cAEA,SACA,oCACE,OACF,+BACA,OACA,iCACA,MACA,0BAEA,kBAEA,EACA,EAEA,eACA,SACA,QAEA,SACA,0BAGA,KACA,gCACE,MACF,QACA,4BAEA,kDACA,GACA,EAEA,iBACA,SACA,QAOA,8CAEA,4BACA,SAGA,IAEA,OAAuD,6GAGvD,0BAA6B,MAE7B,iBAEA,gCAEA,GACA,uBACA,GA7RA,GACA,mBACA,IACA,oBACA,8CACA,YACA,CACA,CACA,YAMA,gDACA,IACA,gBACA,IACA,wBACA,OACA,4CAEA,MACA,EACA,CAAE,aACF,+BACA,EACA,KACA,OACA,EACA,cAEA,uBACA,+BACA,iDAGA,kEACA,yCAIA,uDAGA,qDAGA,oDAEA,kBACA,cAEA,cACA,QACA,QAAgB,MAAmB,WACnC,SACA,SACA,MACA,cACA,EACA,MACA,SACA,OACA,EACA,WAAgB,QAAsB,OACtC,WACA,cACA,WAAkB,YAA2B,OAC7C,YACA,gBACA,GAEA,CACA,GA2IA,gBACA,IAEA,0BACA,aACA,yBACA,KACA,CAAC,kLChND,CA4eoD,mBACnD,IAAK,cAAY,GAAa,oBAC7B,WAAoB,gDAAW,SAC9B,QAAgB,EAAM,EAAW,EACjC,WAH4B,oEAK7B,CACA,MAED,IAAM,GAAO,MAAM,KAAM,EACzB,sBAAK,KAAM,EAEX,QAAM,GACL,MAAM,EAAS,MACf,mBACA,SAAQ,EAGT,SAAK,EAAc,OAAO,MACzB,MAAS,aAAc,EAAU,IAAK,EAEvC,MAED,mSA9gBA,MAmhBwB,kBACvB,OAAO,IACP,E,EAjhBD,iBACA,cACA,cACA,eACA,cACA,kBAuEM,YAIL,aAAc,QAOb,QAQA,qBACA,QAED,wCAOsB,+CAAd,IAAc,eACrB,eAAK,aAEL,EACA,IAED,4BASa,WACZ,OAAO,MAAK,KAAM,CAAE,KACpB,GAED,8BAUe,WAAoB,8DAClC,KAEA,KAAa,OAAR,MACJ,OADuB,OACd,GAET,KACA,eAAQ,UAAW,GAGpB,MAAM,GAAU,cAEhB,eAAK,MAAM,KACV,SACA,EACA,oBACA,kBAGD,IACA,IAED,qBAcM,WACA,OAAG,gBACP,YAAU,cAGX,SAAK,MAAM,KACV,SACA,EACA,oBAGD,OACA,IAED,0BA6BW,WACV,IAAM,GAAW,KAAK,MAAO,KAAK,MAAM,OACxC,YAAS,QAET,EACA,IAED,6BAsBc,WACb,IAAM,GAAW,KAAK,MAAO,KAAK,MAAM,OACxC,YAAS,SAET,EACA,IAED,0BAcW,WACV,MAsDmB,aAtDQ,WAC1B,OAAgC,kBAG/B,IAAM,GAAW,EAAK,QAAQ,SAAU,EAGxC,OAAK,GAIL,MAVkD,gBAWlD,YAAqB,sDAAW,WAE/B,MAAM,GAAe,YAAmB,UAAW,EAAS,EAAK,OAAU,cAG3E,GAAK,GAKL,OAAM,IAAO,MAAM,KAAM,GAEzB,oBAAK,GAAC,EAAc,OAAO,MAAO,CAAE,KAAM,GAAa,KAAM,WAAY,GAAM,OAAQ,EAKlF,WAAC,EAAW,QAAS,EAAK,MAAO,EAAK,SAAW,GAMtD,UAAK,QAAQ,KAGb,OAAM,IAAgB,EAAc,gBAAiB,EAAK,MAAO,EACjE,GAAM,GAAiB,UAAc,SAAU,GAC/C,iBAAY,OAAQ,GAGpB,MAAK,QAGL,QAAK,OAGL,GACA,OAjDiD,kFAkDlD,EACD,CAED,EACA,SAED,4BAiB2B,aAC1B,MAiDmB,aAjDQ,WAC1B,OAAgC,kBAG/B,IAAM,GAAW,EAAK,QAAQ,SAAU,EAGxC,OAAK,GAIL,MAVkD,iBAWlD,YAAqB,oDAAW,cAE/B,OAAK,CAAC,EAAW,QAAS,EAAK,MAAO,EAAK,SAAW,GAMjD,QAAC,EACL,WAAK,OAAS,EAAc,gBAAiB,EAAK,MAAO,EAI1D,OAAI,QAEJ,QAAK,YACJ,cAOC,KACA,QAAO,EAAQ,EAAQ,EAAK,MAAM,aAAc,EAKlD,0BAba,EAAc,EAE1B,OAAK,CACJ,GAGD,SAOe,EAAK,OAAQ,GAAW,EAGxC,GACA,gBA5CiD,yEA6ClD,EACD,CAED,EACA,MAED,yBAiCU,WACT,MA2CmB,aA3CQ,WAC1B,OAAoB,gBAGnB,IAAM,GAAW,EAAK,QAAQ,SAAU,EAGxC,OAAK,GAIL,MAGA,QAAK,YACJ,UAAe,EAAS,EAGxB,OAAe,cAAkB,UAAW,CAAE,YAAa,EAAK,MAAM,aAIvE,eAA0B,SAArB,IAAa,MACjB,QADsC,QAAO,GAAa,aAAc,kBAClE,eAKP,uFA3BmC,gBA4BnC,YAAqB,oDAAW,cAE/B,OAAK,CAAC,EAAW,QAAS,EAAK,MAAO,EAAK,SAAW,GAItD,UAAK,OAGL,EACA,gBAtCkC,uEAuCnC,EACD,CAED,EACA,SAED,6BAOgC,aAC/B,IADiD,gBAEjD,WAAoB,KAAK,uDAAQ,SAGhC,MAAM,EAAqB,EAAK,QAChC,iBAAM,EAAY,EAAqB,WAAa,EACpD,UAAM,EAAgB,EAEtB,GAAM,GAA6B,IAAlB,KAAK,SAAoB,EAAkB,EAE5D,SATgC,yBAUhC,YAA0B,KAAK,gEAAe,YAC7C,SAAW,GAAI,EAAW,EAAe,CAAE,SAC3C,cAZ+B,4EAahC,CAfgD,gFAgBjD,OAIF,kLC7eA,CA8QoB,aAEnB,OACC,QADI,QAAO,GACJ,CAAE,cAGL,KAAC,cACL,OAAQ,CAIT,IAAO,MAAM,KAAM,GACjB,IAAK,WACL,OAAsB,QAAf,QAAO,GAAmB,cAAU,GAC3C,CACF,G,mSAlSD,gBACA,cACA,eACA,kBAUqB,YAOpB,CAAa,aAAW,QAQvB,QAAK,QAAU,GAQf,UAAK,UAAY,MAEjB,QACC,QAAK,eAAgB,EAEtB,EAED,kBAKE,OAAO,yBACR,OAAO,MACP,aAED,QAkDA,WAQI,WACH,OACA,kBADO,GAGR,yBAMU,WACT,OAAO,MAAK,UAAU,QACtB,EAED,sCAMC,OAAO,MAAK,UAAW,OACvB,WAED,8BAMe,WACd,OAAO,MAAK,UAAU,aACtB,EAED,oCAQqB,WACpB,OAAO,MAAK,UAAU,mBACtB,EAED,kCAMC,CACA,QAED,8BAmBe,WACd,OAAO,MAAK,UAAU,cACtB,EAED,+BAKgB,WACf,MAAK,eAAgB,KAAK,WAC1B,EAED,+BAOuB,aACtB,GAAQ,EAAW,MADW,gBAG9B,WAAoB,gDAAQ,SAC3B,QAAK,OACL,aAL6B,oEAO9B,MAAK,UAAU,YAAa,EAC5B,EAED,+BAQgB,WAAqB,8DACpC,EAAM,EAAQ,KAAK,UAAU,YAAa,EAAO,GADb,eAGpC,WAAoB,gDAAQ,SAC3B,QAAK,OACL,aALmC,oEAOpC,OACA,EAED,iCAOC,IAAa,MADL,eAGR,WAAoB,KAAK,wDAAY,SACpC,QAAK,KAAM,EACX,kBALO,oEAOR,OACA,EAED,mCA5LC,OAAO,MAAK,UACZ,MAED,kCAOC,OAAO,MAAK,UACZ,SAED,gCAOC,OACA,EADO,QAAK,UAGb,6BAOC,OACA,KAED,+BAOC,OACA,gCA0JgB,WAChB,IAAiB,MADM,eAGvB,WAAqB,gDAAO,SAC3B,MAAK,EAEJ,OAAS,KAAM,UAAQ,SAGvB,MAAS,KAAM,UAAK,SAErB,YAXsB,oEAavB,OAAO,IAAI,GACX,QAMF,cArQqB,6HCXrB,mSAFA,mEAOqB,YAKpB,CAAa,aAAc,QAS1B,QAAK,YA8CL,CAED,2CAOC,IAAM,GAAO,cAEb,kBAAK,YAAc,KAAK,YAGxB,gBAAO,GAEP,MACA,CAED,UASA,iBAOiB,WAChB,OAAO,IAAI,MAAM,EACjB,8CAZA,OACA,sDAtFmB,gLCDrB,CA4UwE,qBACvE,OACC,CACA,cACC,MACA,OACA,mBACA,eACA,SAGF,GAkCD,mSA/XA,gBACA,eACA,cACA,cACA,iBAKqB,YAmBpB,aAA4B,2EAC3B,GAAK,CAAC,EAAQ,YAAc,CAAC,EAM5B,mBAAM,eAGP,uGAAM,GAAY,EAAQ,WAE1B,aAAkB,SAAb,KACJ,UAD8B,SACxB,eACL,wFACA,CAAE,UAUJ,SAAK,UAaL,OAAK,WAAa,EAAQ,YAW1B,UACM,SADD,EACJ,cAAgB,UAAS,mBAAoB,EAExC,eAAW,UAAS,mBAAoB,KAAK,WAA8B,UAAlB,OAAK,UAA0B,MAU9F,eAAK,iBAAmB,CAAC,CAAC,EAS1B,sBAAK,QAAU,CAAC,CAAC,EAWjB,aAAK,iBAAmB,CAAC,CAAC,EAQ1B,sBAAK,qBAAuB,KAAK,WAAa,KAAK,WAAW,MAAM,OAQpE,UAAK,mBAAqB,KAAK,WAAa,KAAK,WAAW,IAAI,OAShE,UAAK,eAAiB,KAAK,SAC3B,MAED,kBAGE,OAAO,yBACR,OACA,KAED,qBAYM,WACL,IAAI,GAAM,EAAO,EAEjB,IACC,GAAe,KACf,WAAoB,KAAK,qBAEL,KAAK,OAJvB,IAIQ,KAJR,IAKF,KALD,OAKU,CAAC,GAAQ,EAEd,IACJ,SAAK,SACL,OAAK,eAEN,EAED,+BAOC,OACC,SADI,OAAK,UACF,KAEP,QAAO,KAER,WAED,gCASC,IAAM,GAAmB,KACzB,SAAM,EAAW,UAAS,mBAAoB,KAC9C,UAAM,EAAS,KAGf,kBAAuB,IAAlB,KAAO,QAAmB,EAAS,SAAW,EAClD,gBAAO,CAIR,YAAK,IAAW,KAAK,oBAAsB,EAAS,QAAU,KAAK,WAAW,IAC7E,aAAO,CAGR,YAAM,GAAO,EAAS,SAAW,EAAS,SAAW,EAErD,aAAK,eACC,cAAC,MAEL,UAMD,YANU,KAAK,KACd,QAAK,eAEL,QAGI,SAEL,EAAO,EAAmB,eAAgB,EAAM,EAAkB,EAClE,GAAM,GAAK,eAAL,QACN,IAEA,MAAK,KACJ,mBACA,MACA,IAAI,GAAS,EAEb,UAAK,KAAK,oBAAsB,GAAU,KAAK,WAAW,IAAI,OAC7D,MAAS,KAAK,WAAW,IAG1B,UAAkB,EAAS,EAC3B,MAED,IAAM,GAAmB,EAAS,OAAS,EAC3C,YAAM,EAAO,cAAe,EAAM,EAElC,YAAS,QACT,OAAK,SAEL,EAAO,EAAmB,OAAQ,EAAM,EAAkB,EAC1D,EAEA,UAAS,KACT,QACA,cAAK,SACL,OAAK,eAAiB,EAEtB,OAAK,KACJ,iBAAO,KAEP,QAAO,EAAmB,aAAc,EAAQ,EAGlD,EAED,oCASC,IAAM,GAAmB,KACzB,SAAM,EAAW,UAAS,mBAAoB,KAC9C,UAAM,EAAS,KAGf,kBAAuB,IAAlB,KAAO,QACX,CAD8B,KAAS,aAChC,CAIR,YAAK,GAAU,KAAK,sBAAwB,EAAS,QAAU,KAAK,WAAW,MAC9E,aAAO,CAIR,YAAM,GAAO,EAAS,SAAW,EAAS,SAAW,EAErD,cAAK,eACJ,iBAEK,SAAC,KACL,cAUK,SAEL,EAAO,EAAmB,eAAgB,EAAM,EAAkB,EAEnE,OAdU,KAAK,KAAM,EACpB,gBAAK,SACL,OAAK,eAEL,EAAK,KACJ,iBAAO,KAEP,YAAO,EAAmB,aAAc,EAAM,EAG/C,IAIK,GAAK,eAAL,QACN,IAEA,MAAK,KACJ,mBACA,MACA,IAAI,GAAS,EAEb,YAAK,KAAK,sBAAwB,GAAU,KAAK,WAAW,MAAM,OACjE,MAAS,KAAK,WAAW,MAG1B,UAAkB,EAAS,OAC3B,CAED,IAAM,GAAmB,EAAS,OAAS,EAC3C,YAAM,EAAO,cAAe,EAAM,EAAmB,EAErD,YAAS,QACT,OAAK,SAEL,EAAO,EAAmB,OAAQ,EAAM,EAAkB,EAC1D,EAEA,UAAS,KACT,WAAK,SACL,OAAK,eAAiB,EAEtB,OAAO,EAAmB,eAAgB,EAAQ,EAAkB,EAErE,sBAtUmB,gLCNrB,CAwZ4B,aAC3B,OAAK,GAAM,KAAK,GAAI,qBAAwB,EAAM,KAAK,GAKvD,Y,mSAjaD,gBACA,kBAKqB,YASpB,CAAa,aAAoB,0EAMhC,QAAK,MAAQ,UAAS,mBAOtB,QAAK,IAAM,EAAM,UAAS,mBAAoB,GAAQ,UAAS,mBAC/D,EAED,kBAWI,OAAO,0JACH,cAAgB,CAAE,WAAY,KAAwB,yEAG9D,SA4BA,8BAiBC,IAAI,GAAQ,KAAK,MAAM,wBAAyB,EAAmB,CAAE,UACrE,aAAI,EAAM,KAAK,IAAI,wBAGnB,SAAK,GAAM,OAAO,GAAI,SAAY,EACjC,cAAQ,UAAS,aAAc,EAGhC,SAAK,EAAI,OAAO,GAAI,SAAY,EAC/B,YAAM,UAAS,YAAa,EAG7B,SAAO,GAAI,GAAO,EAClB,EAED,qCAiBC,IAAI,GAAQ,KAAK,MAAM,wBACvB,GAAI,EAAM,KAAK,IAAI,wBAAyB,EAAmB,CAAE,UACjE,aAAM,EAAiB,EACvB,UAAM,EAAgB,EAGtB,iBAAK,IAAkB,EAAe,GACrC,YAAQ,cAAc,EAGvB,IAAK,GAAiB,EAAc,GACnC,YAAM,cAAc,EAAe,EAAc,KAGlD,SAAO,GAAI,GAAO,EAClB,EAED,wBAMS,WACR,OAAO,OAAQ,GAAgB,KAAK,MAAM,QAAS,EAAW,QAAW,KAAK,IAAI,QAAS,EAC3F,IAED,iCAOkB,WACjB,OAAO,GAAS,QAAS,KAAK,QAAW,EAAS,SAAU,KAC5D,IAED,8BAOe,WACd,OAAO,MAAK,iBAAkB,EAAW,QAAW,KAAK,iBAAkB,EAC3E,IAED,8BA4Be,WACd,IAEA,YAAK,MAAK,eAGT,IAAK,KAAK,iBAAkB,EAG3B,UAAO,KAAM,GAAI,GAAO,KAAK,MAAO,EAGrC,QAAK,KAAK,iBAAkB,EAG3B,QAAO,KAAM,GAAI,GAAO,EAAW,IAAK,KAIzC,SAAO,KAAM,EAAM,gBAGpB,OACA,CAED,gCAqBiB,WAChB,IAAK,KAAK,eAAgB,GAGzB,IAAI,GAAmB,KACvB,MAAI,EAAiB,KAErB,UAAK,MAAK,iBAAkB,EAG3B,WAAmB,EAGpB,OAAK,KAAK,iBAAkB,EAG3B,SAAiB,EAGlB,KAAO,GAAI,GAAO,EAClB,EAGD,OACA,KAED,oCAS0B,2DACzB,eAAQ,WAER,KAAO,cACP,EAED,iEAcY,uDAAU,gGACrB,KAAQ,WACR,OAEM,oB,EAAa,cAAgB,iCAEd,mEAAT,O,qBACL,EAAM,+UAId,sEAagB,uDAAU,gGACzB,YAAQ,WAEF,K,EAAa,cAAgB,YAE7B,EAAW,8CAEI,mEAAT,O,qBACL,EAAM,uVAId,gCAMgB,WACf,OAAO,MAAK,MAAM,SAAU,EAAW,MAAS,KAAK,IAAI,QAAS,EAClE,MAED,oCAvSC,OAAO,MAAK,MAAM,QAAS,KAC3B,IAED,+BAOC,OAAO,MAAK,MAAM,SAAW,KAAK,IAClC,MAED,6BAMC,OAAO,MAAK,MACZ,kDA4R0E,iBAC1E,OAAO,IAAI,MACV,cAAc,EAAc,GAC5B,cAAc,EAEf,GAED,gCAMwB,WACvB,OAAO,IAAI,MAAM,EAAM,MAAO,EAC9B,IAED,2CAQ6C,aAC5C,IAAM,GACN,EAAM,EAAM,EAAS,aAErB,SAAe,EAAR,GAAY,GAAI,MAAM,EAAO,GAAQ,GAAI,MAAM,EACtD,EAED,yBAOiB,WAChB,OAAO,MAAK,4BAA6B,EAAS,EAAG,EAAS,EAC9D,WAED,yBAMiB,WAChB,OAAO,MAAK,2BAA4B,UAAS,aAAc,GAC/D,QAGF,cApZqB,mFCQL,cAA4B,aAC3C,UAAY,kBAEZ,MAAO,eAAU,EAAa,CAE9B,MAAS,UACR,IAAM,GAAa,EAAY,SAC/B,GAAM,EAAU,EAAW,aAE3B,aAAO,GAAc,MAAa,EAClC,CACD,GAED,IAMgB,cAAe,WAC9B,OAAO,CAAC,CAAC,EAAY,kBAAmB,IAAiB,eACzD,EAED,IAOgB,QAAS,WACxB,OAAO,yBACP,OAD+C,IAAa,I,EA7C7D,QACA,8DAEA,KAAM,EAAc,OAEpB,6ECHA,qBAce,CAAE,OAAF,OAAU,SAAV,4ECzBf,aA8Be,QArBkB,eAC/B,IAAI,GAAQ,CAAC,EACT,EAAS,EAEb,OACE,CADE,OACM,CAAC,EAAQ,EAAS,EAAK,EAEjC,KAAM,EAAM,EAAS,EACrB,EACE,CADE,QAGJ,KAAS,EAAQ,EAAM,EAAM,EAAM,IACnC,OAEA,SAAI,GAAS,MACb,GAAS,IACP,KAAO,GAAS,EAAM,EAExB,SACD,sEC5BD,WACI,GAGA,GAEJ,qBAee,QAPS,aACtB,UAA0B,IAAjB,IAXX,iBAYE,EAAO,CAAC,CAAC,IACU,QAAhB,QAAO,IAAqB,EAAS,KAAK,KAClC,CAAC,CAAT,IAA2B,CAAb,IAAQ,GAAU,EACpC,qECwBK,aA8BS,QAnBd,CAXW,MAWK,aACf,SAAQ,MAAO,EACf,EAYD,EAzBW,KAyBI,aACd,SAAQ,KAAM,EACd,EA3BU,iLCdZ,mSAxBA,MA4YwB,kBACvB,OAAO,IACP,EAED,EA5YA,QAYA,SAEA,kBACA,eACA,gBAEA,iBAyDM,YAIL,aAAc,QAOb,QAQA,qBAAK,MACL,IAED,wCAOsB,+CAAd,IAAc,eACrB,eAAK,aAEL,EACA,IAED,4BAOa,WACZ,aAAK,MACJ,MACA,eACA,WAGD,MACA,IAED,8BAOe,WACd,aAAK,MACJ,MACA,gBACA,WAGD,MACA,IAED,2BAOY,WACX,aAAK,MACJ,MACA,cACA,WAGD,MACA,IAED,6BAiBc,WACb,aAAK,MAAM,SAEX,EACA,IAED,0BAkCW,WACV,IAAM,GAAmC,IAAxB,QAAK,MAAM,SAAoB,SAAW,KAAK,MAAM,SADlD,eAGpB,WAA0B,KAAK,2DAAe,SAC7C,MAEC,SAFI,OAAK,MAAM,QAEa,QAAlB,QAAO,GAAsB,cAA0B,GAEjE,IAAW,GAAI,UAAY,KAAK,MAAM,KAAM,oBAAe,GAAW,CAAE,SAClE,KAEN,WAFW,OAAK,MAAM,QAEM,QAAlB,QAAO,GAAsB,cAA0B,GAEjE,IAAW,GAAI,gBAAkB,KAAK,MAAM,IAAK,eAAU,GAAW,CAAE,SACxE,MAAW,GAAI,mBAAqB,KAAK,MAAM,IAAK,eAAU,GAAW,CAAE,SAC3E,MAAW,GAAI,mBAAqB,KAAK,MAAM,IAAK,iBAAY,GAAW,CAAE,SAE7E,MAAW,GAAI,sBAAwB,KAAK,MAAM,IAAK,gCAA2B,GAAW,CAAE,SAE/F,QAA4B,QAAlB,QAAO,GAAsB,cAA0B,GAEjE,IAAW,GAAI,aAAe,KAAK,MAAM,KAAM,gBAAW,GAAW,CAAE,SACvE,MAAW,GAAI,gBAAkB,KAAK,MAAM,KAAM,kBAAa,GAAW,CAAE,SAE5E,MAAW,GAAI,mBAAqB,KAAK,MAAM,KAAM,6BAAwB,GAAW,CAAE,SAE3F,aA1BmB,oEA2BpB,CAED,wBAyCS,WAAU,oBAClB,WAA0B,KAAK,gEAAe,QAC7C,MAMC,QANI,OAAK,MAAM,UAMT,eAKP,2GAAM,GAAmC,IAAxB,QAAK,MAAM,SAAoB,SAAW,KAAK,MAEhE,WAA4B,QAAlB,QAAO,GAAsB,cAAmB,GAE1D,IAAW,GAAI,aAAe,KAAK,MAAM,KAAM,sBAAiB,GAAW,CAAE,SAC7E,MAAW,GAAI,gBAAkB,KAAK,MAAM,KAAM,sBAAiB,GAAW,CAAE,SAChF,GAnBiB,8EAoBlB,CAED,4BA+B2B,aAC1B,IAMC,WANI,OAAK,MAAM,UAMT,OAIP,iIAEK,GAIE,EAGN,QAHW,QAAO,GAKjB,EAAmB,UAClB,OAAO,CAAE,IAAK,EAAc,MAC5B,EAGD,EAA6B,WAC5B,OAAO,CAAE,IAAK,EAAc,MAC5B,EAIF,EACA,YAlCiC,gBAoClC,WAA0B,KAAK,8DAAe,SAC7C,MAAM,EAAU,CAAE,SAAU,KAAK,MAAM,UAEvC,YAAW,GAAI,gBAAkB,KAAK,MAAM,IAAK,mBAAc,GAC/D,KAAW,GAAI,mBAAqB,KAAK,MAAM,IAAK,mBAAc,GAClE,KAAW,GAAI,mBAAqB,KAAK,MAAM,IAAK,sBAAiB,GACrE,EA1CiC,8EA2ClC,OAGF,4wBC3XA,mSARA,gBACA,cACA,eACA,eACA,OACA,gBACA,iBAOqB,cAQU,iBAAc,QAG3C,kEAMA,aAAK,SAAW,UAAS,mBAQzB,KAAK,MAAQ,cAAc,qBAAgB,IAC3C,CAED,YApBA,aA2BA,wBAKC,IAAM,GAAQ,cAAc,YAAK,KAAK,QAAQ,IAAK,kBAAQ,GAAY,SAEvE,UAAO,IAAI,GAAiB,KAAK,SAAU,EAAO,KAClD,YAED,sCAKC,OAAO,eAAqB,KAAK,SAAU,KAAK,MAAM,UAAW,KAAK,YACtE,EAED,mCAQC,IAAM,GAAgB,KACtB,WAAK,MAAQ,cAAc,YAAK,IAAgB,IAAK,kBAAQ,GAAY,SAEzE,OAAM,GAAQ,aAAQ,KAAK,SAE3B,SAAO,CAAE,MACT,EAED,6BArCC,OACA,kBA2CD,iBAOuB,aACtB,IAAiB,MADgB,eAGjC,WAAqB,EAAK,qDAAQ,UACjC,MAAK,GAEJ,OAAS,KAAM,UAAQ,SAGvB,OAAS,KAAM,UAAK,SAErB,cAXgC,qEAajC,OAAO,IAAI,GAAiB,UAAS,SAAU,EAAK,SAAU,GAAY,EAAU,EACpF,8CAxBA,OACA,qEA1EmB,kpBCRrB,iiBALA,cACA,cACA,cACA,mBAKqB,cAUY,iBAAc,QAC7C,MAAM,GAAY,EAAS,KAAK,SAChC,UAAM,EAAoB,cAAc,EAAW,CAAE,EAAU,UAI/D,+DAFO,EAAU,EAAS,EAmB1B,aAA2B,uBAC3B,CAED,YA1BA,aAqDA,8BAKC,OAAO,eAAuB,KAAK,eAAgB,KAAK,QAAS,KAAK,eAAgB,KAAK,YAC3F,EAED,gCAKC,IAAM,GAAkB,GAAI,GAAiB,KAAK,eAAgB,KAAK,QAAS,KAChF,sBAAgB,eAAiB,UAAS,mBAAoB,KAE9D,gBACA,CAED,mCAKC,IAAK,KAAK,oBACT,IAAM,GAAY,KAAK,eACvB,KAAM,EAAgB,cAEtB,sBAAU,eAAgB,KAAK,qBAK/B,GAAK,KAAK,eAAe,MAAQ,GAAa,KAAK,eAAe,KAAM,IAAO,KAC9E,2BAAK,eAAe,KAErB,IAGD,0FACA,KAED,6BAjEC,OACA,QAED,6CAOC,OAAO,MAAK,eAAe,KAC3B,EAED,MAM0B,WACzB,MAAK,eAAe,KAAM,GAC1B,WAmDD,iBAOuB,aACtB,IAAM,GAAiB,UAAS,SAAU,EAAK,eAE/C,GAAM,EAAW,GAAI,GAAiB,EAAgB,EAAK,QAAS,EAEpE,sBAAS,eAAiB,UAAS,SAAU,EAAK,eAClD,KAAS,oBAAsB,EAE/B,oBACA,mCAnBA,OACA,qEA9GmB,+lBCNrB,CAoES,YACR,OAA2B,EAApB,QAAK,WAAmB,EAC/B,I,iiBAxED,iEAqCqB,cAMM,iBAAW,QAGpC,kEAFO,EAAM,EAQb,aAAK,gBAAkB,EACvB,CAED,YAZA,wBAeI,WAAoB,8DAClB,WACJ,GAEiB,kBAAR,KAA8B,GAAQ,KAAK,uFAAoB,EAEzE,GAJgB,kBAAR,sFAEP,YAOH,mBAhCqB,iFC/BG,QAAY,WACnC,OAAO,CAAC,EAAG,GAAS,EAAO,OAC3B,U,kFCTG,kDARJ,gBACA,gBACA,gBACA,gBACA,gBACA,oBAkEe,QApDoB,eACjC,IAAI,GAAQ,CAAC,EACT,IADJ,QAEI,EAAS,EAAM,OACJ,KACF,KACT,EAEJ,KACE,EACA,SACD,YACI,IAAc,GArBrB,IAsBI,IAAI,GAAM,EAAW,KAAO,cAC5B,MACE,QAAO,cAET,GACA,SACA,UAAO,MACR,OAEC,QAAkB,KAEpB,EACA,WAAS,IAAQ,GACf,IAAI,GAAQ,EAAM,GACd,EAAW,EAAW,EAAS,GAEnC,OAAS,GAAwB,CAAV,KAAe,EACtC,EAAI,GAAY,IAAa,EAC3B,QAAI,GAAY,EAChB,OACE,QAAI,EAAK,KACP,UAGJ,OACE,KAAK,KAEP,KAAO,KACR,EACQ,KAAC,GAAS,EAAM,EACvB,KAAI,IACF,KAAK,KAEP,KAAO,KAEV,GACD,OACD,+NCrEQ,sSCAT,IA4Be,QAJO,WACpB,OAAO,CAAC,CAAC,GACV,QADmB,sBAAO,mTCzB3B,4DAGI,KAGA,EAAc,OAOlB,UAAI,EAAiB,EAErB,WAuBe,QALG,WAChB,OAAuB,QAAhB,sBAAO,sBACX,cAAa,IAAU,EAAe,KAC1C,IA9BD,iMCMA,mSAHA,gBACA,iBASqB,YAMpB,CAAa,aAAW,QAOvB,QAAK,SAQL,OACA,YAED,2CAWC,MACA,YAED,kCAOC,MACA,YAED,kCAIC,MACA,eACA,eAED,oBAxDoB,EAiErB,cAAK,I,uLCrEL,mSANA,gBACA,eACA,gBACA,eACA,iBAKqB,YAmBpB,aAA4B,2EAC3B,GAAK,CAAC,EAAQ,YAAc,CAAC,EAM5B,mBAAM,eAGP,sGAAK,EAAQ,WAAkC,SAArB,IAAQ,WACjC,UAD2D,IAAQ,eAC7D,eACL,uFACA,CAAE,UAAW,EAef,iBAAK,WAAa,EAAQ,YAS1B,UACM,SADD,EACJ,cAAgB,UAAS,mBAAoB,EAExC,eAAW,UAAS,mBAAoB,EAAQ,WAAiC,UAArB,IAAQ,UAA0B,MASpG,eAAK,UAAY,EAAQ,WASzB,eAAK,iBAAmB,CAAC,CAAC,EAS1B,sBAAK,QAAU,CAAC,CAAC,EAUjB,aAAK,iBAAmB,CAAC,CAAC,EAQ1B,sBAAK,qBAAuB,KAAK,WAAa,KAAK,WAAW,MAAM,OAQpE,UAAK,mBAAqB,KAAK,WAAa,KAAK,WAAW,IAAI,OAChE,IAED,kBAGE,OAAO,yBACR,OACA,KAED,qBAYM,WACL,IAAI,GAAM,EAEV,IACC,GAAe,KAAK,eAEA,KAAK,OAHvB,IAGQ,KAHR,IAIF,KAJD,OAIU,CAAC,GAAQ,EAEd,IACJ,SAAK,SAEN,EAED,+BAOC,OACC,SADI,OAAK,UACF,KAEP,QAAO,KAER,WAED,gCASC,IAAI,GAAW,UAAS,mBAAoB,KAC5C,UAAM,EAAmB,KACzB,SAAM,EAAS,EAGf,UAAuB,IAAlB,KAAO,QAAmB,EAAS,SAAW,EAClD,iBAAO,CAIR,YAAK,IAAW,KAAK,oBAAsB,EAAS,QAAU,KAAK,WAAW,IAC7E,aAAO,CAIR,YAGA,MAAK,eAAL,QACC,IAAK,EAEJ,oBAAK,SAAW,UAAS,YAEzB,GAAO,KAGR,UAAO,EAAO,KAAM,EACpB,OACA,QAAO,EAAO,SAAU,EAGzB,WAAK,eACC,cAAC,MACL,UAKD,WALY,cAAc,EAEzB,QAGI,SAEL,EAAO,KAAK,mBAAoB,eAAgB,EAAM,EAAkB,EACxE,GAAM,GAAK,eAAL,QACN,IAAK,KACJ,0BAAW,cAAc,EACzB,QAAK,SAEL,EAAO,KAEP,WAAI,GAAkB,EAAK,KAC3B,OAAI,EAGJ,QAAK,IAAQ,KACZ,sBAAkB,KAAK,WAAW,IAClC,SAAO,cAAe,EAAM,EAC5B,KAAW,UAAS,YAGpB,MAGD,cAAK,SAEL,EAAO,KAAK,mBAAoB,OAAQ,EAAM,EAAkB,EAEjE,EAxBM,CAwBA,GAAoB,QAAf,QAAO,GAClB,IAEA,MAAK,KACJ,mBACA,MAEA,IAAM,GAAY,IAAW,KAAK,mBAAqB,KAAK,WAAW,IAAI,OAAS,EAAO,KAE3F,SAAa,EAAY,EACzB,MAED,IAAM,GAAY,cAAe,EAAQ,EAAS,OAElD,YAAS,QACT,OAAK,SAEL,EAAO,KAAK,mBAAoB,OAAQ,EAAW,EAAkB,EACrE,EAEA,UAAW,UAAS,YACpB,QAAK,SAEL,EAAK,KACJ,iBAAO,KAEP,QAAO,KAAK,mBAAoB,aAAc,EAAQ,EAGxD,EAED,oCASC,IAAI,GAAW,UAAS,mBAAoB,KAC5C,UAAM,EAAmB,KACzB,SAAM,EAAS,EAGf,UAAuB,IAAlB,KAAO,QACX,CAD8B,KAAS,aAChC,CAIR,YAAK,GAAU,KAAK,sBAAwB,EAAS,QAAU,KAAK,WAAW,MAC9E,aAAO,CAIR,YAGA,MAAK,eAAL,QACC,IAAK,EAEJ,sBAAK,SAAW,UAAS,aAEzB,GAAO,KAGR,cAAO,EAAO,KAAM,EAAS,OAC7B,EACA,QAAO,EAAO,SAAU,EAAS,OAGlC,MAAK,eACC,cAAC,MACL,WAUA,cAAK,SAEL,EAAO,KAAK,mBAAoB,eAAgB,EAAM,EAAkB,EAEzE,OAdY,cAAc,EAAM,EAC/B,iBAAK,SAEL,EAAK,KACJ,iBAAO,KAEP,YAAO,KAAK,mBAAoB,aAAc,EAAM,EAGrD,IAKK,GAAK,eAAL,QACN,IAAK,KACJ,0BAAW,cAAc,EAAM,EAAK,KACpC,aAAK,SAEL,EAAO,KAEP,eAAI,GAAkB,EAAK,KAC3B,OAAI,EAGJ,KAAK,GAAQ,KAAK,qBACjB,IAAM,GAAS,KAAK,WAAW,MAE/B,SAAO,cAAe,EAAM,EAAQ,EAAK,KAAK,OAC9C,KAAkB,EAAK,KACvB,SAAW,UAAS,aACpB,EAEA,QAGD,qBAAK,SAEL,EAAO,KAAK,mBAAoB,OAAQ,EAAM,EAAkB,EAEjE,EA1BM,CA0BA,GAAoB,QAAf,QAAO,GAClB,IAEA,MAAK,CAAC,KAAK,iBAEV,IAAM,GAAc,IAAW,KAAK,qBAAuB,KAAK,WAAW,MAAM,OAEjF,IAAa,EAAS,OACtB,CACA,QAGD,IAAS,QAET,KAAM,GAAY,cAAe,EAAQ,EAAS,OAElD,eAAK,SAEL,EAAO,KAAK,mBAAoB,OAAQ,EAAW,EAAkB,EACrE,EAEA,UAAW,UAAS,aACpB,QAAK,SAEL,EAAO,KAAK,mBAAoB,eAAgB,EAAQ,EAAkB,EAE3E,EAED,mCAWgE,mBAK/D,OAAK,gBAEJ,UAAK,EAAK,aAAe,EAAK,KAAK,QAAU,EAAK,SAAS,KAC1D,SAAoC,SAA/B,OAAK,WAA6B,KAAK,YAAc,KAAK,WAAW,IAAI,QAAS,KACtF,YAImB,UAAS,YAAa,EAK3C,aATiB,UAAS,YAAa,EAErC,eAAK,SAEL,IAMD,CADI,KAAK,eAC4B,UAAhC,OAAK,WAA8B,KAAK,YAAc,KAAK,WAAW,MAAM,QAAS,KACzF,YAImB,UAAS,aAAc,EAK7C,aATkB,UAAS,aAAc,EAEtC,eAAK,SAEL,KAMF,CACA,cACC,MACA,OACA,mBACA,eACA,SAGF,SAqCF,cAhdqB,iFClBrB,+DAEA,OAae,QALY,aACzB,IAAI,GAAQ,EACZ,SAAO,cAAS,GACjB,0FCTD,gQAJA,cACA,kBAGI,EAAe,mDACf,EAEJ,UAqBe,QAbO,aACpB,IAAI,cACF,GAEF,YAAI,sBAAc,iBAClB,SAAY,QAAR,KAA4B,QAAR,KAA4B,SAAR,KAC/B,IAAT,KAAiB,cAGrB,IAAO,EAAc,KAAK,IAAU,CAAC,EAAa,KAAK,IAC1C,IAAV,KAAkB,IAAS,QAC/B,mFC1BD,8DAGI,OAiBW,QARA,WACb,IAAoB,QAAhB,QAAO,IAAqB,cAC9B,SAEF,MAAI,GAAU,EACd,SAAkB,GAAV,KAAkB,EAAI,GAAW,EAd5B,EAEf,GAYuD,KACtD,qEClBD,aAoCe,QAJI,aACjB,OAAO,KAAU,GAAU,IAAU,GAAS,IAC/C,ySCtBD,mSAHA,iBACA,iBA8BqB,YASpB,CAAa,aAAQ,QASpB,QAAK,OAQL,UAAK,OAAS,cACd,EAED,kBAgJA,wBAMC,OAAO,IAAI,GAAM,KACjB,OAED,kCAiBC,QACA,MAAI,EAEJ,KAAQ,EACP,UAAK,QAAS,EACd,eAAO,EAGR,aACA,EAED,uCASqE,kEAA7C,CAAe,eACtC,gBACA,KAAI,EAAS,EAAQ,YAAc,KAAO,KAE1C,OACC,KAAW,EAAQ,YAAc,OAAS,WAC1C,KAAS,EAGV,aACA,EAED,iCAIC,MAAK,OAAO,eAAgB,KAC5B,MAED,6BAMc,WACb,OAAO,MAAK,OAAO,IACnB,EAED,6BAMc,WACb,OAAO,MAAK,OAAO,IACnB,EAED,wCASC,OAAO,MAAK,OACZ,SAED,2CAMC,OAAO,MAAK,OACZ,MAED,6BAMmB,aAClB,MAAK,OAAO,IAAK,EACjB,EAED,gCAKiB,WAChB,MAAK,OAAS,cACd,EAED,gCAMiB,WAChB,OAAO,MAAK,OAAO,OACnB,EAED,0CAIC,MAAK,OACL,OAED,iCAMC,IAEA,YAAK,MAAK,OACT,SAAK,uBAAkB,KAGxB,UACA,CAED,8BAnSC,IAEA,MAAK,CAAC,KACL,aAGD,SAMC,IANI,IAAE,EAAM,KAAK,OAAO,cAAe,YAMjC,eAGP,wFACA,EAED,oCAWC,IAEA,MAAK,CAAC,KACL,aAGD,SAMC,IANI,IAAE,EAAM,KAAK,OAAO,oBAAqB,YAMvC,eAGP,wFACA,EAED,mCAUC,OACA,EAED,kCASM,OAAC,MACL,OAGM,KAAK,YAAc,KAC1B,WADA,IAGD,oCAOC,IAAM,GAAQ,KAEd,YAAmB,KAAV,MAAkB,KAAK,OAAO,SAAU,EAAQ,IACzD,IAED,wCAOC,IAAM,GAAQ,KAEd,YAAmB,KAAV,MAAkB,KAAK,OAAO,SAAU,EAAQ,IACzD,IAED,6BAQC,QAAI,GAEJ,KAAQ,EACP,UAAO,EAGR,aACA,EAED,iCASC,OAAK,MAAK,MACT,KAID,KAAO,KAAK,KAAK,UACjB,wBA3KmB,gLCtBrB,CA+rB6C,eAC5C,QAAK,EAAQ,IAIb,OAAQ,IAIR,GAAO,EAAQ,SAAS,OAAO,YAAa,EAAQ,KAAM,WAAc,EACxE,OAGD,CACmC,eAClC,IAAM,GAAY,EAAS,OAAO,aAAc,CAAe,eAC/D,iBAAM,EAAQ,EAAU,KAAM,kBAAW,GAA2B,EAAS,EAI7E,YAAU,QAAS,kBAAW,GAAQ,IAAK,EAE3C,GACA,C,+sBA/tBD,eACA,cACA,cACA,cACA,cACA,cACA,gBACA,mBAOqB,YAQpB,CAAqB,eAAiB,QAOrC,QAQA,2BAQA,gBAAK,OAAS,GAEd,KACC,QAAK,UAAW,EAEjB,EAED,kBA6EA,gBAOS,WACR,IAAK,KAAK,YAAc,EACvB,WACA,SAAM,GACN,CADW,QAAK,WAIjB,YAAK,CAAC,KAAK,OAAO,QAAS,EAAe,SAAY,CAAC,KAAK,MAAM,QAAS,EAC1E,OACA,YATwB,gBAWzB,WAAyB,KAAK,yDAAU,UACvC,MAAY,MAD2B,yBAGvC,YAA0B,EAAe,2DAAU,eAClD,MAAK,GAAU,QAAS,IACvB,CACA,MACA,KACD,WARsC,4EAUvC,IAAK,CACJ,GAED,QAxBwB,gFA0BzB,CACA,QAED,gMAMsB,KAAK,0EAAd,O,qBACL,UAAM,gBAAiB,yVAI/B,yCAWC,IAAI,GAAQ,KADG,eAGf,WAAqB,KAAK,uDAAU,UACnC,OAAK,CAAC,GAAS,GAAM,MAAM,SAAU,EACpC,YAED,aAPc,qEASf,OAAO,GAAQ,UAAM,gBAAiB,GACtC,IAED,uCAWC,IAAI,GAAO,KADG,eAGd,WAAqB,KAAK,uDAAU,UACnC,OAAK,CAAC,GAAQ,GAAM,IAAI,QAAS,EAChC,UAED,aAPa,qEASd,OAAO,GAAO,UAAM,gBAAiB,GACrC,IAED,2CAUC,IAAM,GAAQ,KAEd,sBAAO,GAAQ,UAAS,mBAAoB,EAAM,OAClD,IAED,0CAUC,IAAM,GAAY,KAElB,qBAAO,GAAY,UAAS,mBAAoB,EAAU,KAC1D,IAED,yBAgBU,WAA4B,4DACrC,QAAK,WACL,QAAK,mBAAqB,CAAC,CAE3B,OAAK,KAAM,eAAgB,CAC3B,iBAED,0CAMC,CACC,CADI,MAAK,QAAQ,cAEjB,wBAAK,KAAM,eAAgB,CAE5B,kBAED,0BAWW,WAAoC,mEAC9C,KAAY,MAAM,KAGlB,MAAM,GAAc,EAAU,KAAM,YACnC,IAAK,EAAG,gBACP,cAAM,eAGP,oGAAO,GAAK,QAAQ,MAAO,YAC1B,OAAO,CAAC,GAAS,QACjB,GACD,EAGD,MAAK,EAAU,SAAW,KAAK,QAAkB,QAIjD,QAAK,sBAnByC,iBAqB9C,YAAqB,oDAAY,WAChC,WAAK,WACL,aAvB6C,yEAyB9C,MAAK,mBAAqB,CAAC,CAE3B,OAAK,KAAM,eAAgB,CAC3B,kBAED,sBAKO,WACN,MAAK,UAAW,EAAe,YAAa,EAC5C,WAED,yBAU0B,aACzB,IAAM,GAAM,UAAS,SAAU,EAC/B,GAAM,EAAQ,cAAW,EAEzB,QAAK,UAAW,CAChB,GAED,0CAQC,IAAM,GAAgB,KAEtB,mBACC,IADI,WACC,UAAW,CAAE,cAAW,EAE9B,IAED,wCAQC,IAAM,GAAc,KAEpB,kBACC,IADI,WACC,UAAW,CAAE,cAAW,EAE9B,IAED,yBAU0B,aACzB,IAMC,IANI,QAAK,YAMH,eAKP,0GAAM,GAAW,UAAS,SAAU,EAEpC,MAIA,MAJK,IAAS,YAAa,KAAK,WAI1B,GAAS,KAEf,OAAK,KAAK,QACT,aAGD,YACC,QADI,IAAS,YAAa,QACrB,SAAU,cAAW,EAE1B,YAAK,SAAU,cAAW,EAE3B,IAED,6BAMc,WACb,OAAO,MAAK,OAAO,IACnB,EAED,wCASC,OAAO,MAAK,OACZ,SAED,2CAMC,OAAO,MAAK,OACZ,MAED,6BAMc,WACb,OAAO,MAAK,OAAO,IACnB,EAED,0CASC,IAAwB,CAAnB,MAAK,OAAO,KAChB,IAAM,GAAgB,MAAM,KAAM,KAAK,OACvC,aAAK,OAEL,aAAK,KAAM,mBAAoB,CAAE,cAAF,EAC/B,iBACD,CAED,gCASiB,WAChB,CAAK,KAAK,aACT,UAAK,OAAO,OAEZ,QAAK,KAAM,mBAAoB,CAAE,cAAe,CAAE,GAEnD,kBAED,6BAUmB,aAClB,CAAK,KAAK,aAAc,KACvB,SAAK,OAAO,IAAK,EAEjB,QAAK,KAAM,mBAAoB,CAAE,cAAe,CAAE,GAEnD,kBAED,gCASiB,WAChB,MAAQ,cAER,GAAK,CAAC,cAAW,EAAO,KAAK,QAE5B,IAAM,GAAU,GAAI,KAAK,MAAM,KAAM,EAAM,QAAS,OAAQ,MAAM,KAAM,KAAK,OAAO,UAF7C,eAIvC,WAA8B,qDAAQ,2CAErC,GAAK,KAAK,OAAO,IAAK,MACrB,MAAQ,OAET,GATsC,gFAWvC,MAAK,OAEL,OAAK,KAAM,mBAAoB,CAAE,cAAe,MAAM,KAAM,GAC5D,iBACD,CAED,6CAQC,IACC,CADI,QAAK,iBAIV,SAAM,GAAQ,KACd,gBAAM,EAAiB,EAAM,MAC7B,UAAM,EAAgB,EAAM,IAE5B,iBAAS,yBAAqC,GAAkB,EAAkB,EAClF,IAED,iMAsBO,G,EAAU,GAAI,wCAEC,KAAK,8EAAd,I,KACL,M,GAAa,EAAgB,GAAM,MAAO,IAE3C,uCACE,+CAGc,GAAM,kFAAf,I,cACQ,YAAd,KAAM,MAAwB,EAA2B,GAAM,KAAM,wCACnE,GAAM,kSAIR,O,GAAW,EAAgB,GAAM,IAAK,IAEvC,uCACE,oXAKT,SAcA,mBAOY,WACX,IAAK,EAAG,eACP,cAAM,eAGP,mGAAK,YACL,QAAK,QAAQ,KAAM,UAAM,gBACzB,GAED,4BAMa,WACZ,KAAM,GAAI,GAAI,EAAG,EAAI,KAAK,QAAQ,OACjC,OAAK,EAAM,eAAgB,KAAK,QAQ/B,SAAM,eACL,6GACA,CAAE,WAAY,EAAO,kBAAmB,KAAK,QAIhD,IAED,oCAMC,MAAK,QACL,KAED,2CAOC,MACC,CADO,MAAK,QAAQ,aAGrB,WAeD,+BAxnBC,IAA2B,CAAtB,MAAK,QAAQ,OACjB,IAAM,GAAQ,KAAK,QAAS,KAAK,QAAQ,OAEzC,SAAO,MAAK,mBAAqB,EAAM,IAAM,EAC7C,KAED,OACA,KAED,8BAUC,IAA2B,CAAtB,MAAK,QAAQ,OACjB,IAAM,GAAQ,KAAK,QAAS,KAAK,QAAQ,OAEzC,SAAO,MAAK,mBAAqB,EAAM,MAAQ,EAC/C,GAED,OACA,KAED,oCAQC,IAAM,GAAS,KAAK,QAEpB,aACC,EADI,MACG,KAAK,QAAS,GAItB,WAED,mCAMC,OAAO,MAAK,QACZ,MAED,mCAOC,OAAO,CAAC,KAAK,aAAe,KAC5B,wDAye2B,WAC3B,IAAM,GAAY,GAClB,eAAU,MAEV,GACA,qBA/lBmB,EAsrBrB,cAAK,IAGL,oICrsBA,mSAFA,kEA+BqB,YAWpB,CAAqC,iBAAS,WAO7C,QAAK,SAEL,EAAoB,CAAf,IAAoB,EAAe,EAMvC,gBAAM,eAGP,iFAAc,CAAT,IAAc,EAAe,EAAS,EAM1C,gBAAM,eASP,uEAAK,KAAO,EAAS,KAAK,UAAW,EAAc,EAQnD,QAAK,aACL,CAED,kBA+EA,WAQI,WACH,OACA,WADO,GAGR,kCAOC,IAAM,GAAO,KAAK,SAElB,gBACC,EADI,GAAK,WACH,EAAK,OAAS,IAAO,KAG5B,cACA,CAED,uCASqE,kEAA7C,CAAe,eACtC,gBACA,KAAI,EAAS,EAAQ,YAAc,KAAO,KAE1C,OACC,KAAW,EAAQ,YAAc,OAAS,WAC1C,KAAS,EAGV,aACA,EAED,6BAMc,WACb,OAAO,MAAK,SAAS,aACrB,EAED,6BAMc,WACb,OAAO,MAAK,SAAS,aACrB,EAED,wCASC,OAAO,MAAK,SACZ,eAED,2CAMC,OAAO,MAAK,SACZ,sDA/JA,OAAqC,KAA9B,QAAK,SAAS,YACrB,KAD4C,KAAK,SAAS,YAAc,KAAK,YAG9E,mCAQC,OAAO,MAAK,KACZ,MAED,kCAQC,OAA4B,KAArB,QAAK,YACZ,KADmC,KAAK,YAAc,KAAK,UAG5D,kCAYC,OAAO,MAAK,aAAe,KAAK,SAChC,UAED,+BAOC,OAAO,MAAK,SACZ,MAED,6BAOC,OAAO,MAAK,SACZ,IAED,iCAQC,OAAO,MAAK,SACZ,4BApImB,gCC6Ca,aACjC,OAAS,aAAmB,OAAY,EAAQ,KAAK,OAAQ,EAAG,KAChE,CAED,CAkEoC,eACnC,IAAK,EAAK,SAAW,WAAS,UAC7B,IAAM,GAAe,EAAK,UAAU,cAAc,YAElD,kBAAgC,CAA3B,IAAa,YAAmB,EAAa,WAAY,GAAI,UACjE,IAAM,GAAY,EAAa,WAAY,GAC3C,eAAM,EAAY,EAAa,WAAY,GAE3C,YAAK,EAAkB,IAAe,GACrC,KAAa,SAAU,EAExB,EACD,CACD,C,4HAnFe,qBAaA,eAAgB,WAC/B,OAAO,GAAQ,KAAK,QAAU,GAAwB,EACtD,EAED,IAUgB,qBAAsB,WACrC,OAAK,GACJ,GAAO,EAAQ,KAAK,MAEpB,GAAO,EAER,IAED,IAagB,cAAwB,aACvC,IAAI,GAAsB,EAAqB,IAE1C,SACJ,OAAsB,EAAa,OACnC,YAAqB,IAAK,EAG3B,IAAO,EAAQ,YACf,EAED,IAMgB,qBAAsB,WACrC,GAAS,GAAI,UACb,EAED,EApFA,IAAM,QA1BC,IAAM,cAAY,WACxB,IAAM,GAAW,EAAY,cAC7B,eAAS,QAET,aACA,CASM,EAAM,gBAAc,kBAAe,GAAY,eAAgB,OAK/D,EAAM,yBAKN,EAAI,kBAAgB,GAEjB,EAAI,EAAG,EAAI,EACpB,uBAGD,SA+CA,GAAM,GAAuB,GAE7B,ypBC/GA,mSAHA,gBACA,mBA0BqB,cAqBP,aAAW,QAGvB,kEAMA,aAAkB,cAClB,CAED,YAZA,6BAeS,WAAa,OACrB,KAAM,EAAoC,QAA5B,QAAO,MAAK,aAA2B,CAAE,KAAK,cAAiB,KAE7E,eAAM,QAAS,WACd,GAAK,SAAU,EAAY,EAAmB,aAC7C,CAAK,EACJ,aAAK,WAEN,EAJD,EAIG,CAAE,WAAY,EACjB,YACD,EAED,qBAS2B,eAC1B,CAAK,KACJ,gBAAK,SAAS,KAAM,EAAW,cAAkB,KAAK,SAAU,EAEjE,gCA7DmB,gLCpBrB,mSAPA,eACA,eACA,eACA,cACA,cACA,kBAkBqB,YAQpB,CAAqB,eAAiB,QAOrC,QAQA,gBAQA,2BAQA,gBAAK,oBAEL,GACC,QAAK,UAAW,EAEjB,EAED,4CAasC,uHACrC,WAAK,QACL,OAAK,oBAAsB,EAAQ,EAAQ,OAAS,GAEpD,QAAK,KACL,SAED,QAiGA,iBAeiB,aAChB,IAAK,EAAG,eACP,cAAM,eAGP,qDAAK,WACL,QAAK,mBAAqB,CAAC,CAC3B,OAAK,KACL,SAED,4LAMsB,KAAK,yEAAd,O,oBACL,UAAM,gBAAiB,4UAI/B,yCASC,IAAI,GAAQ,KADG,eAGf,WAAqB,KAAK,sDAAU,SACnC,OAAK,CAAC,GAAS,EAAM,MAAM,SAAU,EACpC,YAED,WAPc,oEASf,OAAO,GAAQ,UAAM,gBAAiB,GACtC,IAED,uCAQC,IAAI,GAAO,KADG,eAGd,WAAqB,KAAK,sDAAU,SACnC,OAAK,CAAC,GAAQ,EAAM,IAAI,QAAS,EAChC,UAED,WAPa,oEASd,OAAO,GAAO,UAAM,gBAAiB,GACrC,IAED,2CAQC,IAAM,GAAa,KAEnB,sBAAO,GAAa,UAAS,mBAAoB,EAAW,OAC5D,IAED,0CAQC,IAAM,GAAY,KAElB,qBAAO,GAAY,UAAS,mBAAoB,EAAU,KAC1D,IAED,wBAOS,WACR,IAAK,KAAK,QAAU,EACnB,OAGD,YAAK,KAAK,QAAU,KAAK,oBAAsB,EAC9C,mBAGD,YAAK,KAAK,YAAc,EACvB,WACA,SAAM,GACN,CADW,QAAK,WAIjB,YAAK,CAAC,KAAK,OAAO,QAAS,EAAe,SAAY,CAAC,KAAK,MAAM,QAAS,EAC1E,OACA,YAjBwB,gBAmBzB,WAAyB,KAAK,yDAAU,SACvC,MAAY,KAD2B,sBAGvC,WAA0B,EAAe,uDAAU,aAClD,MAAK,EAAU,QAAS,IACvB,CACA,KACA,KACD,WARsC,qEAUvC,IAAK,CACJ,EAED,QAhCwB,gFAkCzB,CACA,QAED,0CAMC,CAAK,KAAK,QACT,cACA,gBAAK,KAEN,UAED,0BAUsB,aACrB,MAAe,cADuB,gBAGtC,WAAqB,qDAAY,QAChC,MAAK,EAAG,eACP,cAAM,eAGP,qDAAK,WACL,EATqC,8EAWtC,MAAK,mBAAqB,CAAC,CAC3B,OAAK,KACL,SAED,sBAKO,WACN,MAAK,QAAU,EACf,aAAK,oBAAsB,EAE3B,yBAAK,UAAW,EAAe,YAAa,EAC5C,WAED,yBAU0B,aACzB,IAAM,GAAM,UAAS,SAAU,EAC/B,GAAM,EAAQ,cAAW,EAEzB,QAAK,UAAW,CAChB,GAED,0CAQC,IAAM,GAAgB,KAEtB,mBACC,IADI,WACC,UAAW,CAAE,cAAW,EAE9B,IAED,wCAQC,IAAM,GAAc,KAEpB,kBACC,IADI,WACC,UAAW,CAAE,cAAW,EAE9B,IAED,yBAU0B,aACzB,IAMC,IANI,QAAK,YAMH,eAGP,yGAAM,GAAW,UAAS,SAAU,EAEpC,MAIA,MAJK,IAAS,YAAa,KAAK,WAI1B,GAAS,KAEf,YAAK,QAEL,MACC,QADI,IAAS,YAAa,QACrB,SAAU,cAAW,EAE1B,YAAK,SAAU,cAAW,EAE3B,IAED,6CAQC,IACC,CADI,QAAK,iBAIV,SAAM,GAAQ,KACd,gBAAM,EAAiB,EAAM,MAC7B,UAAM,EAAgB,EAAM,IAE5B,iBAAS,yBAAqC,GAAkB,EAAkB,EAClF,IAED,QAcA,mBASY,WAAQ,oBACnB,WAA2B,KAAK,sDAAU,YACzC,MAAK,EAAM,eAQV,QAAM,eACL,4GACA,CAAE,WAAY,EAAO,kBAGvB,YAfkB,oEAiBnB,MAAK,QAAQ,KAAM,UAAM,gBACzB,kCA5aA,OAAO,MACP,OAED,2CAOC,OAAO,MACP,mBAED,+BAUC,IAAK,CAAC,KAAK,QACV,aAED,SAAM,GAAQ,KAAK,QAAS,KAAK,QAAQ,OACzC,GAAM,EAAS,KAAK,mBAAqB,EAAM,IAAM,EAErD,YAAO,WAAS,mBAChB,EAED,8BAOC,IAAK,CAAC,KAAK,QACV,aAED,SAAM,GAAQ,KAAK,QAAS,KAAK,QAAQ,OACzC,GAAM,EAAQ,KAAK,mBAAqB,EAAM,MAAQ,EAEtD,UAAO,WAAS,mBAChB,EAED,oCAOC,OAA2B,EAApB,QAAK,YAAoB,KAAK,QAAS,GAC9C,WAED,mCAMC,OAAO,MAAK,QACZ,MAED,mCAMC,OAAO,CAAC,KAAK,aAAe,KAC5B,kBAED,wCAOC,OAAK,MACJ,OAAO,KAAK,OAGb,gBACA,0CAkT2B,WAC3B,IAAM,GAAY,GAClB,YAAU,MAEV,GACA,qBAxdmB,EAwfrB,cAAK,IAQL,wFCvgBwB,QAAkB,aACzC,KAEM,GAFA,GAAc,SAAK,EAAE,OAAQ,EAEnC,QAAU,EAAI,EAAG,EAAI,EACpB,OAAK,EAAG,IAAO,EAEd,SAKF,SAAK,GAAE,QAAU,EAEhB,OACM,OAAK,EAAE,OAAS,EAEtB,OAGA,SAED,WAED,iFCjCwB,QAAO,WAC9B,IAAM,GAAe,EAErB,aAAK,GACJ,KAGD,KAAO,EACP,K,gLCPD,mSALA,gBACA,eACA,cACA,iBAeqB,YACpB,aAAc,QAQb,QAAK,IAQL,qBAAK,eAQL,UAAK,UAAY,GAQjB,UAAK,sBACL,IAED,8BAKK,WAAU,OACd,QAAK,KAAK,UAAU,IACnB,QAAM,eAGP,+CAAK,SAAU,EAAS,QAAS,iBAAM,GAAK,OAAQ,EAApD,EAA+D,CAC/D,qBAAK,SAAU,EAAS,OAAQ,iBAAM,GAAK,OAA3C,EAAoD,CACpD,qBAAK,UAAU,IACf,EAED,uBAKQ,WACP,CAAK,IAAY,KAChB,qBAAK,MAGN,GAAK,KAAK,UAAU,IACnB,UAAK,cACL,QAAK,UAAU,OAEhB,GAED,uBAMQ,WACP,cAAc,KAEd,4BAAK,eACL,OACA,YAED,gCAOQ,OACP,kBAAc,KAEd,4BAAK,sBAAwB,WAAY,UACxC,GAAK,eACL,OACA,YAH4B,EAI7B,EAMD,oBApGoB,EAyGrB,cAAK,aACL,cAAK,I,oIC3HL,mSAHA,gEACA,WAgBqB,YAIpB,aAAc,QAOb,QAAK,UAAY,OAAO,SAQxB,cAAK,YAAc,GACnB,IAED,mCAKU,WAAU,OACnB,UAAK,UAAU,SAAU,EAAS,UAAkB,aACnD,GAAK,MACL,EACD,EAED,oBASgB,aACf,IAAM,GAAU,qBAChB,GAAM,EAAY,KAAK,YAAY,IAEnC,GACC,IAAU,KAEV,QAAK,YAAY,IAAK,EAAS,CAEhC,GAED,sBAMO,WACN,IAAM,GAAU,cAChB,GAAM,EAAY,KAAK,YAAY,IAEnC,MAAK,CACJ,EACA,YANoB,gBAQrB,WAAwB,gDAAY,SACnC,QAAU,EAAc,UACvB,GACA,mBACA,iBACD,WAboB,oEAerB,CACA,QAED,kCAIC,MAAK,YAAc,GACnB,UAAK,UACL,mCAnFmB,iFC1BrB,8DAGA,KAAI,EAAc,OAGlB,UAAI,EAAiB,EAErB,iBAkBe,QARmB,eAChC,IAAI,GAAW,EACf,GAAM,EAAe,KAAK,EAAQ,IAAQ,cAAG,EAAU,EAAnD,GACwB,YAAE,IAC5B,QAAO,GAEV,oFChBG,kDARJ,gBACA,gBACA,gBACA,eACA,gBACA,qBA6De,QA7CkC,iBAC/C,IAAI,GAAQ,CAAC,EACT,IADJ,QAEe,KACX,EAAS,EAAM,OACN,KACT,EAAe,EAEnB,UAAI,CACF,QAEF,GACE,MAAS,cAAS,EAAQ,cAE5B,KACE,OACA,QAEG,MAAI,EACP,QA9BJ,UA+BI,QACA,OAAS,cAEX,IACA,WAAS,IAAQ,GACf,IAAI,GAAQ,EAAM,GACd,EAAW,EAAW,EAAS,GAEnC,OAAS,GAAwB,CAAV,KAAe,EACtC,EAAI,GAAY,IAAa,EAC3B,QAAI,GACJ,EACE,QAAI,EAAO,KACT,UAGJ,SAAO,KACR,EACQ,KAAC,GAAS,EAAQ,EACzB,MAAO,KAEV,EACD,OACD,oFCzDD,kDAPA,iBACA,gBACA,gBACA,eACA,eACA,oBAkDe,QApBD,WACZ,IAAI,GAAU,cACd,MAAI,EAAE,GAAW,cACf,UAAO,cAET,MAAI,GAAU,cACV,GACA,EAAoB,MACpB,EAAS,EAEb,WAAK,GAAI,KACP,GAAI,eAAQ,EACR,IANY,CAAC,CAAC,CAMZ,GAAuB,QAAP,KAAmB,cAAQ,EAC7C,KAAE,GACJ,aADe,OACR,KAGX,SACD,mF1EtCuB,kBACvB,KAEM,GAFF,GAEJ,IAAU,EAAI,EAAO,CAAJ,GAChB,kBAA4C,KAAxB,EAAE,EAAI,KAAK,WAAuB,SAAU,IAAK,UAGtE,SACA,E,wS2EXD,mSAHA,gBACA,iBAOqB,YAMpB,CAAa,aAAQ,QAOpB,QAEA,UACC,QAAK,YAAa,EAEnB,EAED,kBAKE,OAAO,yBACR,OAAO,MAAK,OAAQ,OACpB,WAED,QAoBA,gBAMS,WACR,OAAO,MAAK,OAAQ,IACpB,IAED,6BAMc,WACb,IAAM,GAAQ,KAAK,OAAO,QAE1B,SAAgB,CAAC,CAAV,IAAc,KACrB,CAED,mCAOoB,WACnB,IAAM,GAAQ,KAAK,aAEnB,SAAiB,KAAV,KAAiB,KAAO,KAAK,OAAO,MAAO,EAAG,GAAQ,OAAe,aAAP,OAAiB,GAAM,EAAK,UAAlE,EAC/B,EAED,8BASe,WACd,IAAK,GAAS,KAAK,OAClB,aAAO,MAGR,aAAM,GAAO,KAAK,OAElB,MAAK,CAMJ,OAAM,eAGP,2FAAO,MAAK,mBACZ,EAED,8BASe,WACd,IAAI,GAAc,EADK,eAGvB,WAAoB,KAAK,0DAAS,QACjC,MAAK,GAAU,GAAe,EAAS,EAAc,EACpD,iBAAO,MAAK,aAGb,MAAe,EACf,UATsB,8EAWvB,IAAK,GAMJ,OAAM,eAGP,6FAAO,MACP,MAED,4BAMoB,aAAQ,eAC3B,EAD2B,KAE3B,WAAoB,gDAAQ,YAC3B,MAAK,EAAG,eAMP,cAAM,eAEP,yGAX0B,oEAa3B,SAAK,QAAO,gBAAQ,EAAO,YAC3B,IAED,4BAOa,WAA0B,8DACtC,QAAO,MAAK,OAAO,OAAQ,EAC3B,EAED,iCAOC,OAAO,MAAK,OAAO,IAAK,kBAAQ,GAAK,QACrC,iCArJA,OAAO,MAAK,OACZ,MAED,kCAOC,OAAO,MAAK,OAAO,OAAe,aAAP,OAAiB,GAAM,EAAK,UAAhD,EACP,sBA/CmB,kpBCFrB,mSANA,gBACA,cACA,cACA,eACA,mBASqB,cAmByB,qBAAc,QAG1D,kEAMA,aAAK,MAAQ,UAAM,gBAQnB,KAAK,IAQL,IAAK,SAAwB,WAAY,KAQzC,IAAK,SAAwB,WAAY,KAAO,EAChD,CAED,YApCA,aAiDA,wBAKC,OAAO,IAAI,GAAoB,KAAK,MAAO,KAAK,IAAK,KAAK,SAAU,KAAK,SAAU,KACnF,YAED,sCAKC,OAAO,IAAI,GAAoB,KAAK,MAAO,KAAK,IAAK,KAAK,SAAU,KAAK,SAAU,KAAK,YACxF,EAED,mCAIC,IADU,gBAEV,WAAoB,KAAK,MAAM,8DAAa,QAC3C,MAAuB,IAAlB,QAAK,UAAqB,CAAC,cAAS,EAAK,aAAc,KAAK,KAAO,KASvE,eAAM,OAEL,mIACA,CAAE,KAAF,EAAQ,IAAK,KAAK,IAAK,MAAO,KAIhC,cAAuB,IAAlB,QAAK,UAAuC,IAAlB,QAAK,UAAqB,EAAK,aAAc,KAQ3E,UAAM,eACL,qFACA,CAAE,KAAM,EAAM,IAAK,KAQrB,SAAK,cAAS,KAAK,SAAU,KAC5B,UAED,MAED,UA1CU,oEA2CV,kBAAO,aAAc,KAAK,MAAO,KAAK,IAAK,KAE3C,UAAO,CAAE,MAAO,KAAK,MAAO,IAAK,KAAK,IAAK,SAAU,KAAK,SAAU,SAAU,KAC9E,SAED,6BA5EC,OACC,KADI,QAAK,SAEH,eACN,IADW,QAAK,SAGhB,kBAED,2BA4ED,iBAOuB,aACtB,OAAO,IAAI,GAAoB,UAAM,SAAU,EAAK,MAAO,GAAY,EAAK,IAAK,EAAK,SAAU,EAAK,SAAU,EAC/G,8CAZA,OACA,wEA5ImB,+lBCXrB,mSAFA,mEAYqB,0IACpB,wBAKC,OAAO,IAAI,GAAa,KACxB,YAED,sCAKC,OAAO,IAAI,GAAa,KAAK,YAC7B,EAED,mCAKC,CAED,oCAIC,OACA,iEA7BmB,kpBCPrB,mSALA,gBACA,cACA,cACA,kBAEM,EAAiB,OAEvB,YAOqB,cAIM,iBAAW,QAGpC,kEAFO,EAAM,EAQb,aAAK,IAYL,mBAAK,IAEL,gBAQA,aA/BD,sCAkCC,OAAO,MAAK,kBACZ,E,MAEa,WAAW,OACxB,QAAK,KAAK,kBAMT,QAAM,eAGP,iFAAK,kBAAmB,EAExB,QAAK,KAAM,aAAc,GACxB,EACA,YACA,kBAAa,IAAa,EAAS,UAAU,iBAA7C,CAKD,QAAK,SAAU,EAAU,SAAU,UAClC,GAAK,UAAY,EAAS,WAAa,EAAS,UAAU,iBAC1D,CAFD,EAEG,CAAE,SACL,qCAhEmB,EAmErB,cAAK,I,uLC7EL,mSAJA,eACA,cACA,iBAOqB,YAMpB,aAAc,QAOb,QAAK,OACL,IAED,kBAqFA,+BASqE,kEAA7C,CAAe,eACtC,gBACA,KAAI,EAAS,EAAQ,YAAc,KAAO,KAE1C,OACC,KAAW,EAAQ,YAAc,OAAS,WAC1C,KAAS,EAGV,aACA,EAED,iCAIC,MAAK,OAAO,eAAgB,KAC5B,MAED,4BAKmB,aAClB,MAAK,KAAM,UAAY,EAEvB,GAAK,KACJ,aAAK,OAAO,YAAa,EAE1B,EAgBD,8BAlIC,IAEA,MAAK,CAAC,KACL,aAID,SAAoD,CAMnD,CANI,GAAE,EAAM,KAAK,OAAO,cAAe,YAMjC,eAGP,uFACA,EAED,oCAOC,IAAM,GAAQ,KAEd,YAAmB,KAAV,MAAkB,KAAK,OAAO,SAAU,EAAQ,IACzD,IAED,wCAOC,IAAM,GAAQ,KAEd,YAAmB,KAAV,MAAkB,KAAK,OAAO,SAAU,EAAQ,IACzD,IAED,6BAOC,QAAI,GAEJ,KAAQ,EACP,UAAO,EAGR,aACA,EAED,iCASC,OAAK,MAAK,iBACT,GAAO,KAAK,OAEZ,SAED,UAyGF,cA5MqB,EAgNrB,cAAK,I,oOhFvMC,CA0D2B,cAChC,OAAK,iBACJ,QAAO,EAEP,IAAO,EAER,GAED,CAyBgC,cAC/B,IAAM,IAAU,GAEhB,UAAK,CAAG,GAAQ,GAMf,yBAAM,gBAGP,4GAAK,CAAC,GAML,YAAM,gBAGP,4DAAK,GACJ,gBAAO,WAAS,aAChB,IAAM,GAAK,CAAC,GAAS,QACrB,IAAM,IAAa,GAEnB,YAAQ,UAAS,YAAa,IAE9B,OAAM,IAAc,eAAW,GAAU,UAAS,SAAU,GAC5D,QAAM,GAAiB,cAAc,GAErC,KAAM,GACN,GAED,OAAO,WAAS,YAChB,GAED,CA2BiC,cAChC,IAAM,IAAiB,GACvB,OAAM,GAAiB,GAGvB,UAAK,GAAe,GACnB,cAID,OAAK,GAAe,GAAI,qBAAsD,CAA9B,MAAe,WAC9D,IAAM,IAAS,GACf,OAAM,GAAS,GACf,gBAEA,SAAO,EAAiB,cAAc,GACtC,IAED,IAAM,IAAa,GAAe,SAAU,GAC5C,GAAM,GAAY,GAAe,SAGjC,OAAK,CAAC,IAAc,CACnB,SAID,OAAK,GAAW,GAAI,SAAY,GAAU,GACzC,cAAO,GAAgB,GAExB,IACK,GAAK,GAAW,GAAI,qBAAwB,GAAU,GAAI,qBAAwB,GAAW,UAAW,IAE5G,IAAM,IAAQ,GACd,qBAAW,eAAgB,GAC3B,kBAIA,SAAO,EAAiB,cAAc,GACtC,IAED,OACA,GAED,CAmBiC,cAChC,IAAM,IAAO,GACb,WAAM,GAAO,GAEb,aAAK,CAAC,IAAQ,CAAC,IAAQ,CAAC,GAAK,GAAI,qBAAwB,CAAC,GAAK,GAM9D,yBAAM,QAIP,uHAAM,IAAY,GAAK,SAAU,GAAK,WACtC,GAAM,GAAc,yBAA4B,UAAS,SAAU,GAAW,OAAU,UAAS,SAAU,GAE3G,gBAAM,WAAM,SAAU,IAAQ,UAAS,SAAU,GACjD,UAAQ,WAAM,SAEd,KACA,EAED,CAU4C,cAC3C,IACA,OAAM,GAAS,eAAgB,CAAE,WAEjC,KAAI,GAAQ,GAAM,MAJiC,kBAMnD,YAAqB,sDAAS,YAC7B,MAAK,GAAM,KAAK,GACf,sBAAK,CAAC,GAAM,QAAS,GACpB,sBAAO,KAAM,eAAW,GAAO,GAGhC,sBAAQ,GAET,uBAdkD,4EAgBnD,WAAO,KAAM,eAAW,GAAO,GAE/B,MACA,EAED,CAoBkC,iBACjC,IAAQ,eAAY,gBAAe,KAAU,CAG7C,MAEA,OAAM,IAAY,EAElB,OAAK,CAMJ,QAAM,gBAGP,6CAAM,IAAoB,EAE1B,OAAM,GAAS,GAAU,eAAgB,GAAkB,OAC3D,IAAM,GAAc,GAAkB,aACtC,IAAM,GAAQ,EAGd,OACC,CADI,YACG,gBAAW,GAGb,IAAC,GAAM,QACX,QAGD,YAAM,IAAM,EAEZ,UAAO,gBAAW,GAEnB,GAED,CAYwB,cACvB,MAGA,IAAK,GACJ,kBAAO,QAGR,eAC6C,EAA8B,OAA5D,MAAP,MAAwB,MAChC,IAAM,GAAkB,GAExB,OAAM,GAAQ,GAAS,OAAS,GAGhC,OAAM,GAAU,GAAgB,eAAgB,GAAW,OAG3D,IAAM,GAAgB,EACtB,cAAM,MACN,MAAM,IAAM,UAAS,mBAGrB,IAAO,eACP,GAED,CAW8B,iBAC7B,GAIA,OAAM,IAAS,GAAM,UACpB,WACA,WAGD,sBAVuC,kBAWvC,YAAuB,yDAAS,WAC/B,MAAM,GAAO,GACb,KAAI,OAGJ,MAAK,GAAK,GAAI,YAAe,GAAQ,UAEpC,OAAgB,WAAM,SAEtB,QAAM,IAAK,CAAC,GAAQ,aAAa,QAAS,GAAM,SAAa,GAAK,GAAI,SAAY,GAAK,GAAI,cAE3F,IAAM,IAAgB,GAAK,eAAe,KAAM,YAC/C,OAAO,IAAS,GAAI,YAAe,GAAQ,UAC3C,GAGD,GACC,QAAgB,WAAM,SAEvB,IAGD,CAEC,KAAK,GAAc,IAAI,QAAS,GAC/B,UAAc,IAAM,GAGrB,KAAK,GAAc,MAAM,SAAU,GAClC,YAAc,MAAQ,GAIvB,SAED,IA9CsC,uFA+CvC,CAED,CAamC,iBAClC,IAEA,OAAK,GAAe,QAAS,GAAY,KACxC,IAAiB,EAEjB,UAAM,IAAS,GACf,OAAM,GAAc,GAEpB,cAAc,EAEd,UAAQ,EAER,OAAe,QAAY,GAAO,WAClC,EACA,SAAQ,EAGT,UAAO,GAAQ,GACf,GAED,CAa6B,iBAC5B,IAAK,EAAG,iBAMP,cAAM,gBAGP,2CAGA,IAAK,GACJ,kBAID,OAAK,GAAM,IAAI,QAAS,GAAM,MAAM,aAAc,IACjD,IAAM,IAAO,GAAM,MAEnB,aAAK,0BAAoC,EAAsB,GAC9D,UAED,GAGD,IAAK,EAAyB,KAAW,EAAsB,GAAW,GAAM,MAAM,QACrF,IAAM,IAAS,GAAM,MAAM,OAC3B,OAAM,GAAQ,GAAM,MAAM,OAE1B,YAAO,YAAM,4BAA6B,GAAQ,GAAO,GAAQ,GACjE,EAED,QAC6C,EAA8B,OAA5D,MAAP,MAAwB,MAChC,IAAM,GAAkB,GAGxB,OAAM,GAAiB,EAAgB,GAAiB,GAAW,OAAQ,GAAS,OAGpF,IAAM,GAAW,EAAc,GAAiB,GAAe,MAAM,OAAQ,GAAe,IAAI,OAGhG,IAAM,GAAQ,EAAiB,GAG1B,OAAC,GAAM,QAAS,GACpB,WAAS,IAEV,YAAM,IAAM,EAAiB,GAE7B,WAAO,gBAAW,GAClB,GAED,CAWwC,iBACvC,IAAK,EAAG,iBAMP,cAAM,gBAIP,yCAAK,GAAU,UAAW,GACzB,cAAO,GAAwB,UAAS,mBAIzC,KAAK,GAAS,OAAO,GACpB,aAAW,EAIZ,QAAM,IAAe,OACrB,WAAa,qCACA,UAAY,WAAM,QAG/B,KAAS,OAAO,eAAgB,GAAS,OAGzC,OAAM,IAAY,eAAW,GAAU,GAAS,aAGhD,MAAM,GAGN,OAAM,IAAc,cAAc,GAAa,OAAQ,GACvD,UAGA,YAAM,IAAa,GACnB,WAAM,GAAY,GAElB,gBAAK,2BAA8B,iBAClC,QAAO,EAAgB,GAIxB,IAAO,EACP,GAED,CAU+B,iBAC9B,IAAK,EAAG,iBAMP,cAAM,gBAGP,6CAGA,IAAK,GACJ,kBAMD,OAAK,GAAM,IAAI,QAAS,GAAM,MAAM,aAAc,IACjD,IAAM,IAAO,GAAM,MAGnB,aAAK,CAAC,GAAU,UAAW,KAAU,iBAAhC,SAAoE,EAAwB,GAChG,UAED,GAED,QAC6C,EAA8B,OAA5D,MAAP,MAAwB,MAChC,IAAM,GAAkB,GAGxB,OAAM,GAAW,EAAgB,GAAiB,GAAW,OAAQ,GAAS,OAG9E,IAAM,GAAQ,EAAiB,GAG1B,OAAC,GAAM,QAAS,GACpB,WAAS,IAEV,YAAM,IAAM,EAAiB,GAE7B,WAAO,gBAAW,GAClB,GAED,CAYqC,iBACpC,IAAM,IAAa,eAAsB,GAAS,GAElD,0BAAQ,UAAS,YAAa,IAC9B,MAAM,WAAM,SAAU,IAAe,UAAS,SAC9C,OAAQ,WAAM,SAEd,KACA,EAQD,CAC6B,cAC5B,QAAI,IAAS,GAEb,OAAQ,CAAC,EAAuB,KAC/B,IAAK,CACJ,GAED,UAAS,GACT,MAED,OACA,GASD,CACgC,cAAgC,6DAC/D,GAAM,GAAa,GACnB,MAAM,GAAW,GAEjB,SAGA,IAAK,GAAM,YACV,IAAM,IAAW,EAAkB,GAAM,MAEzC,UAAO,gBAAW,GAClB,GAED,IAAM,IAAW,EAAkB,GACnC,IAAM,GAAQ,GAAS,OACvB,WAAM,GAAa,EAAkB,GAGrC,cAAS,QAAU,GAAS,OAAO,WAEnC,GAAO,eAAW,GAClB,GAeD,CAC2B,cAAmC,6DAC7D,GAAM,GAAiB,GACvB,OAAM,GAAiB,GAGvB,UAAK,GAAS,OAAO,GAMpB,qBAAM,gBAIP,6CAAK,GAAS,OAAO,GAMpB,kBAAM,gBAIP,0CAAK,CAAC,IAAkB,GAAe,GAAI,SAAY,EAAuB,GAC7E,cAAO,WAAS,mBAIjB,OAAK,EACJ,UAAO,WAAS,mBAIjB,OAAK,GAAe,GACnB,cAAO,GAAkB,EAAe,IAGzC,OAAM,IAAS,GAKf,cAAK,IAAkB,GACtB,IAAM,IAAc,cAAc,GAAe,OAAQ,GAAe,MAExE,SAAO,GAAkB,GACzB,GAID,IAAwB,CAAnB,MACJ,IAAM,IAAc,cAAc,GAAe,OAAQ,GAEzD,aAAO,GAAkB,GACzB,GAMA,IAAM,IAAc,GAAe,MAGnC,EAAM,GAAa,GAGnB,WAAe,OAAO,eAAgB,GAGtC,OAAM,IAAQ,GAAe,WAC7B,GAAM,GAAc,GAAe,eAAgB,GAGnD,OAAW,eAGX,OAAM,IAAc,cAAc,GAAe,OAEjD,UAAO,GAAkB,GAE1B,GAQD,CACyD,uBACxD,QAAI,IACJ,GAGA,SAAQ,GACD,UAAQ,GAAO,SAGrB,IAAK,GAAM,UAAW,IACrB,IAAM,IAAY,GAClB,cAAM,GAAQ,GAGd,cACA,YAAO,eAAgB,GAGvB,OAAgB,KACf,cAAc,GAAQ,IACtB,cAAc,GAAQ,GAKvB,SACA,OAAa,GACb,CAEA,KAAK,IAAM,GACV,uBAAgB,GAAO,EAAG,GAAM,WAGjC,IAKF,QAAI,IAAe,EAtCiD,kBAwCpE,YAAwB,sDAAkB,eACzC,SAAS,QAGT,GAAK,GAAS,QAAU,IAAe,GAAS,QAIhD,OAAM,IAAc,EAGf,IAAC,GAAY,QACjB,MACA,KAED,gBAvDmE,4EAyDpE,OAAO,YAAM,4BAA6B,GAAQ,GAAa,GAC/D,GAQD,CACuD,uBACtD,QAAI,IACJ,GAEA,MAAQ,GAAI,IACX,IAAM,IAAQ,GAAO,SACrB,IAAM,GAAS,GAAM,GACrB,QAAM,GAAc,GAAM,GAC1B,oBAAM,GAAU,GAAM,GACtB,gBAAM,GAAO,GAAM,GAGnB,gBAAK,IAAU,IAAW,IAAU,IAAe,GAAU,UAAY,GAAM,SAE9E,IAAM,IAAe,GAGrB,WACA,YAAa,eACb,OAAO,eAAgB,GAEvB,OAAc,KAAM,cAAc,GAClC,IAEI,KACJ,OAAc,GAAO,EAAG,GAAM,WAG/B,IACA,IAGD,IAAI,IAAe,EAhC+C,kBAkClE,YAAwB,sDAAgB,eACvC,SAAS,QAGT,GAAK,GAAS,QAId,OAAM,IAAc,EAGf,IAAC,GAAY,QACjB,MACA,KAED,gBAjDiE,4EAmDlE,OAAO,YAAM,4BAA6B,GAAQ,GAAa,GAC/D,GAUD,CACiC,cAChC,IAAM,IAAa,GAEnB,cAAK,IAAc,GAAW,GAC7B,cAAO,eAAc,GAAY,GAAW,KAG7C,WAAM,IAAY,GAElB,gBAAK,KAAa,GAAU,GAC3B,QAAO,cAAc,GAGtB,GACA,EASD,CACwB,cACvB,IAAK,GAAS,QAAU,GAAS,OAAO,KACvC,aAAO,eAAc,GAAS,OAAO,OAAQ,GAAS,OAAO,MAG9D,MACC,CADI,MAAS,aACN,eAAc,GAAS,OAAO,OAAQ,GAAS,OAIvD,UAAM,IAAa,GAAS,OAAO,KAAK,MAAO,GAG/C,kBAAS,OAAO,KAAO,GAAS,OAAO,KAAK,MAAO,EAAG,GAGtD,WAAS,OAAO,OAAO,eAAgB,GAAS,OAAO,MAAQ,EAAG,eAGlE,KAAO,cAAc,GAAS,OAAO,OAAQ,GAAS,OAAO,MAC7D,EAOD,CAC6B,iBAE5B,IAAM,IAAmB,GAAG,KAC5B,iBAAG,MAAQ,GACX,QAEA,SAAO,cAAc,GACrB,GASD,CACwC,iBAEvC,IAAK,GAAQ,OAAS,GAAO,MAAQ,GAAQ,WAAa,GACzD,SAGD,YANgD,mBAOhD,YAAmB,GAAQ,sEAAqB,gBAE/C,MAAa,OAAR,OAKL,OALwB,QAKnB,GAAO,aAAc,KAAS,GAAO,aAAc,MAAU,GAAQ,aACzE,IAIF,kBAnBgD,mGAoBhD,YAAmB,GAAQ,mEAAkB,eAC5C,MAAK,GAAO,SAAU,KAAS,GAAO,SAAU,MAAU,GAAQ,SACjE,IAIF,kBA1BgD,mGA2BhD,YAAmB,GAAQ,sEAAqB,aAE/C,MAAa,OAAR,OAKA,OALmB,SAKlB,GAAO,aACZ,QAAO,aAAc,GAAK,GAAQ,aAEnC,eArC+C,mGAuChD,YAAmB,GAAQ,mEAAkB,YACvC,MAAC,GAAO,SACZ,QAAO,SAAU,GAAK,GAAQ,SAE/B,cA3C+C,mGA6ChD,YAAmB,GAAQ,mEAAkB,YACvC,MAAC,GAAO,SACZ,QAAO,SAER,aAjD+C,4EAmDhD,CACA,QAOD,CAC0C,iBAEzC,IAAK,GAAQ,OAAS,GAAS,MAAQ,GAAQ,WAAa,GAC3D,SAGD,YANoD,mBAOpD,YAAmB,GAAQ,sEAAqB,gBAE/C,MAAa,OAAR,OAKL,OALwB,SAKnB,CAAC,GAAS,aAAc,KAAS,GAAS,aAAc,MAAU,GAAQ,aAC9E,KAIF,kBAnBoD,4EAoBpD,IAAK,CAAC,GAAS,oBAAa,GAC3B,kBAGD,YAxBoD,mBAyBpD,YAAmB,GAAQ,mEAAkB,eAE5C,MAAK,CAAC,GAAS,SAAU,KAAS,GAAS,SAAU,MAAU,GAAQ,SACtE,IAIF,kBAhCoD,mGAiCpD,YAAmB,GAAQ,sEAAqB,aAE/C,MAAa,OAAR,OAIL,OAJwB,WAIf,gBAGV,aA1CoD,4EA2CpD,CAMA,UANS,uBAAgB,GAGzB,qBAAS,uBAAgB,GAEzB,oBAQD,CACkC,cACjC,OAAO,IAAM,MAAM,QAAU,GAAM,IAAI,QAAU,GAAM,MAAM,OAAO,GAAI,qBAChD,CAAvB,MAAM,MAAM,QAAgB,GAAM,IAAI,SAAW,GAAM,MAAM,OAC9D,UAgBD,CACgC,cAAQ,QAC3B,YACX,IAAK,CAAC,GAAmB,KAAQ,mBAAa,cAAgB,GAS7D,QAAM,gBAGF,mCAAC,GAAK,GACV,WAAuB,GACvB,cAhBqC,oBACvC,YAAoB,sDAAQ,qBAgB3B,aAjBsC,4EAkBvC,EAQ+B,cAC/B,OAAO,MAAU,GAAK,GAAI,qBAAwB,GAAK,GACvD,oBAMD,CACiC,cAChC,IAAM,IAAiB,EAAoB,GAC3C,OAAM,GAAe,EAAoB,GAEzC,QAAK,CAAC,IAAkB,CAAC,IAAgB,KAQxC,QAAM,gBAEP,sC,oDApoCe,oBAiCA,mBAgEA,oBAgEA,oBAiCA,+BAyCA,WAkDA,WAqCA,UA8DA,SAkCA,SAmEA,iBA4DA,WA4DA,SAzqBhB,gBACA,iBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,iBACA,mBACA,wBA0BA,QAjBC,iBACA,iBACA,kBACA,kBACA,SACA,SACA,QACA,OACA,OACA,eACA,SACA,SACA,6BAbc,GAiqCf,GAAM,IAAqB,gDAK3B,ypBiF/qCA,CA2H8D,mBAE7D,CAAK,GAAC,EAAW,KAAM,EAAK,MAAO,CAAE,KAAM,EAAK,MAK3C,QAAC,EAAiB,EAAK,MAAO,EAAK,QAAS,EAKjD,cAAK,QAAQ,KACb,gBAAM,GAAO,EAAc,YAAa,EAAK,MAAO,EACpD,KAAK,QAEL,QAAK,OACL,EAMD,CACoD,mBAEnD,CAAK,GAAC,EAIN,WAAM,GAAkB,EAAU,sBAAsB,IAAK,EAAK,MAAM,OAAU,CAAC,EAAK,OAAO,GAY/F,WAAM,EACH,EAAK,MAAM,GAAI,qBACf,EAAK,MAAM,GAAI,YAAe,EAAK,OAAO,GAAI,YAGjD,EAAK,GAKL,MAAM,IAAkB,EAAK,OAAO,GAEpC,WACC,MAAK,QAAQ,KAAM,EAIpB,YAMM,GANF,IAMJ,KAAU,GAAI,KAAG,GAAI,EAAK,OAAO,WAC1B,QAAQ,EAAK,OAAO,SAE1B,IAAK,EAAiB,GAAO,EAAK,QAAS,EAAc,OAEnD,IACJ,GASD,SATiB,cAChB,eAAK,OAAO,eAAgB,GAAM,MAKlC,QAID,YAAc,eAId,QAIF,KACC,MAAK,QAEN,QAEgD,mBAChD,IAAM,GAAO,EAAK,MAIlB,cAAK,CAAC,GAA8B,EAAO,MAAO,CAAE,KAAF,EAAQ,OAKrD,SAAC,EAAO,MAAO,CAAE,KAAM,YAAa,OAKpC,OAAC,EAAO,MAAO,CAAE,KAAF,EAAQ,OAAQ,EAAQ,OAK5C,cAED,CAG8B,eAAQ,oBACrC,WAAwB,EAAI,kEAAiB,WAC5C,MAAM,GAAO,EAAI,QAEjB,IAAK,GACJ,QAAK,CAAC,EAAW,IAChB,OAAW,IAAK,GAGjB,KAAW,OAEZ,GAXoC,gFAYrC,CAED,CACS,YAA0B,OACd,eAInB,CAAM,GACA,IAAM,GACZ,SAAM,GAAS,GAGf,OAAK,GACJ,MANa,CAAE,KAAM,YAAa,OAAQ,CAC3C,UAKK,eAAgB,UACnB,IAAM,OAAQ,UAAc,SAAU,IAAQ,cAC9C,aACD,EAdgC,iBAClC,WAA+B,mDAAa,kDAc3C,GAfiC,gFAiBlC,GACA,O,stBA5RD,iBACA,cAEA,cACA,cAEA,eACA,kBAQqB,0IAQpB,uBAIC,IAAM,GAAS,KACf,OAAM,EAAM,EACZ,SAAM,EAAO,EACb,KAAM,GAAU,EAEhB,UAAO,SAAS,IAAK,YAAa,cAGlC,MAAI,OAAO,aAAc,YAGzB,0BAAsB,IAAK,EAAK,YAAa,GAAQ,aACnD,YAAa,aACb,UAGF,qBAAqB,IAAK,EAAK,aAC7B,YAAa,KACb,UAUF,eAAK,YAAY,GAAI,UAAW,EAA8B,CAAE,SAEhE,UAAK,YAAY,GAAI,OAAQ,EAA8B,CAAE,SAO7D,aAAK,YAAY,GAAI,UAAW,EAAoB,CAAE,SACtD,aAAK,YAAY,GAAI,mBAAoB,EAAoB,CAAE,SAO/D,aAAI,GAAI,SAAgC,qBAAtB,OAAiC,GAAgB,EAAK,GACxE,KAAI,GAAI,cAAe,EAAyB,CAAE,SAClD,aAAO,GAAI,YAAa,UACvB,GAAgB,EAAK,EAAI,MACzB,gBACA,GAHD,EAGG,CAAE,SACL,oBA9DD,2BAIC,OACA,+BA4DF,mBAlEqB,EAiGrB,EAAU,sBAAwB,GAmBlC,iFAsHA,GAAM,GAAa,GAAI,mLCpPvB,mSALA,eACA,cACA,eACA,iBAcqB,YAOpB,CAAa,aAAU,QAOtB,QAQA,eAAK,SAAW,GAQhB,UAAK,YAAc,GAAW,EAAQ,YAYtC,UAAK,6BAA+B,GAYpC,cAAK,6BAA+B,GASpC,QAED,kBASA,YAWW,aACV,IACM,GAAa,KAEnB,YAFA,KAEO,IAAc,GACpB,MAAS,EAET,GAMC,QANI,QAAO,QAML,eAGP,gCAAK,KAAK,IAMT,QAAM,eAEP,qCACA,QAAM,GAAe,EAAS,KAI/B,cACC,aAAQ,KAAK,OACb,WAAM,IAAK,EAAQ,KAAK,OAAO,QAM/B,CANyC,QAMnC,eAGP,iDAAK,OAAO,OAAQ,EAAO,EAE3B,QAAK,SAAS,IAAK,EAEnB,QAAK,KAAM,MAAO,EAElB,GACA,IAED,oBAMK,WACJ,IAEA,MACC,QADI,QAAO,KACJ,KAAK,SAAS,IACrB,OAAM,IACN,QADW,QAAO,KACX,KAAK,OAOZ,aAAM,eAGP,gEAAO,IACP,IAED,yBAOU,WACT,IAEA,YACC,QADI,QAAO,GACJ,KAAK,SAAS,IAErB,GAGD,EAAO,KAAK,OAAO,QACnB,EAED,uBAOQ,WACP,IAEA,MAAM,EAAa,KAEnB,YAJI,EAAO,EACX,KAIC,QADI,QAAO,MAEX,IAAO,KAAK,SAAS,IACrB,KAAmB,CAEnB,EACC,MAAQ,KAAK,OAAO,QAEf,KACN,QADW,QAAO,MAElB,IAAO,KAAK,OACZ,KAAmB,CAEnB,EACC,MAAK,EAGN,QACA,IAAK,EACL,KAAQ,KAAK,OAAO,QACpB,KAA8B,CAAC,CAAV,KAAe,CAAC,KAAK,SAAS,IAGpD,IAMC,OAAM,eAGP,+CAAK,OAAO,OAAQ,EACpB,QAAK,SAAS,OAEd,MAAM,GAAe,KAAK,6BAA6B,IACvD,eAAK,6BAA6B,OAClC,QAAK,6BAA6B,OAElC,QAAK,KAAM,SAEX,GACA,CAED,oBASe,aACd,OAAO,MAAK,OAAO,IAAK,EACxB,EAED,qBASgB,aACf,OAAO,MAAK,OAAO,KAAM,EACzB,EAED,uBASkB,aACjB,OAAO,MAAK,OAAO,OAAQ,EAC3B,EAED,gCAKC,KAAK,KACJ,yBAAK,cAAe,KACpB,wBAAK,kBAGN,MAAQ,KACP,aAAK,OAEN,EAED,uBA+EQ,WAAqB,OAC5B,QAAK,KAMJ,uBAAM,eAGP,yFAAK,kBAEL,EAOC,IAAI,WACH,GAAK,oBAAqB,kBAAQ,IAAI,GAAO,EAC7C,EAUD,QAAO,WACN,CACC,UADI,QAAO,KACN,oBAAqB,kBAAQ,GAAoB,EAEtD,KAAK,oBAAqB,kBAAQ,GAAM,EAEzC,EAEF,EAED,oCAMqB,WAAU,OAC9B,KAAM,EAAqB,KAK3B,kBAAM,EAA+B,eACpC,IAAM,GAAwB,EAAmB,mBACjD,EAAM,EAAoB,EAAmB,6BAA6B,IAM1E,MAAK,GACJ,IAAK,6BAA6B,IAAK,EACvC,KAAK,6BAA6B,IAAK,EACvC,OACA,IAAM,GAAO,EAEb,KAAK,6BAA6B,IAAK,EACvC,KAAK,6BAA6B,IAAK,EAEvC,KAAK,IAAK,EACV,EACD,CAED,EA3B8B,eA4B9B,WAA4B,gDAAqB,SAChD,QAAS,KAGV,WAhC8B,oEAiC9B,MAAK,SAAU,EAAoB,MAGnC,QAAK,SAAU,EAAoB,SAAiB,aACnD,IAAM,GAAO,EAAK,6BAA6B,IAE/C,GACC,KAAK,OAEN,EACD,EAED,QAGE,OAAO,yBACR,OAAO,MAAK,OAAQ,OACpB,WASD,+BAlZC,OAAO,MAAK,OACZ,0BAxEmB,EAierB,cAAK,I,uLCvdL,CA2OqB,aACpB,OAAO,GAAM,qBAAyB,EAAM,mBAAsB,KAClE,WAMD,CACoB,aACnB,OAAO,IAAQ,cAAU,EACzB,iBAED,kDAnRA,eACA,eACA,eACA,mBAwBM,EAAkB,KAAQ,sBAkB/B,CAlBiD,mBAkB7B,+CAAP,IAAO,eACnB,MAAM,GAAU,EAIhB,GAAK,EACJ,OAAM,GAAM,KAAK,iBAAkB,IAAa,GAAI,GAIrD,cAAa,SAAS,MAAO,KAC7B,EAmBD,EAhDiD,wBAgDxB,+CAAP,IAAO,eACxB,MAAM,GAAU,EAGhB,MAAK,EAAW,GACf,IAAM,GAAQ,KAAK,iBAGnB,MAAK,CACJ,EAGD,SAAM,GACN,CAGD,WAAa,cAAc,MAAO,KAClC,EASD,EA1EiD,iBA0E/B,WACjB,OAAO,4BAAuB,KAAM,EACpC,GA5EgD,cAiFlD,KA+BC,GAIa,aAAO,QAEnB,uBAAe,KAAM,EAGrB,SAAK,SACL,C,EAGF,cAAQ,EAAa,oBA0BpB,CA1B6C,GA0BlC,aAAyB,2DAEnC,mBAAa,GAAG,KAAM,KAAM,EAAO,EAInC,KAAK,KAAK,eAAiB,KAAK,cAIhC,QAAM,GAAc,KAAK,mBAAoB,EAAO,CAAC,CAAC,EAGtD,iBAAK,SAAS,iBAAkB,EAAO,EAAa,CAAC,CAAC,EAEjD,YAAC,KACL,qBAKD,uBAAK,cAAe,GACpB,EAYD,EA5D6C,IA4DvB,eAErB,WAAa,IAAI,KAAM,KAAM,EAAO,EAEpC,MAMA,GAAK,MAAK,cAAe,IAAa,CAAG,EAAS,KAAK,QAAsB,KAAC,EAAO,UACpF,aAAK,cAAe,GAErB,gBAeD,EAxF6C,mBAwFlB,aAAa,OACvC,KAAM,EAAc,WACnB,GAAK,KAAM,EACX,EAKD,WAAY,eAAiB,UAC5B,GAAK,SAAS,oBAAqB,EAAO,EAC1C,SAAO,GAAK,cACZ,EAED,EACA,CAOF,oFCxQA,CAOmB,aACjB,IAAI,GAAQ,CAAC,EACT,EAAS,EAAU,EAAQ,OAE/B,WACA,QAAS,IAAQ,GACf,IAAI,GAAQ,EACZ,QAAK,IAAI,EAAM,GAAI,EACpB,GACF,CAED,kDAxBA,iBACA,gBACA,gBACA,gBACA,mBAqBA,EAAU,UAAU,gBACpB,EAAU,UAAU,oBACpB,EAAU,UAAU,cACpB,EAAU,UAAU,cACpB,EAAU,UAAU,wBAEL,kFC3Bf,CAQkB,aAChB,IAAI,GAAQ,CAAC,EACT,EAAS,EAAS,EAAO,OAE7B,WAAK,SAAW,MAChB,QAAS,IACP,QAAK,IAAI,EAEZ,GAED,kDAtBA,iBACA,gBACA,mBAqBA,EAAS,UAAU,IAAM,EAAS,UAAU,OAA5C,QACA,EAAS,UAAU,wBAEJ,oEC1Bf,aAwBe,QAfa,aAC1B,QAAI,GAAQ,CAAC,EACT,EAAS,EAAM,OACf,EAAW,EAGf,OAAS,IACH,KAAQ,EACZ,GAAI,EAAU,EAAO,EACnB,OAAO,KAGX,SACD,sECtBD,aAmBe,QAXW,aACxB,QAAI,GAAQ,CAAC,EACT,EAAS,EAAO,OAChB,EAAS,EAEb,OAAS,IACP,KAAM,EAAS,GAAS,EAE1B,SACD,mFCjBD,8DAEA,OAkBe,QAVc,aAC3B,QAAI,GAAS,EACb,OACE,QAAI,cAAG,EAAM,GAAQ,GACnB,SAGJ,SAAO,CACR,mFCbG,kDALJ,iBACA,gBACA,oBAuCe,QArBwB,eACrC,IAAI,GAAM,EACN,EAAO,EAAQ,EAAM,OAEzB,KAAoB,QAAhB,QAAO,IAAqB,IAAU,GAAiB,GAlBzD,UAAwB,GAE5B,EAiBI,MAAO,EAAM,GACX,IAAI,GAAO,EAAM,IAAU,EACvB,EAAW,EAEf,GAAiB,IAAb,MAAqB,CAAC,cAAS,KAC9B,EAAc,GAAY,EAAU,EACvC,KAAM,EAEN,IAEH,CACD,OACD,EACD,OAAO,cAAkB,EAAO,YACjC,mFCvCD,8DAEA,OAuBe,QAZ8B,iBAC3C,QAAI,GAAS,EAAM,OACf,EAAQ,EAAY,EAAS,CAEjC,EAAO,CAAC,EAAY,IAAY,IAAQ,IACtC,EAAU,EAAM,GAAQ,EAE1B,WAAO,GACH,cAAU,EAAQ,EAAY,EAAI,EAAS,EAAY,EAAQ,EAAI,GACnE,cAAU,EAAQ,EAAY,EAAQ,EAAI,EAAK,EAAY,EAChE,oFCpBD,kDAHA,gBACA,qBAae,QAJG,WAChB,OAAO,cAAQ,GAAS,EAAQ,cACjC,mFCZD,+DAEA,OAee,QAPU,aACvB,IAAI,GAAO,EACX,eAAO,cAAU,GACb,EAAmB,QAAd,QAAO,GAAkB,SAAW,QACzC,EACL,uECfD,aAmBe,QAZO,WAGpB,IACA,SAAa,IAAT,KACF,UADmB,QAAO,GAAM,YAE9B,GAAS,CAAC,EAAE,EACb,GAFD,CAES,QAAK,CAEhB,OACD,oFCZD,gQALA,cACA,eACA,eACA,oBA0Be,QAduB,eACpC,IAAI,CAAC,cACH,GAEF,YAAI,sBAAc,iBAClB,WAAY,QAAR,MACK,cAAY,IAAW,cAAQ,EAAO,EAAO,WACrC,QAAR,KAAoB,IAE3B,MAAO,cAAG,EAAO,GAGpB,sEC3BD,WACA,GAAI,GAAc,OAElB,YAce,QAPM,WACnB,IAAI,GAAO,GAAS,EAAM,YACtB,EAAwB,UAAf,QAAO,IAAsB,EAAK,WAE/C,QAAO,KACR,kFCfD,8DAGA,KAAI,EAAe,cAAU,OAAQ,oBAEtB,oECLf,aAiBe,QAVK,WAClB,IAAI,GAAQ,CAAC,EACT,EAAS,MAAM,EAEnB,eAAI,QAAiB,WACnB,GAAS,KACV,CACD,GACD,kFCfD,+DAEA,OA8Be,QAJA,WACb,OAAO,cACR,0FC1BD,kDAJA,iBACA,gBACA,oBA+Be,QAJM,WACnB,OAAgB,KAAT,KAAiB,cAAS,cAAU,KAAW,CAAC,cACxD,sEC9BG,aAkCW,QALG,WAChB,OAAuB,QAAhB,QAAO,IACJ,CAAC,CAAT,IAA2B,CAAb,IAAQ,GACzB,GA9BD,kGCEI,kDALJ,iBACA,eACA,kBAMI,EAAc,OAGlB,UAAI,EAAe,SAAS,UAG5B,SAAI,EAAiB,EAGrB,eAAI,EAAmB,EAAa,KAOpC,QAAI,EAAiB,EAErB,WA2Ce,QAdQ,WACrB,IAAI,CAAC,cAAa,IACd,EAAe,KAAe,IAjDpC,mBAiDiD,cAC7C,GAEF,YAAI,GAAQ,cACZ,MACE,IADE,KAGJ,YAAI,GAAO,EAAe,KAAK,EAAO,gBAAkB,EACxD,kBAAuB,UAAf,QAAO,IACb,YAAgB,IAAQ,EAAa,KAAK,IAC7C,mFC1DD,kDATA,gBACA,eACA,gBACA,gBACA,oBAwCe,QAhBA,WACb,IAAI,EAAE,GAAS,EACb,QAEF,YAAI,GACJ,WAAQ,cAAY,EAAgB,WAClC,IAAI,cACF,GAGH,SAHY,SAAU,EAAM,OACzB,KAGJ,GAAO,cAAU,EAAiB,WAChC,OAAO,cAAS,EAAO,cACxB,GACF,8BC1CD,EAAO,QAAmB,WACtB,OAAC,GACH,oBAAO,UAAY,UAAa,CAChC,IAEA,SAAG,CAAC,EAAO,WAAU,EACrB,oBAAO,eAAe,EAAQ,SAC7B,CACA,kBAAK,UACJ,OAAO,GACP,CAEF,WAAO,eAAe,EAAQ,KAC7B,CACA,kBAAK,UACJ,OAAO,GACP,CAEF,MAAO,gBAER,GACA,CArBD,kFCaA,oDASwB,QAAyC,eAChE,IAAoB,MADqD,eAGzE,WAAqB,mDAAS,aAC7B,MAAM,EAAS,cAAgB,CAAE,WAAY,EAC7C,qBAAI,EAAO,EAEX,OAAI,EAAO,EACX,MAAI,EAAO,EACX,MAAM,EAAK,EAEX,IAAQ,CAAC,EAAK,MACb,IAAM,GAAO,EAAK,MAAM,KAAK,MAC7B,QAAM,EAAe,UAAS,aAAc,EAAK,MAE5C,MAAC,EAAO,MAAO,CAAE,KAAF,EAAQ,OAAQ,EAAc,WACjD,MAAK,CAAC,EAAK,QACV,MAAY,KAAM,cAAW,EAG9B,MAAO,EAGR,YAAO,EACP,WAAO,EACP,MAED,CAAK,GAAQ,CAAC,EAAK,QAClB,MAAY,KAAM,cAAW,EAE9B,GA9BwE,8EAgCzE,OACA,EAlDD,EAIA,gBACA,cACA,iGCOA,CAidmD,eAElD,IAAM,GAAS,cAAoB,CAAE,cAAe,EAEpD,sBAAI,EAAkB,EAJsC,eAM5D,YAAqB,oDAAS,cAC7B,MACC,MADI,KAAM,OAGV,IAAK,GACJ,SAAO,GAGT,kBAd2D,uEAe5D,CAED,CAiD2C,aAC1C,IAAM,GAAQ,EAAQ,MAEtB,WAAO,GAAO,GAAM,IAAM,EAC1B,E,oDA3fe,cAAe,WAC9B,OAAgC,kBAC/B,IAAM,GAAgB,eAAF,QACnB,EAAsB,UACtB,EAAgB,EAAM,EAEvB,GAAK,GAIA,GAAC,EAAW,QAAS,EAAK,KAI/B,cAAM,GAAe,EAAc,OAAO,eAAgB,EAAK,MAE/D,SAAc,OAAO,aAAc,EAAK,KACxC,aAAW,OAAQ,EACnB,GACD,CAED,IAUgB,qBACf,OAAgC,kBAC/B,CAAK,GAAC,EAAW,QAAS,EAAK,KAI/B,cAAM,GAAe,EAAc,OAAO,eAAgB,EAAK,MAC/D,OAAM,EAAW,cAAc,EAAK,KAEpC,gBAAW,OAAQ,EACnB,GACD,CAED,IAagB,gBAAiB,WAChC,OAAgC,kBAC/B,IAAI,GAEJ,MAAK,eACJ,WAAmB,EACnB,YAAiB,EAEjB,cACA,eAAmB,EAAgB,EAAM,EAEzC,KACA,eAAiB,EAAgB,EAAM,EAGxC,IAA0B,CAArB,EAIA,IAAC,EAAW,QAAS,EAAK,MAI/B,iBAAM,IAAS,EAEf,iBAAW,OAAQ,GAAO,eAAgB,EAAK,MAAM,OAEhD,GAAC,EAAK,MACV,uBAAW,OAAQ,GAAO,eAAgB,EAAK,MAAM,KAEtD,GACD,CAED,IAgCgB,aAAc,WAC7B,UAAmB,GAA+B,aAAT,OAAoB,CAAE,MAAF,EAAS,IAAT,EAE7D,EAAgC,iBAC/B,CAAK,GAAC,EAAW,QAAS,EAAK,KAAM,EAA2B,EAE/D,cAEsB,EAAkB,EAAK,kBAAmB,EAAK,aAAc,EAAM,EAAY,GAA9F,QAAK,KAEb,QAAc,OAAO,cAAe,EAAK,MAAO,aAAc,EAC9D,IACD,CAED,IAiCgB,gBAAiB,WAChC,UAAmB,GAA+B,aAAT,OAAoB,CAAE,IAAF,EAE7D,EAAgC,iBAC/B,CAAK,GAAC,EAAW,QAAS,EAAK,KAAM,EAA2B,EAE/D,cAEe,EAAkB,EAAK,kBAAmB,EAAK,aAAc,EAAM,EAAY,GAAvF,IAER,MAAc,OAAO,cAAe,EAAK,MAAO,gBAChD,GACD,CAED,IA2BgB,SAAU,WACzB,OAAgC,kBAC/B,IAAM,GAAgB,eAAF,QACnB,EAAsB,UACtB,EAAgB,EAAK,kBAAmB,EAAM,EAE/C,GAAK,GAIA,GAAC,EAAW,QAAS,EAAK,KAAM,EAA2B,EAIhE,WAAI,GAAY,EAAc,OAAO,YAAa,EAKlD,UAAgC,IAA3B,KAAK,mBAA8B,EAAG,eAAH,SACvC,IAAM,IAAiB,EAAgB,EAAK,kBAAmB,EAAM,EACrE,KAAY,UAAW,OAAQ,EAC/B,GAED,WAAW,KAAM,EACjB,GACD,CAED,IAsBgB,WAAY,WAC3B,OAAgC,kBAC/B,IAAM,GAAgB,eAAF,QACnB,EAAsB,UACtB,EAAgB,EAAK,kBAAmB,EAAM,EAE/C,GAAK,GAIA,GAAC,EAAW,QAAS,EAAK,KAAM,EAA2B,EAIhE,WAAM,GAAY,EAAc,OAAO,YAAa,EAEpD,iBAAW,OAAQ,EACnB,GACD,CAED,IAgCgB,UAAW,WAC1B,OAAgC,kBAC/B,IAAM,GAAgB,eAAF,QACnB,EAAsB,UACtB,EAAgB,EAAM,EAEvB,GAAK,GAIA,GAAC,EAAW,QAAS,EAAK,MAI/B,iBAAM,GAAY,EAAc,OAAO,YAAa,EACpD,OAAM,GAAiB,UAAW,2BAA4B,GAdZ,kBAgBlD,YAAqB,sDAAiB,YACrC,gBAAW,KAAM,GACjB,YAlBiD,4EAmBlD,EACD,CAED,IAqBgB,YAAa,WAC5B,OAAgC,kBAC/B,IAAM,GAAgB,eAAF,QACnB,EAAsB,UACtB,EAAgB,EAAM,EAEvB,GAAK,GAIA,GAAC,EAAW,QAAS,EAAK,MAI/B,oBAAM,GAAY,EAAc,OAAO,YAAa,EACpD,OAAM,GAAiB,UAAW,2BAA4B,GAdZ,kBAgBlD,YAAqB,sDAAiB,YACrC,gBAAW,OAAQ,GACnB,YAlBiD,4EAmBlD,EACD,CAED,IAOgB,iBACf,OAAgC,kBAC/B,CAAK,GAAC,EAAW,QAAS,EAAK,KAS/B,cAAM,GAAe,EAAc,OAAO,eAAgB,EAC1D,gBAEA,KAAK,EAAK,KAAK,GAId,aAAY,UAAU,SAAU,EAChC,eAGA,IAAM,GAAe,EAAgC,EAAc,EAAK,KACxE,cAAY,cAAe,EAC3B,EAGD,WAAW,OAAQ,EAenB,cACC,YADI,IAAK,KAAK,KAAK,YACL,OAAO,mBAAoB,EAE1C,MACD,CAID,IA0BgB,gBAAiB,WAChC,OAAgC,kBAC/B,IAAI,GAEJ,MAAK,eACJ,WAAmB,EACnB,YAAiB,EAEjB,cACA,eAAmB,EAAgB,EAAM,EAEzC,KACA,eAAiB,EAAgB,EAAM,EAGxC,IAA0B,CAArB,EAIA,IAAC,EAAW,QAAS,EAAK,MAI/B,oBAAM,IAAY,EAAc,OAAO,YAAa,EAGpD,iBAAW,MAAO,GAAU,cAGvB,GAAC,EAAiB,UACtB,cAAW,MAAO,GAAU,cAE7B,GACD,CAED,IAMgB,4BAhiBhB,gBACA,eACA,eACA,eACA,kqBCWA,+sBAXA,gBACA,gBACA,eACA,eACA,OACA,QAEA,gBACA,cACA,iBAOqB,0IACpB,qBAIC,OACA,QAED,iCAOC,OAAO,MAAK,iBAAmB,KAAK,iBAAiB,SACrD,IAED,8BAOC,OAAO,MAAK,iBAAmB,KAAK,iBAAiB,MACrD,IAED,yCAQC,OAAO,MAAK,WAAY,IACxB,IAED,2CAIC,UACA,OAED,oCAIC,OACA,gCAED,kCAIC,OACA,aAGF,mBA7DqB,EAwErB,eAAU,SAA8B,aACvC,IAAM,GAAkB,qBAGxB,MACC,CADI,KAAgB,aAIrB,SAAM,GAAQ,GACd,GAAM,EAAS,cAAqB,EAAU,EAAiB,KAAK,SAEpE,iBAAK,SACL,KAAM,aACN,QAAK,SAAS,eAGd,GAAK,eAAL,QAAyC,oBACxC,YAA2C,EAAM,4DAAU,2CAE1D,GAAM,GAAoB,UAAS,SAAU,GAC7C,MAAM,GAAQ,cACb,GAAY,MAAM,aAAc,GAAmB,GACnD,GAAY,IAAI,aAAc,GAG/B,SAAK,UAAW,GAChB,GAVuC,kFAWxC,CAED,OACA,KA9BD,GAgCA,UAAa,SAAU,mpBC9GvB,iiBAVA,cACA,eACA,gBACA,OACA,eACA,cACA,eACA,eACA,iBAOqB,0IAkBpB,8BAIC,IAAM,wFAEN,YACC,EADI,GAAM,WAAW,WACf,WAAY,GAGnB,aACA,CAED,QA9BA,qBAIC,OACA,OAED,iCAOC,OAAO,MAAK,iBAAmB,KAAK,iBAAiB,eACrD,6CA0BA,OAAO,MAAK,WAAY,IACxB,IAED,2CAIC,UACA,OAED,oCAIC,OACA,yCAGF,mBA5DqB,EAsErB,eAAU,QAAmB,WAC5B,IAAM,GAAQ,GACd,QAAK,SAEL,MAAM,GAAa,EACnB,WAAM,EAAY,EAElB,aAAK,EAAG,eAMP,cAAM,eAGP,oFAAK,EAAG,eAMP,cAAM,eAGP,kFAAM,GAAgB,UAAS,0BAA2B,EAC1D,GAAM,EAAiB,UAAS,0BAA2B,EAAY,EAEvE,WAAM,EAAO,cACZ,EACA,EAAU,UACV,EACA,KAAK,SAGN,WACA,cAAM,aACN,QAAK,SAAS,eAEd,MAAM,IAAS,cAAqB,EAAU,EAAG,KAAK,SACtD,kBAAM,aACN,SAAK,SAAS,eAEd,IACA,IA5CD,GA8CA,UAAa,SAAU,mpBC3HvB,CA6EkE,qBACjE,IAAM,GAAY,cAAmB,EAAgB,EAAS,EAAgB,EAAM,SACpF,WAAM,aACN,KAAM,SAAS,eACf,EAED,mSA3FA,gBACA,eACA,OACA,gBACA,cACA,cACA,iBAOqB,0IACpB,qBAIC,OACA,MAED,gCAMC,OAAO,MAAK,eAAiB,KAAK,eAAe,QACjD,IAED,uCAQC,OAAO,MAAK,eAAiB,KAAK,eAAe,eACjD,IAED,uCAQC,OAAO,MAAK,eAAiB,KAAK,eAAe,eACjD,IAED,uCAQC,OAAO,MAAK,WAAY,IACxB,IAED,2CAIC,OACA,EAED,oCAIC,OACA,8BAED,kCAIC,OACA,gCArEmB,EAsFrB,eAAU,OAA+B,aACxC,IAAM,GAAQ,GACd,WAAK,SAEL,GAAK,eAAL,QACC,IAAK,CAAC,EAML,YAAM,eAGP,2DAAkB,KAAM,EAAO,EAAY,MAAO,EAAY,IAAI,OAAS,EAAY,MAAM,OAC7F,EACA,QAAkB,KAAM,EAAO,UAAS,aAAc,GAAe,EAGtE,SACA,KApBD,GAsBA,UAAa,SAAU,mpBClHvB,CAcqD,mBACpD,IAAM,GAAY,cAAqB,EAAU,EAAS,EAAM,SAChE,WAAM,aACN,KAAM,SAAS,eACf,EAED,mSA3BA,iBACA,OACA,gBACA,eACA,cACA,iBAOqB,+IACpB,0BAIC,OACA,6DANmB,EAsBrB,eAAU,SAAoB,WAC7B,IAAM,GAAQ,GACd,WAAK,SAEL,GAAK,eAAL,QAEC,IAAM,GAAS,EAAY,uBAAuB,UAFf,eAInC,WAAoB,gDAAS,SAC5B,QAAoB,KAAM,EAAO,EAAK,MAAO,EAAK,IAAI,OAAS,EAAK,MACpE,gBANkC,oEAOnC,CACA,QAAoB,KAAM,EAAO,UAAS,aAAc,GAGzD,SACA,KAhBD,GAkBA,UAAa,SAAU,mpBC1CvB,iiBAVA,cACA,eACA,OACA,eACA,cACA,eACA,eACA,cACA,mBAOqB,0IAiBpB,8BAIC,IAAM,wFAEN,YACC,EADI,GAAM,WAAW,WACf,WAAY,GAGnB,aACA,CAED,QA7BA,qBAIC,OACA,OAED,iCAMC,OAAO,MAAK,eAAiB,KAAK,eAAe,eACjD,4CA+BA,OAAO,MAAK,WAAY,IACxB,IAED,uCAQC,OAAO,MAAK,WAAY,IACxB,IAED,2CAIC,UACA,OAED,oCAIC,OACA,+BAED,kCAIC,OACA,YAGF,mBAlFqB,EA4FrB,eAAU,QAAmB,WAC5B,IAAM,GAAQ,GACd,QAAK,SAEL,MAAM,GAAe,EAErB,UAAK,CAAC,EAML,YAAM,eAGP,uDAAM,GAAO,cAAa,EAAa,KAAM,EAE7C,iBAAM,EAAS,cACd,UAAS,YAAa,GACtB,EACA,KAAK,SAGN,WAAM,aACN,QAAK,SAAS,eAEd,MAAM,GAAO,cACZ,EACA,EAAa,UAAY,EAAS,OAClC,UAAS,0BAA2B,EAAM,GAC1C,KAAK,SAEN,kBAEA,cAAM,aACN,QAAK,SAAS,eAEd,GACA,IAtCD,GAwCA,UAAa,SAAU,2MC9IvB,CAuPyC,eAAS,oBACjD,WAAqB,mDAAS,qCAC7B,WAAkB,EAAM,yDAAa,SACpC,QAAG,YACH,YAH4B,oEAI7B,CALgD,8EAOjD,OACA,EAGD,CAC4B,iBAC3B,UAAK,EAAE,UAAY,EAEZ,cAAK,EAAE,UAAY,EAGzB,YAED,CAED,CACsB,aACrB,OAAO,GAAO,OAAmB,aAChC,OAAO,GAAU,EAAM,WACvB,MAFM,EAGP,EAGD,CAC+B,eAC9B,KAKM,GALA,GAAY,EAAQ,EAAO,OACjC,GAAI,EAAc,EAAU,WAAW,OAAS,EAEhD,YAAM,EAAU,MAEhB,QAAU,EAAI,EAAG,EAAI,EACpB,MAAQ,aAAc,cAGvB,QAAO,KACP,E,kDAtSD,gBACA,gBACA,eACA,mBAEM,EAAe,GAKrB,KAAM,EA0BL,CA1BiB,UA0BA,eAChB,IAAM,GAAqB,EAAU,sBAAuB,EAAG,IAAO,EAEtE,iBAAM,EAAc,EAAoB,EAAG,EAC3C,GAAM,EAAc,UAAW,KAAM,EAAE,YAEvC,kBAAO,GAAmB,EAC1B,EAgBD,EAjDiB,iBAiDO,eAEvB,GAAwB,EAAa,EAAE,YAAa,EAAE,YAMtD,MAAM,GAAc,GAAI,GAGxB,YAAI,EAAQ,EAGZ,WAEA,KAhB+C,eAiB/C,WAAmB,EAAE,4DAAa,SAGjC,MAAM,EAAM,CAEZ,GALiC,wBAMjC,YAAmB,yDAAQ,OAE1B,UAAM,GAAI,IAAI,KAAG,GAAI,EAAI,OAAQ,KAE1B,IAAK,EAkBX,UAAM,UAAU,KAAK,MAAO,EAAU,cAAoB,GAAK,GAAI,CAGnE,OAAM,IAAU,cAAoB,GAAI,GAMxC,SAAM,UAAU,OAAO,MAAO,EAAK,CAAE,GAAG,GAAI,OAE5C,SAAK,GAAQ,OACb,CAOD,CAID,WAnDiC,2EAoDjC,GACA,EAGA,QAxDiC,0BAyDjC,YAAkB,qDAAM,YACvB,QAAY,aAIb,aA9DiC,4EA+DjC,CAhF8C,gFAkF/C,OAAO,CACP,EASD,EA7IiB,sBA6IY,eAC5B,IAAI,GAAS,EAAa,IAErB,GACJ,MAAS,GACT,OAAa,IAAK,EAGnB,MAAO,IAAK,EACZ,EAQD,EA9JiB,sBA8JS,aACzB,IAAI,GAAS,EAAa,IAAK,EAI/B,gBAAK,CAAC,GAAU,CAAC,EAAO,IAAK,EAAE,aAC9B,IAAM,GAAQ,EAAa,OADmB,eAG9C,WAAyB,gDAAQ,YAChC,MAAK,YAAa,IAAa,EAAa,IAAK,GAAY,IAAK,EAAE,aACnE,GAAS,EAAa,IAEtB,GACA,KACD,UAT6C,oEAU9C,CAED,OACC,GAAO,EAAO,IAAK,EAIpB,mBAeD,EAnMiB,mBAmMqB,eACrC,KAGM,GAHA,GAAqB,MAAM,KACjC,GAAM,EAAqB,MAAM,KAEjC,GAAU,EAAI,IAAG,EAAI,EAAmB,OAAQ,IACzC,GAAS,CAAE,EAEjB,QAAM,GAAI,GAAI,IAAG,EAAI,EAAmB,OAAQ,IACzC,GAAS,CAAE,EAEjB,QAAM,GAAI,GAAI,EAAG,EAAI,EAAO,OAC3B,QAAM,GAAI,GAAI,EAAG,EAAI,EAAO,OAAQ,IACnC,IAAM,GAAW,EAAU,UAAW,EAAQ,GAAK,EAAQ,GAC3D,GAAM,EAAW,EAAU,UAAW,EAAQ,GAAK,EAAQ,GAAK,CAEhE,KAAO,gBAAQ,EAAG,YAClB,QAAK,EAAS,OAEd,IAAO,gBAAQ,EAAG,YAClB,QAAK,EAAS,OACd,CAGF,GAAmB,gBAAQ,EAAG,UAC9B,OAAK,EAAO,OACZ,CAED,GAAmB,gBAAQ,EAAG,UAC9B,OAAK,EAAO,OACZ,CAED,IAAM,GAAW,EAAa,GAAuB,EACrD,GAAM,GAAW,EAAa,GAAuB,EAErD,SAAK,IACJ,IAAc,EAAoB,EAC5B,IAAK,EACX,MAAc,EAAoB,GAGnC,GAAO,CAAE,QAAS,EAAoB,QACtC,EA5OgB,aAiPlB,kpBClPA,mSATA,gBACA,eACA,gBACA,OACA,eACA,eACA,eACA,iBAOqB,0IACpB,qBAIC,OACA,QAED,iCAMC,OAAO,MAAK,eAAiB,KAAK,eAAe,eACjD,IAED,uCAOC,OAAO,MAAK,WAAY,IACxB,IAED,2CAIC,UACA,OAED,oCAIC,OACA,gCAED,kCAIC,OACA,aAGF,mBAjDqB,EAyDrB,eAAU,SAAoB,WAC7B,IAMC,IANI,KAAQ,YAMN,eAGP,uFAAM,GAAQ,GACd,QAAK,SAEL,MAAM,GAAiB,UAAS,0BAA2B,EAE3D,GAAM,EAAO,cACZ,EACA,EAAQ,UACR,UAAS,aAAc,GACvB,KAAK,SAGN,WACA,cAAM,aACN,QAAK,SAAS,eAId,MAAM,GAAS,cAAqB,UAAS,aAAc,GAAW,EAAG,KAAK,SAC9E,kBAAM,aACN,QAAK,SAAS,eAEd,GACA,IAjCD,GAmCA,UAAa,SAAU,mpBC/FvB,mSAXA,gBACA,eACA,gBACA,OACA,eACA,cACA,cACA,eACA,eACA,iBAOqB,0IACpB,qBAIC,OACA,MAED,8BAMC,IAAM,GAAS,KAEf,qBAAO,GAAS,UAAM,2BAA4B,EAAO,eAAgB,EAAO,SAChF,IAED,gCAMC,IAAM,GAAQ,KAEd,YAAO,GAAQ,EAAM,IAAI,OAAS,EAAM,MAAM,OAC9C,CASD,yCAEC,OAAO,MAAK,WAAY,IACxB,IAED,uCAOC,OAAO,MAAK,WAAY,IACxB,IAED,2CAIC,UACA,OAED,oCAIC,OACA,8BAED,kCAIC,OACA,aAGF,mBA1EqB,EAmFrB,eAAU,OAAyB,aAClC,IAAK,CAAC,EAML,YAAM,eAGP,4DAAM,GAAU,uBAAqC,EAAkB,cAEvE,MAMC,CANI,GAAQ,gBAMN,eAGP,uEAMC,IANI,KAAQ,YAMN,eAGP,2FAAM,GAAQ,GACd,QAAK,SAEL,MAAM,GAAS,cAAqB,EAAM,IAAK,EAAS,KAAK,SAC7D,WAAM,aACN,QAAK,SAAS,eAEd,MAAM,GAAiB,UAAS,0BAA2B,EAC3D,GAAM,GAAO,cACZ,EAAM,MACN,EAAM,IAAI,OAAS,EAAM,MAAM,OAC/B,EACA,KAAK,SAEN,kBAAM,aACN,SAAK,SAAS,eAEd,IACA,IAhDD,GAkDA,UAAa,SAAU,mpBCjJvB,CAkFS,YAAmB,OAE3B,KAAM,EAAiB,GAEvB,iDAAK,SACJ,KAAK,KAAK,SACV,SAC+B,mBAC9B,CAAK,EAAe,IACnB,MAAU,OAAY,EAAM,EAAW,EAAQ,MAAO,EAEvD,eAPF,EAQC,CAAE,SAEH,QAED,CAWwD,mBACvD,IAAM,GAAU,EAAY,IAAI,OAAS,EAAY,MACrD,OAAI,EAAiB,EAErB,MAIC,MAJI,QAIa,EAAe,2BAA4B,EAG7D,OAAM,GAAS,KAAK,gCAAiC,EAAY,EAAW,EAAgB,EAM5F,GAAmB,MAAd,KAGJ,CAH4B,IAAO,WAG3B,GAGT,MAAM,GAAU,UAAM,iBAGtB,MAAK,CAAC,EAAQ,QAAS,MACtB,IAAM,GAAW,UAAM,gBAEvB,WAAK,MAAQ,EACb,WAAK,IAAM,EAEX,SAAK,KAAM,SACX,EACD,oSAnJD,eACA,cACA,iBAUqB,cAMA,eAAM,0EAClB,EAEP,aAAiB,KAHQ,GAIzB,CAED,YANA,sCAYC,MACA,eAsCD,UASD,mBAlEqB,EAyIrB,cAAK,I,ypBClJL,iiBAHA,cACA,iBAKqB,cAQ4B,qBAAc,QAG7D,kEAMA,aAAK,KAQL,IAAK,SAAW,EAAW,UAAM,gBAAiB,GAQlD,OAAK,SAAW,EAAW,UAAM,gBAAiB,GAQlD,OAAK,SAAW,EAChB,CAED,YApCA,aA2CA,wBAKC,OAAO,IAAI,GAAiB,KAAK,KAAM,KAAK,SAAU,KAAK,SAAU,KAAK,SAAU,KACpF,YAED,sCAKC,OAAO,IAAI,GAAiB,KAAK,KAAM,KAAK,SAAU,KAAK,SAAU,KAAK,SAAU,KAAK,YACzF,EAED,mCAIC,IAAM,GAAO,KAAK,SAAW,MAE7B,qBAAK,SAAU,GAAQ,KAAK,KAAM,KAElC,UAAO,CAAE,KAAM,KAAK,KAAM,KAC1B,EAED,iCAIC,IAAM,mFAEN,mBAAO,GAEP,SACA,CAED,6BAzCC,OACA,kBA+CD,iBAOuB,aACtB,OAAO,IAAI,GACV,EAAK,KACL,EAAK,SAAW,UAAM,SAAU,EAAK,SAAU,GAAa,KAC5D,EAAK,SAAW,UAAM,SAAU,EAAK,SAAU,GAAa,KAC5D,EAAS,QACT,EAED,8CAlBA,OACA,qEA9FmB,kpBCHrB,mSAHA,gBACA,kBAQqB,0IAwBpB,8BAKC,IAAM,GAAW,cAAqB,KAAK,eAAgB,KAAK,QAAS,KAAK,YAG9E,YAAS,eAAiB,KAC1B,iBAEA,uBACA,CAED,QArCA,yBAMC,OAAO,MACP,cAED,MAGc,WACb,MAAK,eACL,CAED,6BAIC,OACA,8CAoBA,OACA,uEA3CmB,kpBCJrB,mSALA,gBACA,cACA,cACA,iBASqB,cASqB,mBAAc,QAGtD,kEAKA,aAAK,SAOL,IAAK,QAOL,IAAK,QAAU,EACf,CAED,YAzBA,aAgCA,wBAKC,OAAO,IAAI,GAAiB,UAAS,mBAAoB,KAAK,UAAY,KAAK,QAAS,KAAK,QAAS,KACtG,YAED,sCAKC,OAAO,IAAI,GAAiB,UAAS,mBAAoB,KAAK,UAAY,KAAK,QAAS,KAAK,QAAS,KAAK,YAC3G,EAED,mCAKC,IAAM,GAAU,KAAK,SAErB,aAAK,EAAG,eAMP,cAAM,eAGN,kHAAM,IAAK,EAAQ,OAAS,KAM5B,aAAM,eASP,uGAAK,MAAK,SAAW,KAIrB,kBAAQ,KAAO,KAEf,QAAO,CAAE,QAAF,EAAW,QAAS,KAC3B,SAED,6BA3DC,OACA,kBAiED,iBAOuB,aACtB,OAAO,IAAI,GAAiB,UAAS,SAAU,EAAK,SAAU,GAAY,EAAK,QAAS,EAAK,QAAS,EACtG,8CAZA,OACA,qEAtGmB,kpBCTrB,mSAHA,gBACA,iBAcqB,cAWwB,qBAAc,QAGzD,kEAMA,aAAK,KAQL,IAAK,IAQL,IAAK,SAQL,IAAK,SAAW,EAChB,aAlCD,aA8CA,wBAIC,OAAO,IAAI,GAAwB,KAAK,KAAM,KAAK,IAAK,KAAK,SAAU,KAAK,SAAU,KACtF,YAED,sCAIC,OAAO,IAAI,GAAwB,KAAK,KAAM,KAAK,IAAK,KAAK,SAAU,KAAK,SAAU,KAAK,YAC3F,qCAGA,IAAuB,IAAlB,QAAK,UAAqB,KAAK,KAAK,aAAc,KAAK,OAAU,KASrE,cAAM,OAEL,uIACA,CAAE,KAAM,KAAK,KAAM,IAAK,KAI1B,SAAuB,IAAlB,QAAK,UAAuC,IAAlB,QAAK,UAAqB,KAAK,KAAK,aAAc,KAQhF,UAAM,eACL,yFACA,CAAE,KAAM,KAAK,KAAM,IAAK,KAI1B,YACC,KADI,QAAK,cAGJ,KAAK,gBAAiB,KAG5B,UALM,KAAK,aAAc,KAAK,IAAK,KAElC,UAGM,CAAE,KAAM,KAAK,KAAM,IAAK,KAAK,IAAK,SAAU,KAAK,SAAU,SAAU,KAC5E,SAED,6BA/DC,OACC,KADI,QAAK,SAEH,mBACN,IADW,QAAK,SAGhB,sBAED,+BA+DD,iBAOuB,aACtB,IAAK,CAAC,EAAS,QAAS,EAOvB,WAAM,eACL,2HACA,CAAE,SAIJ,UAAO,IAAI,GAAwB,EAAS,QAAS,EAAK,MAAQ,EAAK,IAAK,EAAK,SAAU,EAAK,SAAU,EAC1G,8CAzBA,OACA,4EApHmB,+lBCZrB,CAyFS,YAER,IAAK,KACJ,iBAGD,aAAI,GAAU,KAGd,OAAQ,GAAW,EAAQ,GAAI,qBAC9B,IACC,CADI,GAAQ,iBAIb,QAAU,EACV,MAED,OAAK,CAAC,GACL,CADgB,GAAQ,WAIzB,KACA,C,iiBAlHD,iEAGM,EAEN,GAUqB,cAMM,iBAAW,QAGpC,kEAFO,EAAM,EASb,aAAK,SAQL,IAAK,gBAAkB,EACvB,CAED,YArBA,wBAwBI,WAAoB,8DAClB,WACJ,GAEiB,kBAAR,KAA8B,GAAQ,KAAK,uFAAoB,EAEzE,GAJgB,kBAAR,sFAEP,EAIF,sBAOO,WACN,IAAM,uFAGN,YAAO,SAAW,KAElB,SACA,CAED,0BAQW,WACV,OAAO,yFAAiB,IAAkB,KAAK,UAAY,EAC3D,kBAGF,mBAnEqB,EAwErB,EAAiB,iBAIjB,gLCtFA,CAwLoB,aAEnB,OACC,QADI,QAAO,GACJ,CAAE,cAGL,KAAC,cACL,OAAQ,CAIT,IAAO,MAAM,KAAM,GACjB,IAAK,WACL,OAAsB,QAAf,QAAO,GAAmB,cAAU,GAC3C,CACF,G,mSA5MD,gBACA,cACA,eACA,iBAKqB,YAOpB,CAAa,aAAW,QAOvB,QAEA,aACC,QAAK,eAAgB,EAEtB,EAED,kBAGE,OAAO,yBACR,OAAO,MAAK,UAAW,OACvB,WAED,QAwCA,WAQI,WACH,OACA,kBADO,GAGR,+BAOgB,WACf,OAAO,MAAK,eAAgB,KAAK,WACjC,EAED,yBAMU,WACT,OAAO,MAAK,UACZ,EAED,8BAMe,WACd,OAAO,MAAK,UAAU,QACtB,EAED,sCAMC,OAAO,MAAK,UAAW,OACvB,WAED,+BAQuB,aACtB,MAAK,YAAa,WAClB,SAAI,GAEJ,IAAQ,EAAW,MAJW,gBAM9B,WAAoB,gDAAQ,SAC3B,QAAK,OAEL,UAAK,UAAU,OAAQ,EAAO,EAC9B,GACA,IACA,YAZ6B,oEAc9B,OACA,EAED,+BAOgB,WAAqB,8DACpC,OAAK,YAAa,WAElB,UAAM,GAAI,GAAI,EAAO,EAAI,EAAQ,EAChC,SAAK,UAAW,GAAI,OAGrB,WAAO,MAAK,UAAU,OAAQ,EAC9B,EAED,4BAQmB,aAClB,MAAK,KAAM,UAAY,EACvB,qCAzIA,OAAO,MAAK,UACZ,MAED,gCAOC,OACA,EADO,QAAK,UAGb,6BAOC,OACA,KAED,+BAOC,OACA,yBAlEmB,EA+KrB,cAAK,IAKL,oIC1LA,mSAFA,mEAOqB,YAMpB,CAAiC,iBAAiB,QAOjD,QAAK,SAQL,OAAK,SAQL,OAAK,UAAY,EAEjB,qBAAQ,KACR,EAED,kBAUA,iCAIC,MAAK,SACL,gBAED,0CAIC,MAAK,SACL,gDAfA,OAAO,MAAK,SAAS,aAAa,4BAA6B,KAC/D,8BA1CmB,6HCLrB,CA6QsB,aACrB,OAAO,CAAC,EAAG,EAAK,OAChB,MADyB,YAAO,OAAO,iBAAkB,EAAK,SAAU,Q,mSAhRzE,mEAwCqB,YAUpB,CAAa,aAAU,sBACtB,UAAO,OAAQ,KA0Cf,GAAK,EAAQ,SAAW,EAAQ,iBAAmB,OACtC,WACX,IAAI,GAAU,EAAQ,QAEtB,GACC,QADI,QAAO,OACD,CACV,OANgD,gBAQjD,WAAyB,gDAAU,SAClC,QAAQ,iBAAiB,IAAK,EAAmB,aAChD,GACA,KACA,GACD,WAbgD,qEAClD,MAAM,GAAM,KAAc,GAAkB,UAc5C,EACD,CAED,kBAwEA,6BAIC,MAAK,OAAQ,KACb,MAED,oCAIC,MAAK,OAAQ,KACb,KAED,oCAIC,MAAK,OAAQ,KACb,KAED,wCAIC,MAAK,OAAQ,KACb,SAED,uBAMQ,WACP,CACC,KAED,OAED,kCASmB,WAElB,IAAM,GAAU,KAChB,QAAM,EAAmB,KAAK,WAE9B,UAAK,CACJ,QAKD,SACC,IADI,WACG,MAAe,CAAT,KAAa,QAI3B,WAAI,GAAQ,CAAE,EAAU,EAAmB,GAE3C,IACC,IAAM,GAAO,KAAK,WAAW,IAG7B,MAAK,EACJ,SAID,KAAQ,CAAE,EAAQ,EAAmB,GACrC,CAVD,OAUU,IAEV,SACA,mCAhJA,OAAO,MAAK,WAAW,KAAM,IAC7B,IAED,6BAQC,OAAO,MAAK,WAAW,OAAQ,GAAc,MAAO,CAAC,GAAK,IAC1D,IAED,6BAQC,OAAO,MAAK,kBACZ,EAED,iCAQC,OAAO,MAAK,kBAAmB,CAC/B,EAED,gCAOc,OACb,KAAI,EAGJ,WACC,KADI,QAAK,aAAa,eAIvB,WAAK,WAAW,KAAc,aAC7B,IAAM,GAAU,EAAK,UAAY,EAAK,aAEtC,qBACC,OAGD,GACA,CAED,GACA,QAyFF,cAtOqB,kpBCnCrB,CAkOwB,aACvB,OAAO,GAAI,MAAO,kBAAiB,QAAZ,QAAO,EAC9B,E,iiBAzOD,aACA,eACA,eACA,iBAQqB,cAMP,aAAS,QAOrB,kEAHC,YAID,sBAAK,GAAI,MAAoB,eAC5B,CAAK,EAAK,SAAW,EACpB,kBAAK,eAAe,aAAc,EAAK,QAAS,EAAK,eAAe,SAErE,GAGD,KAAK,GAAI,SAAiB,aACzB,CAAK,EAAK,SAAW,EACpB,kBAAK,QAEN,QAOD,KAAK,OAUL,IAAK,IAQL,cAAK,eAUL,OAAK,aAAe,GAAI,KACxB,CAED,YAzDA,oCA+DO,OACN,QAAK,KAMJ,WAAM,eAGP,0FAAO,SAAQ,IAAK,KAAK,IAAK,kBAAK,GAAE,MAAjB,IAClB,KAAM,UACN,GACA,QACF,EAED,kCAKU,OAGT,WAAO,SAAQ,IAAK,KACnB,cACC,KAAM,UACN,OAAO,SAAQ,IAAK,EAAK,IAAK,kBAAK,GAAE,SACrC,GACF,EAED,oBAQW,aAAQ,OAClB,uFAAW,EAGX,MAAI,GAAU,QAEd,gBAAK,MAAK,OAAS,CAAC,EACnB,UAAU,EACR,KAAM,iBAAM,GAAK,MAClB,GACC,KAAM,iBAAM,GAAK,aAAa,OAAQ,EAKxC,QAAK,aAAa,IAGnB,IACA,CAED,0BAKW,WACV,MAAK,eACL,CAED,mCA8BsB,sDAAT,IAAS,eACrB,MAAK,CAAC,EAAO,QAAU,CAAC,EAMvB,QAAM,eAGP,mFASC,IAAI,WACH,IADW,gBAEX,8DAA2B,wCAC1B,YAAuB,qDAAS,YAC/B,QAAK,SAAU,IAAU,GACzB,YAHyB,4EAI1B,CAED,WARW,qEASX,GAAK,GAAI,MAAc,eAAU,uBAChC,YAAuB,qDAAS,YAC/B,SAAK,SAAU,IAAU,GACzB,YAH+B,4EAIhC,CAGD,KAAK,GAAI,SAAiB,eAAU,uBACnC,YAAuB,qDAAS,YAC/B,SAAK,eAAgB,GACrB,YAHkC,4EAInC,CACD,EAEF,+BAlNmB,EAqNrB,0BAMA,yFCzOA,CAOkB,aAChB,IAAI,GAAQ,CAAC,EACT,EAAS,EAAU,EAAQ,OAE/B,WACA,QAAS,IAAQ,GACf,IAAI,GAAQ,EACZ,QAAK,IAAI,EAAM,GAAI,EACpB,GACF,CAED,kDAxBA,iBACA,gBACA,gBACA,gBACA,mBAqBA,EAAS,UAAU,gBACnB,EAAS,UAAU,oBACnB,EAAS,UAAU,cACnB,EAAS,UAAU,cACnB,EAAS,UAAU,wBAEJ,kFCxBf,CAOe,aACb,MAAK,SAAW,cACjB,EAED,kDAlBA,gBACA,gBACA,gBACA,gBACA,gBACA,mBAcA,EAAM,UAAU,gBAChB,EAAM,UAAU,oBAChB,EAAM,UAAU,cAChB,EAAM,UAAU,cAChB,EAAM,UAAU,wBAED,iFCzBf,8DAGA,KAAI,EAAS,UAAK,iBAEH,iFCLf,+DAEA,OAae,QAJe,aAC5B,OAAO,CAAC,CAAC,EAAM,QAAyC,CACzD,CAD0B,eAAY,EAAO,EAAO,sECZrD,aAqBe,QAZ0B,eACvC,QAAI,GAAQ,CAAC,EACT,EAAS,EAEb,OAAS,IACP,MAAI,EAAW,EAAO,EACpB,IAGJ,SACD,0FCfD,kDAJA,gBACA,eACA,oBAsBe,QAZU,aACvB,GAAO,cAAM,EAAM,GAAU,CAAC,GAAQ,cAEtC,UAAI,GAAQ,EACR,EAAS,EAEb,OAAiB,IAAV,KAAkB,EACvB,KAAS,EAAO,cAAM,EAExB,aAAQ,IAAS,GAAS,EAC3B,yFCtBD,+DAEA,OAwBe,QAfoB,eACjC,IAAI,IACF,QAAO,cAAW,EAEpB,UAAI,GAAQ,EAAY,EACpB,EAAS,EAEb,OAAS,IACP,MAAI,EAAM,KACR,QAGJ,SAAO,CACR,mFCdD,kDAVA,gBACA,gBACA,gBACA,eACA,gBACA,qBAoEe,QArD6B,eAC1C,QAAI,GAAW,cAAf,QACI,EAAS,EAAO,GAAG,OACnB,EAAY,EAAO,OACnB,EAAW,EACX,EAAS,MAAM,GACf,EAAY,SAGhB,OACM,OAAQ,EACZ,GAAI,GACF,MAAQ,cAAS,EAAO,cAE1B,OAAY,SAAU,EAAM,OAC5B,KAAO,GAAY,CAAC,IAAe,GAAuB,GAAV,KAAiC,GAAhB,IAAM,QACnE,cAAa,GAGnB,YAAQ,EAER,MAAI,GAAQ,CAAC,EACT,EAAO,EAEX,GACA,WAAS,IAAQ,GAAU,EAAO,OAAS,GACzC,IAAI,GAAQ,EAAM,GACd,EAAW,EAAW,EAAS,GAEnC,EACI,KADK,GAAwB,CAAV,KAAe,EACtC,EAAM,GACE,cAAS,EAAM,IACf,EAAS,EAAQ,EAAU,GAEjC,OACA,EAAS,KACP,IAAI,GAAQ,EACZ,GAAI,GAAE,GACE,cAAS,EAAO,IAChB,EAAS,EAAO,GAAW,EAEjC,WAEH,MACD,CACE,KAAK,KAEP,KAAO,KACR,EACF,CACD,OACD,oFCnED,CAewD,qBACtD,SAAI,IAGJ,KAAa,IAAT,KAA0B,IAAT,MAAmB,cAAmB,EAApB,EAAqB,cAC1D,IAEK,cAAgB,EAAO,EAAO,EAAa,EAAY,EAC/D,GAHU,IAAU,GAAS,IAE5B,oDA1BF,iBACA,eACA,4BA2Be,oEC7Bf,aAae,QANO,WACpB,OAAgB,YACd,OAAwB,KAAjB,WAA6B,EACrC,EACF,mFCLD,kDANA,gBACA,gBACA,gBACA,mBAGI,EAAa,MAGjB,UAAI,EAAS,EAEb,SAmCe,QAxB+B,iBAC5C,IAAI,GAAU,cAAd,QACI,EAAQ,CAAC,EACT,EAAS,EAAO,OAChB,EAEJ,MACE,MAAO,cAAS,EAAO,cAEzB,KAAS,IACP,UAAI,GAAY,EACZ,EAAQ,EAAO,GACf,EAAW,EAAW,EAAS,GAEnC,EAAsE,CACpE,CADK,EAAC,EAAY,EAAQ,EAAM,EAAU,EAAW,KACjD,IACF,KAAO,KAAK,EAAM,EAEpB,KAAO,KAAK,EAAO,EAGvB,SACD,mFC5CD,8DAGI,OA4DW,QAxCoC,iBACjD,GAAQ,EAER,UAAI,GAAM,EACN,EAAO,EAAQ,EAAM,OAAS,EAC9B,EAAW,IAAU,EACrB,EAAsB,IAAV,KACZ,EAAc,cAAS,GACvB,EAEJ,WAAO,EAAM,GACX,IAAI,GAAM,WAAY,CAAC,EAAM,GAAQ,GACjC,EAAW,EAAS,EAAM,IAC1B,EAA4B,WAC5B,EAAyB,IAAb,KACZ,EAAiB,IAAa,EAC9B,EAAc,cAElB,MACE,KAAI,GAAS,GACR,SACL,EAAS,IAAmB,GACvB,GACL,EAAS,GAAkB,IAAiB,GAAc,CACrD,GACL,EAAS,GAAkB,GAAgB,CAAC,IAAc,GAAc,CACnE,GAAI,GAGT,KAAS,EAAc,GAAY,EAAU,EAE/C,EACE,IAAM,EAEN,IAEH,CACD,OAAO,UACR,EAzDG,UAAkB,CAMtB,sECVA,aAae,QANI,WACjB,OAAgB,YACd,OAAO,GACR,EACF,mFCPD,kDAJA,gBACA,eACA,oBA2Be,QAfoB,eACjC,QAAI,GAAQ,CAAC,EACT,EAAS,EAEb,SAAS,IACH,KAAS,EACT,cACE,cAAe,EAAQ,EAAO,GAAQ,EAAU,GAChD,cAAe,EAAO,GAAQ,EAAQ,EAAU,IAElD,EAEN,SAAQ,IAAU,EAAO,OAAU,cAAS,EAAQ,EACrD,yEC3BD,aAYe,QAJU,aACvB,OAAO,GAAM,IACd,mFCVD,8DAEA,OAWe,QAJc,WAC3B,OAAO,cAAkB,GAC1B,qFCXD,+DAEA,OAae,QANW,WACxB,IAAI,GAAS,GAAI,GAAY,YAAY,EACzC,iCAAe,GAAQ,IAAI,cAC3B,IACD,kFCbD,8DAEA,OA4Be,QAlB4B,iBACzC,KAEA,aAAI,GAAQ,CAAC,EACT,EAAS,EAEb,OAAS,IAAQ,GACf,IAAI,GAAM,EAEV,GAAI,EAAW,EACX,EAAW,EAAO,GAAM,EAAO,GAAM,EAAK,EAAQ,GAClD,EAEJ,iBAAY,EAAQ,EACrB,EACD,OACD,sEC5BD,WACA,GAAI,GAAqB,OAEzB,iBAWe,QAJO,WACpB,OAAO,GAAmB,OAC3B,qFCJD,CAgCgB,aACd,OAAO,GAAe,KACvB,EAID,kDA9CA,iBACA,gBACA,gBACA,gBACA,gBACA,mBAGI,EACA,eACA,EAAa,mBACb,EAAS,eACT,EAEJ,mBAAI,EAGJ,oBAAI,EAAc,OAOlB,UAAI,EAAiB,EAGrB,SAAI,EAAqB,gBAAzB,SACI,EAAgB,gBADpB,SAEI,EAAoB,gBAFxB,SAGI,EAAgB,gBAHpB,SAII,EAAoB,gBAExB,UAaK,WAAY,EAAO,cAAa,GAAI,aAAY,MAAQ,GACxD,WAAO,EAAO,MAAP,UAAmB,GAC1B,WAAW,EAAO,UAAQ,YAAc,GACxC,WAAO,EAAO,MAAP,UAAmB,GAC1B,WAAW,EAAO,MAAP,UACd,OAAkB,WAChB,IAAI,GAAS,EAAe,KAAK,GAC7B,EAAiB,GA5CT,kBA4CqB,EAAoB,mBACjD,GAAa,EAAO,cAExB,aACE,UACE,QAAyB,SACzB,OAAoB,SACpB,OAAwB,SACxB,OAAoB,SACpB,OAAwB,SAG5B,UACD,EACF,aAEc,oECrEf,aAiBe,QAVK,WAClB,IAAI,GAAQ,CAAC,EACT,EAAS,MAAM,EAEnB,eAAI,QAAwB,aAC1B,GAAS,KAAS,CAAC,EACpB,EACD,GACD,mFCVG,kDALJ,gBACA,gBACA,qBAuLe,QA5He,eAC5B,CAsBoB,cAClB,IAAI,IAAO,EACP,GAEJ,WACA,WACA,KAAS,EAAK,MAAM,GACpB,IACD,CAED,CAAqB,cAEnB,UAEA,KAAU,WAAW,EAErB,GAAO,EAAU,EAAW,IAC7B,CAED,CAAuB,cACrB,IAAI,IAAoB,GAAO,EAC3B,GAAsB,GAAO,EAC7B,GAAS,EAEb,SAAO,IAAS,SAAU,GAAQ,EAAU,IAC7C,EAED,CAAsB,cACpB,IAAI,IAAoB,GAAO,EAC3B,GAAsB,GAK1B,QAAQ,CAAC,GAAiB,IAAqB,GACxB,CAApB,KAA2B,IAAU,IACzC,CAED,CAAS,YACP,IAAI,IAAO,KACX,iBAAI,GACF,IAAO,EAGT,WAAU,WAAW,EAAc,EACpC,KAED,CAAsB,cACpB,qBACA,GAIA,SAAI,IACF,GAAO,EAET,OACA,SACD,EAED,CAYS,YACP,IAAI,IAAO,KAAX,WACI,GAAa,EAEjB,SACA,YACA,OAEA,GAAI,GACF,IACE,iBAAO,GAET,MAEE,uBACA,KAAU,WAAW,EACrB,GAAO,EAEV,EACD,OACE,gBAAU,WAAW,EAEvB,IACD,CACD,IAjHI,GAAe,EACf,EAAiB,EACP,KACD,MAGb,MAXI,EACA,EACA,EACA,EACA,KAQF,UADE,QAAO,QACH,IAER,WAjEF,gCAiES,cAAS,IAChB,EAAI,cACF,OAAU,CAAC,CAAC,EACZ,WAAS,WACT,KAAU,GAAS,SAAU,cAAS,EAAQ,UAAY,EAAG,GAC7D,KAAW,YAAc,GAAU,CAAC,CAAC,EAAQ,SAG/C,MAiGA,OArCS,UACP,CACE,yBAEF,KAAe,EACf,IAAW,EACZ,QAED,IA8BA,MA9BS,UACP,OAAmB,YAAY,EAAS,EAAa,KACtD,WAED,EA2BD,mFCpLD,kDAHA,gBACA,oBAoCe,QATS,eACtB,IAAI,GAAS,EAAQ,EAAM,OACvB,QAGJ,MAAK,GAAe,WAAa,EAAI,cACrC,GAAO,cAAU,EAAW,CAAJ,GAAQ,EAAI,EACrC,wFChCD,kDAHA,gBACA,oBAqCe,QAVc,eAC3B,IAAI,GAAS,EAAQ,EAAM,OACvB,QAGJ,MAAK,GAAe,WAAa,EAAI,cACrC,KAAI,EACJ,EAAO,cAAU,EAAO,EAAO,CAAJ,GAAQ,EACpC,0ECpCD,aAsBe,QAJD,WACZ,OAAQ,IAAS,EAAM,OAAU,EAClC,0FCpBD,8DAGI,KAGA,EAAc,OAGlB,UAAI,EAAiB,EAOrB,eAAI,EAAiB,EAGrB,SAAI,EAAuB,EAE3B,uBAwBe,QANM,WAEnB,OAAO,cAAkB,IAAU,EAAe,KAAK,EAAO,YAC3D,CAAC,EAAqB,KAAK,EAAO,WAAa,EAAe,KAClE,IArCD,sGCNA,8DAGI,KAIA,EAAc,OAOlB,UAAI,EAAiB,EAErB,WA0Be,QARK,WAIlB,IAAI,GAAM,cAAS,GAAS,EAAe,KAAK,GAChD,SAAc,IAnCZ,qBAoCH,GAjCD,8GCHI,kDAJJ,gBACA,kBAMI,EAAc,OAOlB,UAAI,EAAiB,EAErB,WAuBe,QALG,WAChB,OAAuB,QAAhB,QAAO,IACX,CAAC,cAAQ,IAAU,cAAa,IAAU,EAAe,KAC7D,IA9BD,kGCPA,+DAEA,OA0Be,QANS,aACtB,OAAQ,IAAS,EAAM,QAAU,GAAU,EAAO,OAC9C,cAAY,EAAO,GAExB,mFCtBD,kDAJA,iBACA,eACA,qBAoCe,QAbW,aACxB,IAAI,EAAE,GAAS,EACb,QAEF,YAAI,GAAS,cACb,SACE,KADE,IAGJ,EAAO,cAAS,EAAiB,WAC/B,OAAO,cAAgB,SACxB,EACF,oFCxBD,oDAUwB,QAAO,WAC9B,OAAK,cACJ,GAAO,cAEP,GAAO,GAAI,KAEZ,E,EAnBD,gBACA,+CC6DmC,eAClC,GAAQ,kBAAmB,EAC3B,EAED,CA2CS,YACR,OACA,K,oDAxFe,SAAU,WACzB,OAAO,CAAC,CAAC,EAAQ,kBACjB,EAED,IAagB,SAAmB,aAClC,UACA,QAAQ,aACR,wBAAQ,gBACR,IAAQ,SACR,KAAQ,kBAER,MAAK,EACJ,SAAU,EAAS,EAGpB,OACA,CAED,IAQgB,aAUA,SAAU,WACzB,IAAM,GAAe,EAAQ,kBAExB,SACJ,GAG6B,UAAvB,QAAO,GAA6B,IAC3C,EADA,EAGD,IASgB,iBAAkB,WACjC,UAAS,aAAc,kBACvB,UAAS,SAET,iBAAS,GAAI,mBAAqC,eACjD,CACC,IAAS,SAET,yBAAS,YAEV,sBAED,GACA,CAID,EA5GA,GAAM,GAAe,OACrB,YAAM,EAAc,OAOb,SAAM,sBAON,YAAM,+BAEb,6PC1BA,EAEA,EACA,EAAK,UACJ,OACA,KAFG,IAIJ,GAEC,GAAI,GAAK,SAAS,kBAAoB,CAAC,EAAE,MACzC,OAHD,CAGQ,QAEP,CAAqB,QAAlB,uBAAO,iCACT,EACD,OAID,CAEA,EAAO,QAAU,mFCEO,QAAqD,eAC5E,IAAK,EAEJ,kBAAO,GAAO,MAAO,CAAE,KAAM,QAAS,OAAQ,EAAU,mBAAoB,WAE5E,OAAM,GAAS,EAEf,YAHM,eAIN,WAAqB,8CAAS,iBAC7B,MAAM,EAAS,cAAgB,CAAE,WAAY,EAC7C,qBAAI,EAAO,EACX,SAAI,EAAO,EAGX,SAAQ,CAAC,EAAK,MAEP,MAAO,EAAK,MAAM,KAAK,MAE7B,QAAK,EAAO,MAAO,CAAE,KAAF,EAAQ,OAAQ,EAAM,WAExC,IAGD,WAAO,EACP,WAAO,EACP,MACD,UAtBK,oEA0BP,CACA,QAhDD,EAIA,8DAEA,qpBCEA,mSAJA,gBACA,gBACA,mBASqB,cAMC,eAAe,QAGnC,kEAKA,aAAK,aASL,IAAK,IAEL,cAAK,SAAU,EAAO,SAAU,cAAe,UAC9C,GACA,iBACA,cAHD,GAIA,CAED,YAzBA,4CA6BC,MAAK,MAAQ,KAAK,OAAO,SAAS,UAAU,aAAc,KAC1D,aAED,wCAQC,IAAM,GAAW,KAAK,OAEtB,eAAO,cAA+B,KAAK,aAAc,EAAS,UAAW,EAC7E,OAED,qCAqB2B,kEAC1B,MAAM,EAAW,KAAK,OACtB,SAAM,EAAY,EAClB,UAAM,EAAU,WAAuB,WAAc,CAAC,KAAK,MAAQ,EAGnE,aAAS,eAAgB,UACxB,IAAK,EACJ,YACC,IAAU,aAAc,EAExB,mBAAU,gBAAiB,EAE5B,kBACA,IAAM,GAAS,cAAsB,EAAK,aAAc,EAAU,YAAa,EAG/E,QAAM,EAAQ,EAAQ,OAAS,EAAS,QAJlC,eAMN,WAAqB,gDAAS,SAC7B,MACC,IAAM,aAAc,EAAO,EAAK,aAEhC,KAAM,gBAAiB,EAAO,EAE/B,sBAZK,oEAaN,CACD,CACD,+BApGmB,gLCDrB,mSAVA,eACA,cAEA,eACA,eACA,eAEA,cACA,iBAiBqB,YAIpB,aAAc,mBAOb,QAAK,oBAAsB,GAQ3B,cAAK,oBAAsB,GAS3B,cAAK,4BAA8B,GAGnC,UAAK,GAAI,sBAA8B,aACtC,KAAK,EAIL,iBAAM,GAAgB,EAAK,oBAAoB,IAAK,EAAK,cAEzD,UAAK,aAAe,EAAK,gBAAiB,EAAe,EAAK,cAC9D,QARD,EAQG,CAAE,SAGL,aAAK,GAAI,sBAA8B,aACtC,KAAK,EAIL,sBAAI,GAAY,EAAK,aACrB,OAAI,EAAc,EAAK,oBAAoB,IAE3C,GAAQ,CACP,KAAY,EACZ,SAAc,EAAK,oBAAoB,IAGxC,MAAM,GAAc,EAAK,eAAgB,EAAK,aAAa,OAAQ,EAAK,aAAa,OAErF,KAAK,cAAgB,UAAc,0BAA2B,EAC9D,GAhBD,EAgBG,CAAE,SACL,OAED,uCAS4B,aAC3B,MAAK,oBAAoB,IAAK,EAC9B,QAAK,oBAAoB,IAAK,EAC9B,EAED,kCAKmB,WAClB,IAAM,GAAe,KAAK,eAE1B,QAAK,gBAAiB,EACtB,EAED,mCAKoB,WACnB,IAAM,GAAc,KAAK,cAEzB,QAAK,gBAAiB,EACtB,EAED,wCAIC,MAAK,oBAAsB,GAC3B,cAAK,oBAAsB,GAC3B,QAED,+BAQgB,WACf,OAAO,MAAK,oBAAoB,IAChC,EAED,8BAMe,WACd,OAAO,MAAK,oBAAoB,IAChC,EAED,6BAMc,WACb,OAAO,eAAgB,KAAK,gBAAiB,EAAU,OAAS,KAAK,gBAAiB,EACtF,KAED,4BAMa,WACZ,OAAO,eAAe,KAAK,eAAgB,EAAW,OAAS,KAAK,eAAgB,EACpF,KAED,gCAOiB,WAChB,IAAM,GACL,cACA,SAGD,kBAAK,KAAM,sBAEX,GAAO,EACP,aAED,+BAOgB,WACf,IAAM,GACL,eACA,SAGD,kBAAK,KAAM,sBAEX,GAAO,EACP,YAED,0CA6B4C,aAC3C,MAAK,4BAA4B,IAAK,EACtC,EAED,+BAkBwC,eACvC,IAAK,GAAa,EAEjB,IAAM,GAAsB,KAAK,eAAgB,EAAW,OAAQ,EAAW,MAC/E,GAAM,EAAiB,KAAK,eAAgB,EAAY,EAExD,SAAO,GACP,CAKD,IAAK,EAAW,GACf,cAID,OAEM,GAFF,GAEJ,EAAU,EAAI,EAAG,EAAI,EACpB,OAAe,KAAK,eAAgB,EAAW,SAGhD,UACA,EAED,gCAO+B,aAC9B,MAAK,oBAAoB,OACzB,QAAK,oBAAoB,OACzB,EAED,+BAsBgB,WACf,IAAK,KAAK,4BAA4B,IAAK,EAAS,MACnD,IAAM,GAAW,KAAK,4BAA4B,IAAK,EAEvD,YAAO,GACP,EAJD,CAIO,GAAK,KAAK,oBAAoB,IACpC,SACA,GAAM,GAAK,EAAS,GACpB,cAAO,GAAS,KAChB,OAAM,GAAK,EAAS,GACpB,mBAEA,MAAI,GAAM,EADJ,eAGN,WAAqB,EAAS,4DAAgB,SAC7C,SAAO,KAAK,eACZ,WALK,oEAON,OAED,EAED,gCAyB6B,aAE5B,IAEI,GAEJ,EAAI,EACJ,EAAI,EAGJ,EANA,KAMK,EAAW,GACf,cAAO,eAAkB,EAM1B,QAAQ,EACP,KAAW,EAAW,SACtB,KAAa,KAAK,eAClB,MACA,EAID,UAAK,IACJ,EAAO,KAAK,4BAA6B,cAAkB,EAM3D,IAAO,KAAK,gBAAiB,EAAU,GAAmB,EAE3D,GAED,4CAY6B,WAG5B,IAAM,GAAa,EACnB,WAAM,EAAY,EAElB,gBAAK,gBACJ,QAAO,cAAkB,EAAY,EAAW,KAC1C,QAAK,eACX,QAAO,cAAkB,EAI1B,GACA,CAuDD,oBA1coB,EA4erB,cAAK,I,yFC7fL,CA+KiG,qBAChG,CAAK,GAAC,EAID,aAAC,EAAW,QAAS,EAI1B,OAAI,GAAe,EACnB,qBAAe,UAAW,aAAc,EAExC,KACA,oBAAc,SAAU,cAAe,EACvC,IAED,oDAtLgB,gCACf,OAAgC,kBAC/B,IAAM,GAAY,EAElB,cAAK,EAIA,aAAC,EAAW,QAAS,EAI1B,gBAAc,cAAc,qBAXsB,gBAalD,WAAqB,EAAU,6DAAc,SAC5C,MAAM,EAAY,EAAc,OAAO,YACvC,KAAc,cAAc,SAAU,EAAW,EACjD,WAhBiD,8EAiBlD,EACD,CAED,IAwBgB,oCACf,OAAgC,kBAC/B,IAAM,GAAY,EAElB,UAAK,GAAC,EAID,aAAC,EAAW,QAAS,EAI1B,iBAAM,GAAgB,EACtB,mBAAM,EAAe,EAAc,OAAO,eAC1C,GAAM,EAAiB,UAAW,gBAElC,KAAc,cACd,oBAAc,cAAc,SAAU,cAAe,EACrD,IACD,CAED,IAqDgB,0BAA2B,WAC1C,OAAgC,kBAC/B,IAAM,GAAc,uBACnB,EAAsB,UACtB,EAAgB,EAAK,MAAO,EAAM,EAAK,UAAW,EAEnD,GAAK,GAIL,MAAM,GAAiB,sBAAwB,EAE/C,MAAgC,EAAK,UAAW,EAAc,cAAe,EAAa,EAC1F,GACD,CAED,IAcgB,uBAAwB,WACvC,OAAgC,kBAC/B,IAAM,GAAc,uBACnB,EAAsB,UACtB,EAAgB,EAAM,EAEvB,GAAK,GAIL,MAAM,GAAiB,mBAAqB,EAE5C,OAAgC,EAAK,UAAW,EAAc,cAAe,EAAa,EAC1F,GACD,CAED,IAyCgB,0BACf,OAAgC,kBAAmB,oBAClD,WAAqB,EAAc,cAAc,0DAAc,SAE9D,MAAK,EAEJ,aAAK,EAAM,IAAI,OACd,oBAAW,gBAAiB,EAG9B,eATiD,oEAUlD,GAAc,cACd,iBACD,CAED,IAIgB,6BACf,OAAgC,kBAAzB,OAA4C,GAAc,cAAuB,WACxF,C,EAxPD,gBACA,eACA,gMCUA,mSARA,iBACA,cACA,cACA,eACA,cACA,cACA,kBA6FqB,YAOpB,CAAa,aAAoC,wEAOhD,QAAK,eAOL,OAAK,cAAgB,cAAQ,CAAE,WAAY,MAC3C,EAED,wCAgBqB,aAGpB,CAAc,QAAT,MAAqB,EAAK,OAI/B,YAJwC,IAAK,MAAM,KAAK,UAI3C,QAAR,KAIL,YAJyB,IAAK,eAAe,KAAK,UAIrC,QAAR,KAKL,YALyB,IAAK,QAAQ,KAAK,WAK9B,QAAR,KACJ,UADwB,SACnB,iBAAkB,EACjB,OACN,MADW,SACN,YAAa,EAAK,eAAgB,EACjC,OACN,QADW,SACN,cAAe,EAAK,eAAgB,EACnC,OAAa,cAAR,KAAkC,iBAAR,KACrC,iBADkE,SAC7D,iBAAkB,EAAM,EAAK,MAAO,EAAK,IAAK,EAAK,SAAU,EAC5D,UACN,QADW,UACN,cAAe,EAAK,QAAS,EAEnC,SAED,iCAakB,WAEjB,IAAM,GAAa,KAAK,wBAExB,GAJyB,eAKzB,WAAqB,mDAAQ,SAC5B,MAAM,EAAO,EACb,KAAM,EAAY,UAAM,2BAA4B,EAAM,iBAAkB,EAC5E,QAAM,EACL,MACA,QAGD,QAAK,aAAc,SAAU,EAI7B,MAZ4B,0BAa5B,YAAmB,EAAK,sEAAqB,YAC5C,QAAK,aACL,KAAK,kBACL,OAAK,kBAAoB,EAAK,aAE9B,SAAK,6BAA+B,GAAQ,EAC5C,YAnB2B,4EAoB5B,CAzBwB,uGA2BzB,YAAsB,KAAK,eAAe,8DAAU,WACnD,MAAM,GAAc,GAGpB,WAAK,GAAY,iBAAkB,EAClC,aAAK,cAAe,YAAa,GAAO,KAAM,GAAY,gBAI3D,KAAK,EAAM,cAAe,KAAiB,EAAM,QAChD,WAAK,cAAe,YAAa,GAAO,KAEzC,GAvCwB,uFAwCzB,CAED,4BAU6B,aAE5B,IAAK,EAAM,MAAM,SAAU,GAC1B,MAAK,iBAEL,MAAM,GACL,EAAe,2BAA4B,EAAM,MAAO,EAAM,IAAI,OAAS,EAAM,MAElF,aAAK,cAAe,EACpB,EACA,WAAK,cAAe,EACpB,QAAK,iBAEN,EAED,8BAU+B,aAC9B,IAAM,GAAa,KAAK,0BAA2B,EAAO,UADpB,eAGtC,WAAoB,EAAM,SAAU,CAAW,8DAAW,SACnD,WAKD,aAAwB,SAJ5B,gBACA,OAGD,GACA,EAVqC,8EAWtC,CAED,iCAc8C,mBAE7C,IAAM,GAAa,KAAK,0BAA2B,EAAO,EAAO,IAEjE,GAJwD,eAKxD,WAAqB,mDAAQ,UAC5B,MAAM,GAAO,GACb,KAAM,GAAY,UAAM,2BAA4B,GAAM,iBAAkB,GACtE,aAQD,aAAkB,MAAkB,EAPxC,MACA,SACA,gBACA,oBACA,oBAGD,GACA,EAjBuD,gFAkBxD,CAED,8BAUwB,aAEvB,IAAM,GAAc,EACpB,YAAY,KAGZ,OAAK,cAAc,OAAO,aACzB,EACA,KAAK,cAAc,OAAO,cAI3B,OAAM,GAAuB,MAC7B,UAAqB,eAErB,QAAK,cAAe,UAAS,aAAc,GAAW,UAAM,SAC5D,SAAK,iBAAkB,UAAM,SAC7B,GAED,iCASkB,WACjB,IAAM,GAAU,MAAM,KAAM,KAAK,eAAe,QAAQ,qBAAsB,EAC9E,qBAAM,EAAa,KAAK,2BAA4B,EAEpD,QAAK,KAAM,YAAa,CAAE,UAAF,GAAe,EAAY,KAAK,kBAJ3B,gBAM7B,WAAsB,mDAAU,SAC/B,MAAM,EACL,WACA,OAAM,EAGP,MAAK,EAAW,KAAM,EAAW,mBAAqB,EACrD,YAAK,KAAM,mBAAqB,EAAO,KAAM,EAAM,EAAY,KAEhE,cAf4B,sGAiB7B,YAAmB,EAAU,uEAAqB,WACjD,MAAM,EACL,WACA,MACA,SAAO,EAAU,aAIlB,KAAK,EAAW,KAAM,EAAW,sBAAwB,EACxD,WAAK,KAAM,sBAAwB,EAAK,IAAK,EAAM,EAAY,KAEhE,cA5B4B,sFA6B7B,CAED,8BAY2B,eAE1B,IAAM,EAAM,KAAK,QAAZ,EAIL,YAJ6B,IAAM,KAAK,aAIlC,GAAa,KAAK,wBAAyB,EAC3C,QAED,KAAM,EAAO,IAAY,EAFjB,CAAE,KAAF,EAAQ,MAErB,GAAoC,EAAY,KAChD,eAED,wCAQyB,WACxB,IAAM,GAAa,MAAnB,QADgC,eAGhC,WAAqB,mDAAQ,SAC5B,MAAM,EAAO,EAEb,OAAW,IAAK,EAAM,aAHM,wBAK5B,YAAmB,EAAK,qEAAqB,WAC5C,QAAW,IAAK,EAAM,gBACtB,aAP2B,yEAQ5B,CAX+B,gFAahC,OACA,EAED,0CASkC,aACjC,IAAM,GAAa,MAAnB,QADwC,eAGxC,WAAoB,EAAM,yDAAa,SACtC,QAAW,IAAK,EAChB,WALuC,oEAOxC,OACA,EAED,2CAQuC,aACtC,IAAM,GAAa,MAEnB,UAAW,IAAK,EAAW,gBAHqB,gBAKhD,WAAsB,gDAAU,SAC/B,QAAW,IAAK,EAAW,mBAAqB,EAChD,eAP+C,0FAShD,YAAmB,EAAU,qEAAqB,WACjD,QAAW,IAAK,EAAW,sBAC3B,aAX+C,yEAahD,OACA,EAED,wCAQ+B,aAC9B,IAAM,GAAa,MAEnB,iBAAW,IAAK,EAEhB,GACA,CAED,6BAa0B,eACzB,CAAK,GAAC,EAAW,KAAM,EAAK,KAK5B,OAAM,GAAO,EAAK,KAAK,MAEvB,aAAK,KAAM,EAAO,IAAM,EAAM,EAAM,EAAY,KAChD,eA+ID,oBAniBoB,EAojBrB,cAAK,I,uLCjpBL,mSAJA,iBACA,gBACA,WAQqB,YAIpB,aAAc,QAOb,QAAK,WAAa,GAQlB,gBAAK,cAAgB,cAAkB,CAAE,cAQzC,mBAAK,YAAc,MACnB,OAED,iCAOQ,WAEP,IAAM,GAAc,KAAK,cAAc,UAAW,EAGlD,gBAAO,MAAK,YAAY,QACxB,EAED,uBAMQ,WAEP,IAAM,GAAc,KAAK,OAGzB,SAAO,MAAK,cAAc,UAC1B,EAED,uBAQQ,WACP,QAAM,GAAW,KAAK,WAAW,gBAAiB,EAClD,aAAM,EAAW,EACjB,yBAAM,EAAQ,EAAS,KAEvB,WACC,CADO,GAAM,UACJ,YAAa,EAGvB,UACA,sBA7EmB,kpBCJrB,CAoJuC,mBACtC,CAAK,eACJ,UAAa,EAAO,EAAM,SAAU,EAAK,EAEzC,KAAY,EAAO,EAAM,SAAU,EAAK,EAEzC,GAE4C,qBAC5C,IAAM,GAAgB,EAAK,aAC3B,GAAI,EAEJ,GAAM,GAAQ,EAAK,GAAI,eAAkB,GAAI,GAAuB,GAEpE,GAAK,GACJ,MAAM,SAEN,IAAK,EAAK,GAET,kBAAY,cAA4B,EAAM,EAAK,EAAe,EAAO,EAEzE,YAAK,EAAK,GAIT,WAAQ,cAAW,UAAS,aAAc,GAAQ,UAAS,0BAA2B,EAItF,IAAQ,cAAW,UAAS,aAAc,GAAQ,UAAS,YAG5D,OAAY,cAAwB,EAAO,EAAK,EAAe,EAAO,EAGvE,aAAM,aACN,MAAI,eAEL,IAGD,CACgE,qBAC/D,CAqCS,YAER,CACC,CADI,KAAM,WAAW,UACf,SAGP,MAAM,IAAQ,cAAW,GACzB,IAAM,GAAY,cAAwB,GAAO,EAAc,GAAsB,EAAgB,EAErG,WAAM,aACN,MAAI,eACJ,GACD,IAjDM,GAAQ,GAGd,GAAI,GAAoB,EAIxB,MAEC,GAEA,GAJD,GARuE,kBAcvE,YAAqB,qDAAQ,YAC5B,SAAsB,GAAM,KAAK,aAIjC,GAAK,IAAY,IAEhB,KAAK,IACJ,GAGD,OAGD,OAAW,GACX,gBAID,YAjCuE,4EAkCvE,CAAK,yBAAgC,IAAY,IAAqB,IACrE,GAGD,gkBA5OD,cACA,eACA,OACA,gBACA,gBACA,cACA,iBAQqB,0IAkEpB,yBAIC,IAAM,mFAEN,mBAAO,GAEP,OACA,CAED,QA5EA,qBAIC,OACA,WAED,4BAOC,OAAO,MAAK,WAAY,GAAM,KAAK,WAAY,GAAI,IACnD,IAED,8BAOC,OAAO,MAAK,WAAY,GAAM,KAAK,WAAY,GAAI,SACnD,IAED,8BAQC,IAAK,KACJ,aAAO,MAGR,UAAI,GACJ,KAAI,EAAM,KAPC,gBASX,YAAyB,KAAK,6DAAa,WAC1C,OAAe,IAAV,KAAkB,EAAM,QAAS,GAAU,MAC/C,YAAQ,GAAU,MAGnB,QAAa,IAAR,KAAgB,EAAI,SAAU,GAAU,MAC5C,UAAM,GAAU,MAEjB,cAjBU,yEAmBX,OAAK,IACJ,QAAK,OAAS,cAAW,EAEzB,GAAO,KAGR,QACA,+CAGA,OACA,sCAiBA,OACA,mCAED,kCAIC,OACA,aAGF,mBA5FqB,KAoGR,qKACZ,0BAIC,OACA,iDAGF,SAWA,eAAU,eAA4C,eACrD,UAAW,KAAM,EAAK,EAEtB,GACA,IAED,GAUA,eAAU,kBAA0C,aACnD,UAAW,KAAM,EAAK,KAEtB,GACA,IAJD,GAoGA,UAAa,SAAU,GACvB,UAAa,SAAU,mpBCnPvB,CA2B8B,iBAC7B,GAAM,aACN,KAAM,SAAS,eACf,EAED,mSAxCA,gBACA,eACA,OACA,iBACA,cACA,cACA,iBAMqB,0IACpB,qBAIC,OACA,QAED,2CAIC,OACA,EAED,oCAIC,OACA,6DApBmB,EAoCrB,eAAU,SAA6B,aACtC,IAAK,EAAG,eAMP,cAAM,eAGP,yGAAM,GAAQ,GACd,QAAK,SAEL,MAAM,GAAkB,cAAqB,UAAS,aAAc,GAAW,EAAQ,KAAM,EAAS,KAAK,SAC3G,kBAAO,KAAM,EAEb,GACA,IAjBD,GAmBA,UAAa,SAAU,mpBC7DvB,mSANA,iBACA,OACA,gBACA,eACA,WAOqB,+IACpB,0BAIC,OACA,8CAGF,mBATqB,EA6BrB,eAAU,aAAkC,aAC3C,IAAM,GAAQ,GACd,QAAK,SAEL,KAAQ,qBAAgB,MAJ2B,gBAMnD,WAAoB,gDAAQ,SAC3B,QAAK,gBAAiB,KAAK,SAAS,UACpC,yBARkD,oEAUnD,IAAM,GAAY,cAAqB,EAAU,EAAO,KAAK,SAC7D,kBAAM,aACN,QAAK,SAAS,eAEd,GACA,IAfD,GAiBA,UAAa,SAAU,mpBCnDvB,CAwHS,YAAmB,OAE3B,KAAM,EAAiB,GAEvB,iDAAK,SACJ,KAAK,KAAK,SACV,SACe,eACd,CAAK,EAAe,IACnB,MAAU,OAAY,EAAM,EAAQ,MAAO,EAE5C,eAPF,EAQC,CAAE,SAEH,QAED,CAUiC,iBAEhC,IAAM,GAAU,EAAM,IAAI,OAAS,EAAM,MACzC,OAEA,SACC,OACC,YAAM,GACN,cADqB,OAAK,aACZ,KAAK,2BAA4B,EAAM,MAAO,EAC5D,GAED,UACA,WACA,aACC,cAAM,GAAgB,UAAM,2BAA4B,EAExD,GAAM,EAAW,EAAc,iBAAkB,OAC9C,EAAc,MAAM,QAAS,OAA6B,cAAnB,OAAK,YAC5C,EAAc,IAAI,QAAS,OAG9B,kBAHwC,OAAK,cAI5C,IAAc,KAAK,aAAc,EAAU,EAC3C,WACA,IAAM,GACN,cADqB,OAAK,aACZ,KAAK,sBAAuB,EAAU,EAAM,MAAO,EACjE,EAIH,KAAK,CAAC,KAAK,QAAS,GACnB,IAAM,GAAc,UAAS,mBAE7B,WAAK,KAAO,EACZ,UAAK,KAAO,EAEZ,UAAK,KAAM,SACX,EAED,oSA/LD,eACA,cACA,cACA,cACA,iBAiBqB,cAUK,iBAAa,0EAC9B,EAEP,OAAK,CAAC,EAAK,KAAK,GAMf,oBAAM,eAuBP,6GAAK,WAAa,GAElB,iBAAiB,KAlCoB,GAmCrC,CAED,YArCA,sCA2CC,MACA,eAmCD,UAQD,mBAjGqB,EA4KrB,cAAK,IAEL,yLCnLA,CAqhC2C,mBAC1C,IAAI,IAAU,cAEd,SACC,SAAU,GAAQ,MAAO,GAAQ,QAAS,IAG3C,IAAO,GAAQ,KAAM,mBAAU,IAAO,SAAW,GAAM,SAAU,GAAO,QAAQ,cAChF,EAMD,CACuC,gBACtC,MAAQ,GAAQ,GAAQ,UACvB,aACA,KAAO,EAER,U,ywBAvjCD,gBACA,eACA,eACA,eACA,eACA,gBACA,eACA,OAEA,gBACA,gBACA,gBACA,mBAYqB,YAOpB,aAA4B,yEAkB3B,QAAK,YAAc,GAAQ,eAO3B,eAOA,yBAQA,6DAAK,kBAAoB,GAQzB,cAAK,kBAAoB,GAQzB,cAAK,sBAAwB,GAC7B,QAED,4CAQ+B,eAC9B,MAAK,sBAAsB,IAAK,GAAY,UAAc,oBAC1D,IAED,oCAOqB,YACpB,OAAO,MAAK,sBAAsB,IAClC,GAED,6BAQ0B,eACzB,MAAK,kBAAkB,IAAK,GAC5B,SAAK,kBAAkB,IAAK,GAC5B,GAED,iCAMkB,YACjB,IAAM,IAAc,KAAK,kBAAkB,IAE3C,OAAK,GACJ,MAAK,kBAAkB,OACvB,SAAK,kBAAkB,OAEvB,OAJkB,mBAKlB,YAAqB,MAAM,KAAM,GAAW,+DAAe,YAC1D,WAAK,iBACL,aAPiB,4EAQlB,CACD,CAED,sCAQoC,eACnC,MAAK,kBAAkB,IAAK,GAC5B,SAAK,kBAAkB,IAAK,GAC5B,GAED,0BAYqB,eAA4B,4DAChD,SAAK,GAAS,GAAI,QACjB,IAAM,IAAW,KAAK,yBAEtB,UAAO,IAAY,eACnB,GACA,IAAK,KAAK,oBACT,UAAO,MAAK,oBAGb,OAEA,OAAK,GAAS,GAEb,uBAAa,GAEb,yBAAK,GACJ,WAAK,sBAAuB,GAE7B,QAEA,IAAa,GAAY,cAAe,GAExC,MAAK,GACJ,WAAK,aAAc,GAGpB,OARM,mBASN,YAAmB,GAAS,sEAAqB,YAChD,SAAW,aAAc,GAAK,GAAS,aACvC,cAXK,4EAYN,CAED,IAAK,GAAQ,cAAgB,YAAyB,aAAY,uBACjE,YAAqB,KAAK,kBAAmB,GAAU,GAAa,uDAAY,YAC/E,SAAW,YACX,aAHgE,4EAIjE,CAED,OAED,GAED,0DASkC,sBAAa,wDAAU,6GAClD,G,GAAuB,GAAY,iBAAmB,GACxD,kB,GAAS,qCAEY,GAAY,mFAAzB,I,YACN,KAAyB,uCACvB,KAAK,YAAa,8BAGnB,KAAK,UAAW,GAAW,GAAa,QAE9C,2SAGI,KAAyB,uCACvB,KAAK,YAAa,6EAI1B,gCAOgB,YACf,IAAM,IAAW,KAAK,kBAAmB,GACzC,OAAM,GAAS,KAAK,kBAAmB,GAEvC,KAAM,GAAW,SACjB,wBAAS,SAAU,GAAS,OAAQ,GACpC,WAAS,OAAQ,GAAO,OAAQ,GAEhC,QACA,EAED,kCAWmB,YAClB,IAAM,IAAa,GAEnB,UAAK,GAAW,GAAI,QACnB,IAAM,IAAY,KAAK,wBAEvB,OAAK,CAEJ,SAGD,SAAI,IAAS,GAEb,aAAK,uBACJ,YAGD,sBAAO,CAAE,OAAQ,GAAW,OAC5B,GAEA,IAAI,IAAW,GAEf,MAA6B,CAAxB,MAAa,OACjB,OAAY,KAAK,oBAAqB,GAEtC,QAAK,CAEJ,SAGD,SAAW,GAAU,WACrB,EATD,KAUC,OAAY,KAAK,oBAAqB,GAEtC,YAAK,CAEJ,SAGD,SAAY,GACZ,cAAW,GACX,WAID,IAAK,KAAK,OAAQ,KAAc,uBAC/B,UAAO,CAAE,OAAQ,GAAU,SAG5B,yBAAM,IAAS,GAAY,cAAS,IAAc,EAElD,QAAO,CAAE,OAAQ,GAAW,OAE7B,GAED,0BAaW,YAAwB,4DAClC,SAAK,oBAAe,GAAS,KAC5B,mBAGD,SAAK,KAAK,OAAQ,IACjB,IAAK,qBACJ,UAEA,SAAM,IAAW,KAAK,wBAEtB,UAAoB,EAAb,MAAkB,KAAO,cAEjC,GARD,CAQO,GAAK,KAAK,UAChB,UAEA,SAAK,KAAK,qBACT,UAAO,MAAK,qBAGb,OAEA,OAAK,KAAK,mBAET,OAAc,MAEd,QAAK,GACJ,WAAK,sBAAuB,GAE7B,QAEA,IAAM,IAAW,GAAQ,iBAAmB,GAAQ,QAAU,GAAQ,QACtE,iBAAc,cAEd,IAAK,GACJ,WAAK,aAAc,GAIpB,QAEM,GAFA,IAAQ,GAEd,WAAU,GAAI,GAAM,OAAS,EAAQ,CAAL,KAC/B,QAAY,aAAc,GAAO,IAAI,KAAM,GAAO,IAEnD,MAED,IAAK,GAAQ,cAAgB,YAAyB,aAAY,uBACjE,YAAqB,KAAK,kBAAmB,GAAS,uDAAY,YACjE,SAAY,eACZ,aAHgE,4EAIjE,CAED,OAED,GAED,0DAQqB,mBAAY,wDAAU,8FAChC,G,GAAI,cAAG,GAAI,GAAW,WAAW,yBACpC,I,GAAW,GAAW,WACtB,I,GAAY,KAAK,UAAW,GAAU,IAEzB,IAAd,wCACE,OAL2C,G,mEAUpD,oCAOoB,YAGnB,IAAiC,CAA5B,MAAa,WACjB,IAAI,IAAY,GAAa,WAAY,GAGzC,eAAK,KAAK,OACT,SAAY,GAGb,eAAM,IAAgB,KAAK,oBAE3B,OACC,SAED,GAED,KAGM,GAHA,IAAgB,MACtB,QAAM,GAAa,KAAK,uBAExB,IAAU,GAAI,EAAG,GAAI,GAAa,WAAY,KAE7C,IAAM,IAAW,GAAa,WAC9B,IAAM,GAAY,KAAK,eAEvB,IACC,OAAc,SAAU,GAEzB,GAED,OACA,GAED,+BAOgB,YACf,IAAM,IAAY,KAAK,kBAAmB,GAAS,eAAgB,GACnE,aAAM,GAAU,KAAK,kBAAmB,GAAS,aAAc,GAE/D,iBAAK,KACJ,GAAO,cAAe,GAGvB,IACA,IAED,kCAY8B,eAC7B,IAAK,oBAAe,GAAW,KAC9B,mBAAO,MAAK,kBAAmB,GAAU,WAAY,cAGtD,QAAK,KAAK,OAAQ,IACjB,IAAK,qBACJ,UAAO,MAAK,kBAAmB,GAAU,WAAY,cAGtD,QAAM,IAAa,KAAK,yBACxB,IAAI,GAEC,SACJ,KAGI,uBACJ,YACA,wBAAkB,CAAT,IAAa,EAGvB,IAAO,cAAkB,GACzB,KANA,IASA,IAAmB,CAAd,MACJ,IAAM,IAAa,KAAK,qBAExB,OACC,SAAO,eAAkB,GAE1B,EAND,KAOC,IAAM,IAAa,KAAK,qBAAsB,GAAU,WAAY,GAGpE,OAAK,IAAc,GAClB,aAAO,eAAkB,GAAW,OAAQ,GAAW,MAExD,EAED,OAED,KAED,qCAasB,YACrB,OAAK,MAAK,UACT,IAAO,KAAK,4BACN,IAAK,KAAK,mBAChB,IAAO,KAAK,qCACN,IAAK,KAAK,OAChB,IAAO,KAAK,yBAGb,IACA,IAED,4CAO6B,YAC5B,OAAO,MAAK,kBAAkB,IAC9B,GAED,qDAQsC,YACrC,OAAO,MAAK,kBAAkB,IAC9B,GAED,yCAkB0B,YACzB,IAAK,qBACJ,UAGD,SAAM,IAAkB,GAGxB,mBAAK,GACJ,IAAK,CAAG,KAAK,UAEZ,UAGD,SAAM,IAAc,KAAK,4BAEzB,OAAK,GACJ,IAAM,IAAc,GAGpB,kBAAK,iBACJ,QAAO,GAEP,YAED,IACD,CACD,KAEC,IAAM,IAAc,KAAK,4BAA6B,GAEtD,eAAK,GACJ,IAAM,IAAa,GAAY,SAG/B,SAAK,iBACJ,QAEA,GAED,IACD,CAED,OACA,KAED,oCAUqB,YACpB,OAAK,iBACJ,QAAO,KAAK,2BACN,IAAK,gBACX,QAAO,KAAK,oCACN,IAAK,gBACX,QAAO,KAAK,wBAGb,IACA,IAED,2CAO4B,YAC3B,OAAO,MAAK,kBAAkB,IAC9B,GAED,oDAQqC,YACpC,OAAO,MAAK,kBAAkB,IAC9B,GAED,wCAeyB,YACxB,IAAM,IAAkB,GAGxB,sBAAK,KAAmB,KAAK,oBAC5B,IAAO,KAAK,oBAAqB,IAIlC,YAAK,CAAC,IAAmB,GAAS,QAAU,KAAK,oBAAqB,GACrE,QAAO,KAAK,oBAAqB,GAAS,QAAS,WAGpD,GACA,IAED,sBAKO,YACN,IAAM,IAAc,KAAK,2BAEzB,OAAK,IAAe,GAAY,cAAc,gBAAkB,GAC/D,QAC6B,UAAO,OAA5B,cAAS,MACjB,QAIA,QAAwB,GAAa,YAAQ,IACpC,IAA0B,GAA1B,WAAY,GAAc,GAElC,aAAgB,KAAM,CAAE,GACxB,IAED,MAMA,UAAwB,GAAa,YAAQ,QACV,GAAgB,gBADN,GACpC,MADoC,GACxB,MAEpB,MAAK,WACL,MAAK,UACL,EAID,aAAO,OAAO,SAAU,GACxB,GACD,CAED,uBAMQ,YACP,OAAO,KAAQ,GAAK,UAAY,KAChC,SAED,0BAMW,YACV,OAAO,KAAQ,GAAK,UAAY,KAChC,YAED,mCAMoB,YACnB,OAAO,KAAQ,GAAK,UAAY,KAChC,sBAED,0BAMW,YACV,OAAO,KAAQ,GAAK,UAAY,KAChC,YAED,uCAMwB,YACvB,IAAK,GACJ,YAKD,YAAM,IAAQ,SAEd,iBAAM,SAAU,GAAU,WAAY,GACtC,iBAAM,OAAQ,GAAU,UAAW,GAEnC,gBAAM,IAAW,GAEjB,oBAEA,SACA,EAED,yCAa0B,YAAO,QAChC,KAAM,GAAO,GAIb,QAAK,GAAK,eAAe,KAAM,mBAAU,IAAK,YAAY,SAAU,GAAO,KAC1E,SAGD,OAAM,IAAW,KAAK,yBACtB,OAAM,GAAW,KAAK,yBAItB,OAAI,GAAU,GAAK,MAAO,OAE1B,GAAI,GAAY,GAAK,OAAQ,EAAG,GAAK,OAAS,GAM9C,WAAM,EAAD,EACJ,GADiB,KAAS,KAAK,OAAQ,GAAS,KAAK,OAAS,QAClD,GAAU,QAAS,KAUhC,YAAY,GAAU,QAAS,QAG/B,SAAsB,CAAjB,IAAQ,OAiBZ,IAEK,OAEJ,IAGwC,GAA7B,KAAS,KAAK,OAAQ,IAEjC,MAF+C,KAAS,KAAK,OAAQ,KAGpE,CADI,KAAQ,OAAS,IAKvB,OAVM,GAAQ,OACZ,IAEK,OAQN,QAAU,OAAW,GAAQ,OAAQ,EAAG,GAAQ,OAGjD,OAAU,GAAQ,QAAS,QAC3B,QAED,OAAO,IACP,EAED,yCASgC,eAC/B,IAAK,CAAC,GACL,aAGD,SAAM,IAAa,cAClB,eAAe,GAAU,UAAa,YAAa,IAAS,UAAa,aACzE,cAAW,GAAU,UAAY,aAPO,kBAUzC,YAAqB,4DAAa,UACjC,MAAK,GAAM,KAAK,GAGf,0BACA,MAAM,GAAK,GAAM,KAAK,GAEtB,cAAO,IAER,IAnBwC,uFAqBzC,OACA,KAED,wCAayB,YACxB,IAAI,IAAO,2BAEX,OAAK,EAAqB,GAAM,KAC/B,mBAMD,OAAO,GAAK,QAAS,mBAErB,QAAM,IAAW,KAAK,wBACtB,OAAM,GAAW,KAAK,wBAItB,cAAK,CAAC,IAAY,cAAc,KAAM,GAAS,KAAK,OAAQ,GAAS,KAAK,OACzE,UAAO,GAAK,QAAS,KAIjB,KACJ,QAAO,GAAK,QAAS,KAQtB,QAAO,GAAK,QAAS,WAIrB,OAAK,CAAC,IAAY,cAAc,KAAM,GAAS,KAAK,OAAQ,GAAS,KAAK,OACzE,UAAO,GAAK,QAAS,UAMtB,MAAM,EAAD,EACJ,MADiB,KAAS,KAAK,OAAQ,QAChC,GAAK,QAAS,cAKtB,QACA,EAED,wCAS+B,eAC9B,IAAK,CAAC,GACL,iBAGD,SAAM,IAAY,GAAU,WAC5B,eAAM,GAAW,GACjB,cAAM,GAAa,GAAS,iBAAkB,GAAS,WAAY,GAAK,WAExE,cAAW,YAEX,MAAM,IAAe,GAErB,SAAsB,IAAjB,MACJ,IAAM,IAAM,cAAmB,GAK/B,OACC,IACA,CAAC,EAAqB,GAAM,KAAK,cAAe,KAChD,CAAC,EAAqB,GAAc,KAAK,cAGzC,UAED,GAED,OACA,WASF,cA1gCqB,kpBCtBrB,CAwDS,YACR,OACA,K,iiBA9DD,cACA,cACA,kBAKqB,cAUW,iBAAW,QAGzC,kEAFO,EAAM,EAQb,aAAK,gBAAkB,EACvB,CAED,YAZA,wBAeI,WAAoB,8DAClB,WACJ,GAEiB,cAAR,KAA0B,GAAQ,KAAK,uFAAoB,EAErE,GAJgB,cAAR,sFAEP,EAIF,+BAKuB,aACtB,IAAK,IAAW,wBAMf,CANwC,OAAM,KAAM,GAAQ,aAMtD,eAEP,2FAKF,mBApDqB,2HCPrB,CAsNqC,eAEpC,IACC,UADI,QAAO,SACJ,GAGR,MAEA,YAAK,GACJ,SAAM,KAAO,EAAW,EAAQ,KAAM,EAEtC,MAAK,CAAC,EACL,MAKF,KAAK,EACJ,cAAM,UAAY,EAAiB,EAAQ,UAE3C,GAAK,CAAC,EACL,WAKF,KAAK,EACJ,UAAM,MAAQ,EAAc,EAAQ,MAEpC,GAAK,CAAC,EAMP,UAAK,EACJ,UAAM,MAAQ,EAAa,EAAQ,MAEnC,GAAK,CAAC,EAKP,UACA,CAMD,CAC6B,eAE5B,OAAK,aACJ,QAAO,EAAQ,KAGhB,GAAO,IACP,CAOD,CACoC,eACnC,IAEA,UAAM,GAAM,KAAQ,GACnB,IAAM,GAAU,EAEhB,MAAK,EAAQ,aAAc,GAC1B,IAAM,GAAY,EAAQ,aAE1B,MAAK,YACJ,YAAK,EAAQ,KACZ,KAAM,KAEN,cAED,WAAM,IAAK,IACX,IAAM,KAEN,cAED,KACA,YAED,KAED,OACA,EAMD,CACiC,eAChC,IAAc,MAD4B,eAG1C,WAAuB,gDAAW,YACjC,MAAK,YAAmB,QACvB,IAAM,GAAU,EAAQ,gBADQ,sBAGhC,WAAoB,gDAAU,SAC7B,MAAK,EAAQ,KACZ,MAAM,KAEP,WAP+B,oEAShC,IACC,CADI,KAAM,aAGX,KAZD,KAYO,IAAK,EAAQ,SACnB,KAAM,KAEN,cAED,cArByC,oEAuB1C,OACA,EAOD,CACgC,eAC/B,IAEA,UAAM,GAAM,KAAQ,GACnB,IAAM,GAAU,EAEhB,MAAK,EAAQ,SAAU,GACtB,IAAM,GAAQ,EAAQ,SAEtB,MAAK,YACJ,YAAK,EAAQ,KACZ,KAAM,KAEN,cAED,WAAM,IAAK,IACX,IAAM,KAEN,cAED,KACA,YAED,KAED,OACA,E,uSA/WoB,YAOpB,aAA0B,QACzB,QAEA,kBAAK,eACL,UAED,wCA+EkB,+CAAV,IAAU,qCACjB,WAAkB,gDAAU,SAE3B,OAAoB,QAAf,QAAO,IAAoB,YAC/B,aAAO,CAAE,KAIV,IAAK,EAAK,QAAgC,QAArB,QAAO,GAAK,OAAqB,EAAK,gBAC1D,aAAK,MAAQ,CAAE,EAGhB,aAAK,UAAU,KACf,WAbgB,oEAcjB,CAED,gCA6BoB,+CAAV,IAAU,qCACnB,WAA6B,mDAAU,qCACtC,WAAuB,KAAK,2DAAY,SACvC,MAAM,EAAQ,EAAmB,EAEjC,MACC,QACC,SACA,UACA,QAGF,EAXqC,8EAYtC,CAbkB,8EAenB,OACA,KAED,mCAWC,QAAgB,yBADM,mBAAV,IAAU,qCAGtB,WAA6B,mDAAU,qCACtC,WAAuB,KAAK,2DAAY,SACvC,MAAM,EAAQ,EAAmB,EAEjC,GACC,KAAQ,KACP,SACA,UACA,QAGF,GAXqC,8EAYtC,CAfqB,8EAiBtB,OAAwB,EAAjB,GAAQ,OAAa,EAC5B,IAED,yCAOC,IACC,CADI,QAAK,UAAU,aAIpB,SAAM,GAAU,KAAK,UACrB,GAAM,EAAO,EAEb,WAA2B,UAAlB,QAAO,IAAyB,GAAQ,EAAG,YAAgB,SAAa,EACjF,UASF,cAjNqB,kpBCErB,iiBAJA,cACA,eACA,WAkBqB,cACP,aAAW,QAGvB,kEAMA,aAAK,QACJ,CACA,aACA,iBACA,yBAQD,cAAK,aAAe,EAOpB,eAAK,SAAW,EAQhB,WAQA,kBAAK,kBAAoB,GAAI,QAAO,iBAAkB,EAAK,aAAa,KAA/C,IACzB,CAED,YA/CA,qCAoDC,MAAK,aAAc,KAAK,kBACxB,cAED,wBAGS,WACR,MAAK,aAAa,KAElB,GAAK,KACJ,gBAAK,kBAAkB,QAAS,EAAY,KAE7C,QAED,iCAIC,iFADQ,yBAGR,WAA0B,KAAK,2DAAe,SAC7C,WAAK,kBAAkB,QAAS,EAAY,KAC5C,iBALO,oEAMR,CAED,kCAIC,kFAEA,WAAK,kBACL,YAED,kCAIC,kFAEA,WAAK,kBACL,YAED,6BAMc,WAEb,IAIA,CAJK,KAAa,WAIZ,GAAe,KAGrB,aAAM,EAAe,GACrB,KAAM,EAAkB,GAGxB,KAb4B,eAc5B,WAAwB,gDAAe,YACtC,MAAuB,WAAlB,KAAS,KACb,IAAM,GAAU,EAAa,4BAA6B,EAE1D,QAAK,GAAW,CAAC,KAAK,mBACrB,MAAgB,IAEjB,EAGF,WAxB4B,yFAyB5B,WAAwB,iDAAe,aACtC,MAAuB,eAAlB,MAAS,KACb,IAAM,IAAO,EAAa,yBAA0B,GAEpD,QAAK,IAAQ,CAAC,EAAgB,IAAK,GAGlC,UAAa,IAAK,GACjB,MACA,eAAS,GACT,aAAS,2BAAsB,GAC/B,aAMG,KAAK,CAAC,IAAQ,uBAAkB,GACpC,WAAgB,IAAK,EAAa,4BAA6B,GAAS,OAEzE,YAMF,WAnD4B,qEAoD5B,IAAsB,OApDM,kBAsD5B,YAA2B,EAAa,4DAAW,YAClD,WAAK,SAAS,WAAY,OAAQ,GAClC,SAAc,KACd,aAzD2B,mGA2D5B,YAA2B,wDAAkB,WAC5C,MAAM,GAAa,EAAa,2BAChC,IAAM,GAAe,GACrB,cAAM,GAAkB,EAAa,kBAErC,SAAK,SAAS,WAAY,WAC1B,OAAc,KACb,MACA,uBAAa,MAAM,KACnB,gBAAa,MAAM,KACnB,SAED,IAGD,WA1E4B,4EA2E5B,IAAM,IAAe,EAAc,GAAI,OAAO,cAE9C,eAAI,GAEJ,QAAK,IAAgB,GAAa,WAMjC,IAAM,IAAsB,EAAa,kBAAmB,GAAa,WAAY,GACrF,cAAM,GAAqB,EAAa,kBAAmB,GAAa,UAAW,GAGnF,aAAK,IACJ,QAAgB,MAChB,WAAc,SACd,OAAc,SAEf,IAED,MAAK,SAAS,KAAM,YAAa,GAIjC,SAAK,SACL,SAED,mCASoB,WACnB,IAAI,GAGJ,WAA8B,KAAzB,KAAS,aAAyD,CAAjC,KAAS,aAAa,QAC3D,CAD2E,IAAS,WAAW,WACnF,KAAK,aAAa,UAAW,EAAS,WAAY,GAC7D,CAIF,mBAAO,GAAa,EAAU,GAAI,UAClC,eAsCF,mBAvQqB,+lBCpBrB,iiBAFA,iEAEM,EAAiB,OAEvB,YAQqB,cAOP,aAAO,QAGnB,kEAMA,aAAK,SAAW,OAChB,CAED,YAZA,wBAeI,WAAoB,8DAClB,WACJ,GAEiB,aAAR,KAAyB,GAAQ,KAAK,uFAAoB,EAEpE,GAJgB,aAAR,sFAEP,mCAKD,OAAO,MAAK,kBACZ,E,MAEa,WACb,MAAK,kBAAmB,EACxB,+BApCmB,kpBCRrB,CAyDS,YACR,OACA,K,iiBA/DD,cACA,cACA,kBAMqB,cAUW,iBAAW,QAGzC,kEAFO,EAAM,EAQb,aAAK,gBAAkB,EACvB,CAED,YAZA,wBAeI,WAAoB,8DAClB,WACJ,GAEiB,WAAR,KAAuB,GAAQ,KAAK,uFAAoB,EAElE,GAJgB,WAAR,sFAEP,EAIF,+BAKuB,aACtB,IAAK,IAAW,wBAMf,CANwC,OAAM,KAAM,GAAQ,aAMtD,eAEP,qFAKF,mBApDqB,kpBCCrB,CAmEgB,YACf,OAAO,eAA0B,SAAU,CAAE,MAAO,SAAW,cAC/D,O,ySAFe,yBA5EhB,eACA,eACA,eACA,OACA,SACA,eACA,eACA,mBASqB,0IACpB,uBAIC,IAAM,GAAS,KACf,OAAM,EAAM,EACZ,SAAM,EAAS,EACf,OAAM,EAAO,EACb,KAAM,EAAU,EAChB,QAAM,EAAI,EAGV,IAAO,aACP,WAAO,kBACP,mBAAO,MAAO,CAAE,KAAM,QAA8B,yBAAS,OAC7D,YAAO,QAAQ,IAGf,yBAAsB,IAAK,EAAK,aAC9B,YAAa,SACb,UAAW,iBAAM,IAGnB,mBAAsB,IAAK,EAAQ,aACjC,YAAa,SACb,UAAW,iBAAM,oBAAe,IAA0B,EAAG,gBAE/D,uCAA+B,CAAE,EAAQ,YAAa,EAAK,aAC3D,2CAA+B,CAAE,EAAQ,YAAa,EAAK,aAG3D,uBAAqB,IAAK,EAAK,aAC7B,KAAM,CAAE,KAAM,MAAO,UAAW,CAAE,IAAK,OACvC,UAAW,kBAAa,eAAkB,QAAS,CAAE,IAAK,EAAU,aAAc,QAEpF,KAAK,YAAY,GAAI,sCAAsC,CAAE,SAC7D,UAAK,YAAY,GAAI,qCAAqC,CAAE,SAK5D,wBAAqB,IAAK,EAAK,aAC7B,KAAM,CAAE,KAAM,MAAO,UAAW,CAAE,IAAK,OACvC,UAAW,CAAe,oBAC1B,YAAa,kBAAe,CAAE,IAAK,MAAO,MAAO,EAAU,aAAc,OAG3E,KAAK,YAAY,GAAI,iBAAkB,KACvC,+BAUF,mBA3DqB,kpBCXrB,iiBALA,eACA,eACA,gBACA,WASqB,cAIP,aAAS,0EACd,EAEP,WAAK,OACL,KAAM,GAAc,EAAO,QAG3B,cAAK,SAAU,EAAO,GAAG,aAAc,mBAAqC,iBAC3E,CAAK,GAAO,CACX,KAED,QAGD,KAAO,SAAU,EAAa,SAAU,UACvC,IAAM,GAAkB,EAAY,UAEpC,qBAAyB,CAApB,EAAqB,oBACzB,MAED,QAND,EAMG,CAAE,SASL,UAAK,iBAAmB,cAAU,UACjC,GACA,SAFuB,EAErB,KACH,CAED,YAlCA,oCAuCC,aAAK,OAAO,GAAG,aAAa,IAAK,KAEjC,uFACA,KAED,iCAIC,MACA,eAAK,OAAO,GAAG,KAAK,SAAU,UAAO,OAAQ,SAAU,KACvD,uBAAK,OAAO,GAAG,KAAK,SAAU,UAAO,OAAQ,SAAU,KACvD,iBAED,iCAIC,MACA,YAAK,OAAO,GAAG,KAAK,cAAe,UAAO,OAAQ,SAAU,KAC5D,uBAAK,OAAO,GAAG,KAAK,cAAe,UAAO,OAAQ,SAAU,KAC5D,iBAED,kCAMC,IAAM,GAAc,KAAK,OAAO,QAChC,KAAM,EAAmB,UAEzB,sBAAK,SACJ,QAAQ,EAAY,aAAa,UAAW,EAAY,UACxD,gCAAW,CAAE,EAAiB,gBAAiB,EAEhD,+CA/EmB,kpBCNrB,mSANA,eACA,cACA,gBACA,OACA,oBASqB,cAWP,aAAS,QAGrB,kEAMA,aAAiB,aACjB,CAED,8BAtBA,2BAIC,OACA,oBAKD,2CAeY,OACX,KAAM,EAAS,KACf,OAAM,EAAgB,EAAO,OAAO,IAGpC,oBAAuB,CAAlB,EAAmB,EAIxB,WAAM,GAAQ,KAAK,OAAS,cAC5B,GACA,KAAM,EAAU,MAGhB,yBAAS,OAAQ,EAAQ,SACxB,YACC,OAKF,iCAAS,OAAQ,EAAM,SACtB,YACC,CAQF,kEAAS,KAAM,EAAM,QAAQ,IAG7B,MAAS,KAAM,EAAQ,eAAgB,EAAe,EAAO,GAG7D,qBAAS,KAAM,EAAO,GAAG,KAAK,KAAK,IAGnC,SAAK,SAAU,KAAK,OAAO,QAAQ,KAAM,SAAU,UAClD,CAAK,EACJ,aAED,MAJD,EAIG,CAAE,SAGL,aAAK,SAAU,EAAO,GAAG,aAAc,mBAAqC,iBAC3E,CAAK,CAAC,GAAO,GAAM,EAClB,aAED,MAED,GAAO,QAAQ,IACf,GAED,+BAIC,IAAM,GAAkB,KAAK,OAAO,QAAQ,KAAK,UAEjD,qBAAK,GAAmB,oBACvB,SAAK,OAEN,QAED,+BAIC,MAAK,OACL,qCAlGmB,kFCVrB,CAmBsC,iBAGrC,QAAI,GAAO,EAAS,WAAc,EAAW,EAAS,WAAa,EAEnE,WAAI,EAEJ,KAAQ,GAAQ,EAAK,aAAc,aAClC,KACA,IAAO,EAAW,EAAK,gBAAkB,EAG1C,kBAAO,GAAW,UAAS,SAAU,EAAU,EAAW,SAAW,SACrE,C,oDAxBuB,QAAyB,aAChD,OAAO,eAAW,EAAY,EAAiB,MAAQ,EAAY,EACnE,MAQD,EArBA,eACA,8mBCCA,kDAFA,oEASqB,qRCPrB,mSAFA,oEAoBqB,YAOpB,CAAa,aAAkB,+EAO9B,QAAK,SASL,OAAK,KAQL,OAAK,MAQL,OAEA,iBAAK,gBAAwC,iBAC5C,GAAK,SACL,EAED,OAAK,yBAA2B,UAC/B,GACA,QAED,IAAI,GAAI,SAAU,KAElB,mBAAI,UAAU,GAAI,eAAgB,KAElC,4BAAI,UAAU,GAAI,mBAAoB,KAsBtC,yBAED,kBAcA,cAMO,WACN,MAAK,MAEL,EAAK,KAAK,MAAQ,KACjB,YAED,UAED,+BAIC,MACA,WAED,iCAIC,MACA,WAED,kCAIC,MAAK,SAAS,IAAK,SAAU,KAC7B,sBAAK,SAAS,UAAU,IAAK,eAAgB,KAC7C,+BAAK,SAAS,UAAU,IAAK,mBAAoB,KACjD,yBAED,yBAWU,WAET,CAAmB,aAAd,IAAM,MAAyB,IAAU,KAAK,QAClD,CAD4D,gBAAO,EAAM,uBAG1E,UAED,uBAMQ,WACP,EAAK,CAAC,KAAK,UACV,UAAK,OACL,UAAK,KAEN,gCAzEK,OAAC,MACL,cAAK,OAAS,KAAK,SAGpB,SAAO,KACP,0BAzFmB,iFCNG,mBAAwE,gDAC/F,iBAAQ,SAAU,SAAU,UAAa,aAAqB,SAC7D,OAAK,KAAe,CAAC,EAAe,SACnC,IAED,GACD,E,iFCbuB,QAAgB,WACvC,OAAO,GAAK,aAAa,GAAI,WAC5B,CAAK,EAAI,SAAW,EACnB,WAED,gBACD,E,iFCLuB,mBAA0B,SACjD,OAAK,SAAU,EAAK,QAAS,SAAiB,aAC7C,GACA,mBAAK,KACL,SAHD,EAGG,CACH,e,kpBCVD,mSAHA,eACA,iBAOqB,cAIP,aAAS,QAGrB,kEAMA,MAAK,IAQL,WAAK,IAQL,QAAK,IAEL,kBAAM,GAAO,EAEb,sBAAK,SAAW,cACf,KACA,mBACC,MACA,OAIA,sCAAI,EAAK,GACT,kBAAa,EAAK,GAKpB,oBAAK,GAAI,eAAqC,eAC7C,GAAK,QAAQ,MAAQ,GACrB,EAFD,GAGA,CAED,YAhDA,sCAoDC,MAAK,QACL,QAED,gCAIC,MAAK,QACL,oCAhEmB,kpBCFrB,mSANA,eACA,cACA,eAEA,mBAOqB,cAOC,eAAY,0EAGhC,IAAM,cAAkB,KAQxB,oBAAK,IAQL,WAAK,IAOL,WAAK,UAAY,EAAK,iBAOtB,KAAK,UAAY,EAAK,iBAAkB,EAExC,KAAK,SAAW,cACf,KAEA,eAAU,CACT,EAAK,UACL,EAAK,aAGP,CAED,YA7CA,sCAoDkB,WACjB,IAAM,GAAY,cAAe,KAEjC,iBAAU,IACV,IAAU,KAAM,QAAS,GAAI,KAE7B,SACA,CAED,iCAQ6B,aAC5B,IAAM,GAAY,GAAI,GAAW,KAEjC,iBAAU,GACV,IAAU,KAAM,SAAU,GAE1B,MACA,CAED,iCAIC,MAAK,UACL,QAED,gCAIC,MAAK,UACL,oCAjGmB,kpBCFrB,mSATA,eACA,cACA,OACA,kBACA,gBACA,gBACA,gBACA,kBAEM,EAAO,cACb,MAAM,EAAwB,UAAO,SAErC,KAKqB,cAIP,aAAS,0EAGrB,IAAM,EAAO,EASb,sBAAK,IAAK,MASV,KAAK,IAAK,OAmBV,KAAK,IAAK,WASV,cAAK,IAUL,kBAAK,IAQL,kBAAK,IAgBL,eAAK,QAAU,EAEf,qBAAK,SAAW,cACf,KACA,iBACC,OAAO,CACN,mBACA,EAAK,GAAI,WAAY,sCAA8B,CAAnD,GACA,EAAK,GAAI,YAAa,4BACtB,EAAK,GAAI,YAAa,+BACtB,EAAK,GAGN,oBACC,KAAK,EAAK,GAAI,MACd,QAAM,EAAK,GAAI,OAIjB,cAAU,EAEV,WAEC,WAAW,cAFR,MAKL,CAED,YA/GA,oCAqHC,MACA,YAED,+BAMC,MACA,YAED,yBAWU,WACT,MAEA,UAAM,GAAmB,EACzB,iBAAM,EAAkB,OAAe,UACtC,SAAS,KACT,kBAAW,CACV,EAAiB,wBACjB,EAAiB,wBACjB,EAAiB,wBACjB,EAED,iCACA,EAAe,kBACb,KAEmC,yBAAoB,GAAlD,QAAK,UAAY,KAEzB,YAAO,OAAQ,KAAM,CAAE,IAAF,EAAO,KAAP,GAAa,SAClC,IAED,oBAcK,WAAU,OACd,UAEA,aAAK,0BAA4B,UAChC,CAAK,EACJ,YAAK,cAEL,KAED,cAED,OAAK,cAKL,QAAK,SAAU,KAAM,mBAAoB,KACzC,0BAED,gCAIC,CAAK,KAEJ,iCAIA,oBAAK,cAAe,KAAM,mBAAoB,KAE9C,gCAAK,0BAEL,UAED,OAED,8BAOe,WAAU,OACxB,UAAK,SAEL,MAAM,GAAU,EAAQ,SACxB,EAAI,EAGJ,KAAK,cAAW,EACf,UAAgB,EACV,OAAK,cAAS,EACpB,YAAgB,EAAQ,OAIzB,8BAAK,SAAU,UAAO,SAAU,SAAiB,cAChD,IAAM,IAAe,GAGrB,OAAM,GAAuB,GAAiB,GAAa,SAG3D,GAAM,GAA8B,GAAa,SAGjD,IAAK,IAAwB,IAA+B,CAC3D,MAAK,SAEN,EAbD,EAaG,CAGH,qBAAK,SAAU,UAAO,OAAQ,SAAU,UACvC,GAAK,SACL,EACD,EAED,uCAMC,MAAK,cAAe,UAAO,SAC3B,eAAK,cAAe,UAAO,OAC3B,mBAGF,mBA7QqB,EA6RrB,EAAiB,sBAEjB,GAiBA,EAAiB,oBAEjB,GAsGA,EAAiB,iBAChB,yBAAyB,kBACxB,KAAK,EAAW,OAAS,EACzB,yBAAM,EAAW,KAAO,EAAW,MAAQ,EAAI,EAC/C,2BAAM,WAGP,0BAAuC,aAAd,OACxB,KAAK,EAAW,OAAS,EACzB,yBAAM,EAAW,KAAO,EAAW,MAAQ,EAAI,EAAY,MAAQ,EACnE,2BAAM,WAGP,0BAAuC,aAAd,OACxB,KAAK,EAAW,IAAM,EAAY,OAAS,EAC3C,yBAAM,EAAW,KAAO,EAAW,MAAQ,EAAI,EAC/C,2BAAM,WAGP,0BAAuC,aAAd,OACxB,KAAK,EAAW,IAAM,EAAY,OAAS,EAC3C,yBAAM,EAAW,KAAO,EAAW,MAAQ,EAAI,EAAY,MAAQ,EACnE,2BAAM,WAGP,sBAAmC,aAAd,OACpB,KAAK,EAAW,OAAS,EACzB,yBAAM,EAAW,MAAQ,EAAY,MACrC,OAAM,UAGP,sBAAmC,aAAd,OACpB,KAAK,EAAW,IAAM,EAAY,OAAS,EAC3C,yBAAM,EAAW,MAAQ,EAAY,MACrC,OAAM,UAGP,sBAAmC,aAAd,OACpB,KAAK,EAAW,IAAM,EAAY,OAAS,EAC3C,yBAAM,EAAW,KAAO,EAAY,MACpC,OAAM,UAGP,sBAAmC,aAAd,OACpB,KAAK,EAAW,OAAS,EACzB,yBAAM,EAAW,KAAO,EAAY,MACpC,OAAM,UAGP,kBAA+B,aAAd,OAChB,KAAK,EAAW,OAAS,EACzB,yBAAM,EAAW,KAAO,EAAW,MAAQ,EAAI,EAAY,MAC3D,OAAM,UAGP,kBAA+B,aAAd,OAChB,KAAK,EAAW,IAAM,EAAY,OAAS,EAC3C,yBAAM,EAAW,KAAO,EAAW,MAAQ,EAAI,EAAY,MAC3D,OAAM,UA1D4B,mpBCjapC,iiBARA,aACA,cACA,eACA,gBACA,eACA,gBACA,mBAOqB,cAIP,aAAS,QAGrB,kEAMA,aAAK,MAAQ,EAQb,qBAAK,aAAe,MAQpB,UAAK,WAAa,MASlB,UAAK,aAAe,cACnB,YAAY,EACZ,mBAAc,EACd,8BAAkB,EAClB,mBAEC,CAGA,sCAIF,0CAAK,SAAW,cACf,KACA,iBACC,CAKD,+BAAU,EAEV,SAEC,WAAW,cAIb,QAAK,MAAM,GAAI,MAAc,aAC5B,GAAK,aAAa,IAAK,EACvB,QAED,KAAK,MAAM,GAAI,SAAiB,aAC/B,GAAK,aAAa,OAAQ,EAC1B,QAFD,GAGA,CAED,YAxEA,oCA6EC,aAAK,WAAW,SAAU,KAE1B,uFACA,KAED,gCAIC,MAAK,aACL,YAED,+BAQwB,aAAU,OAC5B,WACJ,GAGM,QAAQ,IAAK,EAAO,IAAK,WAC/B,IAAM,GAAoB,GAAR,IAAc,MAAd,QAA2C,EAAQ,OAErE,SAAO,GAAK,MAAM,IAClB,EACD,IARQ,QAGR,sCA1GmB,utBCXrB,CAwGyC,eAIxC,IAAM,GAAc,EAAyB,CAAE,GAK/C,KAAY,KAAW,aAAL,OAAY,GAAE,MAAM,SAAU,EAAE,OAAU,CAAC,EAAI,CAGjE,OAAM,GAAI,GAAI,EAAG,EAAI,EAAY,OAAQ,IACxC,IAAM,GAAI,EAAa,EACvB,GAAM,EAAI,EAEV,GAAK,EAAE,IAAI,WAAY,EACtB,WAAE,IAAM,EACR,MAAY,OAAQ,EACpB,GAED,IAED,OACA,EAED,CACiD,eAAS,oBACzD,WAAqB,mDAAS,qCAC7B,WAAyB,EAAM,8DAAa,KAG3C,UAAM,GAAI,GAAI,IAAG,EAAI,EAAO,OAAQ,IAE/B,cAEJ,GAAS,EACR,UACC,WAAS,EAAQ,GAAI,2BACpB,EAAU,SACV,EAAU,MAGX,cAED,UACA,WACA,aACC,aAAS,EAAQ,GAAI,sBACpB,EAAU,eACV,EAAU,eACV,EAQH,aACC,MAAO,gBAAQ,EAAG,YAGlB,OAAI,EAAI,EAAO,OAEhB,EACD,CAtC4B,8EAuC7B,CAxCwD,8EA0CzD,OACA,E,ySA3Ce,0BArIhB,mEAQqB,cACP,aAAS,QAGrB,kEASA,aAQA,YAAK,gBAAkB,GAGvB,WAAK,eACL,CAED,YA1BA,8BAgCU,WACT,IAAM,GACL,QAAQ,MAAM,KAAM,KAAK,OAAO,SAAS,UACzC,wBAAY,KAAK,OAAO,SAAS,UAGlC,iBAAK,OAAO,KAAM,CAAE,MAAF,EAAS,UAC3B,SACA,cAED,qCAIC,MACA,eACA,cAED,wCAIC,OACA,EADO,MAAK,OAAO,MAGpB,kCAOuC,eACtC,IAAM,GAAW,KAAK,OAGtB,SAEA,KAN+C,eAO/C,WAAqB,mDAAS,SAC7B,MAAM,EAAoB,EAAyB,EAMnD,GAAM,EAAmB,EAAkB,KAC1C,kBAAS,GAAM,MAAM,MAAQ,EAAS,SAIvC,GACC,KAAgB,KAEjB,EAED,UAxB+C,oEAyB/C,CAAK,EACJ,UAAS,UAAU,UAAW,EAE/B,YAIF,mBAjGqB,iFCAG,QAAO,WAC9B,IAAI,GAAQ,EAD6B,eAGzC,WAAiB,gDAAW,SAC3B,MACA,YALwC,oEAOzC,OACA,E,iFCFuB,QAAY,eAEnC,CA+BgB,aAGf,IAAM,GAAK,CAAE,EAAI,EAAY,YAA0B,CAAC,EAAf,EAAI,EAAI,IAEjD,EAAM,EAAK,EAAI,EAAY,YAA0B,CAErD,EAFuC,EAAI,EAAI,GAEzC,EAAM,EAAK,EAAK,CAAC,EAGvB,EAAK,EAAI,EACR,OAAI,GAAM,EAAI,EAAI,GAAM,MAIpB,IAAC,EACL,OAID,SAAI,GAAI,KAAM,EAAK,EAAK,EAGxB,UAAI,GAAS,SAAK,EAClB,GAAI,EAAI,EAGR,EAAQ,EAAI,GAAK,EAAI,GAAK,EAAK,EAAG,GAAK,EACtC,KACA,IAEA,MAAI,GAAI,KAGT,eACA,EAED,GApEM,GAAoB,aACzB,OAAO,KACP,CAGD,KAAI,GAGJ,KAAK,EAAE,OAAS,EAAE,OACjB,IAAM,GAEN,IACA,IAGA,IACA,WACA,QACA,QACA,WAGD,YAAM,GAAI,EACV,OAAM,EAAI,EACV,OAAM,EAAQ,EAGd,EAEA,KAEA,KAqCI,EACJ,EAAI,MAGJ,KAEC,KAAM,EAAI,CAAC,EAAG,EAAI,EACjB,MAAI,GAAM,EAIX,OAAM,EAAI,EAAQ,EAAG,EAAI,EACxB,MAAI,GAAM,EAKX,KAAI,GAAU,EAEd,GACA,GAhBD,OAgBU,EAAI,KAId,SAAO,GAAI,GAAQ,MACnB,E,iFClGuB,QAAc,WACrC,QAGA,MAAQ,GAAQ,EAAK,UAAY,KAChC,iBAAM,QACN,KAAO,EAGR,iBACA,E,iFCfuB,QAAS,WAChC,OACA,gBADO,SAAO,UAAU,SAAS,MAAO,E,iFCAjB,QAAQ,WAS/B,OAAO,mBAAS,GAAQ,CACxB,C,kFCtBD,kDAJA,gBACA,kBAGI,EAAM,wBAAgB,iBAEX,kFCFf,kDAJA,gBACA,kBAGI,EAAM,wBAAgB,iBAEX,iFCNf,8DAGA,KAAI,EAAa,UAAK,qBAEP,oECLf,aAqBe,QAXe,eAC5B,IAAI,GAAS,EACb,aACU,KAAR,EAAe,EAAK,KACpB,GAAQ,MAAO,EAAK,KAAK,EAAS,EAClC,IAAQ,MAAO,EAAK,KAAK,EAAS,EAAK,GAAI,EAC3C,IAAQ,MAAO,EAAK,KAAK,EAAS,EAAK,GAAI,EAAK,GAAI,EAEtD,IAAO,EAAK,MAAM,EACnB,sECnBD,aAyBe,QAboC,iBACjD,IAAI,GAAQ,CAAC,EACT,EAAS,EAEb,WAAI,GACF,MAAc,EAEhB,MAAS,IACP,KAAc,EAAS,EAAa,EAAM,GAAQ,EAEpD,SACD,yFCJD,CA0DmE,gCACjE,IACA,OACE,QAAS,GAAS,GAAW,GAAO,GAAK,GAAQ,IAAS,GAE5D,KACE,kBAEF,OAAI,CAAC,eACH,UAEF,OAAI,IAAQ,cACZ,QACE,GAKA,IAAI,IAAM,cAAO,IACb,GAAS,IAAO,IAAW,IAE/B,MAAI,cACF,UAAO,cAAY,GAErB,OAAI,IAAO,IAAa,IAAO,IAAY,IAAU,CAAC,GACpD,IAAI,eACF,UAAO,IAET,YAAS,cAAyB,MAClC,IAAI,CACF,SAAO,cAAY,GAAO,cAAW,GAExC,IARD,KASE,IAAI,CAAC,GACH,UAAO,IAET,SAAS,cAAe,GAAO,GAAK,EACrC,GACF,CAED,YA3BW,cACT,IAAI,CACF,SAAO,cAAU,GAEpB,SAuBS,GAAQ,MAClB,YAAI,IAAU,GAAM,IACpB,OACE,SAEF,UAAM,IAAI,GAEV,IAAI,CACF,MAAI,IAAQ,GAAS,cAAW,IAAS,eAG3C,wBAAU,IAAS,GAA0B,eAC3C,CACE,QACA,MAAW,GAEb,mBAAY,GAAQ,GAAK,EAAU,GAAU,GAAQ,GAAQ,GAAY,GAAK,GAC/E,IACD,GACD,oDAxID,iBACA,gBACA,eACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,gBACA,gBACA,iBACA,sBAGI,GACA,qBAIA,GAAU,oBACV,GACA,6BAEA,GACA,kBAmBgB,MACpB,GAAc,IAAyB,GA5BnC,kBA6BU,GAdV,wBAc0C,GAb1C,qBAcU,GA7BV,oBA6BmC,GA5BnC,iBA6BU,GAdV,yBAcsC,GAbtC,yBAcU,GAbV,sBAamC,GAZnC,uBAaU,GAZV,uBAYoC,GA3BpC,gBA4BU,GA5BE,mBA4BW,GAAc,IAC3B,GA1BV,mBA0BqC,GAzBrC,gBA0BU,GAzBV,mBAyBqC,GAxBrC,mBAyBU,GAfV,uBAeoC,GAdpC,8BAeU,GAdV,wBAckD,GAXtD,2BAYc,GArCC,kBAqCW,GAAc,IAGxC,GA5BI,iCAuGW,oEC1If,aAsBe,QAZ0B,eACvC,QAAI,GAAS,EAAM,OACf,EAAQ,EAAY,EAAS,CAEjC,EAAQ,EAAY,IAAY,IAC9B,MAAI,EAAU,EAAM,GAAQ,EAC1B,SAGJ,SAAO,CACR,gSCpBD,6DAGA,KAAI,EAAc,OAGlB,UAAI,EAAiB,EAErB,iBAgBe,QARU,aAIvB,OAAO,GAAe,KAAK,EAAQ,IACf,QAAjB,sBAAO,sBAAsB,IAAO,IACxC,IADkD,iBAAa,oFCbhE,kDARA,gBACA,eACA,eACA,eACA,gBACA,kBAGI,EAAa,MAGjB,UAAI,EAAS,EAEb,SAoCe,QA3BY,aACzB,QAAI,GAAS,EAAQ,EAAQ,OAAS,EAClC,EAAY,EAEhB,IACM,UAAQ,EACZ,GAAI,GAAU,GAAa,IAAU,EACnC,IAAI,GACJ,KAAI,cACF,KAAO,KAAK,EAAO,EACpB,OACI,IAAI,CAAC,cAAM,EAAO,GACrB,IAAI,GAAO,cAAS,GAChB,EAAS,cAAO,EAEpB,GACE,IADE,WACK,GAAO,cAAM,cAEvB,IAEC,YAAO,GAAM,cAEhB,GAEH,OACD,mFC/CD,8DAEA,OA2Be,QAlBgB,aAC7B,QAAI,GAAQ,CAAC,EACT,EAAS,EAAM,OACf,EAAW,EAGf,KAAS,IAAQ,GACf,IAAI,GAAQ,EAAM,GACd,EAAW,EAAW,EAAS,GAEnC,KAAI,CAAC,GAAS,CAAC,cAAG,EAAU,GAC1B,IAAI,GACJ,IAAO,KAAwB,CAAV,KAAc,EACpC,CACF,CACD,OACD,sEC3BD,aAmBe,QAVO,aACpB,QAAI,GAAQ,CAAC,EACT,EAAS,MAEb,GAAS,IACP,KAAO,GAAS,EAElB,SACD,sECjBD,aAsBe,QAbuB,eACpC,QAAI,GAAQ,CAAC,EACT,EAAS,EAAM,OACf,EAAa,EAAO,OAGxB,OAAS,IACH,KAAQ,EAAQ,EAAa,EACjC,YAAW,EAAQ,EAAM,GAE3B,SACD,sECpBD,aAmBe,QAXY,aACzB,IAAI,GAAQ,CAAC,EACT,EAAS,EAEb,eAAU,EAAQ,MAClB,IAAS,IACP,KAAM,GAAS,EAEjB,SACD,oFCbG,kDAJJ,gBACA,qBA+Ee,QA3DoD,qBACjE,IAAI,GAAsB,EAf5B,EAgBM,EAAY,EAAM,OAClB,EAAY,EAEhB,UAAI,GAAa,GAAa,EAAE,GAAa,EAC3C,GAGF,YAAI,GAAU,EAAM,IACpB,MACE,QAAO,IAET,KAAI,GAAQ,CAAC,EACA,KACT,EAAkB,EA/BpB,EA+B8C,MAEhD,qBAAM,IAAI,EAGV,GAAS,IAAQ,GACf,IAAI,GAAW,EAAM,GACjB,EAAW,EAEf,MACE,KAAI,GAAW,EACX,EAAW,EAAU,EAAU,EAAO,EAAO,EAAO,GACpD,EAAW,EAAU,EAAU,EAAO,EAAO,EAEnD,MAAiB,WACf,IACE,EAEF,SACA,KACD,KAED,IACE,MAAI,CAAC,cAAU,EAA0B,aACnC,IAAI,CAAC,EAAK,IAAI,KACT,IAAa,GAAY,EAAU,EAAU,EAAU,EAAY,EACtE,UAAO,GAAK,IAEf,EALA,GAMH,CACA,KACD,KACF,MAAM,IAAI,EACL,IAAa,GACX,EAAU,EAAU,EAAU,EAAY,EAAS,IAEzD,CACA,KACD,KACF,CACD,UAAM,UACN,GACD,+BCpEmB,aAGlB,OAAO,GAAsB,OAC9B,GAGG,uCAjBJ,WACA,GAAI,GAAwB,OAE5B,sBAeE,MAAa,UACX,CACD,QACF,aAEc,kFCjBf,kDANA,iBACA,gBACA,eACA,eACA,qBAmBe,QATI,WACjB,IAAI,GAAS,EAAS,EACtB,oBAAI,cAAS,KACR,cAAQ,IAAW,cAAS,IAAW,cAC1C,IAAO,cAAU,EAEnB,QACD,wECrBD,aAsBe,QAbuB,eACpC,QAAI,GAAS,EAAM,OACf,EAAQ,GAAa,EAAY,EAAI,CAEzC,KAAQ,EAAY,IAAY,IAC1B,QAAQ,EACZ,GAAI,IACF,QAGJ,SAAO,CACR,kFCpBD,8DAEA,OAYe,QAJa,WAC1B,OAAO,KAAU,GAAS,CAAC,cAC5B,sECZD,aAmBe,QAVuB,aACpC,OAAgB,YACd,OAGA,KAHI,KAGG,EAAO,KAAS,IACP,YAAc,IAAO,QACtC,GACF,qECjBD,WACA,GAAI,GAAe,SAAS,UAE5B,WAmBe,QAZG,WAChB,IAAY,IAAR,IACF,IACE,OAAO,GAAa,KACrB,EAFD,CAES,QAAK,CACd,IACE,OAAQ,GACT,EAFD,CAES,QAAK,CACf,CACD,OACD,oFCfD,kDALA,gBACA,eACA,kBAGI,EAAa,KAGjB,OAyCe,QApBa,eAC1B,IAAK,EAAQ,cAAe,EAAO,EAAM,GACvC,YAEA,EAAO,SAAU,cAAU,GAE7B,MAAI,GAAS,EAAQ,EAAM,OAC3B,KAAI,CAAC,GACH,CADa,GAGf,gBAAI,GAAQ,EACR,EAAW,EACX,EAAS,MAAM,EAAW,EAE9B,IAAO,EACL,KAAO,KAAc,cAAU,EAAO,EAAQ,GAEhD,SACD,sEC/CD,aA8Be,QAfE,WACf,QAAI,GAAQ,CAAC,EACT,EAAS,EAAQ,EAAM,OAAS,EAChC,EAAW,EAGf,OAAS,IACH,KAAQ,EACZ,GACE,MAAO,KAGX,SACD,oFCvBD,kDALA,gBACA,eACA,gBACA,oBAsCe,QAdN,UACP,QAAI,GAAS,UAAU,OACnB,EAAO,MAAM,EAAS,EAAS,EAAI,GACnC,EAAQ,UAAU,GAClB,EAEJ,EACE,OAAK,EAAQ,GAAK,UAEpB,SAAO,GACH,cAAU,cAAQ,GAAS,cAAU,GAAS,CAAC,GAAQ,cAAY,EAExE,wFCfD,kDAxBA,gBACA,eACA,eACA,iBAqBI,EAAa,cAAqB,aACpC,OAAO,cAAkB,GACrB,cAAe,EAAO,cAAY,EAAQ,IAE/C,eAJgB,aAMF,kFCCf,kDA/BA,gBACA,eACA,eACA,eACA,eACA,iBA0BI,EAAe,cAAqB,aACtC,IAAI,GAAW,cACf,SAAI,cACF,KAEF,UAAO,cAAkB,GACrB,cAAe,EAAO,cAAY,EAAQ,IAAsB,YAAO,cAE5E,MARkB,aAUJ,kFCdf,kDA3BA,gBACA,eACA,eACA,eACA,iBAuBI,EAAiB,cAAqB,aACxC,IAAI,GAAa,cACjB,SAAI,cACF,KAEF,UAAO,cAAkB,GACrB,cAAe,EAAO,cAAY,EAAQ,IAA6B,mBAE5E,KARoB,aAUN,kFClCf,kDAHA,gBACA,oBA4Ce,QANgB,aAC7B,OAAQ,IAAS,EAAM,OACnB,cAAU,EAAO,cAAa,EAEnC,8FCxCD,kDAHA,gBACA,oBA4Ce,QANW,aACxB,OAAQ,IAAS,EAAM,OACnB,cAAU,EAAO,cAAa,EAEnC,2FCxCD,kDAHA,iBACA,oBA2Ce,QAZoB,iBACjC,IAAI,GAAS,EAAQ,EAAM,OACvB,QAGJ,IAAI,GAAyB,QAAhB,QAAO,IAAqB,cAAe,EAAO,EAC7D,OACA,IAEF,GAAO,cAAS,EAAO,EAAO,EAC/B,wFCvCD,kDAHA,iBACA,oBA2Ce,QANW,aACxB,OAAQ,IAAS,EAAM,OACnB,cAAc,EAAO,cAAa,EAAW,IAC7C,CACL,mFCvCD,kDAHA,iBACA,oBA2Ce,QANe,aAC5B,OAAQ,IAAS,EAAM,OACnB,cAAc,EAAO,cAAa,EAAe,OACjD,CACL,8NC1CQ,0FCAT,8DAEA,OAmBe,QALE,WACf,IAAI,GAAS,EAAQ,EAAM,OAC3B,QAAO,GAAS,cAAY,EAC7B,sFCnBD,8DAGI,OAqBW,QALM,WACnB,IAAI,GAAS,EAAQ,EAAM,OAC3B,QAAO,GAAS,cACjB,EAnBc,EAEf,uFCFA,kDAHA,gBACA,oBA+Be,QATc,aAC3B,IAAI,GAAS,EAAQ,EAAM,OACvB,QAGJ,MAAkB,WAAY,EAAI,cAClC,GAAO,cAAY,EACpB,0EC9BD,aA2Be,QAZI,WACjB,QAAI,GAAQ,CAAC,EACT,EAAS,EAAQ,EAAM,OAAS,EAGpC,OAAS,IACH,KAAO,EACX,KAAO,EAAK,IAAM,EAEpB,SACD,mFCzBD,+DAEA,OA8Be,QALY,eACzB,IAAI,GAA0B,IAAjB,WAA6B,cAAQ,EAClD,SAAkB,YAAY,EAC/B,qEC9BD,aAoBe,QAJG,WAChB,OACD,oFCZD,kDANA,iBACA,oBAwCe,QAZgB,eAC7B,IAAI,GAAS,EAAQ,EAAM,OACvB,QACF,MAEU,cACZ,GACE,CADE,OACU,SAAU,EAAS,EAEjC,IAAO,cAAY,EAAO,EAC3B,IAPU,CAET,kFClCF,+DAEA,OAkBe,QAJE,WACf,OAAO,cAAU,EAClB,oFCID,kDAtBA,gBACA,gBACA,gBACA,iBAmBI,EAAe,cAAc,WAC/B,IAAI,GAAS,cAAS,IACtB,eAAQ,GAAO,QAAU,EAAO,KAAO,EAAO,GAC1C,cAEL,KALkB,aAOJ,kFCCf,kDA9BA,gBACA,gBACA,eACA,gBACA,eACA,iBAyBI,EAAiB,cAAc,WACjC,IAAI,GAAW,cAAK,GAChB,EAAS,cAAS,IAEtB,eAAI,KAAa,cACf,GAEA,WAEF,MAAQ,EAAO,QAAU,EAAO,KAAO,EAAO,GAC1C,cAAiB,EAAQ,cAE9B,MAZoB,aAcN,kFCjBf,kDA3BA,gBACA,gBACA,gBACA,eACA,iBAuBI,EAAmB,cAAc,WACnC,IAAI,GAAa,cAAK,GAClB,EAAS,cAAS,IAEtB,eAAI,KAAe,cACjB,GAEA,WAEF,MAAQ,EAAO,QAAU,EAAO,KAAO,EAAO,GAC1C,cAAyB,SAE9B,KAZsB,aAcR,kFCtCf,kDAHA,gBACA,oBAwBe,QAJI,WACjB,OAAO,CAAC,CAAC,GAA4B,CAAnB,KAAM,UAAkB,cAAa,IAAU,CAAC,cACnE,oFCdD,kDATA,iBACA,eACA,eACA,mBAMI,EAGJ,sBAAI,EAGJ,8BAAI,EAAc,OAGlB,UAAI,EAAe,SAAS,UAG5B,SAAI,EAAiB,EAGrB,eAAI,EAAa,OAAO,IACtB,EAAa,KAAK,GAAgB,QAAQ,EAAc,QACvD,QAAQ,yDAA0D,SAGrE,OA0Be,QARG,WAChB,IAAI,CAAC,cACH,GAEF,YAAI,GAAW,cAAW,IAAU,cAAa,GAAU,EAC3D,QAAO,GAAQ,KAAK,cACrB,uECrDD,WACA,GAAI,GAAa,MAGjB,UAAI,EAAa,EAEjB,OAmBe,QAJM,aACnB,OAAO,GAAQ,EAAW,KAAK,EAAO,GACvC,oFChBD,kDAPA,iBACA,oBAoDe,QAzBoB,eACjC,IAAI,GAAS,EAAQ,EAAM,OAC3B,KAAI,CACF,QAAO,CAET,KAAI,GACJ,KACE,eAAQ,cACR,KAAQ,CACE,CAAR,GACI,SAAU,EAAS,EAAO,GAC1B,SAAU,EAAO,EAAS,IAGlC,GAAI,IACF,QAAO,cAAW,EAEpB,WACE,QAAI,EAAM,KACR,QAGJ,SAAO,CACR,mFChDD,kDAHA,iBACA,oBA2Be,QAJK,aAClB,OAAQ,IAAS,EAAM,OAAU,cAAQ,EAAO,cACjD,4FCAD,kDA1BA,iBACA,iBAyBI,EAAO,gBAAX,mBAEe,kFCzBf,kDAHA,gBACA,qBAgCe,QANmB,eAChC,OAAQ,IAAS,EAAM,QAAU,GAAU,EAAO,OAC9C,cAAY,EAAO,EAAQ,cAAa,IAE7C,kFC/BD,+DAEA,OA6Be,QANqB,eAClC,OAAQ,IAAS,EAAM,QAAU,GAAU,EAAO,OAC9C,cAAY,EAAe,SAAW,GAE3C,mFCGD,kDAhCA,gBACA,gBACA,eACA,gBACA,gBACA,eACA,iBA0BI,EAAS,cAAqB,aAChC,GAAU,cAAY,EAEtB,MAAI,GAAS,EAAQ,EAAM,OAAS,EAChC,EAAS,cAAO,EAEpB,uBAAW,EAAO,cAAS,EAAkB,WAC3C,OAAO,cAAQ,EAAO,GAAU,CAAC,EAClC,CAFiB,GAEf,OAEH,UACD,CAXY,aAaE,kFC1Cf,kDAHA,gBACA,qBAoDe,QArBQ,aACrB,IACA,SAAI,EAAE,GAAS,EACb,cAEF,MAAI,GAAQ,CAAC,EACC,KACV,EAAS,EAEb,aAAY,cAAa,EACzB,GAAS,IAAQ,GACf,IAAI,GAAQ,EACZ,GAAI,EAAU,EAAO,EACnB,OAAO,KACP,KAAQ,KAEX,GACD,qBAAW,EACX,GACD,qECnDD,WACA,GAAI,GAAa,MAGjB,UAAI,EAAgB,EAEpB,UA2Be,QAJE,WACf,OAAO,GAAQ,EAAc,KAAK,GACnC,mFC3BD,kDAJA,gBACA,eACA,oBAkCe,QAhBc,eAC3B,IAAI,GAAS,EAAQ,EAAM,OACvB,QAGJ,IAAI,GAAqB,QAAd,QAAO,IAAmB,cAAe,EAAO,EACzD,MACA,IAGA,MAAiB,IAAT,IAAgB,EAAI,cAC5B,KAAc,WAAY,EAAS,cAErC,IAAO,cAAU,EAAO,EACzB,uFClCD,8DAEA,OAwBe,QAJa,aAC1B,OAAO,cAAgB,EACxB,oFCrBD,kDAHA,gBACA,qBAgCe,QAJsB,eACnC,OAAO,cAAkB,EAAO,EAAO,cACxC,qFC5BD,kDAHA,gBACA,oBA6Be,QAXe,aAC5B,IAAI,GAAS,EAAQ,EAAM,OAC3B,KAAI,EACF,IAAI,GAAQ,cAAgB,EAC5B,MAAI,EAAQ,GAAU,cAAG,EAAM,GAC7B,SAEH,EACD,OAAO,CACR,kFC5BD,8DAEA,OAsBe,QAJiB,aAC9B,OAAO,cAAgB,EACxB,uFCnBD,kDAHA,gBACA,qBA2Be,QAJ0B,eACvC,OAAO,cAAkB,EAAO,EAAO,cACxC,wFCvBD,kDAHA,gBACA,oBA6Be,QAXmB,aAChC,IAAI,GAAS,EAAQ,EAAM,OAC3B,KAAI,EACF,IAAI,GAAQ,cAAgB,EAAc,MAC1C,KAAI,cAAG,EAAM,GACX,SAEH,EACD,OAAO,CACR,kFC5BD,+DAEA,OAqBe,QANK,WAClB,OAAQ,IAAS,EAAM,OACnB,cAEL,uFClBD,kDAHA,gBACA,qBAwBe,QANc,aAC3B,OAAQ,IAAS,EAAM,OACnB,cAAe,EAAO,cAE3B,uFCvBD,+DAEA,OAkBe,QAJD,WACZ,OAAO,cAAK,EACb,oFCfD,kDAHA,gBACA,oBAmCe,QARS,eAClB,OAAE,IAAS,EAGf,UAAK,GAAe,WAAa,EAAI,cACrC,GAAO,cAAU,EAAO,EAAO,CAAJ,GAAQ,EACpC,wFC/BD,kDAHA,gBACA,oBAqCe,QAVc,eAC3B,IAAI,GAAS,EAAQ,EAAM,OACvB,QAGJ,MAAK,GAAe,WAAa,EAAI,cACrC,KAAI,EACJ,EAAO,cAAU,EAAW,CAAJ,GAAQ,EAAI,EACrC,wFCjCD,kDAHA,gBACA,oBA4Ce,QANgB,aAC7B,OAAQ,IAAS,EAAM,OACnB,cAAU,EAAO,cAAa,EAEnC,8FCxCD,kDAHA,gBACA,oBA4Ce,QANW,aACxB,OAAQ,IAAS,EAAM,OACnB,cAAU,EAAO,cAAa,EAEnC,wFCtCD,kDALA,iBACA,eACA,kBAGI,EAAM,EAGV,EAAI,EAGJ,aAAI,EAGJ,qBAAI,EAGJ,aAAI,EAGJ,cAAI,EAEJ,WA4Ce,QArBG,WAChB,IACE,QADE,QAAO,SAGX,MAAI,cACF,SAEF,MAAI,cAAS,GACX,IAAI,GAAQ,cAAW,EAAM,SAAW,EAAM,UAC9C,IAAQ,cAAS,GAAU,EAAQ,GACpC,CACD,IACE,QADE,QAAO,SACQ,EAAV,KAAc,EAAQ,CAE/B,IAAQ,EAAM,QAAQ,EACtB,OAAI,GAAW,EAAW,KAC1B,SAAQ,IAAY,EAAU,KAAK,GAC/B,EAAa,EAAM,MAAM,GAAI,EAAW,EAAI,GAC3C,EAAW,KAAK,GAAS,EAAM,CACrC,mFC3CD,kDArBA,gBACA,eACA,eACA,iBAkBI,EAAQ,cAAc,WACxB,OAAO,cAAS,cAAY,EAAQ,IACrC,YAFW,aAIG,kFCKf,kDA9BA,gBACA,eACA,eACA,eACA,eACA,iBAyBI,EAAU,cAAc,WAC1B,IAAI,GAAW,cACf,SAAI,cACF,KAEF,UAAO,cAAS,cAAY,EAAQ,IAAsB,YAAO,cAClE,GANa,aAQC,kFCZf,kDA1BA,gBACA,eACA,eACA,eACA,iBAsBI,EAAY,cAAc,WAC5B,IAAI,GAAa,cACjB,SAAI,cACF,KAEF,UAAO,cAAS,cAAY,EAAQ,IAA6B,mBAClE,EANe,aAQD,iFClCf,8DAEA,OAuBe,QAND,WACZ,OAAQ,IAAS,EAAM,OACnB,cAEL,uFCpBD,kDAHA,gBACA,oBA8Be,QANQ,aACrB,OAAQ,IAAS,EAAM,OACnB,cAAS,EAAO,cAErB,uFC7BD,8DAEA,OAyBe,QANU,aACvB,OAAQ,IAAS,EAAM,OACnB,cAAgB,SAErB,uFCHD,kDAtBA,gBACA,eACA,iBAoBI,EAAU,cAAqB,aACjC,OAAO,cAAkB,GACrB,cAAe,EAEpB,KAJa,aAMC,kFCLf,kDAvBA,gBACA,gBACA,eACA,iBAoBI,EAAM,cAAc,WACtB,OAAO,cAAQ,cAAY,IAC5B,SAFS,aAIK,kFCGf,kDA9BA,gBACA,eACA,gBACA,eACA,eACA,iBAyBI,EAAQ,cAAc,WACxB,IAAI,GAAW,cACf,SAAI,cACF,KAEF,UAAO,cAAQ,cAAY,IAApB,SAAgD,cACxD,GANW,aAQG,kFCZf,kDA1BA,gBACA,gBACA,eACA,eACA,iBAsBI,EAAU,cAAc,WAC1B,IAAI,GAAa,cACjB,SAAI,cACF,KAEF,UAAO,cAAQ,cAAY,IAA4B,gBACxD,EANa,aAQC,kFCff,kDAnBA,eACA,mBAkBI,EAAM,gBAAV,mBAEe,kFClBf,kDAHA,gBACA,qBAsBe,QAJW,aACxB,OAAO,cAAuB,MAAc,QAC7C,0FClBD,kDAHA,iBACA,qBAqBe,QAJe,aAC5B,OAAO,cAAuB,MAAc,QAC7C,0FCED,kDAtBA,eACA,mBAqBI,EAAU,cAAc,WAC1B,IAAI,GAAS,EAAO,OAChB,EAAoB,CAAT,GAAa,EAAO,EAEnC,mBAA8B,UAAnB,QAAO,IAA0B,EAAO,MACnD,UAAO,cAAU,EAClB,EANa,aAQC,iFCZS,QAAa,WACpC,IAAM,GAAM,GAEZ,SAAM,GAAM,KACX,KAAI,IAAK,EAAK,EAGf,UACA,E,8BCTgC,aAChC,OAAO,CAAC,CAAC,GAAiC,CAApB,IAAU,QAAe,sEAAsE,KACrH,EAED,CASqC,aACpC,OAAO,CAAC,CAAC,GAAiC,CAApB,IAAU,QAAe,kBAAkB,KACjE,EAED,CASoC,aACnC,OAAO,CAAC,CAAC,GAAiC,CAApB,IAAU,QAAe,kBAAkB,KACjE,EAED,oDA9BgB,oBAaA,wBAaA,uBAWA,sBAA+B,aAC9C,OAAO,GAAqB,EAAO,OAAQ,EAAS,KAAS,EAAoB,EAAO,OACxF,GAED,IAOgB,uBAAgC,aAC/C,OAAO,GAAiB,EAAO,OAC/B,G,6PCnED,EAUA,CAAW,WACT,CAEA,aAyBsC,uBAEpC,IAAI,IAAiB,IAAW,GAAQ,oBAAqB,GAAY,GACzE,EAAI,GAAY,OAAO,OAAO,GAC9B,WAAI,GAAU,GAAI,GAIlB,kBAAU,QAAU,EAAiB,GAAS,GAE9C,IACD,EACD,CAY2B,oBACzB,IACE,OAAO,CAAE,KAAM,SAAU,IAAK,GAAG,KAAK,GACvC,IAFD,CAES,SACP,OAAO,CAAE,KAAM,QAAS,IACzB,GACF,CAED,CAaS,YAAc,CACvB,CAAS,YAAsB,CAC/B,CAAS,YAA+B,CAIxC,CAwB+B,cAC7B,CAAkB,0BAAU,QAAiB,YAC3C,IAAU,IAAmB,YAC3B,OAAO,MAAK,QAAQ,GACrB,GACF,CACF,EAED,CA+BuB,cACrB,CAAsC,wBACpC,IAAI,IAAS,EAAS,GAAU,IAAS,GACzC,OACE,OADE,MAAO,QACF,GACR,SACC,IAAI,IAAS,GACb,IAAI,GAAQ,GACZ,YAAI,KACiB,QAAjB,uBAAO,wBACP,EAAO,KAAK,GACd,WAAO,QAAQ,QAAQ,GAAM,SAAS,KAAc,YAClD,IAAO,OAAQ,GAAO,GACvB,GAFM,EAEK,YACV,IAAO,QAAS,GAAK,GACtB,GAGH,GAAO,QAAQ,QAAQ,IAAO,KAAc,YAgB1C,IAAO,MACP,MACD,GAlBM,EAmBR,GACF,CAED,CAA8B,QAA1B,KAAO,EAAO,UAAwB,EAAO,QAC/C,YAAS,EAAO,QAAQ,OAAO,KAGjC,QAEA,SA+BD,QA/B0B,eACvB,CAAS,aACP,OAAO,IAAI,SAA0B,eACnC,IAAO,GAAQ,GAAK,GACrB,GACF,EAED,OAaE,OAAkB,GAAgB,KAIhC,GAJgB,IAMrB,IAID,CAGF,CAqByC,oBACvC,IAAI,IAEJ,QAA+B,gBAC7B,IAAI,IACF,OAAM,IAAI,OAGZ,mCAAI,IAAU,EACZ,IACE,OADE,WAMJ,UACD,IAED,QAAQ,OACR,MAAQ,IAED,KACL,IAAI,IAAW,GACf,YAAI,GACF,IAAI,IAAiB,EAAoB,GACzC,OAAI,GACF,IAAI,KAAmB,GACvB,eACD,GACF,CAED,IAGE,MAHE,MAAQ,UAGF,KAAO,GAAQ,MAAQ,GAEhC,QAAM,IAAuB,OAAnB,MAAQ,OACjB,IAAI,IACF,WACA,EAAM,GAGR,OAAQ,kBAAkB,GAE3B,IAAM,KACL,QADS,MAAQ,WACT,OAAO,SAAU,GAG3B,QAEA,KAAI,IAAS,EAAS,GAAS,GAC/B,OAAoB,QAAhB,MAAO,KAGT,OAAQ,GAAQ,KACZ,EAGJ,EAAI,GAAO,MACT,GAGF,eACE,OAAO,GACP,SAAM,GAGT,KAAM,CACL,OADS,MAAO,UAIhB,KAAQ,OACR,WAAQ,IAAM,GAEjB,IACF,CACF,CAMD,CAAuC,iBACrC,IAAI,IAAS,GAAS,SAAS,GAC/B,WAAI,KAAW,EAGb,OAAQ,SAER,KAAuB,OAAnB,MAAQ,OACV,IAAI,GAAS,SAGX,YAAQ,OACR,YAAQ,IACR,IAAoB,GAEpB,IAGE,OAHE,MAAQ,cAOd,OAAQ,OACR,WAAQ,IAAM,GAAI,WAEnB,mDAED,OACD,GAED,IAAI,IAAS,EAAS,GAAQ,GAAS,SAAU,GAEjD,QACE,OADE,MAAO,eACD,OACR,WAAQ,IAAM,GACd,OAAQ,SACR,KAGF,MAAI,IAAO,GAEX,OAAI,CACF,aAAQ,OACR,WAAQ,IAAM,GAAI,WAClB,uCAAQ,SACR,KAGF,MAAI,GAGF,QAAQ,GAAS,YAAc,GAG/B,SAAQ,KAAO,GAQf,QACE,QADE,MAAQ,YACF,OACR,UAAQ,IAKV,cAKF,cAAQ,SACR,KACD,EAID,CAiBsB,cACpB,IAAI,IAAQ,CAAE,OAAQ,GAEtB,IAAI,IACF,SAAM,SAAW,GAGnB,IAAI,IACF,SAAM,WAAa,GACnB,MAAM,SAAW,GAGnB,SAAK,WAAW,KACjB,GAED,CAAuB,cACrB,IAAI,IAAS,GACb,kBAAO,KACP,eAAO,IACP,OAAM,WACP,EAED,CAAiB,cAIf,MAAK,WAAa,CAAC,CAAE,OACrB,YAAY,QAAQ,EACpB,WACD,SAED,CA2BgB,cACd,IAAI,GACF,IAAI,IAAiB,GACrB,MACE,SAAO,IAAe,KAGxB,OACE,UADE,QAAO,IAAS,WAIpB,OAAI,CAAC,MAAM,GAAS,QAClB,IAAI,IAAI,CAAC,EAAG,GAAgB,aAC1B,MAAS,KAAI,GACX,WAAI,EAAO,KAAK,GACd,cAAK,MAAQ,GACb,OACA,QAIJ,aAAK,MACL,KAEA,QACD,EAED,QAAO,IAAK,KACb,EACF,CAGD,OAAO,CAAE,KACV,EACD,CAES,YACP,OAAO,CAAE,MAAO,EACjB,QAED,IApgBI,GAAK,OACT,UAAI,EAAS,EACb,eACA,EAAI,EAA4B,UAAlB,QAAO,QACrB,UAAI,EAAiB,EAAQ,UAC7B,aAAI,EAAsB,EAAQ,eAClC,kBAAI,EAAoB,EAAQ,aAEhC,gBAAI,EACJ,QADe,KAAO,GAClB,EAAU,EACd,sBACE,EAYF,YATI,MAAO,QAIT,MAKQ,EAAO,mBAAqB,EAAW,EAEjD,aAYQ,KAYR,KAQI,GACJ,iBAAI,EACJ,iBAAI,EACJ,YAAI,EAIJ,YAMA,MAOA,SAAkB,GAAkB,UAClC,OACD,KAED,KAAI,IAAW,OACf,eAAI,GAA0B,IAAY,GAAS,GACnD,QAAI,IACA,KAA4B,GAC5B,EAAO,KAAK,GAGd,QAGF,OAAI,IAAK,EAA2B,UAClC,EAAU,UAAY,OAAO,OAC/B,MAAkB,UAAY,GAAG,YACjC,IAA2B,YAC3B,IAA2B,GACzB,EAAkB,YAIpB,sBAQQ,oBAA+B,YACrC,IAAI,IAAyB,UAAlB,QAAO,KAAyB,GAC3C,oBAAO,KACH,KAGA,GAEL,uBAFM,GAAK,aAAe,GAAK,MAIhC,IAAQ,KAAgB,YACtB,OAAI,QACF,sBAAO,eAAe,GAEtB,OAAO,UACP,EAAI,EAAE,IACJ,UAAO,GAGX,yBAAO,UAAY,OAAO,OAC1B,IACD,EAMD,IAAQ,MAAiB,YACvB,OAAO,CAAE,QACV,GAED,IA+EsB,EACtB,aAAc,UAAU,GAAuB,UAC7C,OACD,KACD,IAAQ,cAKR,IAAQ,MAAyC,qBAC/C,IAAI,IAAO,GAAI,GACb,EAAK,GAAS,GAAS,GAGzB,WAAO,GAAQ,oBAAoB,IAC1B,GACL,GAAK,OAAO,KAAc,YACxB,OAAO,IAAO,KAAO,GAAO,MAAQ,GACrC,MACN,EAED,IAoKA,OAAG,GAOH,eAAG,GAAkB,UACnB,OACD,KAED,KAAG,SAAW,UACZ,OACD,oBAED,IA+BQ,KAAgB,YACtB,IACA,WAAK,GAAI,MACP,OAAK,KAEP,cAIA,UAAgB,aACd,MAAO,GAAK,QACV,IAAI,IAAM,GACV,SAAI,KACF,cAAK,MACL,MACA,QAEH,EAKD,WACA,QACD,EACF,CAED,IAkCQ,OAER,IAIQ,UACN,aAEA,QAAgB,YACd,SAAK,KACL,OAAK,KAGL,OAAK,KAAO,KAAK,MACjB,OACA,aAAK,SAEL,UAAK,OACL,YAAK,IAEL,OAAK,WAAW,QAEhB,GAAI,CACF,OAAK,GAAI,MAEP,MAAuB,GAAnB,MAAK,OAAO,IACZ,EAAO,KAAK,KAAM,KAClB,CAAC,MAAM,CAAC,GAAK,MACf,WAAK,IAIZ,EAED,OAAM,UACJ,MAEA,WAAI,IAAY,KAAK,WACrB,GAAI,GAAa,GACjB,cACE,OADE,MAAW,UACP,IAGR,UAAO,MACR,IAED,oBAA4B,YAC1B,CAKqB,kBACnB,WAAO,KACP,WAAO,IACP,MAAQ,KAER,GAGE,QAAQ,OACR,UAAQ,IAGV,GAAO,CAAC,CACT,EAED,IApBI,KACF,UAGF,QAgBK,GAhBD,IACJ,KAeS,GAAI,KAAK,WAAW,OAAS,EAAQ,CAAL,KAAU,KACjD,IAAI,IAAQ,KAAK,WACjB,IAAI,GAAS,GAEb,cAIE,MAJE,MAAM,aAID,IAGT,UAAI,GAAM,QAAU,KAAK,KACvB,IAAI,IAAW,EAAO,KAAK,GAC3B,YAAI,GAAa,EAAO,KAAK,GAE7B,iBAAI,IAAY,GACd,IAAI,KAAK,KAAO,GACd,eAAO,IAAO,GACf,aAAM,GAAI,KAAK,KAAO,GACrB,iBAAO,IAAO,GAGjB,WAPD,KAOO,IACL,OAAI,KAAK,KAAO,GACd,eAAO,IAAO,GAGjB,kBAAM,KACL,QAKM,IAAI,OAEb,kDAPO,KAAK,KAAO,GACd,iBAAO,IAAO,GAIhB,WAGL,CACF,CAED,SAAuB,eACrB,KAAK,GAAI,IAAI,KAAK,WAAW,OAAS,KAAQ,CAAL,KACnC,WAAQ,KAAK,WACjB,IAAI,GAAM,QAAU,KAAK,MACrB,EAAO,KAAK,GAAO,eACnB,KAAK,KAAO,GAAM,WACpB,IAAI,IACJ,GACD,KAGH,CAAI,KACU,OAAT,OACS,UAAT,QACD,GAAa,QAAU,IACvB,IAAO,GAGT,gBAGF,SAAI,IAAS,GAAe,GAC5B,wBAAO,KACP,MAAO,IAEP,GACE,SAAK,OACL,YAAK,KAAO,GACZ,WAGF,IAAO,KAAK,SACb,GAED,WAA2B,eACzB,IACE,OADE,MAAO,UACH,IAGR,UAAoB,OAAhB,MAAO,MAET,UADE,MAAO,UACJ,KAAO,GACP,IACL,QADS,MAAO,WACX,KAAO,KAAK,IAAM,GACvB,SAAK,OACL,cAAK,KACA,OAAoB,QAAhB,MAAO,MAChB,UAAK,KAGP,IACD,EAED,SAAiB,YACf,KAAK,GAAI,IAAI,KAAK,WAAW,OAAS,KAAQ,CAAL,KACnC,WAAQ,KAAK,WACjB,IAAI,GAAM,aACR,eAAK,SAAS,GAAM,WAAY,GAChC,YACA,IAGL,EAED,UAAkB,YAChB,KAAK,GAAI,IAAI,KAAK,WAAW,OAAS,KAAQ,CAAL,KACnC,WAAQ,KAAK,WACjB,IAAI,GAAM,SAAW,GACnB,IAAI,IAAS,GACb,cAAoB,OAAhB,MAAO,KACT,IAAI,IAAS,GACb,MACD,GACD,OACD,GAKH,MAAM,IAAI,OACX,wBAED,gBAA8C,kBAC5C,aAAK,SACH,UAAU,EACV,eACA,WAGF,IAGE,MAHE,QAAK,cAGF,IAGP,GACD,EAEJ,EAGC,EACkB,QAAlB,uBAAO,qBAAsB,EACX,QAAlB,uBAAO,+BAAsB,OACb,QAAhB,uBAAO,2BAAoB,utBC9tB7B,yEAKA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,mBAEa,uKAEb,GAAc,MACb,SAAS,4HAeT,gBACC,CAYA,oHACC,CAIC,uFCvDJ,aAaA,EAAO,QAAoB,WAEzB,IAAI,GAA6B,WAAlB,QAAO,SAA0B,OAEhD,YAAI,CACF,OAAM,IAAI,OAIb,uCAAI,CAAC,GACH,QADU,QAAO,SAIlB,MAAI,GAAU,EAAS,SAAW,KAAO,EACzC,KAAI,EAAa,EAAU,EAAS,SAAS,QAAQ,YA4BtD,KAAI,EAAW,EAAI,QAAQ,sDAA2E,aAErG,IAAI,GAAkB,EACpB,OACA,QAAQ,WAAwB,aAAK,OAAY,EAF7B,GAGpB,QAAQ,WAAwB,aAAK,OAAY,EAGnD,MAAI,+CAA+C,KACjD,SAIF,MAEA,YAEC,CAFG,KAAgB,QAAQ,MAGrB,EAEN,CAFU,KAAgB,QAAQ,KAEzB,EAGT,EAAS,EAAa,EAAgB,QAAQ,QAI/C,IAAO,OAAS,KAAK,UAAU,GAC/B,GAGD,SACA,EA1ED,kpBCDA,mSAJA,iBACA,gBACA,iBAwCqB,0IAQpB,4BAIC,MACA,2BACA,kCACA,8BACA,2BAED,8CAUC,IAAM,GAAW,KAAK,OAEtB,SAAK,EAAS,IAEb,+BAA2B,KAAK,OAAQ,WAGzC,gBAAK,EAAS,IAEb,+BAA2B,KAAK,OAAQ,gBAEzC,eAED,qDAaC,IAAM,GAAW,KAAK,OAEtB,SAAK,EAAS,IAEb,wBAA4B,KAAK,OAAQ,wBACzC,sBAA4B,KAAK,OAAQ,oBAI1C,SAAK,EAAS,IAKb,0BAA4B,KAAK,OAAQ,+BACzC,wBAA4B,KAAK,OAAQ,4BAG1C,UAED,iDAUyB,OACxB,KAAM,EAAW,KAAK,OACtB,SAAM,EAAU,KAAK,OAAO,OAAO,IAEnC,sBAAK,EAAU,OACF,WACX,IAAM,GAAc,EACpB,aAEA,KAAK,EAAS,IAAK,KAAmB,EAAQ,EAAY,MAAO,SAChE,IAAM,GAAQ,EACd,GAAM,EAAS,GAAI,eAAgB,EAGnC,wBAA2B,EAAK,OAAQ,EAAQ,YAAW,IAClD,IAAU,GAElB,QAAK,OAAO,QAAS,EAAa,CAAE,MACpC,IACD,EAfY,kBACd,WAAsB,gDAAU,iBAe/B,WAhBa,oEAiBd,CACD,CAED,oDAQC,CAAK,KAAK,OAAO,SAAS,IAEzB,6BAA2B,KAAK,OAAQ,QAEzC,uBAvHD,2BAIC,OACA,oDANmB,gLC3BpB,kDAfD,eACA,oBAaqB,QA+BU,iBAAoB,QACjD,MAEA,MACC,UADI,QAAO,KAEX,MAEM,GAEK,WAAW,IACb,GAAU,EAGlB,QAAgB,QAJjB,EAI0B,CAAE,MAC3B,GACD,CAED,GAAO,SAAS,GAAI,SAAyB,eAC5C,IAMA,QANK,QAMC,GAAQ,EAAQ,MAAM,WAAW,OAEvC,MAAK,GAAG,eAIR,YAAM,GAAW,EACjB,SAAM,EAAO,EAGb,QAA6C,WAAxC,KAAS,OAAO,MAIrB,MAAM,GAAQ,EAAQ,KAEjB,GAIL,KAAO,SAAS,eAAgB,UAE/B,IAAM,GAAQ,EAAO,SAGrB,QAAM,EAAQ,UAAM,4BAA6B,EAAS,OAAQ,EAAG,EAAS,OAAQ,EAAO,GAG7F,UAAM,OAEN,KAAU,CAAE,MAAF,EAAS,MACnB,GACD,KACD,E,gLCvFD,CAyLiB,aACjB,OAAO,OAAM,KAAM,EAAQ,eAAgB,OAAa,aAAL,OAAY,GAAI,EAAE,IAA9D,EACP,G,kDA1MD,iBACA,qBAaqB,QA8CuB,iBAAsB,mBAChE,QAAK,OAEL,KACA,GACA,EACA,EAEA,EAAK,YACJ,UAEA,IAGD,EACC,QADI,QAAO,KAGX,IAID,IAAe,GAAkB,WAChC,QAEA,MAEA,KAHA,EAKC,IAFO,IAAE,EAAS,EAAO,KAAM,OAE1B,GAEJ,CAFc,GAAO,gBASlB,EAJH,UACK,EAAL,KACK,EAAL,KACK,EAIA,QACG,EAAQ,GAAI,OAAS,CADhB,EAAU,EACxB,GAGA,UAAM,GAAW,CAChB,EACA,EAAQ,EAET,QAAM,EAAS,CACd,EAAQ,EAAQ,OAAS,EAAQ,OACjC,EAAQ,EAAQ,OAAS,EAAQ,OAAS,EAG3C,UAAO,KACP,KAAO,KAEP,KAAO,KAAM,CAAE,EAAQ,EAAQ,OAAQ,EAAQ,EAAQ,OAAS,EAGjE,eACC,QACA,SAED,EAGD,IAAiB,GAA6B,aAAiB,oBAC9D,WAAqB,gDAAc,SAClC,QAAM,aAAc,EACpB,cAH6D,oEAI9D,CAED,IAAO,SAAS,GAAI,SAAiB,aACpC,IAIA,QAJK,SAIC,GAAY,EAAK,OAAO,SAE9B,aAAM,EAAyB,WAA1B,EAA2B,EAAmB,OAAC,EAAU,MAI9D,WAAM,GAAQ,EAAU,MACxB,OAAM,EAAO,EAAS,GAAQ,MAAO,EAAG,EAAU,MAClD,QAAM,EAAS,EACf,GAGA,OAAO,OAAO,QAAS,WACtB,CAAK,WAAe,IAAa,WAIjC,MAAe,KAAM,UAAU,4BAC9B,EAAO,EAAO,GACd,EAAO,EAER,IAED,MAGA,WAAO,OAAO,QAAQ,UAAU,QAAS,WACxC,CAAK,WAAe,IAAa,WAIjC,MAAe,KAAM,UAAU,4BAC9B,EAAO,EAAO,GACd,EAAO,EAER,IAED,IAAK,EAAG,EAAe,QAAU,EAIjC,YAAM,GAAQ,EAAO,SAErB,UAAO,SAAS,eAAgB,UAC/B,IAAM,GAAc,cAAsB,EAAS,EAAgB,EAAO,SAG1E,UAAgB,EAEhB,MANqC,gBAOrC,WAAqB,mDAAiB,WACrC,QAAM,OACN,aAToC,qEAUrC,CACD,KACD,EAOF,kpBClMA,mSALA,eACA,gBACA,eACA,mBASqB,0IAepB,uBAGO,OACN,KAAM,EAAS,KACf,OAAM,EAAI,EACV,EAAM,EAAU,EAAO,SAAS,IAChC,QAAM,EAGN,WAAO,GAAG,iBAAiB,IAAK,OAAQ,WACvC,IAAM,GAAO,cAEb,YAAK,IACJ,OAAO,EACP,eACA,kBACA,EAGD,eAAK,KAAM,OAAQ,aAAc,GAAI,EAAS,QAG9C,eAAK,SAAU,EAAM,UAAW,iBAAM,GAAO,QAAS,OAEtD,GACA,CAGD,KAAO,WAAW,IAAK,EACvB,iBA5CD,yBAIC,OAAO,GACP,QAED,mCAIC,OACA,gDAbmB,kpBCPrB,mSALA,eACA,eACA,eACA,mBAEM,EAEN,OAQqB,0IACpB,uBAIC,IAAM,GAAS,KACf,OAAM,EAAO,EACb,KAAM,EAAU,EAGhB,UAAO,SAAS,OAAO,MAAO,CAAE,KAAM,UAAW,WAAY,CAAE,GAAQ,OAGvE,2BAAsB,IAAK,EAAK,YAAa,EAAQ,aACnD,cAAe,GACf,UAGF,0BAAqB,IAAK,EAAK,aAC7B,YAAa,UACb,YAAa,KACb,cAAyC,gCACzC,YAGF,QAAO,SAAS,IAAK,EAAM,cAA4B,EACvD,gCA1BmB,kpBCVrB,mSALA,eACA,gBACA,eACA,mBASqB,0IAepB,uBAGO,OACN,KAAM,EAAS,KACf,OAAM,EAAI,EACV,EAAM,EAAU,EAAO,SAAS,IAChC,UAAM,EAGN,WAAO,GAAG,iBAAiB,IAAK,SAAU,WACzC,IAAM,GAAO,cAEb,YAAK,IACJ,OAAO,EACP,iBACA,kBACA,EAGD,eAAK,KAAM,OAAQ,aAAc,GAAI,EAAS,QAG9C,eAAK,SAAU,EAAM,UAAW,iBAAM,GAAO,QAAS,SAEtD,GACA,CAGD,KAAO,WAAW,IAAK,EACvB,mBA5CD,yBAIC,OAAO,GACP,QAED,mCAIC,OACA,kDAbmB,kpBCPrB,mSALA,eACA,eACA,eACA,mBAEM,EAEN,SAQqB,0IACpB,uBAIC,IAAM,GAAS,KACf,OAAM,EAAO,EACb,KAAM,EAAU,EAGhB,UAAO,SAAS,OAAO,MAAO,CAAE,KAAM,UAAW,WAAY,CAAE,GAAU,OAGzE,2BAAsB,IAAK,EAAK,YAAa,EAAQ,aACnD,cAAe,GACf,UAGF,qBAAqB,IAAK,EAAK,aAC7B,YAAa,MACb,YAAa,KACb,cAAwC,iCACxC,YAGF,QAAO,SAAS,IAAK,EAAQ,cAA4B,EACzD,gCA1BmB,kpBCPrB,mSARA,eACA,gBAEA,eAEA,mBACA,UAWqB,2IAepB,uBAGO,OACN,KAAM,EAAS,KACf,OAAM,EAAI,EACV,EAAM,EAAU,EAAO,SAAS,IAEhC,gBAAO,GAAG,iBAAiB,IAAK,aAAc,WAC7C,IAAM,GAAa,cAEnB,YAAW,IACV,OAAO,EACP,sBACA,QAID,eAAW,KAAM,OAAQ,aAAc,GAAI,EAAS,QAGpD,eAAK,SAAU,EAAY,UAAW,iBAAM,GAAO,QAAS,aAE5D,GACA,CACD,EAED,oCAGY,OACX,KAAM,EAAS,KACf,OAAM,EAAU,EAAO,SAAS,IAOhC,mBAAK,SAAU,KAAK,OAAO,QAAQ,KAAM,QAAgB,aACxD,IAAM,GAAM,EAAK,OACjB,SAAM,EAAiB,EAAI,UAAU,kBAErC,OAAK,EAAI,UAAU,aAAe,EAAe,SAAW,EAC3D,UAAK,OAAO,QAEZ,gBACA,mBAED,OACD,YAhED,yBAIC,OAAO,GACP,QAED,mCAIC,OACA,qDAbmB,kpBCXrB,CA0KoB,aACnB,OAAwC,YAAjC,IAAkB,OAAO,KAAuB,EAAkB,OACzE,IASD,CACiC,aAChC,QACI,GACJ,EAEA,KAHA,EAGQ,EAAI,EAAO,QAClB,IAAM,GAAQ,EACd,GAAM,EAAY,EAAQ,EAErB,GACJ,MAAgB,UAAS,aAG1B,IAAM,CAAD,EAAc,EAAM,aACxB,MAAO,KAAM,cAAW,EAAe,UAAS,YAChD,OAGD,MACA,GAED,OACA,EAED,CACmC,eAClC,IAAM,GAAc,EAAO,MAC1B,MACA,oBAAQ,UAAS,aAElB,KAAM,EAAqB,EAAO,MACjC,MAAM,EACN,gBAAY,MAAM,KAAM,EACxB,2BAGD,qBAAO,IACP,C,mSAjOD,gBACA,cACA,cACA,cACA,kBAOqB,cAIP,aAAS,QAGrB,kEAQA,aAAK,IAGL,cAAK,SAAU,EAAO,SAAU,cAAe,UAC9C,GACA,iBACA,cAHD,GAIA,CAED,YApBA,4CAwBC,IAAM,GAAa,cAAO,KAAK,OAAO,SAAS,UAG/C,0BAAK,MAAQ,CAAC,EAAG,GAAc,EAC/B,GAED,qCAU2B,kEAC1B,MAAM,EAAM,KAAK,OACjB,SAAM,EAAS,EACf,OAAM,EAAQ,EAAQ,OAAS,EAC/B,QAAM,EAAS,MAAM,KAAM,EAAI,UAE/B,uBAAI,eAAgB,UACnB,IAAK,EACJ,QAAK,aAAc,EAAO,EAAO,OACjC,QACA,IAAM,GAAgB,EAAO,OAAQ,WAGpC,OAAO,GAAW,IAAW,EAAkB,EAC/C,EAED,KAAK,YAAa,EAClB,EACD,CACD,EAED,wCAIC,IAAK,KACJ,MAGD,YAAM,GAAY,KAAK,OAAO,SAC9B,UAAM,EAAS,KAAK,OAAO,SAE3B,OAAM,EAAa,cAAO,EAErB,6BAIL,GAAO,EAAkB,EACzB,EAED,6BAUqB,aAEpB,GAAwB,GAAS,UAAU,QAAS,WACnD,IAAK,EAAW,MAAM,WAAa,EAAW,IAC7C,QAMD,cANO,OAAQ,EAAW,MAEzB,WAII,EAAW,MAAM,UACrB,IAAM,GAAiB,UAAS,aAAc,EAAW,MAEzD,QAGA,cAHM,KAAM,EAEZ,EAKI,CAAC,EAAW,IAChB,WAAM,MAAO,EAKd,QAAM,GAAgB,UAAS,YAAa,EAAW,IAEvD,UAAM,KAAM,EACZ,EACD,EAED,4BAMoB,aACnB,IAGA,QAAwB,GAAS,UAAU,QAAS,WACnD,IAAI,GAAQ,EAAW,EAElB,OACJ,MAAQ,cAER,gBAAM,KAAM,EAGb,MAAc,KACd,EAMD,KAAc,UAAU,OAAwB,aAC/C,OAAK,GAAa,aACjB,KAAM,MAAO,UAAS,YAEtB,IAGD,GACA,CACD,+BAlKmB,kpBCJrB,mSAPA,eAEA,gBAEA,eACA,kBASqB,0IACpB,uBAIC,IAAM,GAAS,KACf,OAAM,EAAS,EAAO,SAEtB,SAAO,SAAS,IAAK,aAAc,cAEnC,MAAO,aACP,gBAAO,MAAO,CAAE,KAAM,aAAc,OACpC,YAAO,MAAO,CAAE,KAAM,SAAU,OAEhC,+BAAqB,IAAK,EAAO,KAAK,aACpC,YAAa,cACb,UAEF,8BAAsB,IAAK,EAAO,KAAK,YAAa,EAAO,QAAQ,aACjE,YAAa,cACb,UACF,aAED,oCAIC,IAAM,GAAS,KAAK,OAAO,SAI3B,OAAK,EAAO,QACX,eAAO,MACN,MACA,kBACA,aAGF,2DAtCmB,kpBCJrB,mSAVA,eAEA,gBAEA,gBACA,gBACA,gBAEA,mBA0FqB,0IAQpB,uBAGO,OACN,KAAM,EAAS,KACf,OAAM,EAAM,EACZ,SAAM,EAAc,EAAO,QAQ3B,UAAK,mBAAqB,MAE1B,UAAY,cAIZ,cAAK,SAAU,EAAa,iBAAyB,aACpD,IAAM,GAAe,EACrB,aAAI,EAEJ,GAAK,EAAa,QACjB,eAAU,cAAwB,EAAa,QACzC,cAAK,EAAa,QACxB,kBAAU,cAAiB,EAAa,QAGzC,kBAAU,EAAK,mBAAmB,OAElC,KAAK,KAAM,sBAAuB,CAAE,QACpC,GAbD,EAaG,CAAE,SAEL,aAAK,SAAU,KAAM,sBAA8B,aAClD,IAAK,CAAC,EAAK,QAAQ,QAClB,IAAM,GAAiB,EAAK,OAK5B,KAAM,EAAgB,EAAe,QAAS,EAAK,QAEnD,sBAAI,eAAgB,UACnB,GAAe,cAAe,EAAe,EAC7C,UACD,EACD,CAbD,EAaG,CAAE,SAIL,WAAM,GAAmB,aACxB,IAAM,GAAe,EACrB,aAAM,EAAU,EAAO,KAAK,OAAQ,EAAO,KAAK,mBAAoB,EAEpE,cAEA,mBAAY,KAAM,kBAAmB,CAAE,aAAF,EAAgB,QAAhB,EAAyB,OAAQ,EACtE,MAED,OAAK,SAAU,EAAa,OAAQ,EAAW,CAAE,SACjD,aAAK,SAAU,EAAa,MAAO,EAAW,CAAE,SAEhD,aAAK,SAAU,EAAa,kBAA0B,aAChD,CAAC,EAAK,QACV,YAAK,aAAa,QAAS,YAAa,EAAK,mBAAmB,OAAQ,EACxE,YAAK,aAAa,QAAS,aAAc,cAAiB,EAG3D,WACC,KADI,IAAK,UACL,eAAgB,UACnB,GAAO,KAAK,cAAe,EAAI,UAAW,EAAI,QAAS,CACvD,UAEF,EAXD,EAWG,CAAE,SACL,iBAnFD,2BAIC,OACA,+BA6HF,mBAnIqB,kpBC/FrB,mSAHA,gBACA,mBAUqB,cACP,aAAM,CAQS,eAC1B,GAEA,mBAAI,KAAM,iBAAkB,CAAE,aAAc,EAC5C,cAZiB,0EAGlB,aAEA,6CAAK,SAAU,EAAK,QAAS,EAAa,CAAE,SAC5C,UAAK,SAAU,EAAK,OAAQ,EAAa,CAAE,SAE3C,QAKA,aAbD,gCAeY,WACX,MAAK,KAAM,EAAS,KAAM,EACzB,cAAc,cAAkB,EAAS,cAAgB,EAAS,cAAgB,EAEnF,yBAkFF,mBAtGqB,2HCXrB,CAsDmB,aAElB,IAAM,GAAQ,EAAmB,MAAQ,MAAM,KAAM,EACrD,UAAM,EAAQ,EAAmB,MAAQ,MAAM,KAAM,EAErD,gBAAK,GACJ,OAGD,EAAO,EACL,OAAQ,kBAAsB,MAAd,KAAK,IADhB,GAEL,IAAK,kBAAQ,GAAK,WACpB,E,uSA/DoB,YACpB,CAAa,aAAqB,QAOjC,QAAK,MAAQ,EAQb,QAAK,QACL,CAED,kBASA,gBAQS,WACR,OAAO,MAAK,QAAQ,QACpB,EAED,wBAMe,aACd,MAAK,QAAQ,QAAS,EACtB,gCAvBA,OAAO,MAAK,QACZ,yBA1BmB,iFCGG,QAAwB,WAC/C,OAAO,GACL,QAAS,qDAAmE,aAG5E,OACC,EADI,IAAO,OAIZ,IACA,CACF,E,iFCXuB,QAAiB,WACxC,UACC,EACC,QAAS,KAAM,QACf,QAAS,KAEV,QACC,QAAS,QAAS,WAClB,QAAS,MACV,KACC,QAAS,MAAO,UAChB,QAAS,MACV,UACC,QAAS,QAEX,WAAiC,CAEhC,CAFI,GAAK,QAAS,qBAEJ,EAMf,QACA,C,8BCnBwC,aACxC,IAAI,GAEJ,MAAK,EAAS,GAAI,SAAY,EAAS,GAEtC,eAAO,EACP,SAAM,IAAK,EAAS,GAAI,QAAW,EAAS,aAE5C,SAAO,EAAS,aAChB,WAGA,IAAI,GAAO,KAHL,eAKN,WAAqB,EAAS,+DAAgB,SAC7C,MAAM,EAAY,EAGlB,GAAK,IAAU,EAAK,GAAI,qBAAwB,EAAM,GACrD,uBAAK,EAAqB,SAAU,EAAK,OAAU,EAAqB,SAAU,EACjF,SAEA,QAIF,WACA,IACA,CAnBK,8EAoBN,CAED,OACA,E,4DAhCuB,EARxB,GAEA,onBCHA,iiBAFA,iEAeqB,cAMP,aAAS,QAGrB,6DAMA,gBAAK,OAAS,EACd,CAED,YAZA,yBAyBgB,aAAW,OAC1B,QAAwB,QAAnB,QAAO,GACX,IAAM,GAEN,IAAW,UACV,GAAK,OAAO,QACZ,EACD,CAED,mFAAW,EACX,EAED,yBAGU,WAAU,OACnB,UAAK,UAAU,SAAU,EAAS,UAAkB,aACnD,IAAM,GAAU,EAAK,MAErB,GACC,KAED,gBACD,+BAtDmB,gLCLrB,mSAVA,eACA,gBACA,gBACA,gBACA,gBACA,gBAEA,cACA,iBASqB,YAMpB,CAAa,aAAS,QACrB,MAAM,GAAmB,KAAK,YAAY,OAAS,KAAK,YAAY,MAQpE,aAAK,OAAS,cAAY,EAAQ,KAAK,YAAY,OAAS,KAAK,YAAY,MAE7E,aAAK,OAAO,OAAQ,UAQpB,QAAK,QAAU,cAAsB,KAQrC,QAAK,SAAW,GAMhB,UAAK,OAAS,cAAY,KAAK,OAAO,IAQtC,cAAK,EAAI,KAAK,OAQd,OAAK,SAAW,MAQhB,aAAK,KAAO,cAAoB,KAchC,SAED,gDAKc,CAkBwB,eACpC,OAAO,GAAc,OAAmB,aAClC,OAAC,GACL,GAGM,EAAQ,KAAM,EAAQ,GAAS,KACtC,IADA,CALM,EAMJ,QACH,UACD,OA1BA,KAAM,EACN,KAAM,EAAS,KAEf,aAOS,WACR,IAAM,GAAU,EAAO,IACvB,eAAM,EAAgB,EAAO,IAE7B,2BAAO,GAAK,QAAQ,KAAM,EAC1B,EAED,CAdO,GACL,KAAM,WACN,OAAO,GAAa,EAAe,QACjC,KAAM,iBAAM,GAAa,EAAe,YAC1C,EAJK,GAKL,KAAM,iBAAM,GAAK,KAAM,eAEzB,EAkBD,kCAMU,OACT,iBAAK,KACL,gBAEA,gBAAO,QAAQ,UACb,KAAM,UACN,GAAK,SACL,YAAK,KACL,SACF,EAED,wBAMsB,aACrB,IAAM,GAAU,KAAK,SAAS,IAE9B,MAAK,CAMJ,OAAM,eAGP,mFAAQ,SACR,EAED,yBAOe,WAAS,OACvB,WAAO,IAAI,SAAS,WACnB,IAAM,GAAS,MAEf,KACC,EAAO,cACL,KAAM,UACN,GAAO,KACP,eAAO,KACP,QAJF,GAKE,KAAM,iBAAM,EAEf,GACD,sBA3KmB,EA8KrB,cAAK,IAmCL,ypBC3NA,iiBAPA,eACA,gBACA,gBAEA,gBACA,mBAMqB,cAQE,eAAS,QAG9B,kEAMA,aAAK,QAGL,IAAK,QAAU,cAAuB,EAQtC,YAAK,WAAa,cAalB,KAAK,WAAW,SAAU,EAAK,QAAQ,MACvC,CAED,YApCA,uCAuCU,OACT,WAAO,SAAQ,UACb,KAAM,iBAAM,GAAK,WAAW,SADvB,GAEL,KAAM,iBAAM,GAAK,QAAQ,SAFpB,GAGL,sFACF,MAED,wBAKS,WACR,MAAK,KAAK,IACV,EAED,kCAIC,OAAO,MAAK,KACZ,KAED,8CAIC,eAAkB,KAAK,QAAS,KAChC,UAED,oDAIC,MAAK,QAAS,cAAoB,KAClC,SAED,yBAQwB,aAAS,OAChC,WAAO,IAAI,SAAS,WACnB,IAAM,GAAS,MAAU,EAEzB,KACC,EAAO,cACL,KAAM,UACN,GAAO,KACP,eAAO,KACP,QAJF,GAKE,KAAM,iBAAM,EAEf,GACD,+BAzGmB,gLCRrB,mSAHA,eACA,kBAKqB,YAWpB,CAAa,aAAgC,wEAK5C,QAAK,QAQL,OAAK,kBAAoB,GAMzB,UAAK,SAAW,GAAI,QAnBwB,gBAqB5C,WAAiC,gDAAmB,SACnD,WAAK,kBAAkB,IAAK,EAE5B,GAAK,EACJ,iBAAK,kBAAkB,IAAK,EAAkB,WAE/C,WA3B2C,oEA4B5C,CAED,kBAGI,OAAO,iLACW,KAAK,0EAAd,I,UACe,UAArB,QAAO,GAAO,qCACZ,4UAKT,qBAMK,WACJ,OAAO,MAAK,SAAS,IACrB,EAED,qBAYM,WAA8B,CAkCd,aACpB,OAAK,GAAyB,SAK9B,IAAK,EAAK,IAAK,IAAuB,EAAQ,IAI9C,UAAO,EAAmB,GACxB,MAAO,WAOP,iBAAI,MAAO,iEAAkE,CAAE,OAE/E,IACA,CACF,EAED,CAA4B,aAC3B,OAAO,IAAI,SAAS,WACnB,GAAQ,IAER,GAAK,EACJ,YAAkB,SAAS,QAAS,WACnC,IAAM,GAA4B,EAElC,MAAK,EAAc,SAQlB,QAAM,OAEL,kIACA,CAAE,OAAQ,EAA2B,WAIvC,MACA,EAGF,MAAM,GAAS,GAAI,GACnB,KAAK,KAAM,EACX,KAAO,KAEP,GACA,GACD,EAED,CAA+B,aAC9B,OACC,UADI,QAAO,GAIZ,EAAO,EAAK,kBAAkB,IAC9B,EAED,CAYqC,aACpC,OAAO,GACL,IAAK,kBAA2B,GAAsB,EADjD,GAEL,OAAQ,kBAAqB,CAAC,CAAC,CACjC,EACD,IAtHmC,uDACnC,MAAM,EACN,KAAM,EAAS,KACf,QAAM,EAAU,GAChB,KAEA,KAAM,EAAqB,EAC3B,GAAM,EAA2B,EACjC,GAAM,EA6F0B,WAC/B,IAAuB,MADkB,eAGzC,WAAuC,mDAAU,WAC3C,MAAC,EACL,OAAe,KAEhB,aAPwC,qEASzC,OAAO,GAAe,OAAS,EAC/B,IAED,CAzGuB,CAEvB,MAAK,EAaJ,IAAM,GAGN,8GAAI,MAAO,EAAU,CAAE,QAEvB,IAAO,QAAQ,OAAQ,cAAmB,EAAU,CAAE,QACtD,IAED,OAAO,SAAQ,IAAK,EAAmB,IAAK,IAC1C,KAAM,iBAAM,EAEd,EAsFD,qBAOyB,aACxB,MAAK,SAAS,IAAK,EAEnB,GAAK,EACJ,iBAAK,SAAS,IAAK,EAAkB,WAEtC,sBA/MmB,kpBCErB,iiBARA,eACA,gBACA,gBACA,gBACA,mBAEA,UAQqB,eAQE,eAAS,0EACvB,EAEP,aAAK,SACL,eAAK,KAAK,UAAY,MACtB,UAAK,GAAK,gBAA2B,cAAyB,EAQ9D,WAAK,iBAAmB,MAAxB,QACA,CAED,YAhBA,uCAuBU,OACT,iBACA,2BAAK,iBAEL,UAAO,KAAK,GAAG,UACb,KAAM,kGACR,EAED,yBAmBwB,aAAS,OAChC,WAAO,IAAI,SAAS,WACnB,IAAM,GAAS,MAAU,EAEzB,KACC,EAAO,cACL,KAAM,iBAAM,GAAO,iBAAiB,QAAS,EAAS,EAAO,GAAG,KAAK,QADvE,GAEE,KAAM,iBAAM,GAAO,GAAG,MAFxB,GAGE,KAAM,iBAAM,GAAO,KAAM,UAH3B,GAIE,KAAM,iBAAM,GAAO,QAAQ,KAAK,cAAe,EAAO,GAAG,KAAK,gBAJhE,GAKE,KAAM,iBAAM,GAAO,2BALrB,GAME,KAAM,UACN,GAAO,KACP,eAAO,KACP,QATF,GAUE,KAAM,iBAAM,EAEf,GACD,+BA5EmB,gLCVrB,mSAJA,iBACA,eACA,mBAOqB,YAOpB,CAAqB,eAAO,QAI3B,QAAK,OAKL,OAAK,KAKL,OAAK,iBAAmB,cAKxB,QAAK,aAAe,MAGpB,UAAK,IAAK,QAAS,EAAO,OAAO,IACjC,eAAK,IAAK,SAAU,EAAO,OAAO,IAGlC,gBAAK,QAAQ,KAAM,YAAa,GAAI,KAAK,aACzC,eAAK,QAAQ,eAAiB,EAG9B,WAAM,GAAc,EAAO,QAAQ,WACnC,SAAK,SAAS,KAAM,cAAe,GACnC,KAAK,SAAS,KAAM,aAAc,GAAI,EAAO,QAC7C,QAAK,SAAS,KAAO,EACrB,cAAK,aAAa,IAAK,EACvB,gBAED,yCAKO,OACN,KAAM,EAAS,KAEf,aAAO,MAAK,KAAK,OACf,KAAM,UACN,OAAO,GAAK,KAAK,QAAQ,eAAgB,EAAO,OAAO,IAAK,WAAa,EACzE,iBAHK,GAIL,KAAM,UACN,eACC,QAAQ,EAAO,QACf,wBAAoB,EACpB,oCAAwB,EACxB,mBAAS,EAAK,KAEf,SACF,EAED,kCAMC,OAAO,MAAK,KACZ,6BAzEmB,kpBCJrB,mSALA,iBACA,gBACA,gBACA,iBAQqB,cAMP,aAAS,QAGrB,kEAMA,aAAK,QAAU,cAEf,aAAS,OAAQ,EAAK,QAAQ,SAC7B,YACC,OAUF,yBAAK,SAAW,cAEhB,KAAK,IAAI,IAAK,EACd,WAAK,KAAK,IAAK,EAAK,UACpB,CAED,YA7BA,6CAiCC,OAAO,MAAK,SACZ,oCAxCmB,kLCUrB,+TArBA,eACA,cAEA,gBAEA,gBACA,OAEA,kBACA,OAEA,kBAEA,cACA,cAEA,gBACA,gBACA,gBACA,mBAcqB,YAOpB,CAAoB,iBAAgB,oBAOnC,QAAK,MAQL,QAAK,UASL,QAAK,OAAS,MAed,aAAK,YAAc,cAA+B,KAAK,MACtD,QAAQ,KAET,cAAK,YAAY,GAAI,eAAgB,KAArC,cAAmD,CAAE,SAerD,gBAAK,YAAc,cAClB,QAAQ,GAQT,cAAK,YAAY,GAAI,OAAQ,KAA7B,eAA4C,CAAE,SAC9C,gBAAK,YAAY,GAAI,UAAW,KAAhC,0BAA0D,CAAE,SAC5D,gBAAK,YAAY,GAAI,mBAAoB,KAAzC,0BAAmE,CAAE,SAErE,gBAAK,GAAI,gBAAwB,eAAP,OAAiB,iBAAqB,GAAK,QAAS,GAAK,UAAW,GAAK,MACnG,QAAK,GAAI,gBAAwB,eAAP,OAAiB,cAAe,GAAK,UAAW,GAAK,MAAO,GAAK,QAC3F,QAAK,GAAI,kBAA0B,eAAP,OAAiB,iBAAuB,GAAK,UAAW,GAAK,QACzF,QAAK,GAAI,qBAA6B,eACrC,IAAK,QAAU,cAAoB,GACnC,UACD,EAED,wCAOyB,+DAExB,aAAO,MAAK,UAAW,KAAK,MAAM,QAClC,IAED,0BAUW,YAEV,IAAM,IAAuB,KAAK,OAGlC,UAAO,MAAK,UAAU,OACtB,GAED,uBAUQ,YACP,IAAM,IAAa,UAAW,SAE9B,IAAM,GAAuB,MAC7B,oBAAK,OAAO,aAAc,GAE1B,SAAK,YAAY,iBAEjB,SAAK,OAEL,gBACA,EAED,oBAUK,YAA0B,uEAE9B,OAAM,GAAY,KAAK,MAAM,QAE7B,SAAK,MAAM,eAAgB,UAG1B,IAAK,MAAM,UACX,qBAAK,MAAM,UAGX,qBAAK,MAAM,MAAO,eAChB,OAAQ,UAAW,SAAU,KAC7B,OAAQ,UAAc,SAAU,GAAW,GAAK,GAAK,MACvD,IACD,EAED,sBAUO,YAA0B,+DAEhC,QAAM,GAAuB,KAAK,UAAU,OAG5C,UAAO,MAAK,QAAS,GACrB,GAED,wBAeS,YAA2C,+DACnD,cAAO,MAAK,YAAY,QAAS,GAAuB,CAAE,QAAS,CACnE,KAED,kCAGY,CAEZ,8BASmC,kBAClC,MAAK,KAAM,gBAAiB,CAAE,QAAF,GAAW,UAAX,GAAsB,MAClD,IAED,8BAgBiC,kBAChC,MAAK,KAAM,gBAAiB,CAAE,MAAF,GAAS,UAAT,GAAoB,QAChD,IAED,gCAO4B,eAC3B,MAAK,KAAM,kBAAmB,CAAE,UAAF,GAAa,QAC3C,IAED,mCAOoB,YACnB,IAAM,IAAU,CAAE,UAElB,gBAAK,KAAM,qBAEX,IAAO,GACP,2BAxQmB,EA2QrB,cAAK,IAqCL,yFC5UA,CAuDyC,iBACxC,IAAM,GAAc,EACpB,OAAM,EAAY,EAIlB,UAAK,GAOL,GAAM,EAAsB,MAAvB,EAAwB,EAOxB,QAAC,EAAkB,EAQxB,UAAW,UAAS,YACpB,KAAS,UAAS,aAElB,GAAK,EACJ,UAAM,OAUN,IAAK,CAAC,EAAO,QACZ,MAAM,KAAM,EAKb,KAAM,MAQP,IAAQ,EAAO,OAAO,SACrB,IAAM,GAAiB,EAEvB,SAAS,UAAS,aAElB,KAAM,OACN,EAGD,GAAe,EAAO,EACtB,IAEkC,eAClC,IAAM,GAAgB,EAAI,OAAO,MAAO,CAAE,KAAM,QAAS,OACzD,IAAM,EAAqB,EAAI,OAAO,MAAO,CAAE,KAAM,YAAa,OAElE,UAAO,CAAC,GACR,CAOD,CACoC,eACnC,IAAM,GAAS,EAAQ,KAAK,SAC5B,OAAM,EAAe,cAAW,EAAS,GAFK,eAI9C,WAAqB,EAAa,0DAAc,YAC/C,MAAK,EAAO,QAAQ,IAAK,EAAM,KAAK,OAAU,EAAO,OAAO,IAAK,EAAM,KACtE,MAED,iBAR6C,oEAU9C,CACA,Q,oDAvIuB,QAA0B,aAAsB,2DACvE,UAAK,EAIL,gBAAM,GAAW,EAEjB,gBAAM,EAAW,EACjB,MAAM,EAAS,UAAa,mBAAoB,EAG3C,QAAC,EAAS,MAAM,WAAY,EAChC,QAAM,OAWP,GAAK,EACJ,SAAe,EAAO,EAGvB,KAAU,SAIV,GAAK,EAAqB,EAAM,SAAU,GACzC,IAAM,GAAY,cAClB,eAAM,OAAQ,EAEd,KAAU,SACV,EAED,GACA,SAGD,EA3DA,iBACA,cACA,cACA,+LCcA,mSAjBA,iBACA,gBACA,gBACA,OAIA,SACA,SAOA,mBAOqB,YAMpB,CAAa,aAAQ,mBAOpB,QAAK,MAQL,OAAK,KAAO,MAQZ,aAAK,OAAS,MAiBd,aAAK,YAAc,cAA+B,KAAK,MACtD,QAAQ,KACR,qBAAe,KAAK,KAUrB,iBAAK,UAAY,OAAO,SAGxB,cAAK,UAAU,SAAU,KAAK,MAAO,SAAuB,eAC3D,GAAK,YAAY,cAAe,EAChC,EAFD,EAEG,CAAE,SAGL,aAAK,UAAU,SAAU,KAAK,MAAO,cAAe,UACnD,IAAM,GAAY,EAAK,MAEvB,YAAK,YAAY,iBACjB,KAAK,KACL,QALD,EAKG,CAAE,SAGL,aAAK,UAAU,SAAU,KAAK,MAAM,QAAS,MAAc,aAC1D,GAAK,YAAY,cAAe,YAAa,EAAO,KAAM,EAC1D,WAED,QAAK,UAAU,SAAU,KAAK,MAAM,QAAS,SAAiB,aAC7D,GAAK,YAAY,cAAe,eAAgB,EAAO,KAAM,EAC7D,WAGD,QAAK,UAAU,SAAU,KAAK,KAAM,kBAAmB,6BAAwB,KAAK,MAAO,KAG3F,cAAK,YAAY,GAAI,eAAgB,KAArC,cAAmD,CAAE,SACrD,gBAAK,YAAY,GAAI,SAAU,KAA/B,UAAyC,CAAE,SAG3C,aAAK,YAAY,GAAI,YAAa,KAAlC,mBAAqD,CAAE,SACvD,aAAK,YAAY,GAAI,YAAa,KAAlC,sBAAwD,CAAE,SAC1D,aAAK,YAAY,GAAI,YAAa,KAAlC,yBAA2D,CAAE,SAC7D,aAAK,YAAY,GAAI,YAAa,KAAlC,6BAA+D,CAAE,SACjE,OAED,qCAkBY,WAAyB,8DACpC,OAAM,EAAW,KAAK,KAAK,WAAY,EACvC,GAAM,EAAY,KAAK,MAAM,QAE7B,eAAK,OAAO,aAAc,EAE1B,GACA,CAED,kCAKC,MAAK,KACL,eAAK,UACL,mCAlImB,kFChBrB,CA6F6B,aAC5B,IAEA,YAAM,KAAM,EAAM,SAAU,CAAE,UAE7B,cACC,IAAK,kBAAQ,WAAM,SAAU,EAI9B,GACC,OAAQ,WAER,IAAM,GACL,CAAE,EAAU,MAAM,QAAS,EAAM,QAAW,EAAU,MAAM,QAAS,EAAM,UACzE,EAAU,IAAI,SAAU,EAAM,MAAS,EAAU,IAAI,QAAS,EAEjE,YACA,EAfF,GAgBE,QAAS,WACT,GAAe,KAAM,EAAU,MAE/B,qBACA,EAIF,KAAe,QAAS,WACvB,QAAI,GAEJ,IAAQ,EAAO,QAAU,EAClB,WAAc,UAAM,SAE1B,KAAS,EAET,oBAED,EACD,E,oDArHuB,QAAoB,WAC3C,IAAM,GAAO,MACb,QAAM,EAAQ,EAEd,mBAAK,CAAC,GAAS,EACd,kBAGD,MAAM,GAAO,EAAM,MACnB,KAAM,EAAa,EAAM,MAAM,cAAe,EAC9C,KAAM,EAAe,EAAK,cAe1B,GAEA,IAAK,EAAM,MAAM,QAAU,EAAM,IAEhC,OAEA,EAAmB,UAAM,4BACxB,EAAc,EAAM,MAAM,KAAM,EAAW,QAC3C,EAAc,EAAM,IAAI,KAAM,EAAW,QAI3C,MAAM,GAAU,EAAiB,IAAI,OAAS,EAAiB,MAE/D,OAvCuD,eAwCvD,WAAoB,EAAiB,SAAU,CAAW,2DAAW,SACpE,MAAK,EAAK,GACT,eAAK,eAAgB,cAAU,EAAK,KAAM,EAE1C,oBAAK,eAAgB,EAkBvB,mBA9DuD,oEA+DvD,IAAK,GAAoB,EAExB,IAAM,GAAW,EAAM,sBAAuB,EAAiB,MAAO,UAAS,SAAU,EAAM,GAAK,GAEpG,GAAM,EAAkB,cAAW,UAAS,SAAU,GAAQ,EAC9D,OAAM,EAAmB,cAAW,EAAS,IAAK,UAAS,SAAU,EAErE,UACA,KACA,EAED,OACA,EAGD,EAlGA,gBACA,cACA,cACA,eACA,yLCEA,mSAVA,MA0BwB,QAAmD,iBACrE,CACJ,MAAQ,EAAe,MAGnB,SAAC,EACL,eAAe,cAAe,EAAW,EACxC,CAIF,cAAM,GAAY,GAAI,GAAW,EAAgB,EAAO,EAExD,QAEA,IAAK,EAAQ,GACZ,oBAAgB,EAEhB,cAAgB,CAGjB,KAAU,YAAa,EAGtB,CACA,WAGD,eAAM,GAAW,EAGjB,oBACC,IAAU,UAAW,CAUrB,cAAI,KAEL,qFAED,EApEA,eACA,gBACA,cACA,cACA,kBAqEM,YACL,CAAoC,iBAAW,QAM9C,QAAK,eAOL,OAAK,MAOL,OAAK,SAaL,OAAK,aAAe,GAAI,KAAK,CAAE,KAAK,SAOpC,cAAK,OAAS,EAAe,MAC7B,MAED,sCAOoB,aACnB,GAAQ,MAAM,KAEd,OAAM,GAAI,GAAI,IAAG,EAAI,EAAM,OACpB,MAAO,EAEb,QAAK,YAAa,EACjB,SAAe,CAAN,MAAW,EACpB,eAAU,IAAQ,EAAM,OAAS,GAAS,EAG5C,QAED,4CAOC,OAAK,MACJ,aAAO,UAAM,SAAU,KAGxB,cAAO,KAAK,eAAe,MAAM,yBAA0B,KAC3D,SAED,4BAQmB,aAIlB,IAAK,KAAK,eACT,GAQD,iBARM,cAAe,EAEpB,MAMK,GAAY,KAAK,gCAAiC,EAEnD,SACJ,aAKI,QAcL,QAAK,iBAAkB,EACvB,cApBM,sBAAuB,EAK7B,EAiBD,8BAIqB,aAEpB,CAAK,KAAK,gCACT,QAAK,QAIL,QAAK,qBAAsB,EAE5B,EAED,sCAI6B,aAE5B,CAAK,EAAK,GACT,gBAAK,YAAa,EAAK,cAIvB,QAAK,qBAAsB,EAE5B,EAED,wBAGS,WAER,IAAK,CAAC,KAAK,gBAAiB,EAAM,CAAE,KAAK,SAGxC,SAQD,sBARK,MACH,mFACA,CAAE,KAAF,EAAQ,SAAU,KAGnB,cAGK,GAAU,UAAa,mBAAoB,KAEjD,eAAK,MAAM,OAAQ,KAAK,SAExB,QAAK,SAAW,UAAS,mBACzB,KAGA,cACM,aADD,KAAK,eAAgB,IAAU,CAAC,KAAK,OAAO,MAAO,CAAE,KAAM,QAAS,OAAQ,CAAE,KAAK,SACvF,UAEK,EAEN,IAED,iCAIwB,aACvB,CAAK,GAAG,eAIR,YAAM,GAAY,EAAQ,SAAa,EAAK,6BAA1B,SAAkE,KAAK,aAAa,IAAK,EAC3G,iBAAM,EAAa,EAAQ,QAAY,EAAK,yBAAzB,SAA6D,KAAK,aAAa,IAAK,EACvG,aAAM,EAAe,UAAa,aAClC,GAAM,EAAgB,UAAa,YAEnC,MAAK,EACJ,IAAM,GAAW,UAAa,mBAAoB,KAElD,eAAK,MAAM,MAEX,QAAK,SAAW,UAAS,mBACzB,KACA,QAED,IAAK,EAEC,CAAC,KAAK,SAAS,QAInB,cAAI,MAKL,sGAAK,SAAW,UAAS,SAAU,EAAc,WAIjD,UAAM,GAAW,cAAkB,KAAK,SAAS,KAAM,KAAK,SAAS,KAErE,yBAAK,MAAM,MAEX,QAAK,SAAW,UAAS,mBACzB,KACA,QAED,GACA,WACA,SAED,qCAM4B,aAC3B,IAAM,GAAY,cAKlB,aAAK,KAAK,cAAe,EAAW,KAAK,SAAS,SAAY,KAAK,gBAAiB,EAAM,CACzF,QAAU,eAEV,QAAK,YAAa,EAEnB,GAED,gDAKiC,WAChC,IAAM,GAAY,KAAK,cAAe,EAAM,KAAK,SAEjD,WAAK,CACJ,EAGD,cAAQ,GAAa,KAAK,SAAS,QAElC,IAAK,KAAK,OAAO,OAAO,IAAK,KAAK,SAAS,OAC1C,MAGD,YAAK,KAAK,SAAS,UAClB,IAAM,GAAS,KAAK,SACpB,YAAK,SAAW,UAAS,aAIzB,GAAK,EACJ,cAAK,MAAM,OAEZ,EATD,KASO,IAAK,KAAK,SAChB,aAAK,SAAW,UAAS,YAAa,KAAK,SAC3C,YACA,IAAM,GAAU,UAAS,YAAa,KAAK,SAE3C,aAAK,MAAM,MAAO,KAElB,eAAK,SAEL,OAAK,aAAa,IAAK,KAAK,SAC5B,UACD,CAED,CACA,QAED,8BAOqB,aACpB,OAAK,MAAK,gBAAiB,EAAM,CAChC,IAGD,EAAK,EACJ,OAAO,KAAK,cAAe,EAAM,EAGlC,QACA,IAED,gCAMuB,aACtB,OAAO,MAAK,OAAO,MAClB,MAAM,KAAK,mBACX,cAAY,MAAM,KAAM,EACxB,2BAED,GAED,+BAKgB,WACf,OAAO,MAAK,OAAO,QAAQ,IAAK,KAAK,mBACrC,GAED,mCAKoB,WACnB,OAAK,GAAK,GACT,QAGD,QAAO,EACP,8FClaF,CA4D+B,eAG9B,IACC,MADI,IAAM,WACH,GAAoB,EAAK,OAAQ,EAIzC,SAAK,EAAM,OAAU,EAAK,UAAY,eAAiB,cAEtD,IAAK,EAAK,OAAO,QAAQ,IAAK,EAAM,KACnC,YAAO,WAAS,SAAU,EAAM,KAAM,EAAK,UAAY,QAIxD,aAAK,EAAK,OAAO,MAAO,CAAE,KAAM,QAAS,OAAQ,EAChD,qBAAO,GAER,YACD,KAGC,IAAK,EAAK,OAAO,OAAO,IAAK,EAAM,KAElC,MAMD,cANM,OAAO,KAAM,WAAM,QAExB,MAII,EAAK,OAAO,MAAO,CAAE,KAAM,QAAS,OAAQ,EAChD,qBAAO,GAER,YACD,CAGD,CACqC,eACpC,IAAM,GAAW,EAAO,SAExB,YACC,SAAM,GAAO,EACb,KAAI,EAAS,EAAO,SAAS,OAAS,EAEtC,YAAQ,4BAAuB,EAAM,IAAsB,WAAR,KAAuB,6BAAwB,EACjG,MAEA,SAAS,EAAO,SAAS,OAAS,EAIpC,kBAAO,GACP,SAE+B,eAC/B,IAAM,GAAO,EACb,KAAM,EAAY,UAAS,SAAU,EAAM,EAAY,MAEvD,SACC,GAAO,cAAW,EAElB,GAAO,cAAW,EAEnB,E,oDAhGuB,QAAiC,aAA0B,+DAClF,MAAM,EAAS,EAAe,MAC9B,OAAM,EACN,UADkB,IAAQ,UACpB,EAAO,EAAQ,KAAO,EAAQ,KAEpC,YAAM,EAAQ,EACd,MAAM,EAAS,cACd,YAAY,EAAgB,EAC5B,GACA,8BAAW,EAAY,UAGxB,aAAM,EAAO,CAAE,OAAF,EAAU,OAAV,EAAkB,UAAlB,EAA6B,KAE1C,GAEA,EAAU,EAAO,EAAO,QACvB,IAAK,EACJ,KAGD,UAAM,GAAW,EAAgB,EAAM,EAEvC,UACC,EAID,cAJW,SAEV,EAGF,CAED,EAhEA,eACA,eACA,cACA,uICDA,mSAFA,mEA+EqB,YAIpB,aAAc,QAOb,QAAK,YAAc,GAanB,UAAK,mBAAqB,GAC1B,IAED,8BAcW,aACV,CAAK,eACJ,YAAO,KAAK,uBAGR,IAAC,KAAK,YAAY,IACtB,SAAK,YAAY,IAAK,EAAM,GAG7B,WAAK,YAAY,IAAK,GAAO,IAC7B,KAED,wBAee,aACd,OAAK,gBACJ,YAAO,KAAK,uBAGb,MAAK,KAAK,KAAM,EACf,UAAK,YAAY,IAAK,GAAO,IAM9B,SAED,qBAgBY,aACX,CAAK,eACJ,YAAO,KAAK,uBAGb,OAAM,GAAkB,KAAK,YAAY,IAEzC,MACC,iBAGD,SAAM,GAAQ,EAAgB,IAE9B,SACC,YAGD,KACA,CAED,uBAgBc,aACb,CAAK,eACJ,YAAO,KAAK,uBAGb,OAAM,GAAO,KAAK,KAAM,EAExB,SACC,aAAK,YAAY,IAAK,GAAO,IAGvB,UAIP,QACA,IAED,uCAUwB,WACvB,IAAI,GAEJ,KAAM,EAAW,KAAK,mBAAmB,IAAK,EAE9C,gBAAK,EACJ,IAAM,GAAS,EAAS,IAAK,EAE7B,WACC,MAAS,EAAO,IAAK,EAEtB,QAEI,OACJ,OAAS,KAAK,uBAAwB,EAAU,YAAa,EAAU,UAAW,EAGnF,SACA,CAED,uCAWoC,eACnC,IAAM,GAAS,OACf,mBAAI,EAEJ,WAAW,KAAK,mBAAmB,IAE9B,GACJ,MAAW,GACX,UAAK,mBAAmB,IAAK,EAG9B,MAAS,EAAS,IAEb,GACJ,MAAS,GACT,OAAS,IAAK,EAGf,MAAO,IAAK,EAEZ,GACA,qBAtNmB,mFC5DL,uBAAuC,aACtD,OAAc,cACb,IAAM,GAAgB,EACtB,aAAM,EAAiB,MAEvB,QAAe,KAJQ,eAMvB,WAAyB,EAAc,0DAAc,SACpD,QAAO,KAAM,EAAO,aACpB,YARsB,oEAUvB,GAAe,UAAW,EAAQ,EAE7B,YAAC,EAAe,QAAS,EAC7B,cAAc,eAAgB,UAC7B,GAAc,UAAU,MACxB,EAEF,EACD,CA1CD,EAOA,8DAEA,qFCEA,oDAegB,iCACf,OAAgC,kBAE/B,IAAK,CAAC,EAAK,QAAU,EAAW,QAAS,EAAK,MAAO,CAAQ,UAC5D,IAAM,GAAoB,EAAc,gBAAiB,EAAK,MAAO,EAErE,KAAK,OAAS,cAA2B,qBACzC,GACD,CACD,CAED,IAKgB,sBACf,OAAgC,kBAC/B,IAAM,GACL,MACA,eAAQ,EAGT,SAAK,EAAc,OAAO,MACzB,IAAK,EAAW,QAAS,EACxB,WAAK,OAAS,cAAe,EAAK,MAGpC,MACD,C,EAvDD,gBACA,eACA,iTCKA,mSAHA,gBACA,iBAyBqB,YAIpB,aAAc,QAUb,QAAK,aAAe,GACpB,IAED,8BA0Bc,aACb,IAGA,SAAK,GAAQ,GAAI,SAAY,EAAQ,GACpC,8BAAK,aAAa,IAMd,WAAC,KAAK,aAAa,IACvB,KAGqB,KAAK,aAAa,IAGxC,MANsB,GACrB,QAAK,aAAa,IAAK,EAEvB,MAGkB,IACnB,GAED,qBA6Be,aACd,IAAM,GAAqB,KAAK,aAAa,IAE7C,SACC,YAID,KAAK,EAAQ,GAAI,SAAY,EAAQ,GACpC,oBAID,EAAO,EAAmB,KAC1B,EAED,wBA4BkB,aACjB,SAAK,KAAK,KAAM,EACf,KAAK,EAAQ,GAAI,SAAY,EAAQ,GAEpC,yBAAK,aAAa,IAGlB,WAAK,aAAa,IAAK,GAAU,QAOnC,MAED,uBA4BiB,aAChB,IAAM,GAAqB,KAAK,aAAa,IAE7C,GACC,aAAK,EAAQ,GAAI,SAAY,EAAQ,GAEpC,yBAAK,aAAa,IAGlB,QAAmB,OAGrB,GAED,yCAQ+B,WAC9B,IAAM,GACL,CACA,QACA,aACA,SAGD,UAAM,EAAa,EAAQ,mBARa,eAUxC,WAAyB,gDAAa,UAErC,MAAkB,OAAb,KAIL,OAJ6B,QAIjB,UAAU,KACtB,YAjBuC,qEAmBxC,IAAM,GAAU,EAAQ,gBAnBgB,eAqBxC,WAAyB,gDAAU,SAClC,QAAY,MAAM,KAClB,YAvBuC,qEAyBxC,IAAM,GAAS,EAAQ,gBAzBiB,gBA2BxC,YAAqB,oDAAS,WAC7B,QAAY,MAAM,KAClB,aA7BuC,yEA+BxC,OACA,EAED,2BAWyB,aACnB,IACJ,MAAW,GAGZ,IAAK,EAAK,GACT,iBAAS,IAET,GAID,EAAK,EAAK,GACT,cAAS,IAAK,EAAM,EAAe,uBAGpC,IAAK,EAAK,GACT,uBAAS,IACT,MAlBkC,gBAoBnC,WAAqB,EAAK,4DAAgB,SACzC,QAAW,EAAe,WAAY,EACtC,WAtBkC,oEAwBnC,OACA,QAGF,cApRqB,KA0Rf,aAKL,aAAc,QAOb,QAAK,gBAQL,UAAK,aACJ,WAAW,GACX,WAAO,GACP,WAAO,GAER,KAED,8BAqBK,WACJ,KAIM,GAAM,KAJP,GACJ,YAGD,oBAAoB,KACnB,aAAK,IACJ,SAAK,KAAM,EAAM,EAGnB,GAED,qBAoBM,WAEL,IAAK,EAAY,MAAQ,CAAC,KACzB,sBAAO,MAGR,oBAAM,GAAM,KAAQ,MACnB,gBAAK,IAAQ,GACZ,IAAM,GAAQ,KAAK,MAAO,EAAM,EAEhC,OACC,aAED,EAIF,CACA,QAED,wBAkBS,WACR,KAIM,GAAM,KAJP,GACJ,YAGD,oBAAoB,KACnB,aAAK,IACJ,SAAK,SAAU,EAAM,EAGvB,GAED,uBAiBQ,WACP,KAIM,GAAM,KAJP,GACJ,YAGD,oBAAoB,KACnB,aAAK,IACJ,SAAK,QAAS,EAAM,EAGtB,GAED,qBAUY,aACX,IAAM,GAAQ,cAAS,GAAS,EAAO,CACvC,GAAM,EAAc,KAAK,aAAc,GAFrB,eAIlB,WAAoB,qDAAQ,QAC3B,MAAc,WAAT,OAAmC,OAAT,MAM9B,OANkD,WAM5C,eAGP,wFAAY,IACZ,KAfiB,8EAgBlB,CAED,sBASa,aACZ,IAAM,GAAQ,cAAS,GAAS,EAAO,CACvC,GAAM,EAAc,KAAK,aAAc,GAFpB,eAInB,WAAoB,gDAAQ,YAC3B,MAAc,WAAT,OAAmC,OAAT,MAA6B,OAAT,MAElD,IAAM,GAAQ,KAAK,MAAO,cAAW,KAAK,aAAc,GAExD,aACC,aAED,EAPD,KAQC,IAAM,GAAQ,EAAY,IAE1B,MACC,iBAGD,SAAK,CACJ,EAED,QACD,UAvBkB,oEAyBnB,CACA,QAED,yBAOgB,aACf,IAAM,GAAQ,cAAS,GAAS,EAAO,CACvC,GAAM,EAAc,KAAK,aAAc,GAFjB,eAItB,WAAoB,gDAAQ,SAC3B,MAAc,WAAT,OAAmC,OAAT,MAE9B,OAFkD,WAE7C,SAAU,cAAW,KAAK,aAAc,GAE7C,YAAY,IAEb,cAXqB,oEAYtB,CAED,wBAOe,aACd,IAAM,GAAQ,cAAS,GAAS,EAAO,CACvC,GAAM,EAAc,KAAK,aAAc,GAFlB,eAIrB,WAAoB,gDAAQ,YAC3B,MAAc,WAAT,OAAmC,OAAT,MAE9B,OAFkD,WAE7C,QAAS,cAAW,KAAK,aAAc,GAC5C,cACA,IAAM,GAAQ,EAAY,IAE1B,GACC,UAAY,IAEb,KACD,UAfoB,oEAgBrB,yLCnjBF,CAkQ0C,aACzC,IAAM,GAAe,GACrB,KAAM,EAAU,GAGhB,KAAM,EAAS,cACd,eAAe,UAAc,SAAU,EACvC,GAGD,sBAVqD,iBAWrD,YAAqB,oDAAS,WAE7B,MACC,SADI,KAAM,KAAK,QACF,IAAK,GAIpB,eAlBqD,kGAmBrD,YAAqB,wDAAe,WACnC,MAAM,GAAa,GAAM,aACzB,aAAM,GAAkB,UAAc,aAGjC,IAAC,EAAQ,IACb,MAGQ,IAAK,IAAa,IAAM,UAAc,mBAI/C,MAPS,IAAK,GAAY,cAAgB,UAAc,mBAGvD,mBAIO,UAAW,SACnB,IAjCoD,uFAmCrD,OACA,EAkCD,mSArVA,iBACA,cACA,cACA,eACA,eACA,eACA,OAEA,eACA,cACA,eACA,kBAsFqB,YAQpB,aAAkC,wEAMjC,QAAK,cAAgB,KAAQ,YAI7B,QAAK,cAAc,YAAc,KAAK,aAAa,KACnD,WAAK,cAAc,gBAAkB,KAAK,iBAAiB,KAC3D,KAED,kCAcS,WAAgC,2DACxC,WAAK,KAAM,cAEX,MAAM,GAAa,UAAe,WAClC,GAAI,GAAmB,KAAK,aAAc,EAAU,EAI/C,SACJ,KAIK,GAAiB,GACtB,yBAAmB,cAA2B,CAI/C,SAAiB,QAAU,EAE3B,IACA,IAZQ,MAIH,OAUN,6BAIqB,aAAkC,2DACtD,MAAM,GAAO,KAAQ,YAAI,EACxB,OACA,SAGD,aAAK,GAAM,GACV,gBAAK,KAAM,WAAa,EAAM,KAAM,GAAM,EAAY,KAChD,eAAK,EAAM,GACjB,aAAK,KAAM,OAAQ,GAAM,EAAY,KAErC,oBAAK,KAAM,mBAAoB,GAAM,EAAY,KAIlD,eAAK,GAAK,QAAU,EAAG,GAAK,6BAA+B,GAAK,oBAS/D,oBAAI,KAAM,oFAAqF,CAAE,EAAO,GAExG,SAGD,MAAO,GACP,MAED,iCAIyB,aAAkC,mEAE1D,MAAM,GAAe,MAAM,KAAM,EAKjC,eAAM,GAAoB,GACxB,IAAK,mBAAa,GAAK,aAAc,GAAW,EAAY,GADpC,GAExB,OAAQ,mBAAa,0BAAkC,gBAA/C,OAFgB,GAGxB,OAAkB,eAClB,OAAO,IAAO,OACb,GAAS,GAAI,oBAAuB,MAAM,KAAM,GAAS,eAE1D,GAGF,YAAO,eACP,GA0CD,oBA/JoB,EAuKrB,cAAK,IAML,kIC5QA,uSAMqB,qDACpB,gBAMS,WACR,IAAM,GAAM,SAAS,eAAe,mBACpC,IAAM,EAAY,EAAI,cACtB,gBAAU,YAEV,GAAO,EACP,6BAbmB,mFCFrB,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,wGCdA,CA2FkC,iBACjC,IAAM,IAAmB,GACzB,QAAM,GAAgB,GAAiB,WAEvC,SAAK,IACJ,cAAc,SAAW,GAAc,SAAS,sBAAuB,IAGxE,IAAK,GACJ,cAAc,SAAW,GAAc,SAAS,sBAAuB,IAGxE,IAAO,CACP,IAsVqD,iBACrD,CAsCS,aACR,IAAM,IAAQ,cACb,GAAgB,SAAS,aAAc,IACvC,GAAgB,SAAS,aAG1B,KAAM,GAAgB,cAAwB,GAAO,GAAe,IAAK,GAAK,GAAe,MAC7F,MAAuB,aACvB,GACD,KAnCM,GAZA,IAAyB,MAC/B,QAAM,GAAQ,GAGd,MAAI,GAAM,GAAM,QAAS,GAAI,aAAc,GAI3C,KAAI,GAEJ,EAAI,GAAY,GAAM,QAAS,GAE/B,WAAU,GAAI,EAAG,GAAI,GAAM,OAAQ,KAClC,IAAM,IAAO,GAAM,QACnB,IAAM,GAAc,GAAK,aAAc,GAIvC,KAAK,IAGJ,KAAK,IAAO,GACX,OAGD,QACA,MAGW,QAAY,GACxB,UAID,OAEA,MAEA,EAYD,CACS,YACR,IAAM,IAAU,MAGhB,kBAAQ,aAAc,cAEtB,IACA,E,CA1fD,iBAIA,cACA,cAEA,eACA,eACA,eACA,gBAEA,eACA,gBACA,gBACA,gBACA,gBACA,gBACA,iBACA,kBACA,mBACA,mBACA,mBACA,mBAEA,sBAxBM,GAAwB,UAC9B,sBAAM,GAAmB,UA2BzB,iBACA,wBAAgE,kBAG/D,IAAM,IAAS,GAAkB,GAAG,GAEpC,UAAK,IAAE,MAAM,iBAAkB,GAC9B,cAAO,KAAM,EAA4B,GAG1C,KACA,EAED,GACA,wBAA2D,kBAC1D,IAAM,IAAgB,cAAc,GAAE,SAAS,KAAM,GAAE,SAAS,KAAK,MAAO,EAAG,CAE/E,IAAM,GAAS,GAAkB,GAAG,GAAG,IAHiC,kBAKxE,YAAyB,GAAE,8DAAa,eAGvC,MAAK,GAAU,MAAM,iBAAkB,KAAmB,GAAU,MAAM,MAAM,QAAS,IACxF,IAAM,IAA2B,MAEjC,QAAM,GAAa,GAAc,aACjC,GAAM,GAAW,UAAS,mBAC1B,OAAS,KAAK,KAEd,MAAM,IAAW,GAAE,gBAAgB,MAAM,QAAS,GAAI,aAAc,GAEpE,QAAyB,aAAc,cACtC,cAAW,GAAY,IACvB,GAAU,IACG,YAAY,KAAO,GAChC,GAAU,SAIX,OAAO,KAEP,IACA,KACD,WA7BuE,4EA+BxE,OACA,GAED,GACA,uBAAwD,kBAIvD,OAAK,IAAE,SAAS,QAAS,GACxB,UAAO,CACN,GAAE,cACF,GAIF,SAAO,GAAkB,GAAG,GAC5B,GAZD,GA6BA,wBAAgD,GAChD,uBAAgD,GAChD,wBAA+C,GAC/C,wBAAiD,GACjD,uBAA+C,GAC/C,wBAEA,GACA,uBAAsD,kBAKrD,IAAM,IACL,GAAE,eAAe,MAAQ,GAAE,SAAS,MAGrC,MAFC,kBAAe,GAAE,eAAe,gBAAiB,GAAE,SAAS,iBAEvD,GAAuB,GAAE,eAAe,QAAU,GAAE,SAAS,QAAU,GAAE,eAAe,OAAS,GAAE,QAAU,GAAE,SAErH,aAAK,KACJ,GAAO,CACN,GAAE,cACF,GAIF,SAAO,GAAkB,GAAG,GAC5B,GAED,GACA,uBAAwD,kBAGvD,OAAK,IAAE,SAAS,QAAS,GACxB,UAAO,CAGR,KAAO,GAAkB,GAAG,GAC5B,GAED,GACA,uBAAsD,kBAIrD,IAAM,IACL,GAAE,SAAS,MAAQ,GAAE,eAAe,MAGrC,MAFC,kBAAe,GAAE,SAAS,gBAAiB,GAAE,eAAe,iBAEvD,GAAuB,GAAE,eAAe,QAAU,GAAE,SAAS,QAAU,GAAE,eAAe,OAAS,GAAE,QAAU,GAAE,SAErH,aAAK,KACJ,GAAO,CAGR,KAAO,GAAkB,GAAG,GAC5B,GAED,GACA,yBAAuD,kBACtD,IAAM,IAAQ,GAAE,SAChB,gBAAM,GAAQ,GAAE,SAGhB,mBAAsC,MAAjC,iBAAe,GAAO,IAC1B,IAAK,GAAE,SAAS,QAAU,GAAE,SAE3B,aAAO,CACP,KAAM,GAAK,GAAE,SAAS,OAAS,GAAE,SAAS,OAK1C,IAAM,IAAQ,GACd,kBAAM,eAAe,QAAU,GAAE,SAAS,OAAS,GAAE,SAGrD,OACC,GAAE,sCACF,GAAE,6BADF,SAEA,GAAE,gBAAgB,eAAe,OAAS,GAAE,gBAAgB,eAE5D,WAAM,gBAAgB,eAGvB,SAAO,CACP,GAKA,IAAM,IAAQ,GAEd,kBAAM,gBAAgB,SACtB,YAAM,eAAe,eAAe,KAAM,GAAM,eAAe,eAAe,KAAK,OACnF,QAAM,eAAe,eAAe,KAAM,GAAM,eAAe,eAAe,KAAK,OACnF,QAAM,eAAe,eAAe,OAAS,GAAE,SAAS,OAAS,GAAE,SAGnE,OACC,GAAE,sCACF,GAAE,6BADF,SAEA,GAAE,gBAAgB,eAAe,OAAS,GAAE,gBAAgB,eAE5D,WAAM,gBAAgB,eAGvB,SAAO,CAER,GAED,OAAO,IAAkB,GAAG,GAC5B,GAED,GACA,yBAAwD,kBAGvD,OACC,MADI,kBAAe,GAAE,SAAS,KAAM,GAAE,SAAS,iBACxC,CAGR,KAAO,GAAkB,GAAG,GAC5B,GAED,GACA,yBAAsD,kBAIrD,IAAM,IACN,MAD4B,kBAAe,GAAE,SAAS,gBAAiB,GAAE,MAAM,MAAM,iBAC/E,GAAuB,GAAE,MAAM,MAAM,OAAS,GAAE,SAAS,QAAU,GAAE,MAAM,IAAI,QAAU,GAAE,SAEjG,UAAK,IACJ,SAAO,CACP,KAAM,GAA0F,MAArF,kBAAe,GAAE,SAAS,gBAAiB,GAAE,MAAM,IAAI,aAAc,CAAC,GAAI,MAIrF,IAAM,IAAQ,GAOd,QAAM,GAAe,UAAS,mBAAoB,GAAE,MAGpD,UAAa,KAAK,KAAM,GAAE,QAG1B,MAAM,IAAY,GAAa,aAC/B,MAAM,gBAAgB,SAKtB,MAAM,IAAY,UAAS,mBAE3B,OAAU,KAAK,KAAM,GAAE,SACvB,WAAM,eAAe,eAKrB,MAAM,IAAY,UAAS,mBAC3B,cAAU,KAAK,KACf,MAAM,eAAe,eAErB,GAAO,CACP,GAED,OAAO,IAAkB,GAAG,GAC5B,GAED,GACA,wBAAwD,eACvD,IAAI,GAEJ,WAAM,IAAgB,cAAc,GAAE,SAAS,KAAM,GAAE,SAAS,KAAK,MAAO,EAAG,CAE/E,OAAK,GAAE,6BAAP,QAEC,IAFmD,mBAGnD,YAAyB,GAAE,8DAAa,eACvC,MAAK,GAAU,MAAM,iBAAkB,KAAmB,GAAU,MAAM,MAAM,QAAS,IACxF,CACC,IADI,MAAU,YAGZ,gBAAgB,MAAM,QAAS,GAAI,gBAAiB,GAGvD,QALG,gBAAgB,MAAM,QAAS,GAAI,aAAc,GAAU,IAAK,GAElE,UAID,KACD,WAbkD,4EAcnD,CAED,OAAO,CACP,GAED,GACA,yBAAwD,kBAGvD,IAAsE,MAAjE,kBAAe,GAAE,SAAS,KAAM,GAAE,SAAS,iBAC/C,IAAM,IAAc,CACnB,GAAE,cACF,GAID,mBAAa,GAAI,WAAY,GAAI,eAAe,KAMhD,KACA,EAED,OAAO,IAAkB,GAAG,GAC5B,GAED,GACA,wBAA6D,eAE5D,IAAM,IAAS,CAAE,GAEjB,eAAK,IAAE,MAAM,iBAAkB,GAC9B,cAAO,KAAM,EAA4B,GAG1C,KACA,EAED,GACA,yBAAsD,kBAIrD,IAAM,IACN,MAD4B,kBAAe,GAAE,MAAM,MAAM,gBAAiB,GAAE,SAAS,iBAC/E,GAAuB,GAAE,MAAM,MAAM,OAAS,GAAE,SAAS,QAAU,GAAE,MAAM,IAAI,QAAU,GAAE,SAEjG,UAAK,IACJ,SAAO,CACN,GAAE,cACF,GAED,SAAM,GAA0F,MAArF,kBAAe,GAAE,SAAS,gBAAiB,GAAE,MAAM,IAAI,aAAc,CAAC,GAAI,MACrF,IAAM,IAAQ,GAGd,kBAAM,iBAAiB,SAGvB,YAAM,eAGN,aAAM,eAAe,eAAe,KAAM,GAAM,eAAe,eAAe,KAAK,OAEnF,KAAO,CACP,GAED,OAAO,IAAkB,GAAG,GAC5B,GAED,GACA,yBAAwD,kBACvD,IAAM,IAAgB,cAAc,GAAE,SAAS,KAAM,GAAE,SAAS,KAAK,MAAO,EAAG,CAE/E,IAAM,GAAS,GAAkB,GAAG,GAEpC,OAAK,GAAE,WAAY,GAAI,SAAS,QAAS,IAGxC,IAAM,IAAwB,GAC9B,WAAsB,WAAY,GAAI,SAAW,GAAE,WAAY,GAAI,SAAS,aAE5E,MAAO,KACP,GAED,OACA,GAED,GACA,yBAAqD,eACpD,IAAI,GAEJ,WAAM,IAAgB,cAAc,GAAE,SAAS,KAAM,GAAE,SAAS,KAAK,MAAO,EAAG,CAE/E,UAAK,IAAE,6BAGN,SAAK,GAAE,WAAY,GAAI,SAAS,QAC/B,SAAE,gBAAgB,MAAM,QAAS,GAAI,KAAO,GAAE,WAAY,GAI5D,SAAO,CACP,GAED,GACA,yBAAwD,kBACvD,IAAM,IAAS,GAAkB,GAAG,GACpC,IAAM,GAAiB,GAAE,gBAEzB,SAJqE,kBAKrE,YAAqB,yDAAS,0CAC7B,YAAyB,GAAM,iEAAa,WAC3C,MAAM,GAAW,GAAU,eAAe,aAAc,GAExD,SAAK,GAAS,QACb,SAAU,SAEX,EAP4B,uFAQ7B,CAboE,uFAerE,OACA,GAED,GACA,yBAAwD,kBACvD,IAAI,GAEJ,WAAM,IAAiB,GAAE,gBAAgB,SAH4B,kBAKrE,YAAyB,GAAE,iEAAa,WACvC,MAAM,GAAW,GAAU,eAAe,aAAc,GAExD,SAAK,GAAS,QACb,SAAU,SAEX,EAXoE,uFAarE,OAAO,IAAkB,GAAG,GAC5B,GAGD,mpBCxbA,CAuG8C,mBAC7C,IAAM,GAAM,EACZ,SAAM,EAAQ,GAEd,GAAM,EAAY,cAAqB,EAAM,EAAU,EAAU,EAAI,QAAS,EAE9E,WAAM,SACN,KAAM,aACN,KAAI,eACJ,qSAtHD,gBACA,eACA,OACA,iBACA,iBAQqB,0IACpB,qBAIC,OACA,QAED,2CAOC,OACA,EAED,oCAIC,OACA,0CAGF,mBA1BqB,EA4CrB,eAAU,YAAqC,aAC9C,IAAM,GAA8B,QAAvB,QAAO,GAA2B,EAAe,EAC9D,KAAM,EAAgB,KAAK,SAAS,QAAQ,IAE5C,MAAK,CAAC,GAAY,CAMjB,OAAM,eAGP,sFAAM,GAAe,EAAgB,EAAc,WAE9C,WAGJ,KAGc,KAAM,EAAM,EAG3B,KANe,KAAM,EAAM,KAG1B,GAID,IAED,GAOA,eAAU,eAA0B,WACnC,IAAM,GAA8B,QAAvB,QAAO,GAA2B,EAAe,EAE9D,QAAK,CAAC,KAAK,SAAS,QAAQ,IAM3B,QAAM,eAGP,iFAAM,GAAW,KAAK,SAAS,QAAQ,IAAK,GAE5C,oBAAc,KAAM,EAAM,EAE1B,MACA,IAjBD,GA8BA,UAAa,SAAU,0LCnGvB,CAmamC,cAClC,IAAM,IAAW,GAEjB,YAAK,GACJ,IAAM,IAAO,GACb,KAAM,GAAS,GAAc,OAAS,GAEtC,kBAAO,CAAC,6BAAuB,GAAM,KAAY,CAAC,8BAAwB,GAC1E,GAED,CACA,QAQD,CACoC,iBAApC,6FACK,GAAO,UADZ,MAGU,GAHV,iBAIE,IAAO,OAEF,GANP,gBAOS,IAPT,GAOgB,GAAS,OAEhB,GAAK,KATd,gBAUI,OAAO,eAVX,EAYK,QACA,SAAO,GAAK,WAbjB,OAkBO,GAlBP,iBAmBS,IAnBT,GAmBgB,GAAQ,OAEf,GAAK,KArBd,iBAsBI,OAAO,eAtBX,GAwBK,QACA,SAAO,GAAK,WAzBjB,qE,kUAxcA,iBADA,gBAGA,cACA,cACA,gBACA,eACA,gBACA,gBACA,gBACA,eACA,gBACA,eACA,cACA,gBACA,iBACA,kBAybU,gCAvbJ,GAEN,aAaqB,aAKpB,cAAc,oBAUb,SAAK,QAOL,OAAK,OAAS,MAUd,aAAK,QAAU,cAQf,WAAK,QAAU,MAQf,aAAK,UAAY,cAQjB,WASA,wBAAK,MAAQ,GAGb,UAAK,UAAU,GAAI,eAAgB,UAAM,uBACxC,YAAqB,GAAK,UAAU,+DAAc,eACjD,MAAK,CAAC,GAAK,wBAOV,SAAM,QACL,iHAAuE,CAAE,MAE3E,cAZuC,4EAaxC,CAGD,QAAK,WAAY,QACjB,GAED,mBAUA,uBAQgB,YACf,IAAK,GAAU,cAAgB,KAO9B,aAAM,gBACL,sGACA,CAAE,UAGJ,QAAM,IAAU,GAEhB,gBAEA,eAAK,QAAQ,SAAU,GAEvB,OAEC,SAAK,KAAM,SAAU,GAAU,KAAM,GAAS,GAAU,MAAM,MAAO,GAAU,MAEhF,KAED,sBAMO,YACN,OAAO,eAAW,KAClB,GAED,qCASuD,iIACtD,UAAK,KAAK,MAAM,IAQf,SAAM,gBACL,kFACA,CAAE,KAIJ,QAAM,IAAO,cAAiB,KAAM,GACpC,gBAAK,MAAM,IAAK,GAEhB,IACA,EAED,kCAIC,MAAK,UACL,eACA,eAED,+BAWgB,YACf,SAAK,gBAAgB,KAErB,IAAoC,CAA/B,OAAK,gBAAgB,OACzB,MAAQ,KAAK,gBACZ,aAAK,gBACL,UAAK,gBAGN,aAAK,KACL,cACD,CAED,kCAMyB,+DACxB,UAAK,CAAC,KAAK,MAAM,IAOhB,SAAM,gBACL,kFACA,CAAE,KAIJ,WAAO,MAAK,MAAM,IAClB,GAED,wBAMS,YACR,OAAO,MAAK,MAAM,IAClB,GAED,uCAMC,OAAO,OAAM,KAAM,KAAK,MAAM,QAAS,OAAQ,mBAAQ,KAAQ,EAC/D,EAED,yCAmB0B,YAA+B,+DAExD,UAAK,KAAK,OAAO,MAAO,CAAE,KAAM,QAAS,OACxC,WAAO,eAGR,OAAI,IAEJ,IAAkB,MAAb,MACJ,UAD2B,WACV,cAAgB,CAAE,cAAe,GAAU,UAG7D,eAAkB,MAAb,MACJ,SAD2B,WACX,cAAgB,CAAE,cAClC,SAduD,mBAgBxD,YAAoB,EAAgB,GAAgB,0DAAkB,WACrE,MAAM,GAAS,GAAK,QAAU,GAAiB,aAC/C,eAAM,GAAQ,GAEd,SAAK,GAAM,MAAQ,IAAQ,KAAK,OAAO,QAAQ,IAAK,GAAM,KACzD,YAAO,WAAM,SAAU,GAGxB,SAAK,KAAK,OAAO,MAAO,CAAE,KAAM,QAAS,OAAQ,GAChD,qBAAO,eAAW,GAEnB,aA3BuD,uFA6BxD,OACA,KAED,iCAMC,IAAM,IAAO,cAGb,gBAAK,UAEL,+BACA,EAED,0CAOkB,uBACjB,YAAoB,KAAK,MAAM,4DAAW,eACzC,MAAK,KAAS,KACb,gBAED,aALgB,4EAOjB,OAAO,MACP,SAED,2CAQC,IAAM,IAAc,KAGpB,kBAAM,GAAW,cACjB,QAAM,GAAe,KAAK,yBAG1B,UAAO,KAAgB,cACvB,GAED,wCAQyB,YACxB,OAAO,GAA0B,GAAM,QAAW,EAA0B,GAC5E,IAuCD,kCA3SC,OAAO,MAAK,QACZ,wBA/FmB,GAgZrB,eAAK,KAGL,4PCrbA,mSAFA,kEAYqB,YAIpB,aAAc,QAOb,QASA,gBAAK,eAAiB,GACtB,IAED,mCAKU,WACT,IAA+B,CAA1B,GAAM,WAAW,QAAc,CAAC,KAAK,eAAe,IAAK,EAAM,aACnE,IAAM,GAAQ,KAAK,QAEnB,YAAK,QAAS,GACd,OAAK,eAAe,IAAK,EAAM,YAC/B,EACD,CAED,kEASa,0DAAO,EAAG,sDAAY,kHAEL,CAAxB,QAAK,QAAQ,qDAKd,M,EAAY,KAAK,UAErB,GACkB,CAAC,CAAd,0DAKG,EAAY,KAAK,QAAQ,wBAC1B,I,EAAQ,KAAK,QAAS,OAEvB,EAAM,aAAe,uEAIpB,qEAIR,0BAQU,WACT,IAAI,GAAQ,KAAK,eAAe,IAEhC,MACC,iBAGD,SAEA,UAAM,EAAO,EAAQ,KAAK,QAAQ,OAAQ,IACzC,IAAM,GAAQ,KAAK,QAEnB,MAAK,EAAM,aACV,EAGD,QAAO,KACP,EAED,OAAyB,EAAlB,KAAO,OAAe,KAC7B,CAED,4BAea,WACZ,MAAK,YACL,KAED,4BAW0B,aAAgB,IACnC,GAAS,KAAK,SAGpB,GAHA,KAQA,IALK,SAJoC,gBAUzC,WAAqB,gDAAgB,SACpC,QAAM,YAGP,UAdyC,oEAezC,SAAK,SAAQ,gBAAQ,KAAK,UAAW,GAAe,EAAO,iBAG3D,QAAM,GAAW,EAAc,OAAS,EAAO,OAlBN,eAoBzC,WAAmB,KAAK,eAAe,qDAAS,SAC/C,MAAK,EACJ,QAAK,eAAe,IAAK,EAAK,KAAK,eAAe,IAAK,GAExD,WAxBwC,oEAyBzC,EAED,0BAMW,WACV,IAAM,GAAQ,KAAK,eAAe,IAGlC,MAAe,WACd,IAAM,GAAY,KAAK,QAAS,KAAK,QAAQ,OAC7C,GAAM,EAAkB,EAAU,YAAc,EAAU,WAE1D,UAAmB,CAAd,IAAmB,GAGvB,QAAO,CAQR,OAAM,eACN,mFAED,OACA,sBA5LmB,kpBCDrB,CA2nB8B,aAC7B,OAAK,yBAA6B,eACjC,QAAO,EAGR,gBACA,I,2gCA5oBD,aACA,cACA,gBACA,eACA,eACA,gBACA,cACA,eAEA,kBAEM,EAEN,aAAM,EAAc,GAIpB,0HAoBqB,cAMP,cAAW,QAGvB,8DAMA,iBAAK,UAYL,MAAK,mBAAqB,GAI1B,QAAK,SAAU,GAAK,UAAW,SAAiB,eAC/C,CAAK,EAAY,IAChB,QAED,qBAJD,GAKA,EAED,YAhCA,aA8DA,0BAIC,KAAM,GAAI,IAAI,EAAG,GAAI,KAAK,QAAQ,OACjC,UAAK,QAAS,IAGf,cACA,eAED,sJAIM,KAAK,QAAQ,gMAGX,KAAK,UAAU,gEAIvB,yCAIC,OAAO,+FAAyB,KAAK,UACrC,kBAED,uCAIC,OAAO,8FAAwB,KAAK,UACpC,kBAED,yBAGU,YAA4B,6DACrC,0FAAgB,GAChB,SACA,mBAED,0CAIC,0FACA,WACA,mBAED,0BAGW,YAAoC,6DAC9C,2FAAiB,GACjB,SACA,mBAED,6BAGmB,eAElB,IAAK,KAAK,aACT,CADwB,QAAK,OAAO,OAAO,iBACtC,gBAAiB,GAGvB,IAAK,KAAK,cAAe,GAAK,IAEvB,MACD,KAAM,mBAAoB,CAAE,cADX,CACtB,IACA,iBACD,CAED,gCAGiB,YAEhB,IAAK,KAAK,aACT,CADwB,QAAK,OAAO,OAAO,iBACtC,uBAGN,IAAK,KAAK,iBAAkB,IAErB,MACD,KAAM,mBAAoB,CAAE,cADX,CACtB,IACA,iBACD,CAED,gCAGiB,YAChB,IAAQ,cAER,IAAK,KAAK,aACT,CADwB,QAAK,OAAO,OAAO,iBACtC,uBAGN,OAAM,IAAU,KAAK,iBAErB,OAAoB,CAAf,IAAQ,KAEZ,IAAM,IAAgB,MAAM,KAC5B,SAAK,KAAM,mBAAoB,CAAE,cAAF,GAC/B,iBACD,CAED,0CAIC,MACA,mBAED,4CAIC,MACA,qBAED,QAcA,4BAIC,MAAK,QAAQ,MACb,QAED,2BAGY,YACX,IAAM,IAAY,KAAK,cAGvB,IACC,SAAK,QAAQ,KAEd,GAED,8BAQe,YAAQ,QACtB,QAAK,EAAG,gBAMP,cAAM,eAGP,iGAAK,GAAM,MAAQ,KAAK,UAMvB,UAKD,sBALK,KAEJ,iHAGI,YAEL,OAAM,IAAY,UAAU,gBAC5B,gBAAK,SAAU,GAAW,SAAiB,eAC1C,CAAK,GAAU,MAAQ,GAAK,UAC3B,cAAK,uBAAwB,GAG9B,OAAK,KAAM,eAAgB,CAC3B,iBAED,GACA,EAED,kCAOmB,YAClB,IAAM,IAAgB,cAAO,KAC7B,6BAAM,GAAgB,cAAO,KAE7B,oBAEC,QAAK,mBAAqB,GAC1B,UAAK,OAAS,GACd,SACA,IADM,mBAEN,YAAiC,KAAK,yEAAqB,2CAC1D,GACC,KADI,YACC,OAAO,OACZ,SAAK,mBAAmB,OAEzB,IAPK,uFAQN,CAED,MAAK,iBAGL,UAGA,OAxB6B,kBAyB7B,YAAoC,KAAK,sEAAkB,2CAC1D,GAAM,GAAc,IAAK,GAApB,EAAgC,GAAc,IAAK,MACvD,OAAQ,KAET,GAED,WA/B6B,mGAgC7B,YAA0B,yDAAgB,kCACpC,GAAC,KAAK,aACV,QAAQ,KAET,GAED,WAtC6B,4EAuC7B,CACC,CADI,IAAQ,aACP,KAAM,mBAAoB,CAAE,cAAe,GAEjD,iBAED,QAWA,sBAWoB,eAA6B,4DAChD,MAAM,GAAW,GAAe,SAEhC,SAAiB,KAAZ,MAEJ,QAFyB,OAAK,mBAAmB,IAAK,IAKvD,YAAM,+FAGN,UAAK,MAIL,UAAK,OAAO,IAAK,GAGjB,SAAK,mBAAmB,IAAK,GAG7B,OAED,iCAWkB,YAA2B,4DAC5C,MAAM,GAAW,GAAe,SAEhC,YAAiB,KAAZ,MAMA,QANqB,OAAK,mBAAmB,IAAK,oGAUvD,WAAK,OAAO,OAGZ,SAAK,mBAAmB,IAAK,GAG7B,OAED,iCAUkB,YAA6B,4DAC9C,MAAM,GAAU,GAAI,KAD0B,kBAG9C,YAAoC,KAAK,sEAAkB,2CAE1D,GAAK,GAAM,IAAK,MAKhB,IAAK,KAAK,iBAAkB,GAC3B,QAAQ,IAET,GAb6C,8GAe9C,YAA8B,yDAAQ,2CAErC,GAAM,GAAW,KAAK,cAAe,GAAK,GAE1C,IACC,OAAQ,IAET,GAtB6C,uFAwB9C,OACA,GAED,sLAOO,M,GAAkB,KAAK,mBAAmB,SAE3C,KAAK,aAA8C,CAA/B,MAAgB,iEACrB,GAAgB,wFAAvB,I,YACyB,CAA/B,MAAI,QAAS,oBACX,O,IAAU,GAAI,OAAQ,EAAY,mBAElC,CAAE,GAAS,GAAgB,aAAc,qWAMnD,wCAMwB,YACvB,IAAM,IAAW,EAAc,sBAE/B,SAAK,UAAU,QAAQ,gBAAiB,KAAK,OAAO,OACpD,GAED,gCAOsB,eACrB,IAAM,IAAW,EAAc,sBAE/B,SAAK,UAAU,QAAQ,aAAc,KAAK,OAAO,OAAQ,GACzD,GAED,uCAMwB,YACvB,IAAM,IAAkB,KAAK,OAC7B,OAAM,GAAQ,KAAK,UAAU,QAFE,kBAI/B,YAA0B,KAAK,6EAAyB,kCACvD,GAAM,GAAW,EAAc,sBAE/B,OAAM,gBAAiB,GACvB,GAR8B,8GAU/B,YAA8B,yDAAQ,2CACrC,GAAM,GAAW,EAAc,sBAE/B,OAAM,aAAc,GAAiB,GACrC,GAd8B,uFAe/B,CAED,oDASC,IAAM,IAAW,KAEjB,mBAAI,GAEJ,QAAK,CAAC,KAAK,YAEV,IAAM,IAAQ,KAEd,gBAJwB,kBAKxB,YAAoB,sDAAQ,YAG3B,MAAkB,MAAb,KAAK,MACT,IAD2B,UACnB,GAAK,KAEd,0BAXuB,4EAYxB,CAZD,KAeC,IAAM,IAAa,GAAS,SAAW,GAAS,SAAW,GAC3D,WAAM,GAAY,GAAS,SAAW,GAAS,SAAW,GAG1D,gBAAQ,EAGH,IACJ,QAAQ,EAIT,KAAK,CACJ,UAAI,IAEJ,GAAQ,IAAQ,CACf,OAAO,GACP,mBAAQ,EAKV,OAAK,CACJ,UAAI,IAEJ,GAAQ,IAAQ,CACf,OAAO,GACP,eAAQ,EAKL,IACJ,QAAQ,KAET,uBAED,OACA,GAED,uCAOiC,eAChC,IAAM,IAAS,GAAQ,MAEvB,KAAM,GAAgB,GAAS,MAAM,KAAK,QAAW,GAAO,OAC5D,GAAM,GAAU,GAAS,MAAM,KAAK,MAAO,EAC3C,OAAS,GAAQ,OAAS,IAAO,GAEjC,MAAM,IAAc,cAAc,GAAS,KAC3C,IAAI,GAAiB,KAAK,UAAU,yBAG/B,IACJ,QAAiB,cAAW,cAAc,GAG3C,eAAM,IAAW,KAAK,cACtB,IAAM,GAAQ,KAAK,QAAQ,QAC3B,OAEA,cAAK,QAAQ,OAAQ,GAAO,EAC5B,uCA3iBA,IAAM,IAAS,KAAK,QAEpB,aAAsB,EAAf,iFACP,KAED,+BAIC,OAAO,6EAAgB,KAAK,UAAU,mBACtC,KAED,8BAIC,OAAO,4EAAe,KAAK,UAAU,mBACrC,KAED,mCAIC,OAAO,MAAK,QAAQ,OAAS,KAAK,QAAQ,OAC1C,uCAsI2B,YAC3B,IAAM,IAAY,GAAI,MAAM,GAC5B,qBAAU,MAEV,IACA,wCA0H6B,YAC7B,OAAO,GACP,YAuRF,mBAhmBqB,gLC9BrB,mSAPA,iBACA,cACA,cACA,cACA,cACA,iBAYqB,YAIpB,aAAc,QAOb,QAAK,SAAW,GAChB,IAED,kBAKE,OAAO,yBACR,OAAO,MAAK,SACZ,QAED,oBAMK,WACJ,OAAO,MAAK,SAAS,IACrB,EAED,oBAOK,WACJ,OAAO,MAAK,SAAS,IAAK,IAC1B,IAED,oBAcmB,aAClB,IAAM,GAAa,YAAwB,GAAS,EAAa,KACjE,EAAM,EAAY,KAAK,SAAS,IAEhC,MAAK,EACJ,IAAM,GAAW,EAEjB,cAAK,EAAS,QACb,SAGD,QAAK,OACL,EAED,IAAM,GAAY,UAAU,gBAC5B,GAAM,EAAS,GAAI,GAAQ,EAE3B,eAAK,SAAS,IAAK,EACnB,QAAK,KAAM,OAAS,EAEpB,GACA,CAED,uBAMQ,WACP,IAAM,GAAa,YAAwB,GAAS,EAAa,KACjE,EAAM,EAAY,KAAK,SAAS,IAEhC,WACC,SAAK,SAAS,OACd,QAAK,KAAM,UAAY,EAEvB,QAAK,eAMN,MAED,6DAMwB,2IACD,sEAAV,I,WACN,EAAO,WAAW,iBAAkB,qCAClC,4UAKT,mCAGU,oBACT,WAAsB,KAAK,SAAS,uDAAW,SAC9C,WAAK,eACL,WAHQ,oEAKT,MAAK,SAEL,UACA,eAED,wDAamB,2IACI,KAAK,SAAS,0EAAxB,I,WACN,EAAO,KAAK,WAAY,EAAS,uCAC/B,4UAKT,gCAMgB,WACf,GACA,kBAAO,WACP,WAAO,WACP,IASD,oBA1KoB,EAkLrB,cAAK,IAEL,YA4BM,aAOL,CAAmB,eAAY,QAO9B,QAAK,KAQL,OAAK,WAEL,OAAK,WAAW,SAAU,UAAW,GACrC,KAED,6CAMC,IAAK,CAAC,KAML,gBAAM,eAGP,mEAAO,WAAS,mBAAoB,KAAK,WACzC,MAED,iCAMC,IAAK,CAAC,KAML,gBAAM,eAGP,mEAAO,WAAS,mBAAoB,KAAK,WACzC,IAED,mCAaC,IAAK,CAAC,KAML,gBAAM,eAGP,mEAAO,WAAM,gBAAiB,KAC9B,WAED,UAeD,cAAK,I,uLC7TL,mSAXA,gBACA,eACA,gBACA,eACA,eACA,eACA,gBACA,eACA,gBACA,mBAEmB,KACnB,EAAY,UAAmB,qBAC/B,EAAY,UAAgB,qBAC5B,EAAY,UAAgB,qBAC5B,EAAY,UAAc,qBAC1B,EAAY,UAAY,qBACxB,EAAY,UAAU,qBACtB,EAAY,UAAkB,qBAC9B,EAAY,UAAgB,qBAC5B,EAAY,UAAgB,qBAC5B,EAAY,UAAuB,aAEnC,WAKqB,2DACpB,iBAOuB,aACtB,OAAO,GAAY,EAAK,aAAc,SAAU,EAChD,sBAVmB,kFCjBrB,CA+jBsB,aACrB,OAAO,CAAE,EACT,QAGD,CAC0C,eACzC,KAAM,GAAI,GAAI,EAAG,EAAI,EAAW,OAC/B,MAAY,GAAI,YAAc,EAAc,EAG7C,QACA,EAED,CACsC,eACrC,OACA,KADO,KAAE,eAAe,0BAA2B,EAAE,eAAgB,EAAE,QAKxE,CACqB,aACpB,OACC,EADI,KAAO,OAEL,KACN,CADW,IAAO,OACX,EAEP,MAAQ,GAAI,IAAM,EAAQ,EAAO,OAAS,GAE1C,IAAO,EAER,G,kDA1mBD,gBACA,eACA,gBACA,gBACA,gBACA,eACA,eACA,eACA,cACA,oBA6Ce,QAweW,eACzB,IAAI,GAEJ,GAAK,eACJ,UAAQ,EACF,gBAAK,eACX,UAAQ,EACF,mBAAK,eACX,UAAQ,EACF,uBAAK,eACX,UAAQ,EACF,gBAAK,eACX,UAAQ,EACF,gBAAK,eACX,UAAQ,EAER,iBAGD,EACC,IAAK,eACJ,WAAY,EACN,gBAAK,eACX,WAAY,EACN,mBAAK,eACX,WAAY,EACN,uBAAK,eACX,WAAY,EACN,gBAAK,eACX,WAAY,EACN,gBAAK,eACX,WAAY,EAEZ,iBAIF,MAAM,IAAc,GAAW,EAAG,EAElC,SAAO,GAAoB,EAAE,YAC7B,GAGD,EAjhBA,GAAM,GACL,iBAGC,CAHgB,gBAGO,eAEtB,IAAM,IAAc,EAGpB,kBAAY,SAAW,GAAY,SAAS,2BAA4B,EAAE,SAAU,EAAE,MAAM,UAAW,CAEvG,GAAO,CACP,GAED,qBAEA,yBAEA,kBAEA,kBAIA,EAvBgB,cAuBK,eACpB,IAAM,IAAc,EAGpB,kBAAY,SAAW,EAAE,SAAS,sBAAuB,EAAE,eAAgB,EAAE,eAAgB,EAAE,QAAS,CAAC,EAAU,EAEnH,UAAO,CACP,GAGF,sBAEC,CAFmB,gBAEC,aAEnB,IAAM,GAAS,EAAE,MAAM,2BAA4B,EAAE,SAAU,EAAE,MAGjE,uBAAO,GAAO,UAAU,IAAK,YAC5B,OAAO,eAAwB,GAAO,EAAE,IAAK,EAAE,SAAU,EAAE,SAAU,EACrE,YACD,EAID,EAdmB,mBAcO,eACzB,IAAK,EAAE,MAAQ,EAAE,IAIhB,IAAM,IAAa,EAAE,MAAM,cAAe,EAAE,OAAQ,IAAK,YACxD,OAAO,eAAwB,GAAO,EAAE,IAAK,EAAE,SAAU,EAAE,SAAU,EACrE,YAGD,GAAM,GAAS,EAAE,MAAM,gBAAiB,EAExC,aAIC,MACC,KAAW,KAAM,cAAwB,GAAQ,EAAE,IAAK,EAAE,SAAU,EAAE,SAAU,EAC1E,cACN,CADW,MAAW,WACX,KAAM,cAInB,KACA,EAEA,OAAO,CAAE,EAEV,QAED,yBAEA,kBAEA,kBAGA,EAnDmB,cAmDD,aAEjB,IAAM,GAAS,UAAM,2BAA4B,EAAE,eAAgB,EAGnE,SAKA,MAAK,wBAAgC,EAAE,qBACtC,EAAE,MAAM,MAAQ,EAAE,eAAe,MAAQ,EAAE,MAAM,MAAM,KAAM,IAAO,EAGpE,yBAAI,EACJ,UAAE,MAAM,MAAM,KACd,OAAE,MAAM,IAAI,KAMb,SAAM,IAAa,EAAY,EAAE,MAAM,cAGvC,IAAM,GAAS,EAAE,MAAM,gBAEvB,SAKC,KALI,WAKO,MAAQ,GAAW,MAAM,0BAA2B,EAAE,eAAgB,EACjF,YAAW,IAAM,GAAW,IAAI,0BAA2B,EAAE,eAAgB,EAO7E,YAAS,GAAW,2BAA4B,EAAE,qBAAsB,EAAiB,eAG1F,WAIC,IAJI,WAIG,MAAQ,GAAO,MAAM,aAAc,EAAE,eAAgB,EAC5D,yBAAO,IAAM,GAAO,IAAI,aAAc,EAAE,eAAgB,EAExD,yBAAO,KAIR,KAAO,GAAO,IAAK,YAClB,OAAO,eAAwB,GAAO,EAAE,IAAK,EAAE,SAAU,EAAE,SAAU,EACrE,YACD,EAGF,0BACC,iBAEA,qBAIA,EAPuB,uBAOO,eAC7B,OAAK,GAAE,OAAS,EAAE,MAAQ,EAAE,MAAQ,EACnC,KAAO,GAAE,WAAa,EAAc,UAAC,IAAc,EAAE,WAAa,EACjE,SAIK,CAAE,EACT,SALS,CAAE,cAAiB,EAI5B,aAGD,kBAEA,kBAEA,gBAGD,mBAEC,CAFgB,gBAEI,aAEnB,IAAM,GAAQ,EAGd,iBAAM,SAAW,EAAM,SAAS,2BAA4B,EAAE,SAAU,EAAE,MAE1E,cAAO,CACP,EAED,qBAEA,yBAIA,EAlBgB,gBAkBO,eAEtB,IAAM,IAAQ,EAEd,WAAK,EAAE,SAAS,QAAS,EACxB,aACC,KAAM,QAAU,EAEhB,mBAAO,CAAE,cAAiB,EAI5B,oBAAO,CACP,GAED,kBAGA,EApCgB,cAoCE,aACjB,IAAM,GAAQ,EACd,QAAM,GAAW,EAAM,SAAS,QAAS,EAEzC,yBAAM,SAAW,EAAM,SAAS,sBAAuB,EAAE,eAAgB,EAAE,eAAgB,EAAW,WAEtG,IAAO,CACP,EAGF,mBAEC,CAFgB,gBAEI,aAEnB,IAAM,GAAQ,EAEd,cAAK,GACJ,aAAM,SAAW,EAAM,SAAS,2BAA4B,EAAE,SAAU,EAAE,MAAwB,iBAGnG,IAAK,EACJ,aAAM,SAAW,EAAM,SAAS,2BAA4B,EAAE,SAAU,EAAE,MAAwB,iBAGnG,IAAO,CACP,EAED,qBAEA,yBAEA,kBAIA,EAzBgB,gBAyBO,eAEtB,IAAM,IAAQ,EAEd,WAAK,EAAE,MAAQ,EACd,QACC,KAAM,SAAW,EAEjB,oBAAO,CAAE,cAAiB,EAI5B,oBAAO,CACP,GAGD,EAzCgB,cAyCE,aAEjB,IAAM,GAAQ,EAEd,WAAK,EAAM,SACV,IAAM,IAAY,EAAM,SAAS,sBAAuB,EAAE,eAAgB,EAAE,eAAgB,EAC5F,WAAM,SAAW,UAAM,iBACvB,GAED,IAAK,EAAM,SACV,IAAM,IAAY,EAAM,SAAS,sBAAuB,EAAE,eAAgB,EAAE,eAAgB,EAC5F,WAAM,SAAW,UAAM,iBACvB,GAED,OAAO,CACP,EAGF,iBAGC,CAHc,gBAGS,eAEtB,IAAI,IAAQ,UAAM,2BAA4B,EAAE,eAAgB,EAChE,YAAQ,GAAM,2BAA4B,EAAE,SAAU,EAAE,MAAiB,aAAO,EAAE,UAElF,MAAM,IAAS,GAAI,GAAE,YACpB,GAAM,MACN,GAAM,IAAI,OAAS,GAAM,MAAM,OAC/B,uBACC,EAAE,YACF,EAAE,eAAe,2BAA4B,EAAE,SAAU,EAAE,MAAM,UAAW,CAAC,GAC9E,eAA+B,eAAY,EAG5C,uBAAO,SAAW,EAElB,SAAK,eACJ,aAAO,oBAAsB,EAC7B,uBAAO,qBAAuB,EAG/B,sBAAO,CACP,GAED,qBAEA,yBAEA,kBAEA,kBAIA,EArCc,cAqCO,eAIpB,IAAK,EAA0B,EAAG,IAAO,EAA0B,EAGlE,SAAO,CAAE,EAMV,kBAAK,wBAAgC,EAAE,oBACtC,GAAI,EAEJ,WAAM,IAAgB,EAAE,eAAe,KACvC,GAAM,GAAgB,EAAE,eAAe,KAOvC,GAAK,EAAE,eAAe,MAAQ,EAAE,eAC/B,OAAK,GAAgB,EAAE,sBAAwB,IAAiB,EAC/D,yBAAE,eAAe,KAInB,KAAK,EAAE,eAAe,MAAQ,EAAE,eAC/B,OAAK,GAAgB,EAAE,sBAA0B,IAAiB,EAAE,sBACnE,MAAE,eAAe,KAGnB,IAID,CAAK,wBAAgC,EAAG,eACvC,SACM,KAAK,EAAG,eAAH,UAAqC,eAChD,UAID,SAAM,IAAS,UAAM,2BAA4B,EAAE,eAAgB,EACnE,SAAM,GAAS,UAAM,2BAA4B,EAAE,eAAgB,EAGnE,SAGA,MAAM,GAAa,EAAY,GAAO,cAEtC,KACC,QAAW,MAAQ,GAAW,MAAM,sBACnC,EAAE,eACF,EAAE,eACF,EAAE,QACF,CAAC,EAGF,gBAAW,IAAM,GAAW,IAAI,sBAC/B,EAAE,eACF,EAAE,eACF,EAAE,QACF,EAID,gBAAO,KAIR,QAAM,IAAS,GAAO,gBAStB,IAAM,GAAS,cAAe,EAAE,eAAe,gBAAiB,EAAE,eAIlE,iBAAM,GAAc,GAAO,iBAAkB,EAAE,iBAC5C,GAAO,MAAM,QAAS,EAAE,iBAAoB,EAAE,UAC9C,GAAO,IAAI,QAAS,EAAE,iBAAoB,EAQ7C,SAAM,GAAY,GAAO,cAAe,MAEtC,GAAO,iBAAkB,EAAE,iBAC3B,GAAO,MAAM,QAAS,EAAE,iBACxB,GAAO,IAAI,QAAS,EAGtB,oBAAgB,IAAX,QAAgC,WAAX,OAAuC,MAAX,OAAqB,GAAc,KAAe,CAIvG,QAAO,MAAQ,GAAO,MAAM,aAAc,EAAE,eAAgB,EAC5D,yBAAO,IAAM,GAAO,IAAI,aAAc,EAAE,eAAgB,EAGxD,sBAAK,IAAc,GAAO,MAAM,SAAU,GACzC,UAAO,KAEP,OAAO,QAIT,KAIC,CAJI,MAAO,aAIN,gBAOJ,WAAI,EACJ,UAAE,QACF,IAAE,eAAiB,EAEnB,eAAO,CAEP,IAAO,CAAE,cAAiB,EAK5B,iBAAM,IAAoB,EAAE,eAAe,sBAC1C,EAAE,eACF,EAAE,eACF,EAAE,QACF,CAAC,EACD,EAAE,UAIH,UAAO,IAAO,UAAU,IAAc,eAErC,IAAM,IAAS,GAAI,GAAE,YACpB,GAAM,MACN,GAAM,IAAI,OAAS,GAAM,MAAM,OAC/B,uBAA+B,EAAE,YAAc,GAC/C,eAA+B,eAAY,EAG5C,uBAAO,SAAW,EAElB,SAAK,eAGJ,aAAO,oBAAsB,EAAE,qBAC/B,CADsD,SAC/C,qBAAuB,EAG/B,sBACA,EACD,EAhNa,imBCxUhB,iiBAFA,gEAMqB,cASF,eAA0B,4EAG3C,kEAMA,aAAK,KAQL,IAAK,SAAW,EAChB,CAED,YApBA,aAgCA,WAGU,aACJ,OACJ,GAEiB,aAAR,KAAyB,GAAQ,KAAK,uFAAoB,EAEpE,GAJgB,aAAR,sFAEP,EAIF,iCAMC,OAAO,MACP,yCArBA,OAAO,MACP,iCAvCmB,gLCCrB,CAojB0C,iBAEzC,QAAI,GAAsB,EAAe,OACzC,EAAI,EAAmB,EAAY,OAGnC,IAA+B,CAAvB,KAAgD,CAApB,KAC7B,MAAY,EAGlB,GAAK,CAAC,EAAO,QACZ,GAGD,YAAM,GAAW,EAAO,iBAAiB,IAEzC,MAAK,EAAS,SAAU,EACvB,IACA,IAEA,QAED,SAED,CACA,Q,uTAplBD,eACA,cACA,eACA,eACA,gBACA,iBAsBqB,YAIpB,aAAc,QAQb,QAAK,QAAU,GASf,UAAK,OAAS,GAQd,UAAK,OAAS,GAQd,UAAK,iBAAmB,GAGxB,UAAK,aACL,cAAK,aACL,eAAK,aACL,gBAAK,aAAc,QAEnB,gBAAK,MAAO,CAAE,KAAM,SAAU,OAC9B,eAAK,MAAO,CAAE,KAAM,UAAW,OAM/B,gBAAK,aAAc,mBACnB,cAAK,MAAO,CAAE,KAAM,UAAW,OAC/B,oBAED,gCAcO,WACN,MAAK,SAAU,EAAM,MAAO,MAAO,EAAO,oBAAqB,EAAM,QAAU,EAC/E,WAED,yBAMU,WACT,MAAK,SAAU,EAAM,MAAO,SAAU,EAAO,oBAAqB,EAAM,QAAU,EAClF,WAED,kCAcyB,aACxB,MAAK,SAAU,GAAO,kBACtB,EAED,sBAkCO,WAAQ,OACd,QAAK,CAAC,KAAK,QAAS,EACnB,MAII,SAAC,cAAS,EACd,YAKA,CAJW,KAAM,WAAW,UAItB,WAIP,eATO,WAAa,CAAE,EACf,eAQD,GAAO,EAAO,oBAAqB,EAGzC,QAAM,EAAc,KAAK,iBAAiB,IAAK,EAAM,MAAO,IAAK,YAChE,OAAO,GAAK,SACZ,GAGD,MAAK,CAAC,KAAK,SAAU,EAAM,MAAO,yBAA0B,EAC3D,YAGD,YA5Bc,gBA6Bd,WAAyB,EAAM,4DAAa,uCAC3C,YAA0B,oDAAc,cACvC,MAAK,GAAW,iBAAkB,WAAY,EAC7C,GAED,kBAL0C,2EAM3C,CAOD,WA1Cc,4FA2Cd,YAAyB,EAAM,iEAAa,WAC3C,MAAc,MAD6B,yBAG3C,YAA0B,qDAAc,eACvC,MAAK,GAAW,iBAAkB,QAAS,EAAM,IAChD,CACA,MACA,KAIF,WAX2C,4EAY3C,IAAK,CACJ,GAED,QA1Da,uFA4Dd,CACA,QAED,wBAMS,WACR,OAAO,MAAK,OAAO,IACnB,EAED,6BASwB,aACvB,IAAK,KAAK,QAMT,QAAM,eAGP,mFAAK,CAAC,CAAC,GAAe,CAAC,KAAK,QAM3B,QAAM,eAIP,iFAAK,OAAO,IAAK,EAAU,GAAI,GAO/B,UAAM,GAAQ,KAAK,QAAS,GAAgB,KAAK,iBAAiB,IAAK,GAAc,OAAQ,GAAa,CAC1G,QAAK,iBAAiB,IAAK,EAC3B,EAED,4BAO4B,aAC3B,IAAK,CAAC,KAAK,QAAS,IAAmB,CAAC,KAAK,QAM5C,QAAM,eAGP,+EAAM,GAAQ,KAAK,iBAAiB,IAEpC,SAAO,GAAM,KAAM,kBAAY,IAAY,CAC3C,EAED,yBAQU,WACT,IAAK,CAAC,KAAK,QAMV,QAAM,eAGP,kFAAO,MAAK,OAAO,IACnB,EAED,sCAO4B,WAC3B,IAEA,SAAK,cAAS,GAAS,oBACtB,WAAwB,gDAAO,SAC9B,MAAK,eACJ,UAAW,KAAM,EACX,MAAK,cACX,MAAW,KAEZ,WAPqB,oEAQtB,CARD,KAQO,IAAK,eAAL,QACN,QAAI,GAAS,EAEb,OACC,IADO,QACI,KAAM,EACjB,QAAS,EAGV,SACA,SAAM,KAAK,cACX,OAAa,EAAK,MAGnB,YACA,QAGF,cAvUqB,KA8UR,0BAMZ,CAAa,aAAS,QAOrB,QAAK,QAQL,OAQA,iBAQA,oBACA,sBAED,gCAMa,aACZ,MAAK,SAAU,WAAY,EAC3B,EAED,yBAMgB,aACf,MAAK,SAAU,cAAe,EAC9B,EAED,kCAOmB,WAClB,MAAK,oBAAoB,KACzB,EAED,yBAQwB,eACvB,GAAO,EAEF,QAAC,cACL,OAAa,CACb,OALmC,gBAOpC,WAAyB,gDAAa,SACrC,WAAM,GAAS,KAAM,CAAE,KAAF,EAAQ,UAC7B,YATmC,oEAUpC,CAED,0BAQiB,aAChB,IAAM,GAAkB,OAAT,KAAmB,KAAK,SAAW,KAClD,YAAc,KAFc,eAI5B,WAAoB,gDAAS,SAC5B,MAAK,EAAK,YACT,KAAM,KAAM,EAEb,cAR2B,oEAU5B,OACA,EAED,yCAQ0B,WACzB,IAAY,MADiC,eAG7C,WAA4B,KAAK,uEAAsB,KACtD,MAAQ,QAD8C,uBAGtD,YAAyB,oDAAe,cACvC,MAA+C,CAAC,CAA3C,IAAkB,QAAS,IAC/B,CACA,KACA,KACD,WARqD,uEAUtD,IACC,EAED,KAhB4C,gFAkB7C,OACA,EAED,iCASqC,eACpC,IAAM,GAAkB,KAAK,UAAW,EAAM,GADE,eAGhD,WAAkC,gDAAkB,YACnD,MAAK,EAAY,KAAK,QAAS,EAC9B,GAED,iBAP+C,oEAShD,CACA,QAED,iCAMC,IAAM,GAAO,cAGb,eAAK,QAEL,iBACA,OAmCF,oLC5iBA,ywBAdA,gBACA,gBACA,gBACA,gBACA,OACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,cACA,kBAqBqB,YAIpB,aAAc,oBAOb,QAAK,SAAW,GAQhB,UAAK,UAAY,MAUjB,aAAK,aAAe,MAQpB,aAAK,MAAQ,GAYb,UAAK,IAQL,qBAAK,SAAW,cAAc,KAAK,aAAc,KACjD,gBAAK,SAAS,KAAM,aAAc,GAAI,KAQtC,kBAAK,WAAa,GAGlB,UAAK,cACL,cAAK,cACL,cAAK,cACL,cAAK,cACL,cAAK,cAEL,oCAIA,WAAK,GAAI,SAAU,UAClB,IACA,sBAAK,SACL,YACA,iBACD,EAED,sCAaa,YACZ,IAAI,IAAW,KAAK,WAAW,IAE/B,OACC,SAGD,OAAW,GAAI,IAEf,WAAK,WAAW,IAAK,GAAU,OATR,mBAWvB,YAAoC,KAAK,+DAAW,2CACnD,MAAS,QAAS,GAClB,GAbsB,uFAevB,WAEA,SACA,EAED,4BAMa,YACZ,OAAO,MAAK,WAAW,IACvB,GAED,2BAuBY,YAAyB,uEACpC,OAAM,GAA4B,QAAlB,QAAO,IAAsB,GAAU,GAEvD,QAAM,GAAW,cAAyB,GAAQ,cAClD,cAAS,SAET,UAAK,MAAM,IAAK,GAGhB,OAAS,GAAI,kBAA0B,eAAP,OAAiB,IAAK,SAAS,WAAY,WAAY,GACvF,MAAS,GAAI,oBAA4B,eAAP,OAAiB,IAAK,SAAS,WAAY,aAAc,GAC3F,MAAS,GAAI,cAAsB,eAAP,OAAiB,IAAK,SAAS,WAAY,OAAQ,GAE/E,GAAK,KAAK,aAAa,UACtB,UAAK,cAAe,GAGrB,IACA,EAED,8BAWe,YAAyB,+DACvC,OAAM,GAAW,KAAK,QAEtB,SAAK,SAAS,IAAK,GAEnB,SAAK,aAAa,aAAc,GAEhC,SAAK,SAAS,WAAY,WAC1B,SAAK,SAAS,aAAa,IAAK,GAAQ,kBARD,mBAUvC,YAAwB,KAAK,WAAW,4DAAW,YAClD,SAAS,QAAS,GAClB,aAZsC,4EAavC,CAED,kCAOyB,+DACxB,aAAO,MAAK,MAAM,IAClB,GAED,qCAM4B,+DAC3B,aAAO,MAAK,SAAS,IACrB,GAED,iCAOC,MAAK,KACL,SAED,gCAKC,IAAK,CAAC,KAAK,UACV,IAAM,IAAW,KAAK,UAEtB,gBACC,SAAK,aAAa,MAClB,SASA,oBAAI,KAEL,2EACD,CAED,2CAGmB,uBAClB,YAAwB,KAAK,WAAW,4DAAW,YAClD,SACA,mBAHiB,4EAIlB,CAED,0CAGkB,uBACjB,YAAwB,KAAK,WAAW,4DAAW,YAClD,SACA,kBAHgB,4EAIjB,CAED,kCAGU,uBACT,YAAwB,KAAK,WAAW,4DAAW,YAClD,SACA,mBAHQ,4EAIT,qBAtRmB,EAyRrB,cAAK,IAcL,smBCtUA,mSAFA,mEAWqB,cACP,aAAW,0EAGvB,aAAK,aAAe,QACpB,aAJD,gCAMY,WACX,MAAK,KAAM,EAAS,KACpB,YAGF,mBAZqB,kpBCNrB,CAyG0B,aACzB,OAAO,IAAW,WAAS,YAC1B,GAAW,WAAS,WACpB,GAAW,WAAS,SACpB,GAAW,WACZ,S,iiBAnHD,cACA,eACA,OACA,oBAWqB,cAMP,aAAW,QAGvB,kEAOA,aAAK,kCAAoC,cAAU,kBAAQ,GAAK,SAAS,KAAM,sBAAuB,EAA7D,EAAqE,KAC9G,CAED,YAbA,uCAgBU,OACT,KAAM,EAAW,KAEjB,WAAS,GAAI,UAAwB,aACpC,IAAM,GAAY,EAElB,UAAK,EAAU,QAAU,EAAiB,EAAK,UAAa,EAE3D,cAEA,mBAAK,qBAAsB,EAE5B,SATD,EASG,CAAE,SACL,UAED,kCAIC,kFAEA,WAAK,kCACL,QAED,qCAasB,WACrB,IAAM,GAAY,KAAK,SACvB,UAAM,EAAe,UAAc,oBACnC,KAGA,aAAK,GAAW,WAAS,WAAa,GAAW,WAChD,YAID,mBAAK,GAAW,WAAS,YAAc,GAAW,WACjD,cAGD,mBAAM,GACL,cACA,eACA,eAID,WAAK,SAAS,KAAM,kBAMpB,QAAK,kCACL,YAOF,mBA/FqB,+lBCVrB,iiBAFA,iEAYqB,cACP,aAAW,0EAGvB,aACA,gCAEA,gBAAS,GAAI,QAAS,UACrB,GAMA,eAAK,iBAAmB,WAAY,iBAAM,GAAS,QAA3B,EACxB,EAED,KAAS,GAAI,OAAe,aAC3B,IAAM,GAAmB,EAAS,UAElC,iBAA0B,IAArB,MAA6B,IAAqB,EACtD,YAGA,eAED,SAED,GAMA,aAjCD,gCAmCY,WACX,MAAK,KAAM,EAAS,KACpB,EAED,kCAIC,CAAK,KACJ,+BAAc,KAGf,mGACA,eAiBF,mBAlEqB,+lBCXrB,mSAHA,gEACA,WASqB,cACP,aAAW,0EAGvB,aAAK,aAAe,UACpB,aAJD,gCAMY,WACX,MAAK,KAAM,UAAW,EACrB,SAAS,EAET,eAAQ,EACR,eAAS,EAAO,SAAW,EAC3B,iBAAU,EAEV,YAAI,YACH,OAAO,cACP,KAEF,aAyBF,mBA5CqB,+lBCRrB,mSAFA,mEAWqB,cACP,aAAW,0EAGvB,aAAK,aAAe,YACpB,aAJD,gCAMY,WACX,MAAK,KAAM,EAAS,KACpB,YAGF,mBAZqB,kpBCJrB,iiBALA,cACA,gBACA,eACA,mBAcqB,cACP,aAAW,QAGvB,kEASA,aAAK,iBAAmB,EAAS,cAQjC,WAAK,SAQL,IAAK,UAAY,EAUjB,YAAK,aAAe,EASpB,eAAK,WAAa,GASlB,WAAK,kCAAoC,cAAU,kBAAQ,GAAK,SAAS,KAAM,sBAAuB,EAA7D,EAEzC,OAAK,2BAA6B,YAAa,iBAAM,GAAK,oBAQ1D,SAAK,iBAAmB,EACxB,CAED,YArEA,6BAwES,WAAa,OACrB,KAAM,EAAc,EAGpB,cAAK,KAAK,WAAW,IAIrB,UAAK,SAAU,EAAa,kBAAmB,UAC9C,GAAK,uBACL,EAED,QAAK,WAAW,IAChB,GAED,kCAIC,kFAEA,oBAAe,KACf,iCAAK,kCACL,QAED,uCAQwB,WACvB,IAAM,KAAkB,SAAnB,EAAoB,KAAK,SAK9B,gBAAK,iBAIL,WAAM,GAAe,EAAY,YACjC,eAAM,EAAmB,KAAK,aAAa,mBAE3C,OAAK,KAAK,UAAU,QAOpB,OASC,EATI,GAAE,KAAK,iBAcZ,sBALK,KAEJ,oGAGK,GACL,cAAc,KACd,uBACA,eAID,QAAK,SAAS,KAAM,kBAMpB,QAAK,kCACL,IAED,6CAMC,MAAK,iBACL,WAsBF,mBAzLqB,mFCsCc,aAClC,IAAM,GAAW,EAEjB,WAAQ,YACR,oBAAQ,gBAER,oBAAK,EAAqB,IACzB,MAAqB,IAAK,GAAW,OAEtC,EAKD,CACgC,aAC/B,IAAM,GAAe,EAAqB,IAAK,GADL,eAG1C,WAA0C,mDAAe,mCACxD,KAAyB,EACzB,EALyC,8EAM1C,CAMD,CAC2C,eAC1C,IAAM,GAAW,EAGjB,SAAK,GAIL,MAAM,GAAgB,EACtB,UAAM,EAAS,EAGf,aAAK,IAAiB,CACrB,WAAQ,YAMT,kBAAM,EAAsB,SAAvB,EAAwB,EAC5B,gBAMI,CAAC,EAAQ,YAAc,GAAU,EAAO,SAC5C,IAAQ,SAER,oBAAQ,YAET,0BAXS,SAMT,kB,ydAnHD,MAwBgB,kBAA6C,eAC5D,IAAM,GAAW,EAEjB,YAAK,CAMJ,OAAM,eAIP,uFAGK,GAAC,EAAqB,IAC1B,OAAqB,IAAK,EAAU,GACpC,QAAS,SAAU,EAAU,SAAU,iBAAM,GAAuB,EAApE,EAAgF,CAAE,SAKnF,YAAQ,aAAc,mBAGtB,KAAqB,IAAK,GAAW,IAAK,EAG1C,KAAyB,EACzB,EAED,IAKgB,oBAzDhB,gBACA,cACA,iBACA,OAEA,GAAiB,MACjB,cAAQ,IAER,SACA,GAAM,GAAuB,GAE7B,uLCEA,CAqoB2C,eAC1C,OAAO,CAAC,EAAW,aAAe,EAAe,GAAa,QAAS,EACvE,GAOD,CACwB,aACvB,IAAM,GAAe,UAAU,oBAC/B,GAAM,EAAS,EAEf,YAAsB,KAJa,kBAMnC,YAAqB,qDAAS,YAC7B,QAAc,KAAM,GACpB,uBARkC,4EAUnC,UAAa,UAAW,EAAe,EAEvC,YACA,C,4SAzqBD,gBACA,eACA,eACA,OAEA,eACA,gBACA,gBACA,gBACA,eACA,eACA,iBAeqB,YAOpB,CAA2B,eAAY,QAMtC,QAAK,aAAe,GAQpB,UAAK,aAQL,OAAK,iBAAmB,GAQxB,UAAK,eAAiB,GAQtB,UAAK,YAAc,GAQnB,UAAK,UAQL,OAAK,cAQL,UAQA,kBAAK,wBACL,IAED,qCAYkB,aACjB,IACC,MADI,KACC,KAAK,aAAa,oBAAqB,EAC3C,cAAK,YAAY,IAElB,OAGA,IAAK,CAAC,KAAK,aAAa,oBACvB,GAGD,UACC,YADI,UACC,iBAAiB,IACtB,OAAM,IACN,UADW,UACN,eAAe,IAOpB,aAAM,eAEP,0EACD,CAED,iCAyBC,IAKA,GAAK,KAAK,eAAiB,CAAC,KAC3B,mCAID,sBAAK,KACJ,gBAAuB,KAGnB,2BAAK,KACT,oCAAuB,KAAK,UAG5B,wBAAK,eAAe,IAAK,EACzB,YApBO,kBAsBR,YAAoB,KAAK,8DAAc,WACtC,MAAK,CAAC,KAAK,eAAe,IAAK,GAAK,SAAY,KAAK,aAAa,oBAAqB,GACtF,cAAK,YAAa,GAAM,CAAE,qBAE3B,aA1BO,kGA4BR,YAAuB,KAAK,oEAAmB,YAC9C,WAAK,aACL,aA9BO,mGAgCR,YAAuB,KAAK,kEAAiB,YAC5C,WAAK,gBAAiB,GAAS,CAAE,qBACjC,aAlCO,4EAoCR,MACA,wBAEA,oBAAK,YACL,aAAK,iBACL,aAAK,eAGL,aAAK,cAAgB,KAAK,qBAC1B,EAED,qCAOsB,WACrB,IAAK,CACJ,EAKD,iBALM,cAEL,SAGK,GAAc,KAAK,aAAa,kBAGtC,MAAK,CAAC,GAAe,CAAC,uBAAkB,EAMvC,aAAM,eAGP,oFAAO,GACP,MAED,mDAcC,IAAM,GAAW,KAAK,UAEtB,yBAAK,GAAS,OAAO,GACpB,QAAO,UAAa,aAAc,KAAK,UAAU,mBAEjD,QAED,CAED,qDASC,IAAkC,CAA7B,OAAK,UAAU,YAAmB,CAAC,KAAK,UAC5C,YAYD,YAAM,GAAoB,KAAK,UAC/B,mBAAM,EAAW,KAAK,aAAa,kBAEnC,SAAK,IAAY,KAAK,aAAa,OAAQ,EAAS,SAAY,uBAAkB,EAKlF,OAED,8CAMC,IAAM,GAAgB,KAGtB,iBAAK,CAAC,uBAOL,QAAM,eAGP,mEAAK,qBACJ,KAAc,WAAW,YAEzB,KAAc,KAAO,EAAc,KAAK,SAGzC,2BAAK,cACL,IAED,wDAOC,IAAkC,CAA7B,OAAK,UAAU,YAAmB,CAAC,KAAK,UAC5C,YAGD,YAAM,GAAoB,KAAK,UAC/B,mBAAM,EAAkB,EACxB,OAAM,GAAkB,EAGxB,UAAK,CAAC,KAAK,aAAa,2BAA4B,EACnD,MAGD,YAAK,CAAG,EAAgB,GACvB,WAID,YAAK,KAAoB,EACxB,kBAGD,YAAM,IAAa,EACnB,WAAM,GAAY,EAElB,gBAAK,0BAAkC,gBAKvC,aAED,4BASuB,aACtB,IAAM,IAAU,KAAK,aAAa,oBAClC,GAAM,GAAa,KAAK,aAAa,UAAW,EAAU,GAE1D,eAAM,GAAa,GACnB,KAAI,GAAe,GAEnB,KAAM,GAAS,EAEf,qBAAK,IAAU,GAAO,QAAU,EAAS,QAAU,GAAO,QAAU,EACnE,WAAe,gBAGhB,IAAK,IACJ,QAAQ,KAET,GAED,6BAMc,WACb,IAAM,GAAa,KAAK,aAAa,oBACrC,GAAM,GAAc,MAAM,KAAM,EAAW,YAAa,IAAK,mBAAQ,IAAK,IAC1E,GAAM,GAAe,EAErB,mBAL2B,kBAM3B,YAAmB,sDAAe,YACjC,QAAW,aAAc,GAAK,EAAY,aAG3C,cAV2B,mGAW3B,YAAmB,sDAAc,YAC3B,MAAC,EAAY,aACjB,OAAW,gBAEZ,aAf0B,4EAgB3B,CAED,gCAS8B,aAC7B,CA2CoC,kBAEnC,OAAK,MAIA,KAAK,GAAa,OAAQ,KAAoB,GAAa,OAC/D,IAAO,GAAe,OAAS,GAG3B,KAAK,oBAAe,GAAgB,GAAa,cACrD,oBAAe,GAAkB,GAMlC,aACD,IA7DM,IAAe,KACrB,aAAM,GAAa,GAAa,oBAEhC,GAAK,GAML,OAAM,IAAc,GAEpB,cAAM,GAAS,EAEf,qBAAM,GAAoB,GAC1B,WAAM,GAAsB,MAAM,KAAM,GAAa,kBAAmB,EAAa,GAAa,CAElG,cAAK,IAAU,GAAO,QAAU,EAC/B,IAAM,IAA0B,GAAqB,GAErD,QAAK,KAAK,aAAa,OACtB,OAAwB,KAAO,gBAAgB,GAE/C,QAAoB,OAAQ,GAAO,OAAQ,EAAG,GAAY,iBAE3D,eAED,IAAM,IAAU,cAAM,GAAmB,GAEzC,IAAI,GAAI,EA7B+B,kBA+BvC,YAAsB,sDAAU,YAC/B,MACC,QADI,qBACM,GAAY,GAAG,GACzB,KACM,MAEN,QAFW,YAEN,aAAa,iBAAkB,GACpC,mBAAQ,GAER,MAED,cA1CsC,4EA4CvC,EAoBD,2CAOC,IACC,CADI,QAAK,UAAU,WAOpB,YALC,gCAEA,0BAGK,GAAU,KAAK,aAAa,2BAA4B,KAAK,UAGnE,iBAAM,KAAkB,SAAnB,EAKL,IAAK,KAAK,UACT,YAAK,qBAEL,SACA,4BAAK,oBAEN,IAED,qCAMsB,WACrB,IAAM,GAAc,EAGf,cAAC,KACL,+BAAK,wBAA0B,EAAY,cAC3C,YAAK,wBAAwB,MAAM,SACnC,aAAK,wBAAwB,MAAM,IACnC,OAAK,wBAAwB,MAAM,KACnC,eAAK,wBAAwB,YAAa,EAAY,eAIlD,UAAC,KAAK,wBACV,iBAAQ,YAAa,KAItB,4BAAM,IAAU,KAAK,UAAU,oBAC/B,YAAK,wBAAwB,WAAW,KAGxC,MAAM,IAAe,EACrB,kBAEA,qBAAM,IAAW,EACjB,iBAAS,mBAAoB,KAC7B,4BAAa,SAGb,SAAK,aAAa,kBAAmB,KAAK,wBAAyB,KACnE,UAED,oCAMqB,WACpB,IAAM,GAAe,EAAQ,cAAc,YAC3C,eAAM,GAAmB,GAAgB,KAAK,aAAa,mBAE3D,QAAK,IAAoB,KAAK,UAAU,QAIxC,SAAK,IAAoB,EAAsB,GAAkB,KAAK,WACrE,IAAM,IACL,cACA,oBAAkB,KAGnB,WAMA,sBANI,KACH,iHAID,GAQD,IAAM,IAAS,KAAK,aAAa,kBAAmB,KAAK,UACzD,QAAM,GAAQ,KAAK,aAAa,kBAAmB,KAAK,UAExD,SAAa,SAAU,GAAO,OAAQ,GACtC,UAAa,OAAQ,GAAM,OAAQ,GACnC,QAED,8CAKsB,qBACrB,YAAmB,KAAK,iEAAe,WACtC,MAAM,GAAe,GAErB,kBAAK,GAAa,WACjB,IAAM,IAAmB,GACzB,cAAM,GAAc,KAAK,aAAa,4BAEtC,IAAK,IACJ,OAAI,eAEL,iBACD,CAZoB,oFAarB,CAED,+CAMC,IAAM,GAAY,KAElB,wBACC,KAED,QAED,uCAMC,IAAK,KAAK,UACT,IAAM,GAAW,KAAK,UAEtB,gBACC,QAAK,aAAa,MAEnB,EACD,qBA5mBmB,EA+mBrB,cAAK,IAQL,oIC/oBA,mSAFA,kEAsBqB,YAWpB,CAAqC,iBAAS,WAO7C,QAAK,SAEL,EAAoB,CAAf,IAAoB,EAAe,EAAS,KAMhD,YAAM,eAGP,gFAAc,CAAT,IAAc,EAAe,EAAS,EAAS,KAMnD,YAAM,eASP,sEAAK,KAAO,EAAS,KAAK,UAAW,EAAc,EAQnD,QAAK,aACL,CAED,kBA8CA,WAQI,WACH,OACA,WADO,GAGR,uCASqE,kEAA7C,CAAe,eACtC,gBACA,KAAI,EAAS,EAAQ,YAAc,KAAK,SAAW,KAEnD,OACC,IADO,QACI,EAAQ,YAAc,OAAS,WAC1C,KAAS,EAGV,aACA,oCAjEA,OAAO,MAAK,KAAK,SAAW,KAAK,SAAS,KAC1C,MAED,+BAOC,OAAO,MAAK,SACZ,MAED,6BAOC,OAAO,MAAK,SACZ,IAED,iCAQC,OAAO,MAAK,SACZ,4BAnGmB,kpBClBrB,mSAJA,eACA,gBACA,mBAOqB,iKASnB,IAAM,GAAS,KACf,OAAM,EAAc,EAAO,QAE3B,OAAY,cAEZ,WAAO,SAAS,IAAK,QAAS,cAG9B,SAAK,SAAU,EAAa,QAAgB,aAC3C,GAAO,QACP,WACA,gBAHD,EAGG,CAAE,SACL,iBApBD,2BAIC,OACA,0CANmB,kpBCNrB,CA2BuD,mBACtD,IAAM,GAAmB,EACzB,YAAM,EAAQ,EACd,gBAAM,EAAe,EAAM,MAC3B,OAAM,EAAa,EAAM,IAGzB,YAAK,EAAO,OAAO,IAAK,EAAa,OAAU,EAAO,OAAO,IAAK,EAKlE,WAAK,EAAa,MACZ,EAON,YANE,KAAe,cAAe,EAG/B,OAIA,IAAY,EAAO,EAAW,EAC9B,WACA,IAAM,GAAc,EAAM,MAAM,WAAa,EAAM,IAC7C,UAES,cAAe,EAAW,EAAO,CAAE,MAE7C,IAKH,IAToC,GAEtC,IAOc,EAAO,EAAW,EAM9B,SAAU,SAGZ,GACD,GAEsC,iBACtC,IAAK,EAAS,QAIb,IAAM,GAAa,EACnB,OAAM,EAAa,GAAI,GAAW,YAAa,EAAW,KAAM,EAEhE,mBAAM,OAAQ,UAAS,YAAa,EAAS,QAC7C,EACA,QAAM,MAGP,KAAU,SAAU,EAAS,OAC7B,Y,mSAzFD,gBACA,iBAOqB,0IACpB,6BAGa,OACZ,KAAM,EAAM,KAAK,OACjB,SAAM,EAAQ,EAEd,UAAI,eAAgB,UACnB,GAAY,EAAK,OAAO,KAAM,EAAO,EAAI,UAAW,EAEpD,UAAK,KAAM,eAAgB,CAAE,MAC7B,GACD,YAQF,mBArBqB,kpBCJrB,mSAJA,gBACA,gBACA,WAOqB,cACP,aAAW,0EAGvB,aAAS,GAAI,UAAkB,aAC9B,CAAK,EAAK,WAAa,EAAK,SAAW,WACtC,SAAS,KAAM,QAAS,cAAkB,EAAU,EAErD,UAJD,GAKA,CAED,YAVA,uCAaY,WAGb,mBAjBqB,0wBCCrB,CA2I8C,eAAY,IACzD,SAAO,SAAM,WAAU,iBAAW,EAAS,IAAK,kBAAK,CAAE,EAAG,EAC1D,I,mSAvJD,gBACA,gBACA,cACA,gBACA,gBACA,eACA,iBAEA,UAQqB,2IAepB,uBAGO,OACN,KAAM,EAAS,KACf,OAAM,EAAgB,MACtB,QAAM,EAAU,KAChB,uBACA,MAAM,GAAI,EACV,EAAM,GAAe,GACrB,kBAAM,GAAkB,GAAG,WAPrB,sBASN,YAAsB,wDAAU,WAC/B,MAAM,GAAU,EAAO,SAAS,IAAK,GACrC,cAAM,GAAY,cACjB,aAAa,GACb,mBAAO,GACP,YAAO,GAGR,WAAU,KAAM,YAAa,GAAI,GAGjC,WAAc,IAEd,OAAS,KACT,GAED,WAzBM,4EA0BN,IAAM,IAAgB,cACrB,CACA,kBACA,UAGD,WAAc,KAAM,cAAc,aAE9B,EAA2B,GAAU,qBAExC,wCAAK,6BAAL,2BAAqB,IAAW,KAAM,mBAAa,GAA9B,EAGtB,WAAc,KAAM,UAAU,aAE1B,EAA2B,GAAU,iBAExC,WAAoB,qDAAf,KAAe,iBACnB,OAAM,IAAQ,GAAU,UAAW,mBAAS,GAG5C,SAAO,GAAS,IAAU,EAAS,IAAQ,MAC3C,EAIF,OAAO,GAAG,iBAAiB,IAAK,WAAY,YAC3C,IAAM,IAAW,cAAoB,GAErC,qBAAS,OAAQ,GAAS,SACzB,YACC,CAOF,mCAAK,SAAU,GAAU,UAAW,YACnC,GAAO,QAAS,GAAI,OACpB,eAAO,QAAQ,KACf,OAED,GACA,EACD,EAED,+CAYC,IAAM,GAAS,KACf,OAAM,EAAI,EACV,EAAM,EACL,WAAW,EACX,yBAAa,EACb,yBAAa,EACb,yBAAa,EAGd,oBAAO,GAAO,OAAO,IAAK,mBAAoB,IAAK,WAClD,IAAM,GAAQ,EAAiB,EAE/B,aAAK,IAAS,GAAS,EAEtB,UAAS,OAAe,UAAI,EAAQ,CAAE,MAGvC,KACA,CACD,YAzHD,yBAIC,OAAO,aACP,QAED,mCAIC,OACA,2BAuHF,mBApIqB,kpBCVrB,mSANA,eACA,eACA,eACA,cACA,kBAOqB,cAOC,eAAS,0EAG7B,kBAAO,SAUP,KAAK,IAGL,cAAK,SAAU,EAAO,SAAU,cAAe,UAC9C,GACA,iBACA,cAkBD,GAOA,CAED,YA9CA,0CAsD2B,kEAC1B,MAAM,EAAS,KACf,OAAM,EAAW,EAGjB,SAAM,EAAe,KAErB,QAAS,eAAgB,UACxB,IAAM,GAAQ,EAAQ,OAAS,EAAS,QADV,eAG9B,WAAqB,EAAS,UAAU,kEAAsB,YAE7D,OACC,EAWU,EAAM,GAAI,EACpB,iBAAM,OAAQ,EAAO,EAEtB,sBAdM,EAAM,GAAI,EAAK,cAGnB,IAAM,IAAY,MAClB,WAAU,SAAU,UAAM,SAG1B,MAAO,QAAS,YAAa,CAAE,UAAF,GAAa,MAC1C,GAGQ,WAjBmB,qEAqB9B,CACD,EAED,uCAIC,IAAM,GAAQ,cAAO,KAAK,OAAO,SAAS,UAE1C,0BAAK,MAAQ,CAAC,CAAC,GAAS,EAAM,GAAI,KAClC,aAED,wCAIC,IAAM,GAAQ,cAAO,KAAK,OAAO,SAAS,UAE1C,2BAAO,CAAC,CAAC,GAAS,KAAK,OAAO,SAAS,OAAO,MAC7C,MAAM,KACN,oBAAQ,UAAS,aAElB,cAGF,mBAlHqB,kpBCLrB,mSANA,eACA,eACA,eACA,eACA,mBAEM,EAEN,YAMqB,cAIP,aAAS,QAKrB,kEACA,aAAO,OAAO,OAAQ,UACrB,SAAS,CACR,CAAE,aAAc,YAAa,MAAO,YAAa,MAAO,wBACxD,CAAE,aAAc,WAAY,YAAa,KAAM,MAAO,YAAa,MAAO,uBAC1E,CAAE,aAAc,WAAY,YAAa,KAAM,MAAO,YAAa,MAAO,uBAC1E,CAAE,aAAc,WAAY,YAAa,KAAM,MAAO,YAAa,MAAO,0BAG5E,CAED,YAhBA,aAuBA,uBAIC,IAAM,GAAS,KACf,OAAM,EAAO,EACb,KAAM,EAAU,EAChB,QAAM,EAAU,EAAO,OAAO,IAAK,mBAJ7B,eAMN,WAAsB,gDAAU,SAE/B,MAAK,EAAO,eAEX,MAAO,SAAS,OAAO,aAAc,EAAO,aAG5C,0BAAsB,IAAK,EAAK,YAAa,EAAQ,aACnD,YAAa,EAAO,cACpB,UAAW,EAGb,6BAAqB,IAAK,EAAK,aAC7B,YAAa,EAAO,aACpB,UAAW,EAGb,gBAAO,SAAS,IAAK,EAAO,aAAc,cAAoB,EAE/D,aAzBK,oEA0BN,CAED,oCAMC,IAAM,GAAS,KACf,OAAM,EAAe,EAAO,SAAS,IACrC,SAAM,EAAU,EAAO,OAAO,IAE9B,mBACC,QAAK,SAAU,EAAc,eAAuB,aACnD,IAAM,GAAiB,EAAO,SAAS,UAAU,mBACjD,OAAM,EAAQ,EACd,MAAM,EAAY,EAAQ,KAAM,kBAAU,GAAe,GAAI,EAAO,aAEpE,GAAK,GAAa,CAAC,EAAe,GAAI,IACrC,CAD8D,KAAe,cACvE,OAAQ,EAEf,EAEF,qCAvDA,OAAO,GACP,qCAzBmB,kpBCNrB,mSARA,eACA,gBACA,gBACA,gBACA,WAEA,UASqB,2IAepB,uBAIC,IAAM,GAAS,KACf,OAAM,EAAoB,EAAO,QAAQ,IAKzC,wBACC,QAAK,SAAU,EAAmB,aAAqB,aACtD,IAAM,GAAkB,EAAO,QAAQ,KAAK,UAE5C,qBAAK,GAAmB,oBACvB,IAED,GAEF,YAjCD,yBAIC,OAAO,uBACP,QAED,mCAIC,OACA,0CAbmB,kFCXrB,CAsE+D,mBAC9D,IAAM,GAAQ,EAAI,KAAK,MACvB,KAAM,EAAiB,EAAO,GAAM,IAAM,EAE1C,GAAK,GAAC,EAAW,QAAS,EAAK,KAI/B,OAAM,GAAS,EAAc,OAAO,cAAe,EACnD,MAAM,EAAM,EAAO,SAEnB,GACC,iBADI,IAAO,KACP,gBAAiB,EAErB,gBAAI,aAAc,EAAK,aAAc,EAEtC,mBAGD,CA+CkD,iBAEjD,GAAU,EAIV,eAAM,GACL,MAAM,EACN,gBAAY,EACZ,kBAID,GAAQ,EAAQ,QAAU,CAAC,EAAO,MAAO,IACxC,IAAM,GAAS,EACf,MAAM,EAA+B,QAAlB,QAAO,GAAsB,EAAS,EAGzD,QAAK,EAAO,OAAO,IAClB,SAED,KAID,OAAO,GAAQ,OAAS,EACxB,IAED,oDAtJgB,4BACf,OAAgC,kBAE/B,CAAK,GAAC,EAAW,KAAM,EAAK,MAAO,CAAQ,QAAM,MAK5C,WAAC,EAAc,OAAO,MAAO,CAAE,KAAM,QAAS,OAAQ,EAAK,QAAS,WAKzE,YAAM,GAAY,MAAM,KAAM,EAAK,MAAM,eAAgB,KAAM,kBAAa,GAAU,GAAI,MAG1F,MAAmB,CAAd,EAAe,EAAU,aAAyB,QAAC,EAAW,KAAM,EAAW,CAKpF,cAAM,GAAa,EAAc,YAAa,EAAW,EAIzD,KAAK,QAAQ,KAEb,MAAM,GAAgB,EAAc,gBAAiB,EAAK,MAAO,EAEjE,KAAK,QAGL,gBAAY,OAAQ,UAAc,SAAU,GAG5C,KAAK,OACL,GACD,CAED,IAMgB,8BAA4C,aAAgB,oBAC3E,WAA0B,gDAAc,SACvC,QAAW,mBAAqB,WAChC,KAAW,sBAAwB,WACnC,KAAW,sBAAwB,WACnC,WAL0E,oEAM3E,CAID,IA8BgB,sBAA8C,iBAC7D,IAAM,GAAM,EAGZ,MAAK,GAAC,EAAW,KAAM,EAAK,CAAQ,QAOpC,wBAAM,GAAiB,EAAqB,CAAE,KAAM,QAAuB,oBAAW,EAAK,QAAS,EAEpG,QAAK,GAKL,MAAM,GAAU,OAAe,UAC/B,KAAQ,QAER,IAAK,OAAS,EAAc,YAAa,EAAK,EAG9C,KAAkB,IAAK,EACvB,SAWD,IA6CgB,yBAA+B,aAE9C,CAAK,GAAC,EAOD,QAAC,EAAK,OAAO,GAKlB,gBAIM,GAAN,MAAU,EAAI,EAAK,OAAO,WAAa,IAAQ,CAAL,IACnC,SAAQ,EAAK,OAAO,SAE1B,GAAK,EAAkB,IAAK,GAoB3B,IAAM,GAAqB,EAAK,OAAO,WAAa,EACpD,EAAI,EAGJ,KACC,CADI,OACU,EAAK,OACnB,YAAY,eAAgB,EAAK,OAAO,eAAgB,EAAI,EAI7D,OAIA,WAGA,QACC,KAAU,QAIX,KAAU,QAGV,GACC,CADI,GAAK,OAAO,cACN,QAAS,EAEpB,OAIF,CAAK,EACJ,WAAK,OAAS,cAEf,I,EApQD,eACA,eACA,kBA2FM,EAAoB,GAE1B,ypBC3FA,mSAJA,eACA,mBACA,UAOqB,gJACpB,yBAIC,OAAO,GACP,QAED,mCAIC,OACA,iDAbmB,kqBCQrB,CAmIkE,sBACjE,IAIA,QAJK,UAIC,IAAS,cACd,YAAY,GACZ,MAAkB,yBAGP,YACX,IAAM,IAAO,GAEb,KAAmB,cAAd,KAAM,MAA0B,cAAS,KAAU,CAAC,0BACxD,QAAM,SAAS,eAAgB,UAGzB,CAAC,0BACL,QAAM,OAAQ,UAAc,SAAU,GAAM,OAAS,cAEtD,WACD,EArBuE,oBAUzE,YAAqB,sDAAS,qBAY7B,aAtBwE,4EAuBzE,EAMD,CAC6B,aAA8B,4DAC1D,YAAgC,sBAC/B,IAAM,IAAiB,GAGvB,SAAM,GAA6B,UAA9B,EAIL,KAAK,cAAS,GAAe,QAC5B,IAAK,CAAC,GAAW,QAAS,GAAK,KAC9B,UAGD,UAAM,IAAY,GAAc,OAAO,cAAe,GAAK,MAAM,MACjE,QAAM,GAAgB,eAAF,QACnB,EAAsB,UAIlB,IAAC,GACL,eAAY,SAGb,eAA0B,GAAa,GAAK,KAAM,GAAW,GAC7D,OACD,CACD,CAQD,CACyE,sBACxE,IAAM,IAAe,UAAa,SAAU,GAE5C,iBAAW,OAAQ,GACnB,MAAO,aAAc,GACrB,EAED,CAM2B,aAC1B,IAAM,IAAY,EAAK,aAAc,CACrC,iBAAM,GAAU,GAAU,KAAM,mBAA6B,SAAjB,KAAS,IAErD,SAAK,KAAW,GAAQ,QACvB,OADiC,KAAQ,OAAO,KAIjD,GACA,I,+TA5OD,eACA,eACA,cACA,eACA,eACA,eACA,cACA,eACA,eACA,OACA,aAcqB,gJACpB,uBAGO,QACN,KAAM,GAAS,KACf,OAAM,GAAW,GACjB,SAAM,GAAe,GAAO,QAC5B,KAAM,GAAS,GACf,OAAM,GAAO,GACb,KAAM,GAAU,GAChB,QAAM,GAAI,GAgBV,OAAK,eAAiB,4BAAuB,GAAc,GAG3D,2BAAO,aAAc,UACrB,aAAO,MAAO,CAAE,KAAM,UAAW,OACjC,eAAO,MAAO,CAAE,KAAM,UAAW,OACjC,aAAO,OAAO,IAGd,cAAS,GAAI,SAGb,mBACE,IAAK,GAAK,aACV,0BACA,UAGF,cAAK,YAAY,GAAI,iBAAkB,EAAoB,cAG3D,sBAAQ,YAAY,GAAI,iBAAkB,EAAoB,KAG9D,oBAAQ,YAAY,GAAI,SAAiB,eAAP,OAAiB,IAAK,sBAAuB,GAAK,KAApF,EAA4F,CAAE,SAG9F,YAAQ,YAAY,GAAI,SAAiB,eAAP,OAAiB,IAAK,sBAAuB,GAAK,eAAe,OAAnG,EAA6G,CAAE,SAG/G,cAAK,SAAU,GAAc,SAAU,iBAAM,IAAK,0BAAlD,EAA8E,CAAE,SAChF,QAED,mDAOC,IAAM,IAAS,KAAK,OAAO,QAC3B,OAAM,GAAgB,KAAK,OAAO,QAAQ,KAC1C,UAAM,GAAkB,GACxB,qBAGA,MAAK,KAAK,sBAAwB,CAAC,KAAK,qBACvC,iBAAK,qBAAqB,SAI3B,aAAK,IAAmB,oBAAe,IACtC,IAAM,IAAa,GAAO,eAC1B,IAAM,GAAe,0BACrB,OAAc,GAAO,cACrB,GAGD,CAAK,gBAAW,GACf,sBAAc,GAGf,iBACC,QAAY,YACZ,kBAAK,qBAEN,GAED,sCAOuB,YACtB,IAAM,IAAe,EACrB,IAAM,GAAS,KAAK,OAAO,QAE3B,UAAK,GACJ,IAAM,IAAc,GAAO,cAE3B,IACC,KAAK,GACJ,cAAY,YAEZ,gBAAY,SAGd,aACD,YAMF,mBA3HqB,kFCnBrB,oDASgB,sBAAqC,aACpD,OAAO,WACN,IAAM,GAAW,cACjB,uBAAS,SACT,IAAS,kBACT,8BAAmB,EAEnB,GAAO,uBACP,EACD,CAED,IAMgB,UAAW,WAC1B,OAAO,CAAC,CAAC,EAAY,kBACrB,EAED,IAMgB,oBAAqB,WAAoB,oBACxD,WAAoB,EAAkB,4DAAgB,YACrD,MAAK,wBACJ,SADoC,IAAK,WAG1C,WALuD,oEAOxD,OACA,KAED,IAQgB,kBAAmB,WAClC,IAAM,GAAS,EAGf,aAAqB,YAAhB,IAAQ,MAAwB,GAAyB,QAAf,IAAO,MAAoB,EAAO,SAChF,SAAO,CAGR,SACA,I,EApED,eACA,eACA,OACA,cAEM,EAAgB,OAEtB,gqBCHA,mSAJA,eACA,gBACA,kBASqB,0IAepB,uBAIC,IAAM,GAAS,KAAK,OAAO,OAAO,IAAK,gBADjC,eAGN,WAAqB,gDAAS,SAC7B,WAAK,cACL,WALK,oEAMN,CAED,8BAMe,WAAQ,OACtB,KAAM,EAAS,KACf,OAAM,EAAU,EAAO,SAAS,IAAK,EAErC,QAAO,GAAG,iBAAiB,IAAK,EAAM,KAAM,WAC3C,IAAM,GAAO,cAEb,YAAK,IACJ,OAAO,EACP,WAAM,EACN,KAGD,eAAK,KAAM,aAAc,GAAI,EAC7B,eAAK,KAAM,QAAS,GAAI,EAExB,WAAK,SAAU,EAAM,UAAW,iBAAM,GAAO,QAAS,EAAM,KAE5D,GACA,CACD,YAnDD,yBAIC,OAAO,GACP,QAED,mCAIC,OACA,+CAbmB,uJCTrB,CAmDyD,mBACxD,IAAM,GAAoB,EAC1B,MAAM,EAAoB,EAI1B,OAAK,GAAC,EAAW,KAAM,EAAmB,CAAE,MAAO,EAK9C,aAAC,cAKN,OAAM,eAAkB,EAEnB,oCAAC,EAAc,OAAO,MAAO,CAAE,KAAM,QAAS,OAAQ,EAAK,QAAS,WAKzE,QAAW,QAAS,EAAmB,CAAE,MAAO,EAChD,cAAkB,aAAc,aAAc,EAC9C,QAMD,CACiC,eAAS,oBACzC,WAAqB,gDAAS,YAC7B,MAAK,EAAM,QACV,QAED,WALwC,oEAMzC,CAQD,CAC0C,iBACzC,OAAK,KAAwB,iBAAb,KACf,iBADiD,SACrC,YAAa,EAM1B,cAQD,CAC0C,iBACzC,OAAK,KAAuB,cAAZ,KACf,iBAD6C,SACjC,SAAU,EAMvB,c,oDApHe,0BAA2B,WAC1C,OAAgC,kBAC/B,IAAM,GAAY,EAAI,KAAK,MAAO,KAClC,GAAM,EAAiB,EAEvB,cAAK,GAAC,EAAW,KAAM,EAAK,KAK5B,OAAM,GAAW,EAAiB,EAAK,kBACvC,GAAM,EAAW,EAAiB,EAAK,kBACvC,GAAM,EAAc,EAAc,OAAO,cAAe,EAExD,OAAK,EAAe,EAAW,EAAU,IAAiB,EAAgB,EAAW,EACpF,OAAW,QAAS,EAAK,KAE1B,GACD,CAED,IAMgB,0BAA2B,WAE1C,IAAM,GAAiB,EAAO,OAAQ,kBAAyB,KAAhB,KAAM,KAErD,SAAgC,kBAAmB,oBAClD,WAAqB,gDAAiB,SACrC,QAAuB,EAAO,EAAM,EACpC,WAHiD,oEAIlD,CACD,CAQD,EApDA,ymBCGA,mSAHA,gEACA,WAOqB,cAOC,eAAQ,QAG5B,kEAQA,aAAK,IAQL,cAAK,MAGL,IAAK,SAAU,EAAO,SAAU,cAAe,UAC9C,GACA,iBACA,cAHD,GAIA,CAED,YA5BA,4CAkCC,IAAM,GAAM,KAAK,OACjB,SAAM,EAAU,EAAI,UAEf,2BACJ,QAMA,IADI,QAAK,MAAM,WACV,MAAQ,CAAC,EAAQ,aAEtB,mBAAK,MAAU,EAAQ,aAAc,eAAkB,KAAK,MAE7D,iBALA,SAOD,wCAIC,IAAM,GAAU,KAAK,OAAO,SAAS,UAErC,2BAAO,cACP,EAED,qCAQ2B,kEAE1B,UAAK,KAIL,UAAM,GAAS,KACf,OAAM,EAAM,EACZ,SAAM,EAAY,EAClB,UAAM,EAAe,EAErB,uBAAI,eAAgB,UACnB,IAAM,GAAQ,EAAQ,OAAS,EAE/B,UAAM,aAAc,EAAc,aAAc,EAAK,MACrD,MACD,gCA1FmB,kpBCDrB,mSAPA,eACA,gBACA,gBACA,OACA,kBACA,mBAQqB,0IAQpB,uBAIC,IAAM,GAAS,KACf,OAAM,EAAI,EACV,EAAM,EAAM,EACZ,SAAM,EAAS,EACf,OAAM,EAAO,EACb,KAAM,EAAU,EAGhB,UAAO,OAAO,OAAQ,eAErB,EAAE,KAAM,iBAAkB,MAAO,EAAG,mBAAqB,OAAzD,QAA6E,MAG7E,OAAE,KAAM,iBAAkB,MAAO,EAAG,cAAgB,OAApD,QAAoE,MAAO,OAAQ,UAIpF,yBAAM,GAAS,EAAO,OAAO,IAI7B,kBAAO,MAAO,CAAE,KAAM,QAAS,WAAY,aAAc,OAGzD,aAAM,GAAuB,gCAC7B,KAAQ,YAAY,GAAI,gCACxB,KAAK,YAAY,GAAI,gCACrB,KAAQ,YAAY,GAAI,mCACxB,KAAK,YAAY,GAAI,mCACrB,KAAQ,YAAY,GAAI,mCACxB,KAAK,YAAY,GAAI,mCAGrB,KAAK,YAAY,GAAI,iBAAkB,gCAA2B,GAAU,CAAE,SAE9E,WApCM,gBAqCN,YAAqB,oDAAS,WAC7B,QAAO,SAAS,IAAK,GAAM,KAAM,cAAuB,EACxD,cAvCK,uEAwCN,WAlDD,yBAIC,OAAO,GACP,kBAgDF,mBAtDqB,kpBCDrB,mSAZA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBAEA,mBACA,UAOqB,2IAepB,uBAGO,OACN,iBAEA,gBAAO,KAAK,sBAAsB,KAAM,WAMvC,GAAK,aAOL,IAAK,KAAO,EAAM,QAAQ,IAC1B,EACD,EAED,wCAMgB,OACf,KAAM,EAAS,KACf,OAAM,EAAU,EAAO,SAAS,IAChC,wBAAM,EAAI,EAEV,IAAO,GAAG,iBAAiB,IAAK,uBAAwB,YACvD,IAAM,IAAO,cAEb,cAAK,IACJ,OAAO,EACP,wCACA,QAGD,gBAAK,KAAM,aAAc,GAAI,EAE7B,eAAK,SAAU,GAAM,UAAW,iBAAM,GAAK,mBAE3C,GACA,EACD,EAED,8CAMsB,OACrB,KAAM,EAAS,KAEf,OAAM,EAAQ,cACd,GAAM,EAAO,cAA6B,EAE1C,aAAK,SAAU,EAAM,SAAU,UAC9B,GAAO,QAAS,uBAAwB,CAAE,SAAU,EAAK,aAAa,UAAU,QAChF,UACA,mBAGD,MAAM,IAAe,EAAO,QAAQ,MAEpC,eACC,UAAK,SAAU,EAAO,mBAAoB,UACzC,CAAK,EACJ,cACA,UAEA,kBACA,UAED,aAGF,QAAK,SAAU,EAAM,SAAU,iBAAM,GAAK,mBAG1C,iBACC,SACA,YAAW,iBAAM,GAAM,SACvB,WAAU,iBAAM,GAAK,mBAItB,kBACC,SACA,YAAW,iBAAM,GAAM,SACvB,iBAAgB,EAChB,iBAAU,iBAAM,GAAK,mBAGtB,IAAO,QAAQ,IAAK,CACnB,EAAM,QAAQ,IAAK,GACnB,EAAO,GAAG,KAAK,KAAK,IAAK,KACtB,KAAM,iBAAM,EAChB,EAED,4CAMC,IAAM,GAAS,KACf,OAAM,EAAU,EAAO,SAAS,IAChC,6BAAK,KAAK,aAAa,MAAQ,EAAQ,OACvC,QAAK,aACL,cAAK,KAAK,aACV,QAED,4CAMC,IAAM,GAAS,KACf,YAAK,aACL,WAAO,QAAQ,KACf,iBA9ID,yBAIC,OAAO,GACP,QAED,mCAIC,OACA,yDAbmB,+lBCdrB,mSAHA,gEACA,WAOqB,cAIP,aAAS,QAGrB,kEAQA,aAAK,IAGL,cAAK,SAAU,EAAO,SAAU,cAAe,UAC9C,GACA,iBACA,cAHD,GAIA,CAED,YApBA,4CA0BC,IAAM,GAAM,KAAK,OACjB,SAAM,EAAU,EAAI,UAEpB,0BACM,MADD,cAAS,IAAa,EAAQ,aAClC,QAAa,EAAQ,aAItB,MAED,wCAIC,IAAM,GAAU,KAAK,OAAO,SAAS,UAErC,2BAAO,cACP,EAED,2BASY,WACX,IAAM,GAAS,KACf,OAAM,EAAM,EACZ,SAAM,EAAe,EAAI,UAEzB,uBAAI,eAAgB,UACnB,IAAM,GAAQ,EAAQ,OAAS,EAE/B,UAAM,aAAc,EAAc,MAAO,EACzC,SACD,+BApEmB,kpBCLrB,mSAHA,iBACA,iBAQqB,0IACpB,uBAIC,MAAK,OAAO,SAAS,IAAK,uBAAwB,cAAiC,KACnF,qCANmB,kpBCFrB,mSAPA,eACA,eACA,cACA,gBACA,gBACA,mBAOqB,cAIP,aAAS,0EAGrB,IAAM,EAAI,EAAK,OAOf,WAAK,aAAe,EAOpB,4BAAK,eAAiB,EAAK,cAAe,EAC1C,WAAK,eAAe,KAOpB,WAAK,iBAAmB,EAAK,cAAe,EAAG,UAE/C,oBAAS,OAAQ,EAAK,eAAe,SACpC,YACC,CAMF,gCAAK,SAAW,cACf,KAEA,kBACC,CAKD,8CAAU,CACT,EAAK,aAEJ,KAEA,iBACC,CAKD,uDAAU,CACT,EAAK,eACL,EAMJ,oCACC,MADc,IAGf,CAED,YApEA,mCA4EsB,aACrB,IAAM,GAAS,cAAgB,KAE/B,iBAAO,MACP,IAEA,YACC,KAAO,SAAU,WAAY,GAAI,KAGlC,GACA,CAED,kDAOC,IAAM,GAAI,KAAK,OACf,EAAM,EAAe,cAAsB,KAAK,SAChD,kBAAa,MAAQ,EAErB,oBACA,8BAzGmB,kpBCKrB,CAyWkC,aACjC,OAAO,GAAS,eAAe,KAAM,kBAAY,gBAAZ,OACrC,E,yTA5XD,eACA,gBACA,eACA,gBACA,gBACA,gBAEA,gBAEA,eACA,gBAEA,gBACA,mBAEA,UAUqB,2IAepB,uBAIC,MAAK,OAAO,QAAQ,KAAK,cAOzB,cAAK,SAAW,KAQhB,mBAAK,SAAW,KAAK,OAAO,QAAQ,MAGpC,cACA,gCAGA,kCACA,gBAED,sCAMc,QACb,KAAM,GAAS,KACf,OAAM,GAAW,cAAkB,GAEnC,kBAAS,aAAa,KAAM,SAAU,GAAI,GAAO,SAAS,IAAK,QAG/D,cAAK,SAAU,GAAU,SAAU,UAClC,IAAO,QAAS,OAAQ,GAAS,aAAa,UAAU,QACxD,UACA,cAGD,QAAK,SAAU,GAAU,SAAU,UAClC,IAAO,QACP,aACA,cAGD,QAAK,SAAU,GAAU,SAAU,iBAAM,IAAiB,cAG1D,MAAS,WAAW,IAAK,MAAe,eACvC,IACA,eACA,IAED,GACA,EAED,mDAM2B,QAC1B,KAAM,GAAS,KACf,OAAM,GAAc,GAAO,SAAS,IACpC,QAAM,GAAI,GAGV,KAAO,WAAW,IAAK,SAAU,iBAAM,IAAiB,cAExD,MAAO,GAAG,iBAAiB,IAAK,OAAQ,YACvC,IAAM,IAAS,cAEf,cACA,gBAAO,MAAQ,GACf,WAAO,OACP,WAAO,UACP,YAGA,cAAO,KAAM,aAAc,GAAI,GAG/B,gBAAK,SAAU,GAAQ,UAAW,iBAAM,IAAiB,cAEzD,GACA,EACD,EAED,qDAM6B,QAC5B,KAAM,GAAS,KACf,OAAM,GAAI,GACV,EAAM,GAAgB,GAAO,SAAS,IAEtC,aAAO,GAAG,iBAAiB,IAAK,SAAU,YACzC,IAAM,IAAS,cAEf,cACA,gBAAO,MAAQ,GACf,aAAO,OACP,WAGA,cAAO,KAAM,aAAc,GAAI,GAG/B,gBAAK,SAAU,GAAQ,UAAW,iBAAM,IAAO,QAAS,SAExD,GACA,EACD,EAED,yCAMiB,QAChB,KAAM,GAAe,KAAK,OAAO,QAIjC,UAAK,SAAU,GAAc,QAAS,UACrC,IAAM,IAAa,GAEnB,0BAEC,OAED,YAGD,QAAK,OAAO,WAAW,IAAK,MAAe,eAC1C,CAAK,GAAK,SAAS,cAAgB,GAAiB,UAAC,GAAK,SAAS,aAClE,eAAK,SACL,QAED,KAGD,QAAK,OAAO,WAAW,IAAK,MAAe,eAC1C,CAAK,GAAK,SAAS,cAAgB,GAClC,cACA,aAED,KAGD,iBACC,SAAS,KACT,mBAAW,iBAAM,IAAK,SAAS,QAAS,GAAK,SAC7C,iBAAgB,KAAK,SAAS,KAC9B,iBAAU,iBAAM,IAAK,YAEtB,GAED,2BAQY,YAAa,QACxB,KAAM,GAAS,KACf,OAAM,GAAU,GAAO,SAAS,IAChC,QAAM,GAAU,GAChB,QAAM,GAAmB,GACzB,KAAM,GAAkB,GAAiB,UACzC,YAAM,GAAmB,KAGzB,sCAAK,SAAS,iBAAiB,UAAY,CAAC,CAQ5C,QAAK,SAAS,aAAa,UAAU,QAAQ,MAAQ,GAAQ,OAE7D,QAAK,SAAU,GAAkB,SAAU,UAC1C,IAAM,IAAqB,GAC3B,0BAAM,GAAoB,GAAiB,UACrC,YAAwB,IAAmB,CAOjD,EAAK,EAAyB,KAC7B,MAOA,eACC,MAAK,SAKL,oBAAK,SAAS,eAAgB,GAGhC,0BAED,GAAK,KAAK,SAAS,QAAS,KAE3B,WAAK,IAAc,KAAK,SAAS,cAAgB,KAChD,eAAK,SAAS,aAGf,SAAO,QAEP,WAAO,KAAK,SAAS,IACpB,MAAM,KACN,kBAAU,KAAK,4BACZ,KAAM,UACT,CACC,OAAK,SAAS,aAEf,QAEF,EAED,2BAQY,YACX,MAAK,cAAe,KAAK,OAAO,QAAQ,KAEnC,UAAC,KAAK,SAAS,QAAS,KAI7B,YACC,SAAK,OAAO,QAAQ,KAGrB,aAAK,cAAe,KAAK,OAAO,QAAQ,KACxC,eAAK,SAAS,OAAQ,KACtB,UAED,kDAWC,IAAM,IAAe,KAAK,OAAO,QACjC,KAAM,GAAa,KAEnB,0BAAM,GAEL,MAAa,aAAa,2BAE1B,OAAa,aAAa,eAAgB,GAAa,UAExD,uBACC,QACA,WAAS,GAAa,aAAa,2BAA4B,GAAa,UAE7E,iBAED,kDAYC,IAAM,IAAY,KAAK,OAAO,QAAQ,KAEtC,aAAK,GACJ,kBAAO,GAAyB,GAIhC,uBAAM,IAAQ,GAAU,gBACxB,aAAM,GAAY,EAAyB,GAC3C,OAAM,GAAU,EAAyB,GAEzC,WAAM,GAAD,EAAc,IAClB,GAII,UAAM,SAAU,IAAY,aAAa,QAC7C,IAEA,GAGF,KANC,cAlVF,yBAIC,OAAO,aACP,QAED,mCAIC,OACA,qBAmVF,mBAhWqB,kpBClBrB,mSAPA,gBACA,eACA,cACA,gBACA,gBACA,mBAOqB,cAKP,aAAS,QAGrB,kEAMA,aAAK,IAGL,kBAAK,SAAU,EAAO,SAAU,cAAe,UAC9C,GACA,iBACA,cAHD,GAIA,CAED,YAlBA,4CAsBC,MAAK,MAAQ,KAAK,OAAO,SAAS,UAAU,aAC5C,WAED,wCAQC,IAAM,GAAW,KAAK,OAEtB,eAAO,cAA+B,WAAY,EAAS,UAAW,EACtE,OAED,2BAgBY,WACX,IAAM,GAAW,KAAK,OACtB,SAAM,EAAY,EAElB,YAAS,eAAgB,UAExB,IAAM,GAAQ,EAGd,WAAK,EAAU,YACd,IAAM,GAAW,EACjB,mBAAM,EAAS,EAGf,UAAK,EAAU,aAAc,YAE5B,IAAM,GAAY,cAAe,EAAU,mBAAoB,EAAU,aAEzE,eAAM,aAAc,EAAW,WAG/B,KAAU,UAAW,CACrB,GACD,KACK,IAAK,EAAS,OAAO,MAAO,CAAE,KAAM,QAAS,WAAY,WAAY,OAAQ,EAAO,OACxF,IAAM,GAAO,cAAU,EAAM,CAAE,SAE/B,MAAM,OAAQ,EAGd,KAAU,UAAW,CAAE,UAAM,SAC7B,IACD,CAvBD,KA0BC,IAAM,GAAS,cAAsB,WAAY,EAAU,YAAa,EAAS,QAH3E,iBAKN,YAAqB,oDAAS,WAC7B,QAAM,aAAc,GAAO,WAC3B,YAPK,2EAQN,CACD,CACD,+BArGmB,kpBCLrB,mSAPA,eACA,eACA,eACA,gBACA,gBACA,mBASqB,0IACpB,uBAIC,IAAM,GAAS,KACf,OAAM,EAAO,EACb,KAAM,EAAU,EAGhB,UAAO,SAAS,OAAO,MAAO,CAAE,KAAM,UAAW,WAAY,WAAY,OAGzE,2BAAsB,IAAK,EAAK,YAAa,EAAQ,aACnD,cAAe,YACf,UAAW,kBAAY,eAAiB,IAAK,CAAE,KAAM,GAGvD,mBAAqB,IAAK,EAAK,aAC7B,YAAa,KACb,YAAa,kBACb,KACA,iBAAO,EAAY,aAAc,QAInC,KAAO,SAAS,IAAK,OAAQ,cAC7B,MAAO,SAAS,IAAK,SAAU,cAC/B,gCA5BmB,kpBCDrB,qjBAbA,aACA,cACA,gBAEA,eACA,gBACA,gBAEA,gBACA,eACA,gBACA,kBASqB,cAIP,aAAS,0EAGrB,IAAM,GAAI,EAQV,IAAK,aAAe,MAQpB,UAAK,WAAa,MAOlB,UAAK,aAAe,EAOpB,oBAAK,eAAiB,EAAK,cAAe,GAC1C,WAAK,eAAe,KAOpB,WAAK,iBAAmB,EAAK,cAAe,GAAG,UAO/C,YAAK,iBAAmB,EAAK,cAAe,GAAG,UAS/C,YAAK,YAAc,MASnB,UAAK,aAAe,cACnB,YAAY,EACZ,yBAAc,EACd,8BAAkB,EAClB,mBAEC,eAGA,wBAIF,mBAAS,OAAQ,EAAK,eAAe,SACpC,YACC,CAMF,gCAAK,SAAW,cACf,KAEA,kBACC,CAKA,gCAGD,eAAU,CACT,EAAK,aAEJ,KAEA,iBACC,CAKD,0CAAU,CACT,EAAK,eACL,EAAK,iBACL,EAMJ,oCACC,MAGD,OAAM,IAAa,CAClB,EAAK,aACL,EAAK,eACL,EAAK,iBACL,EAGD,4BAAW,QAAS,YAEnB,GAAK,YAAY,IAGjB,MAAK,aAAa,IAAK,GACvB,QAND,GAOA,CAED,YA3IA,oCAgJC,aAAK,WAAW,SAAU,KAE1B,uFACA,KAED,gCAIC,MAAK,aACL,YAED,0CAOC,IAAM,GAAI,KAAK,OAEf,EAAM,GAAe,cAAsB,KAAK,SAEhD,mBAAa,MAAQ,EACrB,eAAa,UAAU,YAAc,EAErC,sBACA,EAED,8BAQsB,cACrB,IAAM,IAAS,cAAgB,KAE/B,kBAAO,MACP,KAEA,YACC,OAAO,SAAU,WAAY,GAAI,KAGlC,IACA,YAgBF,mBApNqB,kpBCjBrB,mSAHA,gBACA,mBAOqB,cAKP,aAAS,QAGrB,kEACA,aAAK,SAAU,EAAO,SAAU,cAAe,UAC9C,GACA,cAFD,GAGA,CAED,YATA,0CAkBC,IAAM,GAAW,KAAK,OACtB,SAAM,EAAY,EAElB,YAAS,eAAgB,UAExB,IAAM,GAAiB,EAAU,YAChC,CAAE,cAAe,EAAU,mBAAoB,EAAU,aAAc,cAAmB,EAG3F,YAAM,EAAQ,EAEd,QAR8B,eAS9B,WAAqB,gDAAiB,SACrC,QAAM,gBAAiB,EACvB,oBAX6B,oEAY9B,CACD,EAED,wCAOC,OAAO,MAAK,OAAO,SAAS,UAAU,aACtC,wCAjDmB,6NCKrB,CA6lBoD,oBACnD,IAAI,IAAW,GAEf,UAAK,IACJ,UADgB,KAAS,SAChB,eAAgB,UACxB,QAAM,IAAW,GAEjB,gBAAM,GAAY,IAAY,GAAS,GAAI,YAAe,GAAS,aAAc,UAAa,EAG9F,EAAI,GAAY,GAAS,aAAc,UACvC,GAEA,MAAQ,IAA6B,UAAjB,KAAS,MAAsB,GAAS,aAAc,UAAa,IACtF,CAAK,GAAY,GAAS,aACzB,eAAY,GAAS,aAGtB,cAAM,IAAY,GAAS,aAAc,UAEzC,MAAM,KAAM,CAAE,KAAM,GAAU,OAE9B,QAAW,GACX,WAED,IAAoB,CAAf,IAAM,OACV,IADuB,mBAEvB,YAAoB,GAAM,6DAAY,YACrC,SAAM,aAAc,GAAK,KAAM,SAAU,GACzC,iBAJsB,4EAKvB,CACD,CAEF,EAID,CAC+D,uBAC9D,IAAI,IAAO,GAAgB,GAAc,aAEzC,aAAc,EAAT,EAAU,GAAK,GAAI,aAOxB,CAPwC,MAAK,aAAc,cAOlD,eAAgB,UACxB,IAAM,IAAU,EAA4B,GAAM,CAElD,OAAM,EAAD,EAAY,IAMjB,UAAM,IAAY,GAAQ,aAC1B,UAAM,GAAU,GAAQ,aAExB,QAAQ,IAAQ,GAAK,GAAI,aAAgB,GAAK,aAAc,WAC3D,IAAK,GAAK,aAAc,SAAY,IAAW,GAAK,aAAc,WACjE,OAAM,aAAc,GAAM,OAG3B,OAAO,GAAM,GAAc,kBAE5B,cACD,EAED,CA+DoC,iBACnC,IAAM,IAA+C,UAApC,KAAU,aAAc,QAAyB,KAClE,KAAM,GAAW,MAEjB,QAAM,GAAW,eAA0B,GAC3C,gBAAS,eAET,OAAO,aAAc,GAErB,IACA,EAYD,CACkD,iBACjD,QAAM,IAAY,GAAQ,QAAU,cACpC,kBAAM,GAAe,GAAQ,QAAU,YACvC,aAAM,GAAmB,CAAC,CAAC,GAC3B,iBAAM,GAAa,CAAC,CAAC,GACrB,WAAM,GAAe,CAAC,CAAC,GACvB,aAAM,GAAgB,CAAC,CAAC,GACxB,cAAM,GAAW,CAAC,CAAC,GAEnB,SAAM,GAAS,wBAA8C,GAAoB,aAAc,UAAa,GAC5G,OAAI,GAAO,wBAA8C,GAAqB,IAAc,GAE5F,OAAQ,IAAqB,UAAb,KAAK,MACd,OAAa,GAAK,aAExB,UACG,IAAc,IAAU,IACxB,IAAgB,GAAS,IACzB,IAAiB,GAAS,GAE5B,IAAK,CAAC,IAAY,GAAQ,OAAO,cAChC,UAEA,OAAO,GAEP,IAED,QAED,IAAK,CACJ,SAGD,SAAO,GACP,GAED,OACA,KAGD,CACoC,iBACnC,OAAK,KAAa,KAAkC,IAAlB,KAAU,MAAkC,IAAlB,KAAU,OAAkB,GAAU,MAAQ,GACzG,KAAO,WAAW,gBAAiB,WAAa,YAGjD,KACA,IAKD,CAC0D,uBACzD,IAAM,IAAe,GAGrB,OAKA,GAAI,GAAW,EAAoB,GAAW,CAAc,cAAqB,iBAEjF,yBAAK,IAAY,GAAS,aAAc,WAAc,GAAU,aAAc,UAG7E,IAAM,IAAW,GAAO,cACxB,OAAiB,WAAW,eAAgB,WAAa,YACzD,IAEA,SAAW,GAEX,mBAAK,IAMJ,UANgB,KAAS,KAMpB,GAAS,aAAc,UAAa,GAAU,aAElD,UAAiB,GAAO,eAAgB,UAAc,SAAU,GAIhE,QAAK,GAAe,OAAO,GAAI,OAAU,GAAe,OAAO,GAC9D,MAAiB,WAAW,eAE5B,IAMF,GAAiB,GAAO,eAAgB,UAAc,aAKxD,gBAAW,OAAQ,GAOnB,OAAM,IAAW,EAChB,GACA,CAAgB,gBAAe,WAAgB,YAAM,OAGtD,QAAK,GACJ,IAAM,IAAW,GAAO,cAGxB,eAAW,eAAgB,WAAa,aAGxC,QAAM,IAAc,WAAa,aAAc,GAE/C,QAAM,GAAgB,EACtB,OAAM,GAAe,GAAO,cAC5B,IAAM,GAAY,WAAW,eAAgB,WAAa,YAC1D,KAAM,GAAc,eAAe,GAEnC,IAAM,GAAiB,WAAa,SAAU,GAC9C,kBAAW,KAAM,GACjB,GAGD,GAAgB,GAAc,GAC9B,eAAgB,GAAa,gBAC7B,GAGD,CAC2G,0BAK1G,IAAM,IAAgB,EAAoB,GACzC,CACA,cACA,iBACA,2BAID,KAAM,GAAa,GAAgB,GAAc,aAAc,UAE/D,KAEA,MAAK,CAiBJ,MACA,OAAM,IAAK,IAAc,GAkBzB,IAAM,IAAe,GAAO,cAAe,IAC3C,UAAiB,WAAa,YAC9B,GApBM,KAuCN,IAAM,IAAgB,UAAc,SAAU,GAC9C,UAAiB,GAAO,eACxB,GAGD,wBAC0B,GAAgB,qCAAkB,WAC3D,KAAK,GAAM,GAAI,OAAU,GAAM,GAC9B,YAAiB,WAAW,KAAM,WAAU,SAAU,IAAS,IAE/D,MAAgB,GAAO,GACvB,eAAgB,GAAM,gBAGxB,IAED,CAC2C,iBAC1C,QAAM,IAAS,GAAK,aACpB,UAAM,GAAY,GAAW,kBAE7B,cAAI,GAEJ,GAAQ,GAAM,KAAe,GAAM,IAAY,GAAI,aAAgB,GAAM,IAAY,aAAc,WAClG,OAAO,GAEP,IAAK,GAAK,aAAc,WACvB,QAIF,UACA,G,oDA/9Be,mBAA2C,qBAC1D,IAAM,GAAW,KAAM,GAAK,KAC3B,SADI,EACH,GAAW,KAAM,GAAK,KACvB,sBAAC,GAAW,KAAM,GAAK,KAKxB,2BAAW,QAAS,GAAK,KACzB,aAAW,QAAS,GAAK,KACzB,wBAAW,QAAS,GAAK,KAEzB,0BAAM,IAAY,GAClB,KAAM,GAAW,EAAgB,GAAW,GAG5C,QAAM,GAAiB,GAAc,OAAO,eAAgB,UAAc,aAE1E,OAAgB,GAAW,GAAU,GAAc,OACnD,IAED,IAYgB,oBAA4C,qBAC3D,CAAK,GAAC,GAAW,QAAS,GAAK,KAI/B,4BAAM,IAAW,GAAc,OAAO,cAAe,GAIrD,iBAAW,eAAgB,WAAa,aACxC,gBAAW,eAAgB,WAAa,YAIxC,QAAI,IAAW,GACf,OAAM,GAAqC,UAA1B,KAAK,kBAAkC,KACxD,QAAW,WAAW,OAAQ,GAG9B,MAAgB,GAAU,GAC1B,eAAgB,GAAS,gBACzB,IAED,IASgB,gBAAwC,qBACvD,CAAK,GAAC,GAAW,QAAS,GAAK,KAI/B,cAAM,IAAe,GAAc,OAAO,eAAgB,GAC1D,gBAAM,GAAW,GAAa,UAAU,GAAI,MAAS,GAAa,UAAY,GAAa,UAAU,SAIrG,cAAW,eAAgB,WAAa,aACxC,gBAAW,eAAgB,WAAa,YAGxC,QAAM,IAAW,GACjB,OAAM,GAAe,GACrB,gBAAM,GAAc,WAAU,SAC9B,eAAW,OAEX,IAAK,IAAgB,GACpB,eAAgB,GAAc,GAI/B,eAAkB,GAAK,KAAK,aAAc,UAAa,EAAG,GAAK,eAAgB,GAAY,MAAO,GAAU,GAI5G,QACC,YADI,KAAK,KAAK,KAAK,aACL,OAAO,mBAAoB,GAE1C,MAED,IASgB,sBAA8C,qBAC7D,CAAK,GAAC,GAAW,QAAS,GAAK,KAI/B,8BAAM,IAAW,GAAc,OAAO,cAAe,GAIrD,iBAAW,eAAgB,WAAa,aACxC,gBAAW,eAAgB,WAAa,YAGxC,QAAM,IAAW,GACjB,OAAM,GAAe,GACrB,gBAAM,GAAc,WAAU,SAC9B,eAAW,OAGX,OAEA,IAAK,IAAgB,GACpB,iBAAiB,EAAgB,GAAc,GAG3C,cACJ,QAAiB,GAIlB,SAAkB,GAAK,kBAAoB,EAAG,GAAK,MAAM,MAAO,GAAY,MAAO,GAAU,GAG7F,UAAgB,GAAK,KAAM,GAAU,GAAc,OACnD,IAED,IAyBgB,uBAA+C,qBAC9D,IAAuB,UAAlB,KAAK,KAAK,KACd,QAAI,IAAe,GAAc,OAAO,eAAgB,GAAK,MAE7D,OAgDA,OAAoC,IAA5B,KAAa,OAAO,MAC3B,IAD2C,KAAa,OAAO,WAChD,WAAW,eAE1B,IAMA,IANK,KAAa,OAAO,WAMnB,IACN,GAAM,GAAY,WAAa,SAAU,GAAa,OAGtD,UAAK,CAAC,GAAY,QAAS,IAC1B,IAAM,IAAU,WAAW,OAAQ,eAAe,GAClD,QAAM,KACN,GAED,IAAe,WAAa,YAAa,GAI1C,WAAoB,CAAf,IAAM,OACV,KAAM,GAAI,IAAI,EAAG,GAAI,GAAM,OAAQ,KAClC,IAAM,IAAe,GACrB,WAAM,GAAgB,WAAW,OAAQ,GAAc,GACvD,WAAe,GAGf,IAAS,CAAJ,IACJ,IAAM,IAAW,EAAgB,GAAc,GAI/C,aAAK,IAAY,GAAS,QACzB,OAED,QACD,CAGD,GAAgB,GAAa,WAAY,GACzC,UACD,CACD,CAED,IAuBgB,oBAA4C,qBAC3D,IAAK,CAAC,GAAK,KAAK,GAAI,YACnB,IAAM,IAAe,GAAc,OAAO,eAAgB,GAC1D,gBAAM,GAAe,GACrB,WAAM,GAAe,GAKrB,YAAgB,GAChB,GACD,CAED,IAagB,mBAA2C,qBAC1D,IAAK,GAAW,QAAS,GAAK,MAAO,CAAQ,UAE5C,IAAM,IAAW,cAGjB,eAAK,OAAS,GAAK,OAAS,GAAK,OAEjC,KAAM,IAAiC,IAA1B,KAAK,MAAM,OAAO,KAAe,WAC9C,cAAS,aAAc,OACvB,OAAS,aAAc,SAAU,GAGjC,WAAK,QAAQ,KAGb,OAGA,YAAM,IAAQ,MACd,WAAM,eAIN,OAvBuD,mBAwBvD,YAAqB,GAAK,MAAM,oEAAgB,WAE/C,MAAM,GAAY,GAAc,YAAa,GAAO,GAIpD,IAAmB,IAAd,KAAM,MACV,IAD0B,KAAM,QAC1B,eAAgB,MAAM,KAAM,GAIlC,2BAAY,OAAQ,UAAc,SAAU,GAAU,OAEvD,GArCsD,uFAuCvD,IACA,YAAK,QAEL,SAAK,OACL,EACD,CAED,IAUgB,UAAsB,kBACrC,IAAK,GAAW,KAAM,GAAK,MAAO,CAAQ,UAEzC,IAAM,IAAW,MAAM,KAAM,GAAK,MAAM,eAFY,kBAIpD,YAAqB,sDAAW,YAC1B,MAAC,GAAM,GACX,UAED,kBARmD,4EASpD,CACD,CAED,IAQgB,cAA0B,kBACzC,IAAK,GAAW,KAAM,GAAK,MAAO,CAAQ,UACzC,IACC,CADI,MAAK,MAAM,WAIhB,UAAM,gBAAgB,GAAK,MAE3B,gBACA,MAAgB,MARoC,kBAUpD,YAAqB,sDAAW,YAC/B,MAAkB,KAAC,GAAM,GAAc,OAAC,GAAM,GAC7C,UAGD,SAAK,GAAM,GAEV,SACC,QAAM,KAAO,GAAM,KAAK,QAAS,OAIlC,MAAK,CAAC,GAAM,aAAiB,GAAM,YAAY,GAAI,OAAU,GAAM,YAAY,GAC9E,YAAM,KAAO,GAAM,KAAK,QAAS,OAE5B,OAAK,GAAM,GAAI,OAAU,GAAM,GAErC,SAGD,OACA,eA/BmD,4EAgCpD,CACD,CAED,IASgB,oBAA0B,eACzC,IAAM,IAAY,GAAK,cAEvB,cAAK,IAAa,GAAU,GAAI,YAC/B,IAAM,IAAW,GAAK,OAAO,cAC7B,IAAM,GAAkB,GAAS,eAAe,KAAM,mBAAW,IAAQ,GAAI,OAAU,GAAQ,GAAI,KACnG,GAAM,GAAS,eACd,eAAe,WAAa,SAAU,GAAU,KAJH,kBAO9C,YAAqB,sDAAS,eAC7B,MAAmB,cAAd,KAAM,MAA0B,GAAM,KAAK,GAAI,MACnD,IAAK,aAAe,GAEpB,iBACA,KAJD,KAIO,IAAmB,YAAd,KAAM,MAAwB,GAAM,MAAQ,GACvD,IAAK,aAAe,GAEpB,aACA,KACD,WAjB6C,4EAkB9C,CACD,CAED,IASgB,oBAA0B,eACzC,IAAM,IAAU,GAChB,aAAM,GAAa,GACnB,OAAM,GAAS,GAEf,UAAwB,IAAnB,KAAW,MAAmC,IAAnB,KAAW,KAE1C,IAAK,CAAC,GAAQ,QAGb,IAAM,IAAY,GAAO,eAAgB,GAEzC,cAAK,cAAgB,UAAc,aACnC,GAND,KAWC,IAAM,IAAY,GAAO,eAAgB,GACzC,YAAM,GAAc,GAAO,eAAgB,GAG3C,eAAK,cAAgB,UAAc,aAAc,IAAY,aAC7D,GAED,IACA,MArBD,KAqBO,IAAwB,IAAnB,KAAW,MAAgB,GAAQ,aAA2C,IAA3B,KAAQ,WAAW,MAA2C,IAA3B,KAAQ,WAAW,MAGpH,QAAM,IAAY,GAAO,eAIzB,IAAI,GACJ,EAAI,GAAW,GAEf,WAAQ,KAAc,GAAS,GAAI,OAAU,GAAS,GACrD,YAAe,GAAO,eAEtB,OAAW,GAGZ,mBAAK,cAAgB,UAAc,aAAc,IAAY,aAE7D,OACA,MACD,CAED,IAiBgB,qBAAsB,YACrC,OAA6B,sBAC5B,IAGC,QAHI,OAGa,GAAQ,eAAgB,GAEzC,MAAe,GAAwB,kBAAO,GAC9C,QAAM,IAGN,MAHW,OAGM,GAAQ,eAAgB,GAEzC,MAAe,GAAwB,kBAAO,GAI9C,MAAiB,GAAQ,MAAM,MAAO,GAEtC,MAAe,GAAQ,MAAa,SAAO,GAI3C,MAAiB,GAAQ,MAAM,IAAK,GAEpC,MAAe,GAAQ,MAAW,OAAM,GACxC,QAAM,IAAa,QAAR,MAAuC,UAAnB,KAAQ,SAA4C,UAAnB,KAAQ,QACxE,IAAM,IAAU,GAGhB,WAAS,eAAgB,UACxB,IAAM,gBAAiB,GAAS,UAAW,gBAAiB,GAC5D,OAED,MAAM,IAAY,UAAc,YAAa,GAI7C,WAAiB,GAAW,GAC5B,GAAM,KAGN,QAHW,SAGM,GAAQ,MAAM,MAAO,GAEtC,MAAe,GAAQ,MAAa,SAAO,GAI3C,MAAiB,GAAQ,MAAM,IAAK,GAEpC,MAAe,GAAQ,MAAW,OAAM,GAEzC,IACD,CAGD,IA8FgB,sBAA4B,eAI3C,IAAI,IAAO,GAAK,QAAQ,SAExB,MAAK,GAAK,GAAI,YAEb,IAAM,IAAM,GAAK,UACjB,mBAAI,GAEJ,QAAK,GAAI,OAAO,GACf,eAAU,GACJ,OAAK,GAAI,YAAc,GAAI,WAAW,GAC5C,iBAAU,GAIX,YAAK,GAIJ,IAAM,IAAe,GAAQ,aAG7B,aAEC,CAFI,SAEI,IAAQ,GAAK,GACpB,gBAAK,aAAc,SAAU,GAAK,aAAc,UAEhD,OAAO,GAGT,WACD,CACD,CAID,EA9uBA,iBAEA,eACA,cACA,cACA,iBAEA,kBACA,kBACA,kBACA,kBACA,sqBCRA,CAmIyB,eAExB,IAAM,GAAO,EAGb,SACC,EAMD,cANO,aAAc,EAAM,OAAQ,EAAK,aAEvC,YAIK,GAAO,EAGb,MACC,KAAM,aAAc,EAAM,OAAQ,EAAK,aAExC,QAGD,CAC8B,eAC7B,QAAI,GAAS,EAAM,EAAc,cAIjC,mBAAQ,GAAU,EAAO,GAAI,aAAgB,EAAO,aAAc,WAAc,EAAK,aAAc,WAClG,IAAK,EAAO,aAAc,WAAc,EAAK,aAE5C,gBAGD,KAAS,EAAQ,EAAc,cAC/B,kBAED,OACA,K,mSA3KD,gBACA,kBAOqB,cAQC,eAAkB,QAGtC,kEAOA,aAAK,UAA+B,SAAnB,IAA+B,EAAI,CAEpD,IAAK,SAAU,EAAO,SAAU,cAAe,UAC9C,GACA,cAFD,GAGA,CAED,YAjBA,0CAoBa,OACZ,KAAM,EAAM,KAAK,OACjB,SAAM,EAAQ,EACd,QAAI,EAAgB,MAAM,KAAM,EAAI,UAEpC,uBAAI,eAAgB,UACnB,QAAM,GAAW,EAAe,EAAc,OAG9C,GAAI,EAAO,EAGX,YAAQ,GAAqB,UAAb,IAAK,MAAsB,EAAK,aAAc,UAAa,EAAS,aACnF,aAAc,KAEd,KAAO,EAOR,YACC,CADI,GAAK,cACO,EAChB,cAnBwB,gBAqBzB,WAAoB,mDAAgB,SACnC,MAAM,EAAS,EAAK,aAAc,UAAa,EAI/C,UAIC,CAJI,KAIE,OAAQ,EAId,eAAM,aAAc,EAAM,SAE3B,EAGD,WAvCyB,qEAwCzB,CACC,CADI,GAAK,cACO,EAChB,cA1CwB,gBA4CzB,YAAoB,oDAAgB,WACnC,QAAU,GACV,YA9CwB,uEA+CzB,CACD,EAED,wCAKC,IAAM,GAAW,cAAO,KAAK,OAAO,SAAS,UAG7C,wBAAK,CAAC,GAAY,CAAC,EAAS,GAC3B,YAGD,YAAsB,CAAjB,MAAK,UAGT,QAAM,GAAS,EAAS,aACxB,UAAM,EAAO,EAAS,aAEtB,QAAI,EAAO,EAEX,gBAAQ,GAAQ,EAAK,GAAI,aAAgB,EAAK,aAAc,WAAc,GACzE,IAAK,EAAK,aAAc,WAKvB,QAAO,GAAK,aAAc,SAG3B,IAAO,EACP,eAGD,CACA,QAGD,CACA,kBAIF,mBA7HqB,kpBCCrB,mSATA,iBAEA,gBACA,gBAEA,cACA,OACA,mBAUqB,0IAepB,uBAGO,OAEN,KAAM,EAAI,KAAK,OACf,OAAK,WAAY,eAAgB,EAAG,mBACpC,cAAK,WAAY,eAAgB,EAAG,mBAIpC,cAAK,SAAU,KAAK,OAAO,QAAQ,KAAM,QAAgB,aACxD,IAAM,GAAM,EAAK,OACjB,SAAM,EAAiB,EAAI,UAAU,kBAErC,OAAK,EAAI,UAAU,aAAsC,UAAvB,IAAe,MAAsB,EACtE,YAAK,OAAO,QAEZ,iBACA,mBAED,OAKD,QAAK,SAAU,KAAK,OAAO,QAAQ,KAAM,UAAkB,aAC1D,IAEA,MAAK,EAAK,WAAa,qBACtB,SACM,aAAK,EAAK,WAAa,qBAC7B,iBAGD,eAAK,EACJ,IAAM,GAAU,EAAK,OAAO,SAAS,IAErC,GAAK,EACJ,cAAK,OAAO,QAEZ,KACA,mBAED,OACD,CACD,EAED,2BAQgC,eAAO,OACtC,KAAM,EAAS,KACf,OAAM,EAAU,EAAO,SAAS,IAEhC,KAAO,GAAG,iBAAiB,IAAK,EAAa,WAC5C,IAAM,GAAa,cAEnB,YAAW,IACV,OACA,OACA,EAID,eAAW,KAAM,OAAQ,aAAc,GAAI,EAAS,QAGpD,eAAK,SAAU,EAAY,UAAW,iBAAM,GAAO,QAAS,EAE5D,GACA,CACD,YA3FD,yBAIC,OAAO,GACP,QAED,mCAIC,OACA,wCAbmB,kpBCbrB,CAyPuC,iBAEtC,IAAM,GAAe,EAAa,EAAQ,GAAM,EAAQ,EAAO,OAE/D,MAAK,EAAa,GACjB,mBAAI,GAAO,EAAc,EAAa,kBActC,eAAI,EAAgB,EAAa,aAIjC,UAAQ,GAAQ,EAAK,GAAI,aAAgB,EAAK,aAAc,WAC3D,GAAK,EAAgB,EAAK,aACzB,cAAgB,EAAK,aAItB,WAAK,EAAK,aAAc,WAEvB,KAAQ,EAAa,UAAY,QAGlC,KAAO,EAAM,EAAa,kBAG5B,c,mSAlSD,gBACA,cACA,kBAOqB,cAOC,eAAO,QAG3B,kEAMA,aAAK,KAAe,UAAR,IAAqB,WAQjC,aAAK,IAGL,cAAK,SAAU,EAAO,SAAU,cAAe,UAC9C,GACA,iBACA,cAHD,GAIA,CAED,YA1BA,4CA+BC,IAAM,GAAW,cAAO,KAAK,OAAO,SAAS,UAE7C,0BAAK,MAAQ,GAAY,EAAS,GAAI,aAAgB,EAAS,aAAc,SAAY,KACzF,IAED,qCAQ2B,kEAC1B,MAAM,EAAW,KAAK,OACtB,SAAM,EAAS,MAAM,KAAM,EAAS,UAGpC,qBAAM,EAAU,UAGhB,QAAS,eAAgB,UACxB,IAAM,GAAQ,EAAQ,OAAS,EAI/B,WAAK,EAEJ,QAAI,GAAO,EAAQ,EAAO,OAAS,GACnC,YACA,2BAkDA,OAAQ,GAAqB,UAAb,IAAK,MAAwD,CAAlC,KAAK,aAAc,WAGvD,GAAS,EAAK,aAGpB,UAAK,EAEJ,MAKD,MAAM,GAAY,EAKlB,IAAQ,KAAM,CAAE,QAAS,EAAM,OAG/B,MAAO,EACP,WAED,GAAU,EAAQ,aA9EJ,gBAgFd,WAAoB,mDAAU,WAC7B,QAAM,aAAc,GAAK,QAAS,SAAU,GAC5C,iBAlFa,qEAmFd,CAmBD,IAAK,CAAC,EAGL,IAA0B,6BAHX,kBAKf,YAAoB,qDAAS,YAC5B,MAAK,GAAK,GAAI,aAAgB,GAAK,aAAc,UAChD,QAAe,GAAK,aAItB,oBAXe,4EAYf,IAAgC,CAAjB,MAAqB,EAGpC,KAAkB,KAGlB,MAAkB,KAClB,GAKD,IAnI8B,mBAoI9B,YAAuB,EAAO,6DAAY,YACzC,MAAK,GAGJ,UAHe,KAAQ,OAGjB,OAAQ,GACR,aAAM,CAAD,EAGX,UAHuB,KAAQ,KAIpB,CAAC,GAA2B,UAAhB,KAAQ,MAAsB,GAAQ,aAAc,SAAY,EAGvF,QAAM,aAAc,GAAS,OAAQ,EAEtC,QANO,aAAc,GAAS,OAAQ,EAAK,MAAO,aAAc,GAAS,SAAU,GAAI,OAAQ,GACxF,qBA7IsB,4EAmJ9B,CACD,EAED,wCAKC,IAAK,KACJ,MAGD,YAAM,GAAY,KAAK,OAAO,SAC9B,UAAM,EAAS,KAAK,OAAO,SAE3B,OAAM,EAAa,cAAO,EAErB,6BAKL,GAAO,EAAO,MACb,MACA,WACA,oCAAQ,UAAS,aAElB,cAUF,mBAnPqB,kpBCarB,CA8FgC,aAC/B,IAAI,GAAS,EAD4B,eAGzC,WAAqB,EAAQ,4DAAgB,YAC5C,MAAmB,IAAd,IAAM,MAA8B,IAAd,IAAM,KAAe,2BAC/C,WAAoB,EAAM,4DAAgB,SACzC,SAAU,EACV,WAH8C,oEAI/C,CACD,UATwC,oEAWzC,OACA,E,mSAhID,iBACA,gBAEA,cACA,eAEA,YAsBqB,0IAQpB,uBAIC,IAAM,GAAS,KAMf,OAAM,EAAS,EAAO,SACtB,SAAO,aAAc,WACrB,YAAO,MACN,MACA,kBACA,QAED,iCAAO,kBAGP,iCAAM,GAAO,EACb,KAAM,EAAU,EAEhB,aAAK,OAAO,SAAS,GAAI,SAAU,2BAAsB,KAAK,OAAO,UAAY,CAAE,SAInF,cAAK,OAAO,SAAS,GAAI,SAAuB,eAC/C,IAAa,MAAR,IAAiB,oBACrB,WAAoB,EAAQ,MAAM,0DAAa,UAC9C,MAAK,GAAK,GACT,eAAQ,OAAO,mBAEhB,aALoB,qEAMrB,CACD,CARD,EAQG,CAAE,SAEL,WAAQ,OAAO,0BAA2B,KAC1C,KAAK,OAAO,0BAA2B,KAEvC,KAAQ,OAAO,GAAI,wBACnB,uBAAQ,OAAO,GAAI,wBACnB,uBAAK,OAAO,GAAI,wBAEhB,uBAAQ,YAAY,GAAI,kCAAkC,CAAE,SAC5D,WAAQ,YAAY,GAAI,oBACxB,sBAAK,YAAY,GAAI,kCAAkC,CAAE,SACzD,WAAK,YAAY,GAAI,oBAIrB,sBAAQ,YAAY,GAAI,kCACxB,uBAAK,YAAY,GAAI,kCAErB,uBAAQ,YAAY,GAAI,oBACxB,mBAAQ,YAAY,GAAI,+BAA+B,CAAE,SACzD,UAAK,YAAY,GAAI,oBACrB,mBAAK,YAAY,GAAI,+BAA+B,CAAE,SAEtD,UAAQ,YAAY,GAAI,oCACxB,yBAAK,YAAY,GAAI,oCAErB,yBAAK,YAAY,GAAI,yBAAyB,CAAE,SAChD,WAAK,YAAY,GAAI,yBAAyB,CAAE,SAChD,WAAK,YAAY,GAAI,6BAA6B,CAAE,SACpD,WAAK,YAAY,GAAI,eAGrB,sBAAK,GAAI,wCAAwC,CAAE,SAGnD,WAAO,SAAS,IAAK,eAAgB,cAAiB,EACtD,eAAO,SAAS,IAAK,eAAgB,cAAiB,EAGtD,eAAO,SAAS,IAAK,aAAc,cAAmB,EACtD,cAAO,SAAS,IAAK,cAAe,cAAmB,EACvD,sBApFD,yBAIC,OAAO,GACP,qCANmB,+lBC1BrB,CA4BS,YACR,IAAM,GAAe,CAAC,KAAK,UAAwC,IAA3B,OAAK,SAAU,GAAI,MAE3D,IAF2E,OAAK,SAAU,GAAI,YAEvF,MAAK,SAAW,EAAe,EACtC,I,kDAlCD,mEASqB,cAQA,eAAW,QAG9B,kEAFO,KAAM,EAKb,aAAK,gBAAkB,EACvB,aAPD,QAYD,mBApBqB,kpBCLrB,mSAJA,gBACA,cACA,kBAOqB,cAMP,aAAS,QAGrB,kEAQA,aAAK,IAGL,cAAK,SAAU,EAAO,SAAU,cAAe,UAC9C,GACA,iBACA,cAHD,GAIA,CAED,YApBA,0CA+B2B,2DAC1B,MAAM,EAAW,KAAK,OAEtB,WAAS,eAAgB,UACxB,IAAM,GAAQ,EAAQ,OAAS,EAC/B,QAAM,EAAS,CAAE,EAAQ,WAAa,EAAS,WAAY,oBAF7B,eAI9B,WAAqB,gDAAS,SACxB,MAAC,EAAM,GACX,gBAAM,OAAQ,EAEf,qBAR6B,oEAS9B,CACD,EAED,uCAIC,IAAM,GAAQ,cAAO,KAAK,OAAO,SAAS,UAE1C,0BAAK,MAAQ,CAAC,CAAC,GAAS,EAAM,GAC9B,YAED,wCAIC,IAAM,GAAQ,cAAO,KAAK,OAAO,SAAS,UAE1C,2BAAO,CAAC,CAAC,GAAS,KAAK,OAAO,SAAS,OAAO,MAC7C,MACA,mBAAQ,UAAS,aAElB,iCAvEmB,kpBCFrB,mSAPA,eAEA,gBACA,gBACA,gBACA,mBAeqB,wKAEnB,OAAO,iCACP,qCAHmB,kpBChBrB,mSAJA,eACA,gBACA,mBAOqB,iKASnB,IAAM,GAAS,KACf,OAAM,EAAc,EAAO,QAE3B,OAAY,cAEZ,WAAO,SAAS,IAAK,gBAAiB,cAAmB,EACzD,cAAO,SAAS,IAAK,SAAU,cAAmB,EAElD,kBAAK,SAAU,EAAa,SAAiB,aAC5C,GAAO,QAA2B,SAAlB,IAAK,UAAyB,gBAAkB,SAAU,CAAE,KAAM,EAClF,SACA,gBACD,YApBD,2BAIC,OACA,4CANmB,kpBCJrB,mSALA,gBACA,eACA,gBACA,mBAQqB,cAQC,eAAY,QAGhC,kEAOA,aAAK,UASL,IAAK,QAAU,cAAkB,EAAO,SAAU,EAAO,OAAO,IAAK,oBACrE,CAED,YAtBA,0CA8B2B,kEAC1B,MAAM,EAAM,KAAK,OACjB,SAAM,EAAiB,KAAK,OAE5B,OAAI,eAAgB,UACnB,GAAK,QAEL,UAAM,GAAY,UAAU,oBAAqB,EAGjD,cAAK,EACJ,eAAe,gBAAiB,EAAW,CAAE,UAAW,EAAK,UAAW,KAAM,EAI/E,QAAK,EAIL,gBAAI,GAEJ,IAAU,gBAAgB,uBAAuB,QAAS,WACzD,IAAe,cACd,EAAM,UAAW,CAAoB,oBAAwB,oBAE9D,aAED,KAAe,cAAe,EAAW,EAAK,QAAQ,MAAO,CAC7D,aAAK,QAAQ,MAEb,KAAI,UAAU,UAAW,EAAU,YAAa,EAEhD,cAAK,QACL,SACD,+BAxEmB,kpBCPrB,mSAJA,gBACA,gBACA,WAOqB,cACP,aAAW,0EAGvB,aAAS,GAAI,UAAkB,aAC9B,IAEA,SAAK,EAAK,SAAW,WACpB,SAAW,UACX,YAAW,KACX,gBAAM,IAAK,EAAK,SAAW,WAC3B,YAAW,UACX,aAAW,KAEX,gBAGD,UAAW,KAAO,EAAK,OAAS,OAAS,EAEzC,OAAS,KAAM,SAAU,cAAkB,EAAU,EAAK,SAC1D,GAhBD,GAiBA,CAED,YAtBA,uCAyBY,WAGb,mBA7BqB,kpBCArB,CAwQ0B,aAEzB,SAAK,EAIL,SAAO,EAAa,SAAU,EAC9B,QAGD,CACsC,eACrC,OAAK,yBAAgC,eACpC,QAAO,EAAS,OAAS,EAEzB,KAAO,IAER,C,mSAlSD,eACA,cACA,eACA,eACA,gBACA,gBACA,OACA,oBAOqB,0IAQpB,uBAGO,OACN,KAAM,EAAS,KACf,OAAM,GAAc,EAAO,QAC3B,KAAM,GAAe,cAAkB,EAAQ,EAAO,OAAO,IAAK,oBAIlE,MAAO,SAAS,IAAK,QAErB,SAAK,SAAU,GAAa,UAAkB,eAC7C,GAAK,eAAgB,GAAM,GAC3B,OAFD,EAEG,CAAE,SAEL,gBAAK,SAAU,GAAa,YAA+B,kBAC1D,GAAK,iBAAkB,GACvB,GACD,EAED,+BAgByB,aAAS,QACjC,KAAM,GAAM,KAAK,OAEjB,SAAK,EAAiB,IAAa,GAAI,UAIvC,gBAEA,UAAI,eAAgB,UACnB,IAAK,OAAO,KAAK,cAAe,GAAI,UAAW,EAC/C,MAED,KACA,SAED,iCAO6B,aAC5B,IAAI,GAAiB,KAAK,QAAS,OAAQ,EAC3C,YArED,2BAIC,OACA,wBAmEF,mBAzEqB,EAyPrB,IAAM,GA3KA,aAML,CAAa,aAAS,QAOrB,QAAK,OAQL,OAAK,QAAU,KAAK,OACpB,OAED,iCAOmB,aAAgB,sBAClC,YAAwB,oDAAY,WAEnC,WAAK,oBAAqB,GAC1B,QAAK,yBACL,aALiC,2EAMlC,qCAE8B,aAC9B,IAaA,MAbK,IAAS,UAyBR,GAZA,GAAU,EAAS,QAAQ,QAAS,UAE1C,KAAM,GAAU,EAAS,QAAQ,QAAS,UAE1C,KAAM,GAAa,cAAM,GAGzB,GAAI,GAEJ,KAAI,GAGJ,KAAU,GAAI,KAAG,GAAI,GAAW,OACzB,QAAS,GAEf,IACC,OADI,UAC8B,IAAlB,KAAyB,GACzC,MAKF,QAIM,GAJF,IAEJ,EAAI,GAEJ,EAAU,GAAI,GAAe,IAAK,GAEjC,KACC,QADI,KAAY,KAKjB,KACC,QADI,KAAY,KAMlB,QAAI,IAEJ,KACC,OAAsB,KAAK,QAAQ,OAAO,aAAc,EAIzD,qBAAM,IAAU,cAAkB,EAAS,KAC3C,IAAM,GAAW,KAAK,QAAQ,OAAO,gBACrC,IAAM,GAAc,UAAW,2BAA4B,GAC3D,IAAM,GAAa,EAAQ,OAAQ,GAEnC,SAAK,OAAO,QAAS,QACpB,MACA,SACA,eAED,8CAEyB,WACzB,IAKA,UALK,IAAS,MAUd,CALK,IAAS,YAAY,OAAS,EAAS,YAAY,WAKlD,GAAa,cAAM,EAAS,YAAa,EAAS,YACxD,GAAM,EAAU,cAAe,EAAY,EAG3C,kBAIA,CAJK,GAAQ,YAIP,IAAS,EAGf,GAAK,GAAG,GAAO,OAAQ,eAIvB,YAAM,IAAU,cAAkB,EAAS,KAAM,GACjD,OAAM,GAAW,KAAK,QAAQ,OAAO,gBACrC,IAAM,GAAe,GAAO,OAAQ,GAEpC,UAAK,OAAO,QAAS,QAKpB,MAAM,GAAa,QAAS,UAC5B,WAAO,cAER,cAGF,IAAM,EAAe,CACpB,cAAS,WACT,cAAS,cACT,cAAS,aACT,cAAS,aACL,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GAIL,KACU,EAAO,IAAa,GAAR,IACrB,MAAa,KAQd,mpBC7QA,iiBAHA,cACA,mBAOqB,cAQC,eAAe,QAGnC,kEAOA,aAAK,QAAU,cAAkB,EAAO,SAAU,GAClD,CAED,YAbA,uCAiBC,kFAEA,WAAK,QACL,eAAK,QACL,IAED,QASA,6BAa2B,kEAC1B,MAAM,EAAM,KAAK,OACjB,SAAM,EAAO,EAAQ,MACrB,GAAM,EAAiB,EACvB,OAAM,EAAQ,EAAQ,OAAS,EAAI,UACnC,gBAAM,EAAc,EAEpB,cAAI,eAAgB,UACnB,IAAM,GAAmB,EAEzB,cAAK,QAEA,OACJ,KAAK,QAAQ,MAAM,OAGpB,KAAK,QAAQ,MAAM,WAAY,EAAM,MAErC,GACC,IAAK,OAAO,KAAK,MAAM,UAAU,UAAW,CACtC,IAEN,KAAK,OAAO,KAAK,MAAM,UAAU,SAAU,EAAM,MAAM,aAGxD,MAAK,QAEL,WAAK,QAAQ,MACb,EACD,iCA7CA,OAAO,MACP,oCAtCmB,kpBCJrB,mSAJA,eACA,gBACA,mBAOqB,wKAEnB,OAAO,aACP,QAED,mCAIC,OACA,4CAVmB,mFCGG,mBAAoD,mCAC3E,WAAQ,SAAU,SAAU,UAAa,aAAsB,SAC9D,QAAK,GAAW,WAAS,KACxB,KAED,GACD,EAlBD,EAEA,QAEA,+HCFA,mSAFA,kEAUqB,YAOpB,CAAa,aAAS,QAOrB,QAAK,OAQL,OAAK,YAAc,GACnB,IAED,8BASW,aACV,IAAK,KAAK,YAAY,IAOrB,QAAM,eACL,kFAAmF,CAAE,KAIvF,SAAK,YAAY,IAAK,EACtB,EAED,uBAMQ,WACP,IAAM,GAAY,KAAK,YAAY,IAEnC,MAAK,CAOJ,OAAM,eACL,+EAAgF,CAAE,KAIpF,UAAO,GAAW,KAAK,OACvB,2BAxEmB,kFCNrB,oDAQwB,QAAuB,aAC9C,IAAM,GAAa,cACnB,KAAW,KAAM,QAAS,OAAQ,YAAa,WAAY,YAAa,WAAY,GAEpF,MAAM,GAAY,cAElB,SAAO,eAAkB,EAAQ,EACjC,EAvBD,EAIA,gBACA,gBACA,mqBCCA,kDAHA,eACA,iBAOqB,cAIP,aAAS,0EAGrB,IAAM,EAAO,EAQb,sBAAK,IAQL,kBAAK,SAAW,EAEhB,qBAAK,SAAW,cACf,KAEA,iBACC,OAAO,CACN,WACA,qBACA,EAAK,GAAI,YAIX,yCAAU,EAAK,WAEhB,aAlCD,2BAJoB,kpBCHrB,iiBALA,aACA,cACA,eACA,kBAOqB,cAIa,iBAAY,QAK5C,kEACA,qBAAS,OAAQ,EAAW,SAC3B,YACC,CAYF,mCAAK,WAQL,IAAK,UASL,IAAK,IAQL,eAAK,aAAe,MAQpB,UAAK,WAAa,MAElB,UAAK,SAAW,cACf,KAEA,iBACC,CAKD,gCAAU,CACT,EAMF,OAAK,SAAU,EAAY,UAAW,UACrC,GAAK,OAAS,CAAC,EACf,MAGD,KAAU,KAAM,aAAc,KAuB9B,UAMA,CAED,YA3GA,oCA8GO,OAEN,UAAK,WAAW,SAAU,KAG1B,cAAK,aAAa,IAAK,KAEvB,YAAM,GAAwB,aAC7B,CAAK,EACJ,WAAK,WACL,UACA,UAED,IAGD,cAAK,WAAW,IAAK,YAAqB,aACpC,CAAC,EACL,WACA,UAED,IAGD,QAAK,WAAW,IAAK,aAAsB,aAC1C,CAAK,EACJ,QAED,GAGD,QAAK,WAAW,IAAK,YACrB,QAAK,WAAW,IAAK,MAErB,iFACA,KAED,gCAIC,MAAK,WACL,oCA5JmB,0MCJrB,CAkEsC,aAGrC,GAAa,SAAU,SAAU,QAAW,aAAuC,SAElF,OAAK,EAAa,SAA2B,GAAC,EAAa,QAAQ,SAClE,OAED,UACD,E,oDAnEuB,QAA2B,aAClD,IAAM,GAAe,cAAgB,EAErC,GAAM,EAAW,EAAa,SAAW,cAEzC,YAAS,MAAM,OAAQ,EAAM,OAAQ,MAAO,WAC3C,IAAM,GAAO,cAGb,YAAK,eAAS,OAAO,KAAM,KAAc,GAEzC,GACA,CAGD,KAAS,MAAM,SAAU,WAAY,GAErC,KAAa,UAAU,SAAS,IAEhC,KAAa,GAAI,gBAA8B,eAC9C,CACC,IAEA,KAAa,cAEd,SAGD,KAAa,GAAI,UAAW,UAC3B,GACA,SAID,KAAa,WAAW,IAAK,YAAqB,aACjD,CAAK,EACJ,WACA,QAED,IAID,KAAa,WAAW,IAAK,UAAmB,aAC/C,CAAK,EACJ,WACA,YAED,IAED,GACA,CAMD,EArEA,iBACA,gBACA,mqBCDA,iiBAHA,aACA,iBAOqB,cAQC,eAAkB,0EAGtC,IAAM,EAAO,EAEb,mBACC,OAAK,QAAU,EAAK,gBAGrB,KAAK,SAAW,cACf,KACA,iBACC,OAAO,CACN,EAAK,GAAI,YAAa,kBAAS,GAAQ,aAAe,YAAtD,GAGD,uCAAiB,EAAK,GAAI,aAAc,kBAAS,CAAC,CAUpD,QAAK,IAQL,mBAAK,IAQL,kBAAK,gBAEL,EAMA,CAED,YApDA,oCA2DC,OAAK,MACJ,qBAAK,SAAS,MAAO,KAErB,sBAAK,gBAAkB,KAGxB,sFACA,KAED,kCAIC,OAAK,MACJ,sBAAK,SAAS,OAAQ,KAGvB,kGACA,kCArFmB,kpBCLrB,kDAHA,iBACA,iBAOqB,cASC,eAAkB,0EAC/B,EAEP,IAAM,EAAO,EACb,aAAM,EAAI,EAQV,IAAK,IAAK,OAEJ,uBAIG,OAAQ,EAAK,SACrB,YACC,MACA,uBAAc,EAAK,GACnB,OARe,WAChB,OAAO,GAAG,uBAAwB,CAClC,GAED,SAIS,gCAGT,aAzBD,2BAToB,kpBCJrB,kDAJA,iBACA,eACA,iBAQqB,cAMP,aAAS,0EAGrB,IAAM,EAAI,EACV,EAAM,EAAe,KAQrB,oBAAK,IAAK,QAQV,QAAK,IAAK,SASV,QAAK,IAAM,EASX,qBAAK,KAAO,EAEZ,qBAAK,SAAW,cACf,KAEA,iBACC,CAKA,yDACA,kBACA,WAAM,EACN,iDAGD,YAAU,CAER,KACA,kBACC,8BACA,QAED,4BAEC,GAAG,sBAIJ,KACA,iBACC,OACA,mCAED,yBAAU,EAAK,KAGf,KACA,iBACC,OACA,uBAED,yBAAU,EAAK,SAIlB,aArFD,2BANoB,kpBCLrB,iiBAHA,aACA,iBAOqB,cAMP,aAAS,QAGrB,kEAOA,aAAK,KAAO,EAEZ,mBAMA,CAED,YApBA,oCAuBO,OACN,WAAO,SAAQ,UACb,KAAM,iBAAM,GAAK,uBADZ,GAEL,KAAM,+FACR,EAED,kCAIC,aAAK,yBAEL,0FACA,KAED,gDAMC,IAAM,GAAc,KAAK,yBAA2B,cACnD,KACA,iBACC,CAMD,gEAAU,KAAK,OAGhB,kBAAS,KAAK,YACd,+BA/DmB,kpBCLrB,kDAHA,eACA,iBAOqB,0BAIN,qEAGb,OAAM,EAAO,EAQb,sBAAK,IAUL,aAAK,IAAK,UAEV,eAAK,SAAW,cACf,KACA,SACA,wCACC,OACA,kBAAS,EAAK,GAMhB,gBAAK,GAAI,iBAA+B,eACvC,QAAM,GAAM,GAAI,aACd,gBAAiB,EAAM,OAAQ,iBAGjC,WACC,CADO,GAAI,WAAW,UACjB,QAAQ,YAAa,EAAI,WAE/B,GARD,GASA,aA3CD,2BAJoB,kpBCPrB,kDAHA,eACA,iBAOqB,cAIP,aAAS,QAGrB,kEAMA,MAAK,IAQL,UAAK,IAEL,UAAM,GAAO,EAEb,sBAAK,SAAW,cACf,KACA,mBACC,CAGA,uBAAK,EAAK,GAEX,iBAAU,CAER,MAAM,EAAK,GAAI,YAIlB,aAnCD,2BAJoB,kpBCLrB,mSAHA,eACA,iBAOqB,0BAIN,QAGb,6DAOA,SAAK,IAAK,WAAY,CAEtB,MAAM,GAAO,EAEb,sBAAK,SAAW,cACf,KAEA,gBACC,OAAO,CACN,gBACA,EAAK,GAAI,SACT,EAAK,GAAI,WAEV,+BAAO,EAAK,GACZ,kBAAU,EAAK,GAGhB,sBAAU,CAER,MAAM,EAAK,GAIb,cACC,OAAO,EAAK,GAgCd,cAKA,CAED,YAzEA,qCA6EC,MAAK,QACL,oCAlFmB,kpBCFrB,iiBANA,aACA,cACA,eACA,gBACA,kBAOqB,0BAIN,QAGb,6DAMA,gBAAK,MAAQ,EAQb,qBAAK,aAAe,MAQpB,UAAK,WAAa,MASlB,UAAK,aAAe,cACnB,YAAY,EACZ,mBAAc,EACd,8BAAkB,EAClB,mBAEC,eAGA,oBAIF,iBAAK,SAAW,cACf,KAEA,gBACC,CAMD,uCAAU,EAGX,UAAK,MAAM,GAAI,MAAc,aAC5B,GAAK,aAAa,IAAK,EACvB,QAED,KAAK,MAAM,GAAI,SAAiB,aAC/B,GAAK,aAAa,OAAQ,EAC1B,QAFD,GAGA,CAED,YArEA,oCA0EC,aAAK,WAAW,SAAU,KAE1B,uFACA,KAED,gCAIC,MAAK,aACL,YAED,oCAIC,MAAK,aACL,wCA/FmB,gLCPrB,kDAJA,gBACA,cACA,kBAQC,EAMyB,eAAa,QAErC,GACC,iBAAQ,KAIT,GACC,QAAK,IAEN,E,YAjBmB,EAoBrB,cAAK,I,ypBCzBL,iiBAJA,aACA,gBACA,iBAkBqB,0IAQpB,uBAUC,aAAK,KAAO,MASZ,aAAK,OAAS,GAGd,UAAK,OAAO,GAAG,aAAa,IAAK,KAAK,KAGtC,SAAO,KAAK,OAAO,GAAG,KAAK,KAAK,IAAK,KACrC,KAED,QAYA,gBAMS,WACR,OAAO,MAAK,OAAO,IACnB,EAED,oBASK,WACJ,IAAK,KAAK,QAAS,EAMlB,WAAM,eAIP,4FAAK,MAEJ,kBAAK,KAAK,QAAQ,OAAQ,KAI3B,kBAAK,OAAO,IAAK,EAAK,KAEtB,GAAO,KAAK,MACZ,EAED,uBAQQ,WACP,IAAK,CAAC,KAAK,QAMV,QAAM,eAIP,iGAAI,GAAU,QAGd,aAAK,KAAK,cAAgB,EAEzB,MAAK,KAAK,QAAQ,OAGlB,QAAK,OAAO,OAGZ,MAAM,GAAO,MAAM,KAAM,KAAK,OAAO,UAGrC,MAEC,IAAU,KAAK,MAGf,QAAK,KAEN,MAEA,WAAK,OAAO,OAGb,SACA,EAED,+BAMgB,WACf,CACC,SAAK,OAAO,SAAS,OAAO,MAAM,SAGnC,QAAK,KAAK,SAAU,KACpB,sBAED,iCASyC,0DACxC,cAAK,KAAK,UAEV,EAAO,KAAK,KAAK,QAAQ,IAAK,GAAO,KAAM,UAC1C,GAAK,KAAK,IAAK,EACf,sBACD,EAED,8CAQC,OAAO,MAAK,OAAO,SAAS,OAAO,MACnC,QAED,kCAIC,MAAK,OAAO,GAAG,KAAK,KAAK,OAAQ,KACjC,WAAK,KACL,eAAK,OACL,yFACA,yCAhJA,IAAM,GAAO,KAAK,OAAO,IAAK,KAAK,KAAK,QAAQ,IAEhD,UAAO,GAAO,EAAK,KACnB,cA7CD,2BAIC,OACA,mDANmB,iFCPG,mBAKpB,sEAGH,UAAmB,IAAK,EAGxB,WAAuB,IAAK,UAAmB,aAC9C,CAAK,EAAmB,WAAa,CAAC,EAAQ,aAC7C,cACA,QAED,IAGD,KAAQ,WAAW,IAAK,MAAe,aACtC,CAAK,EAAQ,aACZ,cACA,QAED,IACD,E,kpBCjCD,iiBALA,cACA,cACA,gBACA,mBAEM,EAAO,cAEb,MAKqB,cAIP,aAAS,0EAGrB,IAAM,EAAO,EAUb,sBAAK,IASL,iBAAK,IAaL,iBAAK,IAAK,iBAYV,QAAK,IAAK,gBAUV,MAAK,IAAK,cAWV,QAAK,IAiBL,sCAAS,OAAQ,EAAK,SACrB,YACC,OAEC,GAAK,GAAI,WAAY,qBACrB,EAAK,GAAI,wBAEV,yCACC,OAAO,EAAK,GAAI,WAAY,WAC3B,OAAO,GAAW,EAAM,EAAK,oBAAoB,wBAAwB,OACzE,IAED,UAAQ,EAAK,GAAI,wBAAyB,WACzC,OAAO,GAAwB,EAAM,EAAK,eAC1C,IAED,cAAY,EAAK,GAYpB,qBAAK,oBAAsB,cAC1B,KACA,iBACC,CAGA,wCACC,SAAS,EAAK,GAAI,WAAY,kBAAY,GAAW,QAAU,MAC/D,UAAQ,EAAK,GAAI,WAAY,WAC5B,OAAO,GAAW,EAAM,EAAK,aAAa,QAC1C,IAFO,OAKP,SACJ,CAED,YAjIA,oCAoIO,OACN,mFAEA,WAAK,QAAQ,WAAW,aAAc,KAAK,oBAAqB,KAGhE,cAAK,SAAU,UAAO,OAAQ,SAAU,UACvC,GACA,wBAGD,QAAK,SAAU,KAAM,kBAAmB,UACvC,GACA,wBACD,EAED,kCAGU,OACT,WAAO,wFAAgB,KAAM,UAC5B,GAAK,oBACL,QACD,EAED,iDAOC,IAAM,GAAc,KAAK,aAAe,KAAK,eAC7C,wBAAM,EAAc,KAAK,aAAe,KAAK,QAG7C,6BAAK,SAAW,KAEf,UAKA,IALY,UAKP,aAAa,OAAS,KAAK,cAAgB,EAIjD,OAAK,KACJ,eAAK,sBAAwB,EAAY,OAAS,EAAY,OAAS,KACvE,mBAAK,YAAc,KAAK,sBAAwB,KAAO,EAAM,CAAC,UAAO,OAIrE,gBACA,8BAAK,YAEN,kCAhMmB,kpBCTrB,kDAHA,eACA,iBAOqB,cAIP,aAAS,0EAGrB,aAAK,SAAW,cACf,KACA,kBACC,CACC,mCAIH,aAXD,2BAJoB,kpBCLrB,mSAHA,iBACA,mBAaqB,0IACpB,6BAQa,OACZ,KAAM,EAAO,KAAK,OAIlB,WAAK,OAAO,SAAS,eAAgB,UACpC,IAAM,GAAY,EAAK,MAAM,OAAQ,EAAK,MAAM,OAAO,OACvD,GAAM,EAAkB,EAAU,YAAc,EAAU,WAM1D,OAAM,EAAS,MAAM,KAAM,EAAK,OAAO,SAAS,QAAQ,UAAW,IAAoB,OAAQ,WAC9F,OAAO,CAAC,EAAK,gBAAgB,IAAK,EAClC,MAED,KAAK,kBAAmB,EAAK,UAAU,OAAQ,EAAK,UAAU,WAC9D,KAAK,MAAO,EACZ,MAED,QACA,cAED,sBAOO,WACN,IAAM,GAAW,KAAK,OAGtB,SAAM,EAAe,EACrB,aAAK,gBAAgB,IAErB,MAAM,GAAe,EAAY,OACjC,UAGA,aAXoB,gBAYpB,WAA2B,mDAAe,SAKzC,MAAM,EAAkB,EAAY,YAAc,EAAY,WAG9D,OAAI,EAAgB,CAAE,EAItB,eAZyC,sBAazC,WAA4B,EAAS,QAAQ,UAAW,iDAAoB,SACtE,MAAC,KAAK,gBAAgB,IAAK,EAC/B,WAAgB,UAAe,mBAAoB,EAAe,CAAkB,OAItF,kBAnByC,mGAoBzC,YAAqB,2DAAgB,OAEpC,SAAM,YAAc,EAGpB,UAAa,SAEb,OAPoC,0BAQpC,YAAyB,GAAM,8DAAa,YAC3C,QAAS,eACT,aAVmC,4EAWpC,CA/BwC,uFAgCzC,CA5CmB,gFA6CpB,8BArFmB,kpBCPrB,mSAPA,eACA,gBACA,eAEA,gBACA,mBAmHqB,0IAepB,uBAIC,IAAM,GAAS,KACf,OAAM,EAAI,EAEV,OAAK,WAAY,OAAQ,EAAG,QAAU,WACtC,cAAK,WAAY,OAAQ,EAAG,QAAU,WAEtC,WAAO,WAAW,IAAK,SACvB,UAAO,WAAW,IAAK,SACvB,UAAO,WAAW,IAAK,eACvB,OAED,2BASoC,iBAAO,OAC1C,KAAM,EAAS,KACf,OAAM,EAAU,EAAO,SAAS,IAEhC,KAAO,GAAG,iBAAiB,IAAK,EAAM,WACrC,IAAM,GAAO,cAEb,YAAK,IACJ,OACA,OACA,YACA,EAGD,eAAK,KAAM,aAAc,GAAI,EAE7B,eAAK,SAAU,EAAM,UAAW,iBAAM,GAAO,QAAS,EAEtD,GACA,CACD,YA1DD,yBAIC,OAAO,GACP,QAED,mCAIC,OACA,wCAbmB,kpBCrHrB,mSAHA,iBACA,mBAYqB,0IACpB,6BAS2B,qEAE1B,KAAM,EAAa,EAAQ,KAAK,OAAO,UAAW,kBAAK,GAAE,OAAS,CAAvC,GAAiD,KAAK,OAAO,OAExF,EAAM,EAAO,KAAK,OAAO,OAAQ,EAAY,GAI7C,QAAK,OAAO,SAAS,eAAgB,UACpC,IAAM,GAAe,EAAK,MAAO,EAEjC,OAAM,EAAS,EAAK,OAAO,SAAS,QAAQ,UAAW,EAAK,MAC5D,eAAK,kBAAmB,EAAK,UAAU,OAAQ,EAAK,UAAU,WAE9D,KAAK,KAAM,SAAU,EAAK,MAC1B,EAED,QACA,cAED,6CAQ8B,WAC7B,KAAM,GAAI,GAAI,EAAG,EAAI,KAAK,OAAO,OAChC,OAAK,KAAK,OAAQ,GAAI,MAAM,aAC3B,QAIF,SACA,KAED,sBAOO,WACN,IAAM,GAAW,KAAK,OAGtB,SAAM,EAAe,EACrB,aAAK,gBAAgB,IAErB,MAAM,GAAU,EAChB,QAAM,EAAe,EAAY,OACjC,UAGA,aAZoB,gBAapB,WAA2B,mDAAe,SAIzC,MAAM,EAAc,EACpB,YAAM,EAAkB,EAAc,EAAY,WAKlD,OAAM,EAAqB,EAAQ,SAInC,MAKA,IALK,QAML,aAAoB,MApBqB,sBAsBzC,YAAqB,oDAAqB,WACzC,QAAc,KAAM,GAGrB,wBA1ByC,uEA2BzC,IAIA,OA/ByC,yBAgCzC,YAA4B,EAAQ,UAAW,yDAAoB,WAIlE,MAAM,GAAY,KAAK,6BAA8B,GAKrD,aACC,IADI,aACC,OAAQ,IAAY,UAAU,OAAS,8BAC3C,KAAK,OAAQ,IAAY,UAAU,OAKrC,OAAM,IAAU,UAAe,mBAAoB,EAAe,CAElE,UAAgB,GAChB,WAAM,IAAsB,GAGvB,QAAC,GAAsB,GAC3B,kBAAsB,GAGvB,oBAAM,IAAsB,GAAsB,GAAa,aAAc,OAC7E,OAAsB,GAAa,aACnC,EAED,WA9DyC,0GA+DzC,YAAqB,2DAAgB,OAEpC,SAAM,YAAc,EAGpB,UAAa,SAEb,OAPoC,0BAQpC,YAAyB,GAAM,8DAAa,YAC3C,QAAS,eACT,aAVmC,4EAWpC,CAED,WA5EyC,4EA6EzC,GAAQ,YAIR,MAjFyC,0BAkFzC,YAAqB,qDAAgB,YACpC,QAAQ,YAAa,GAGtB,sBAtFyC,4EAuFzC,KAAM,GAAM,MACX,MAAqB,aAAQ,GAAsB,GAEpD,KAvGmB,gFAyGpB,OACA,YAGF,mBApKqB,kpBCTrB,mSAJA,eACA,gBACA,mBAUqB,cAIP,aAAS,QAmBrB,kEAMA,aAAK,eAAiB,GAAI,SAC1B,CAED,YA5BA,oCA+BO,OAEN,UAAK,aAAe,cAAiB,KACrC,aAAK,aAAe,cAAiB,KAGrC,aAAK,OAAO,SAAS,IAAK,OAAQ,KAClC,mBAAK,OAAO,SAAS,IAAK,OAAQ,KAElC,mBAAK,SAAU,KAAK,OAAO,SAAU,SAAgC,iBAEpE,CAAK,EAAK,eAAe,IAAK,IAG7B,aAHwC,IAAM,OAGzC,EAAK,aAAa,gBAAgB,IAEtC,KAAK,aAAa,SACZ,GAAK,CAAC,EAAK,aAAa,gBAAgB,IAG9C,OAAK,aAAa,SAClB,KAAK,aAKP,gBAAK,eAAe,IACpB,GAlBD,EAkBG,CAAE,SAEL,iBAAK,SAAU,KAAK,aAAc,SAA8B,eAC/D,GAAK,aAAa,SAClB,EACD,+BAnEmB,6HCVrB,mSAFA,mEAKqB,YAOpB,CAA6B,eAAwB,QAOpD,QAGA,WACC,QAAK,OAIN,GACC,QAAK,mBAAoB,KAAK,QAE/B,EAED,8BAqCW,aACV,MAAK,aAAc,KAAK,QAAS,EACjC,EAED,uBAWc,aAGb,MAAK,aAAc,KAAK,QAAS,EACjC,KAED,oBAYK,WACJ,OAAO,MAAK,eAAgB,KAAK,QACjC,EAED,6BAU4B,eAA0B,4DAErD,MAAK,cACJ,GAMD,iBANM,mBAAoB,EAAQ,EAEjC,MAIK,GAAQ,EAAK,MAGnB,OAAO,EAEP,SAdqD,gBAerD,WAAoB,gDAAQ,SAEtB,MAAC,cAAe,EACpB,QAID,SAAS,EAGV,WAzBqD,oEA0BrD,OAAK,cAEC,IAAC,cAAe,EACpB,QAGD,SAAS,EAGT,aAAK,mBAAoB,EAAQ,EAMlC,SAAK,GAIL,WAJiB,QAAO,GAAQ,OAIxB,GACR,GAED,+BAQwB,aAEvB,IAAM,GAAQ,EAAK,MAGnB,OAAO,EAEP,SAP8B,gBAQ9B,WAAoB,qDAAQ,QAC3B,MAAK,CAAC,cAAe,EAAQ,IAC5B,GACA,KACA,KAGD,GAAS,EACT,EAED,UAlB8B,oEAmB9B,OAAO,GAAS,EAChB,SAED,mCAQ2C,eAAW,OACrD,YAAO,KAAM,GAAgB,QAAS,WACrC,GAAK,aAAc,EAAQ,EAAK,EAAe,GAC/C,EACD,sBAzMmB,iFCkBG,QAAqB,aAC5C,CA0CS,YACR,CACC,MAAQ,KACR,KAED,KAED,CAA2B,aAC1B,OAAO,IAAiB,EAAc,MACtC,CACD,IAnDA,MAAI,EACJ,EAEA,WAAK,QAAS,WACb,CACC,OADI,KAGJ,IACM,KACN,QADW,KACN,EACJ,YAAc,OAAO,KAAM,EAE3B,KAEA,MACC,MACA,eACA,SAAQ,CAAE,EAIZ,MAEA,KAAK,EACJ,YAEA,WAEA,MACC,MACA,eACA,UAIH,GAED,GAEA,IAEA,C,mFCzDuB,QAA0B,aACjD,QAAM,GAAa,cACnB,GAAM,EAAa,cAEnB,GAAI,EAGJ,EAAQ,EAAY,IAAO,EAAY,IAAO,EAC7C,IAGD,UAAa,EAAN,IAAU,KAAO,EAAY,EACpC,EAzBD,EAIA,+DAEA,oFCMwB,QAAoB,WAC3C,OAAK,aACJ,qBAAO,EAGR,MAAO,EACP,S,mFCNuB,QAAuB,WAC9C,MAAQ,GAA4C,MAAjC,IAAQ,QAAQ,eAClC,IACC,QADI,YAAO,OAAO,iBAAkB,GAAU,eAI/C,KAAU,EACV,aAED,OACA,KAtBD,EAIA,8DAEA,oFCIwB,QAAS,WAChC,QAAI,GAEJ,EAAQ,EACP,mBAAO,EACP,gBAGD,UACA,E,iFCRuB,QAAgC,eACvD,GAAc,aAAc,EAAc,EAAc,WAAY,IACpE,K,kFCLD,CAoI4C,iBAAc,OAC7B,EAAU,EAAY,GAA1C,SAAM,QAAK,IAEnB,WAAO,CAAE,EAAM,EAAY,QAAQ,OAAQ,EAC3C,GAYD,CAC2E,qBAC1E,IAAI,GACJ,EAAI,EACJ,EAIM,EAAkB,EAExB,UALA,EAGA,WAEU,KAAM,WAAY,CA+ClB,YACR,GACA,IACA,IACA,IACA,CAID,OAvDuC,EAAa,EAAU,EAAY,SAD/C,GACnB,IADmB,GACL,IACtB,GACA,EAEA,KACC,KAAK,EAEJ,IAAM,GAA+B,EAAY,gBAEjD,KAGC,EAAuB,EAA6B,oBAEpD,GAED,CACA,QAAuB,EAAY,oBAIrC,SACC,OAAwB,EAAa,oBAItC,IAAK,GAAgB,CACpB,EAAK,EACJ,GAIG,IAAK,CAAC,GACV,EAAK,EACJ,GAKD,IAAK,EAAwB,GAA4B,GACxD,EACM,IAAK,GAAyB,GAA4B,EAChE,GAIF,IASO,IACP,CAED,GAAO,EAAmB,CAAE,EAAkB,GAC9C,IAOD,CACS,aAA4C,wBACvB,UAAO,OAA5B,YAAS,IAEjB,cACC,MAAM,EACN,MAAK,EAEN,EAyCD,ydA1RA,MAwEgB,8BAA6E,0DAG5F,cACC,UADI,QAAO,OAIZ,QAAM,GAA4B,cAAuB,EACzD,eAAM,EAAc,cACpB,GAAM,EAAa,cAEnB,GACA,EAGA,KAAK,CAAC,GAAW,CAAC,EAAgB,OACR,EAAa,EAAW,GAAK,EAAY,SAAhE,GAD+B,IACzB,GADyB,IAEjC,EAFD,KAGC,IAAM,GAAc,GAAW,cAAU,GACzC,aAAM,EAAe,GAAiB,UAAK,oBAG1C,EAAiB,EAAW,EAAY,EAAa,EAGrD,MAAa,EAAW,GAAK,EAAY,SAJxC,GAJI,IAIE,GAJF,IASN,EA1B2F,OA4BxE,EAA4B,GAA1C,SAAM,KAEZ,OAAK,EACJ,IAAM,IAAmB,EAA4B,cACrD,IAAM,GAAyB,UAAO,OAAO,iBAM7C,MAAQ,GACR,SAAO,GAOP,OAAQ,EACR,eAAO,EAOP,aAAQ,SAAU,GAAuB,gBACzC,QAAO,SAAU,GAAuB,eACxC,GAED,OAAO,CAAE,KAAF,EAAQ,IAAR,GAAa,KACpB,EAQD,EAvIA,gBACA,gBACA,iMCEA,CA0QmC,eAAS,oBAC3C,WAAiB,gDAAiB,SACjC,QAAM,GAAM,EACZ,WAH0C,oEAI3C,C,mSAlRD,gBACA,gBACA,mBAOqB,YAqBpB,CAAa,aAAS,WAQrB,UAAO,eAAgB,KAAM,UAE5B,OAAO,EAAO,SACd,EACA,YAGD,gBAAK,cACJ,KAAoB,KAAM,EAC1B,6BAAM,KAAK,cAGX,KAkBoB,KA4CrB,WA9DM,EAAO,UACX,IAAM,GAAQ,EAEd,iBAAK,EACJ,SAAoB,KAAM,EAO1B,OAAoB,KAAM,EAAO,eACjC,8BAAK,MAEN,EACA,QAAoB,KAAM,EAG3B,wBA8CF,0CAMC,OAAO,IAAI,GACX,KAED,uBAOW,aACV,aAAK,IACL,OAAK,MAAQ,EAAI,KACjB,WAAK,OAAS,EAAI,KAClB,YAAK,KAEL,EACA,IAED,uBAOW,aACV,aAAK,KACL,OAAK,OACL,OAAK,MACL,OAAK,QAEL,EACA,IAED,gCAMiB,WAChB,IAAM,GACL,KAAU,SAAK,KAAK,IAAK,EACzB,WAAY,SAAK,KAAK,MAAO,EAC7B,cAAa,SAAK,KAAK,OAAQ,EAC/B,aAAW,SAAK,KAAK,KAAM,EAG5B,gBAAK,MAAQ,EAAK,MAAQ,EAC1B,OAAK,OAAS,EAAK,OAAS,EAE5B,IAAkB,CAAb,GAAK,OACT,CADsB,GAAK,OAG3B,KAAO,GAAI,GAEZ,EAED,oCAMqB,WACpB,IAAM,GAAO,KAAK,gBAElB,SACC,GAAO,EAEP,UAED,CAED,kCAMC,OAAO,MAAK,MAAQ,KACpB,MAED,qCAWC,IAAM,GAAS,KACf,QAAI,EAAc,KAGlB,WAAK,GAAU,UAAO,SACrB,YAAI,GAAS,EAAO,YAAc,EAGlC,wBAAQ,GAAU,GAAU,UAAO,SAAS,MAC3C,IAAM,GAAa,GAAI,GACvB,GAAM,EAAmB,EAAY,gBAErC,MACC,EAAK,EAAiB,UAAY,EAEjC,cAID,cAGD,QAAS,EACT,UAGF,OACA,EAED,4CAKyB,OACY,UAAO,OAAnC,eAAY,IAEpB,kBAAO,IAAI,GACV,KACA,QACA,SACA,OACA,QACA,SAED,uBA3PmB,EA8PrB,GAMA,mICxQwB,QAAQ,WAC/B,IAAM,GAAS,EAEf,WACC,KAAO,YAER,E,iFCHuB,QAAsB,aAC7C,CAAK,YACJ,yBAAG,MAGJ,KAAG,UACH,C,2HCdD,uSAIqB,YACpB,aAAc,QAOb,QACA,oBAED,kCAQkB,aACjB,MAAK,kBAAkB,KAAM,CAAE,QAAF,EAAW,WAExC,MAAQ,MAAM,QAEd,OACC,KAAQ,WAAW,aAAc,EAAY,EAE9C,YAED,kCAIC,MAAK,kBAAkB,QAAS,WAA+B,qBAC9D,aAAQ,MAAM,QAEd,GACC,KAED,QAED,QACA,wCA1CmB,8BCuBE,aACtB,OAA0C,CAC1C,CADO,GAAU,QAAS,Y,oDADX,QAzBhB,GAAM,GAAY,UAAU,UAO5B,cAAM,EAOL,KAAK,EAAO,cAKb,6HCdC,kDAPD,sEAMqB,QAKC,eAAO,QAO3B,QAAK,OAQL,OAAK,KAQL,OASA,aAAK,KAAO,KAOZ,gBAAK,IAAM,KACX,U,kFCxDF,kDAJA,gBACA,kBAGI,EAAW,wBAAgB,sBAEhB,kFCAf,CAOc,aACZ,IAAI,GAAQ,CAAC,EACT,EAAS,EAAU,EAAQ,OAE/B,WACA,QAAS,IAAQ,GACf,IAAI,GAAQ,EACZ,QAAK,IAAI,EAAM,GAAI,EACpB,GACF,CAED,kDAxBA,iBACA,gBACA,gBACA,gBACA,mBAqBA,EAAK,UAAU,gBACf,EAAK,UAAU,oBACf,EAAK,UAAU,cACf,EAAK,UAAU,cACf,EAAK,UAAU,wBAEA,kFC3Bf,kDAJA,gBACA,kBAGI,EAAU,wBAAgB,qBAEf,iFCNf,8DAGA,KAAI,EAAU,UAAK,kBAEJ,kFCDf,kDAJA,gBACA,kBAGI,EAAU,wBAAgB,qBAEf,oECNf,aAce,QANW,aAExB,UAAI,IAAI,EAAK,GAAI,EACjB,IACD,qECZD,aAae,QALW,aACxB,UAAI,IACJ,GACD,qECXD,aAqBe,QAZW,aACxB,QAAI,GAAQ,CAAC,EACT,EAAS,EAEb,OAAS,IACP,KAAI,OAAS,EAAM,GAAQ,EAI7B,YACD,sECnBD,aAsBe,QAZW,aACxB,QAAI,GAAQ,CAAC,EACT,EAAS,EAEb,OAAS,IACP,MAAI,EAAU,EAAM,GAAQ,EAC1B,GAGJ,SACD,0FCjBD,kDAHA,iBACA,oBAee,QAJa,aAC1B,OAAO,IAAU,cAAW,EAAQ,cAAK,GAC1C,mFCdD,+DAEA,OAoBe,QAZS,aACtB,QAAI,GAAQ,CACR,EACA,EAAS,EAAM,OACf,EAAS,MAEb,GAAS,IACP,KAAO,GALa,IAAV,GAKc,QAAY,cAAI,EAAQ,EAElD,UACD,sECpBD,aAqBe,QAZmB,eAChC,OAAI,KACF,IACE,eAAS,GAAU,EAAQ,EAE7B,GACE,eAAS,GAAU,EAAQ,EAG/B,IACD,kFCnBD,8DAGA,KAAI,EAAe,OAEnB,SAYe,QAJK,WAClB,OAAO,cAAS,GAAS,EAC1B,uFCZD,kDAHA,gBACA,qBA8Be,QAlBwB,iBACrC,IAAI,GAAS,EAEb,aAAQ,cACR,GACE,CADE,OACM,CAAC,EAAQ,EAAS,EAAK,EAEjC,KAAe,YAAa,EAAM,EAAU,EAAS,cACrD,GACE,CADE,QAGJ,KAAM,EAAQ,EAAM,EAAI,cACxB,GAAO,EACL,KAAM,KAER,QACD,oFC1BD,kDAHA,gBACA,oBAkBe,QAL2B,eACxC,IAAI,GAAS,EACb,SAAO,cAAQ,GAAU,EAAS,cAAU,EAAQ,EACrD,uECjBD,aAYe,QAJY,aACzB,OAAO,KAAO,QACf,sECVD,aAsBe,QAZmC,iBAChD,QAAI,GAAQ,EAAY,EACpB,EAAS,EAEb,OAAS,IACP,MAAI,EAAW,EAAM,GACnB,SAGJ,SAAO,CACR,mFCVG,kDAVJ,iBACA,gBACA,gBACA,gBACA,gBACA,eACA,eACA,mBAMI,EAAU,qBACV,EAAW,iBACX,EAGJ,kBAAI,EAAc,OAGlB,UAAI,EAAiB,EAErB,iBA0De,QA3CyD,qBACtE,IAAI,GAAW,cAAQ,GACnB,GAAW,cAAQ,GACnB,GAAS,EACT,GAEA,EACF,OAAS,cACT,MAAS,IAAU,EAAU,EAE3B,IACF,QAAS,cACT,MAAS,IAAU,EAAU,EAE/B,OAAI,IAAW,IAAU,GAAa,CAAC,cAAa,GAChD,GAAW,IAAU,GAAa,CAAC,cAAa,GAChD,GAAY,IAEhB,MAAI,IAAa,CACf,cAAU,EAAQ,MAClB,SAAQ,GAAY,cAAa,GAC7B,cAAY,EAAQ,EAAO,EAAW,EAAY,EAAS,GAC3D,cAAW,EAAQ,EAAO,GAAQ,EAAW,EAAY,EAE/D,MAAI,EAAY,EAjDlB,GAkDI,IAAI,IAAe,IAAY,EAAe,KAAK,EAAQ,eACvD,GAAe,IAAY,EAAe,KAAK,EAEnD,kBAAI,IAAgB,GAClB,IAAI,IAAe,GAAe,EAAO,QAAU,EAC/C,GAAe,GAAe,EAAM,QAExC,aAAU,EAAQ,MAClB,SAAO,EAAU,GAAc,GAAc,EAAY,EAC1D,EACF,CACG,SAGJ,SAAU,EAAQ,MAClB,SAAO,cAAa,EAAQ,EAAO,EAAW,EAAY,EAC3D,qFC3EG,kDAJJ,iBACA,qBA4De,QA5CiC,iBAC9C,IAAI,GAAQ,EAAU,OAClB,EAAS,EACT,EAAe,CAEnB,KACE,IADE,UACK,CAET,QAAS,OACT,GAAO,KACL,IAAI,GAAO,EACX,MAAK,GAAgB,EAAK,GAClB,EAAK,KAAO,EAAO,EAAK,IACxB,EAAE,EAAK,IAEb,IAEH,QACD,MAAS,IAAQ,GACf,GAAO,EACP,MAAI,GAAM,EAAK,GACX,EAAW,EAAO,GAClB,EAAW,EAEf,QAAI,GAAgB,EAClB,IAIA,IAAI,GAAQ,MACZ,WACE,KAAI,GAAS,EAAW,EAAU,EAAU,EAAK,EAAQ,EAE3D,GAAI,GAAa,YACT,cAAY,EAAU,EAAU,EA9C1C,CA8C+E,CA5CnF,EA4CyG,IAGjG,EAEH,QACF,SAfoB,YAAa,EAAE,IAC9B,IAEH,QAaH,CACD,4EC3DD,WACA,GAAI,GAAa,OAEjB,OAYe,QAJG,WAChB,OAAO,GAAW,OACnB,qFCTD,CAcoB,aAClB,GAAmB,IAAV,IAAiB,EAAS,OAEnC,MACA,UAAK,GAAI,KACP,KAAO,KAET,SACD,EAGD,kDA7BA,iBACA,mBAGI,EAAc,OAGlB,UAAI,EAAY,UAAU,UAAoB,iBAC1C,EAAuB,EAE3B,qBAmBI,GAAa,CAAC,EAAuC,iBACvD,eAAsB,WACpB,OAAO,cAAgB,EACxB,GACF,aAEc,kFC/Bf,kDAJA,iBACA,gBACA,qBAmBe,QAVM,WACnB,IAAI,GAAY,cAChB,SAAwB,EAApB,IAAU,QAAe,EAAU,GACrC,GAAO,cAAwB,EAAU,GAAG,GAAI,EAAU,GAE5D,IAAgB,WACd,OAAO,KAAW,GAAU,cAAY,EAAQ,EACjD,EACF,mFCVG,kDATJ,iBACA,gBACA,gBACA,eACA,gBACA,gBACA,oBA0Be,QAZoB,aACjC,OAAI,cAAM,IAAS,cACjB,GAAO,cAAwB,cAAM,GAEvC,GAAgB,WACd,IAAI,GAAW,cAAI,EACnB,SAAqB,aAAa,IAAa,EAC3C,cAAM,EAAQ,GACd,cAAY,EAAoB,SAlBpC,CAmBD,CAjBH,EAkBC,kFC9BD,8DAEA,OAiBe,QATS,aACtB,IAAI,GAAS,EACb,OAAI,GAGJ,YAAS,CAAJ,GAAQ,EACb,EAAO,cAAQ,EAAG,GAAU,EAC7B,0FCjBD,+DAEA,OAae,QANW,WACxB,OAAgB,YACd,OAAO,cAAQ,EAChB,EACF,mFCND,kDAPA,gBACA,eACA,eACA,eACA,eACA,oBAwCe,QA5BuB,iBACpC,GAAO,cAAM,EAAM,GAAU,CAAC,GAAQ,cAEtC,UAAI,GAAQ,CAAC,EACT,EAAS,EACT,OACA,EAEJ,IAAiB,IAAV,KAAoB,IAAQ,GAC7B,MAAM,cAAM,EAChB,IAAI,cAAS,GACX,IAAI,GACJ,KAAa,GAPD,EAAS,EAQnB,IAAI,GAAW,EACf,KAAW,EAAa,EAAW,EAAU,EAC7C,UACE,eAAuB,IAAZ,IACN,cAAQ,EAAK,EAAmB,UAGxC,EACD,eAAY,EAAQ,EACrB,EACD,GAAS,EACV,EACD,OACD,mFC3CD,8DAEA,OAee,QANc,aAC3B,OAAO,cAAS,EAAgB,WAC9B,OAAO,CAAC,EAAK,EACd,GACF,oFCXG,kDAJJ,iBACA,kBAMI,EAAc,UAAS,UAAmB,iBAC1C,EAAiB,EAAc,EAEnC,kBAoBe,QAZO,WAEpB,IACE,QADE,QAAO,SAGX,MAAI,cACF,SAAO,GAAiB,EAAe,KAAK,GAE9C,MAAI,GAAU,EACd,SAAkB,GAAV,KAAkB,EAAI,GAAW,EAvB5B,EAGf,GAoBuD,KACtD,qEC5BD,aAWe,QAJM,WACnB,OAAQ,IAAS,EAAM,SAAW,OAAU,EAC7C,wECTD,aAiBe,QATc,aAC3B,IACE,QAAO,GAET,WAAI,GAAS,GAAI,GAAO,YAAY,EACpC,iBAAO,KACP,GACD,kFCfD,+DAEA,OAae,QALkB,aAC/B,IAAI,GAAS,EAAS,cAAiB,EAAS,QAAU,EAC1D,aAAO,IAAI,GAAS,YAAY,EAAQ,EAAS,WAAY,EAC9D,6FCTD,kDAJA,iBACA,gBACA,qBAgBe,QALgB,eAC7B,IAAI,GAAQ,EAAS,EAAU,cAAiB,OAAQ,cACxD,SAAO,cAAY,YAAoB,GAAI,GAC5C,gFChBD,WACA,GAAI,GAEJ,SAae,QANM,WACnB,IAAI,GAAS,GAAI,GAAO,YAAY,EAAO,OAAQ,EAAQ,KAC3D,aAAO,UAAY,EACnB,UACD,mFCVD,kDAJA,iBACA,gBACA,oBAgBe,QALgB,eAC7B,IAAI,GAAQ,EAAS,EAAU,cAAiB,OAAQ,cACxD,SAAO,cAAY,YAAoB,GAAI,GAC5C,6FChBD,+DAGA,KAAI,EAAc,UAAS,UAAmB,iBAC1C,EAAgB,EAAc,EAElC,iBAWe,QAJM,WACnB,OAAO,GAAgB,OAAO,EAAc,KAC7C,uFCfD,+DAEA,OAae,QALsB,aACnC,IAAI,GAAS,EAAS,cAAiB,EAAW,QAAU,EAC5D,aAAO,IAAI,GAAW,YAAY,EAAQ,EAAW,WAAY,EAClE,wFCbD,8DAEA,OAsCe,QA9BkB,aAC/B,IAAI,IAAU,EACZ,IAAI,GAAyB,WACzB,EAAsB,IAAV,KACZ,EAAiB,IAAU,EAC3B,EAAc,cAElB,GAAI,EAAyB,WACzB,EAAsB,IAAV,KACZ,EAAiB,IAAU,EAC3B,EAAc,cAElB,MAAK,CAAC,GAAa,CAAC,GAAe,CAAC,GAAe,EAAQ,GACtD,GAAe,GAAgB,GAAkB,CAAC,GAAa,CAAC,GAChE,GAAa,GAAgB,GAC7B,CAAC,GAAgB,GAClB,CACF,QAEF,MAAK,CAAC,GAAa,CAAC,GAAe,CAAC,GAAe,EAAQ,GACtD,GAAe,GAAgB,GAAkB,CAAC,GAAa,CAAC,GAChE,GAAa,GAAgB,GAC7B,CAAC,GAAgB,GAClB,CACF,QAAO,CAEV,CACD,OACD,oFCnCD,kDAHA,iBACA,qBAce,QAJc,aAC3B,OAAO,cAAW,EAAQ,cAAW,GACtC,oFCVD,kDAHA,gBACA,mBAmCe,QA1BS,WACtB,OAAO,cAAsB,aAC3B,IAAI,GAAQ,CAAC,EACT,EAAS,EAAQ,OACjB,EAAsB,CAAT,GAAa,EAAQ,EAAc,UAChD,EAAiB,CAAT,GAAa,EAEzB,gBAAgC,CAAlB,GAAS,QAAmC,UAArB,QAAO,IACvC,IAGL,UAAI,GAAS,cAAe,EAAQ,GAAI,EAAQ,GAC9C,OAA0B,CAAb,UACb,IAEF,KAAS,OACT,GAAS,IAAQ,GACf,IAAI,GAAS,EACb,GACE,KAAS,EAAQ,EAAQ,EAE5B,EACD,OACD,EACF,oFC7BG,kDALJ,iBACA,gBACA,kBAYI,EAAc,WAAQ,EAAI,cAAW,cAAQ,EAAE,CAAC,KAAY,IATjD,EASf,CAAgB,CAA4E,WAC1F,OAAO,eACR,EAFD,sBAIe,kFCZX,kDANJ,iBACA,gBACA,gBACA,qBA0Be,QAbQ,WACrB,OAAgB,YACd,IAAI,GAAM,cACV,SACE,IAbF,eAaS,cAET,GACE,GAdN,eAca,cAET,GAAO,cAAY,EAAQ,EAC5B,GACF,mFCpBG,kDAPJ,iBACA,gBACA,gBACA,gBACA,kBAqBI,EAAc,UAAS,UAAmB,iBAC1C,EAAgB,EAAc,EAElC,iBAqFe,QAnEyD,0BACtE,QACE,GACE,IAxBN,uBAwBW,EAAO,YAAc,EAAM,YAC3B,EAAO,YAAc,EACxB,WAEF,WAAS,EACT,SAAQ,EAEV,OACE,IAnCF,6BAmCO,GAAO,YAAc,EACtB,YAAC,EAAU,cAAe,GAAS,cAKzC,IACA,IApDA,mBAwDE,IAvDF,sBAuDS,CAAC,GAAU,CAEpB,EACE,IAzDF,uBAyDS,GAAO,MAAQ,EAAM,MAAQ,EAAO,SAAW,EAExD,QAEE,IA3DF,wBA2DU,IAAU,CAAC,EAA4B,GAAU,CAE3D,EAF+B,GAAS,CAAC,EAGzC,IA7DA,kBAiEE,IA/DF,wBA+DS,IAAW,EAEpB,GACE,IAtEF,kBAsEM,MAEN,QACE,IAtEF,kBAsEM,IACJ,GA9EF,UA8Ec,KAEZ,SAAI,EAAO,MAAQ,EAAM,MAAQ,CAC/B,GAGF,YAAI,IAAU,GAAM,IACpB,SACE,IAAO,IAET,GACA,IA5FF,KA4FQ,IAAI,EAGV,GAAO,cAAY,GAAQ,GAAS,GAAQ,GAAQ,EAAW,GAAY,GAE7E,KACE,IArFF,qBAsFI,QAAO,GAAc,KAAK,IAAW,EAAc,KAGzD,IACD,0FC3GG,kDAJJ,iBACA,oBAiFe,QA9DsD,qBACnE,IAAI,GAAsB,EAf5B,EAgBM,EAAW,cAAK,GAChB,EAAY,EAAS,OACrB,EAAW,cAAK,GAChB,EAAY,EAEhB,UAAI,GAAa,GAAa,CAC5B,EAEF,gBAAI,GACJ,IACM,KACA,KADM,EACV,GAAM,IAAY,IAAO,KAAQ,cAAQ,EACvC,GAIJ,YAAI,GAAU,EAAM,IACpB,MACE,QAAO,IAET,KACA,QAAM,IAAI,EAEV,UAAI,GACJ,EAAS,IAAQ,GACf,GAAM,EACN,MAAI,GAAW,EAAO,GAClB,EAAW,EAEf,MACE,KAAI,GAAW,EACX,EAAW,EAAU,EAAU,EAAK,EAAO,EAAQ,GACnD,EAAW,EAAU,EAAU,EAAK,EAAQ,EAGlD,GAAI,GAAe,aACV,IAAa,GAAY,EAAU,EAAU,EAAU,EAAY,EAAS,KAC7E,EAEN,CACA,KACD,KACD,KAAa,EACd,aADyB,IAE1B,IAAI,GAAU,CAAC,EACb,IAAI,GAAU,EAAO,YACjB,EAAU,EAGd,YAAI,GAAW,GACV,eAAiB,IAAU,eAAiB,IAC7C,EAAoB,UAAlB,QAAO,IAAyB,YAAmB,IACjC,UAAlB,QAAO,IAAyB,YACpC,MAEH,KACD,UAAM,UACN,GACD,mFC5ED,kDAJA,iBACA,gBACA,oBAae,QAJK,WAClB,OAAO,cAAe,cACvB,yFCbD,+DAaA,KAAI,EAAY,cAAa,oBAEd,kFCZf,kDAHA,iBACA,qBAmBe,QAVO,WACpB,QAAI,GAAS,cAAQ,GACjB,EAAS,EAEb,OACE,OAAO,GAAQ,GAAK,cAAmB,EAAO,GAEhD,UACD,oFCTD,kDATA,gBACA,gBACA,eACA,eACA,eACA,eACA,gBACA,oBAiCe,QAtBgB,eAC7B,GAAO,cAAM,EAAM,GAAU,CAAC,GAAQ,cAEtC,UACI,GAAQ,CAAC,EACT,EAAS,EAEb,OAJI,IAIK,IACH,MAAM,cAAM,EAChB,KAAI,EAAE,EAAmB,IAAV,KAAkB,EAAQ,EAGzC,QAAS,EAEX,MACE,QAEF,MAAI,GAAS,EAAS,EAAO,OAC7B,QAAO,CAAC,CAAC,GAAU,cAAS,IAAW,cAAQ,EAAK,KACjD,cAAQ,IAAW,cAAS,IAAW,cAC3C,oFCtCD,8DAEA,OAWe,QAJN,UACP,MAAK,SAAW,UAAe,cAChC,4ECXD,aAce,QAJK,WAClB,OAAO,MAAK,IAAI,IAAQ,MAAO,MAAK,SACrC,mFCZD,8DAGI,KAGA,EAAc,OAGlB,UAAI,EAAiB,EAErB,iBAkBe,QATE,WACf,IAAI,GAAO,KACX,sBACE,IAAI,GAAS,EACb,SAAmC,KAlBvC,mCAmBG,CACD,OAAO,GAAe,KAAK,EAAM,GAAO,EACzC,0FC3BD,8DAGA,KAAI,EAAc,OAGlB,UAAI,EAAiB,EAErB,iBAce,QALE,WACf,IAAI,GAAO,KACX,eAAO,WAAe,EAAc,YAAY,EAAe,KAAK,EACrE,mFCpBD,8DAGI,OAkBW,QANO,aACpB,IAAI,GAAO,KACX,kBAAK,GAAQ,WAAuC,WAZtD,4BAaE,EACD,wECnBD,WACA,GAAI,GAAc,OAGlB,UAAI,EAAiB,EAErB,iBAmBe,QAZS,WACtB,IAAI,GAAS,EAAM,OACf,EAAS,EAAM,YAGnB,SAAI,IAA6B,QAAnB,QAAO,GAAM,IAAkB,EAAe,KAAK,EAC/D,aAAO,MAAQ,EACf,QAAO,MAAQ,EAEjB,OACD,wFCdG,kDATJ,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,qBAyEe,QApCiC,qBAC9C,IAAI,IAAO,GACX,kBAEI,MA5BF,uBA4BS,cAIP,SAzCF,yBACA,gBAwCS,GAAI,IAAK,CAGhB,SAlCF,oBAkCS,cAAc,GAKrB,SAtCF,8BACA,8BACA,2BACA,4BACA,4BACA,4BACA,mCACA,6BAEJ,uBA6Ba,cAAgB,GAGvB,SAlDF,eAkDS,cAAS,GAAQ,GAIxB,SArDF,wBAGA,kBAkDS,GAAI,IAGX,SAvDF,kBAuDS,cAGP,SAzDF,eAyDS,cAAS,GAAQ,GAGxB,SAzDF,kBAyDS,cAEZ,4FCzED,kDAJA,iBACA,gBACA,oBAee,QANU,WACvB,OAAmD,UAA3C,QAAO,GAAO,aAA8B,cAAY,MAC5D,cAAW,cAEhB,qFCZD,kDAHA,iBACA,oBAae,QAJQ,WACrB,OAAO,cAAQ,IAAU,cAC1B,+RCZD,IAce,QAPI,WACjB,IAAI,sBAAc,iBAClB,SAAgB,QAAR,KAA4B,QAAR,KAA4B,QAAR,KAA4B,SAAR,IACrD,WAAV,KAEN,IADM,wECXP,aAiBe,QAVU,WACvB,QAGA,MAHI,EAGG,CAAC,CAAC,EAAO,EAAS,QACvB,QAAO,KAAK,EAEd,aACD,sECfD,aAWe,QAJN,UACP,MACD,4FCTD,8DAGA,KAAI,EAAa,MAGjB,UAAI,EAAS,EAEb,SAyBe,QAhBU,WACvB,IAAI,GAAO,KAAK,SACZ,EAAQ,cAAa,EAEzB,MACE,CADE,GAGJ,YAAI,GAAY,EAAK,OACrB,EAMD,MANK,IACF,IAEA,QAAO,KAAK,EAAM,EAEpB,sFC9BF,8DAEA,OAgBe,QAPO,WACpB,IAAI,GAAO,KAAK,SACZ,EAAQ,cAAa,EAEzB,SAAmB,EAAZ,UAAwB,EAAK,GACrC,mFChBD,8DAEA,OAae,QAJO,WACpB,OAA0C,CAC3C,CADQ,eAAa,KAAK,SAAU,mFCZrC,8DAEA,OAsBe,QAZY,aACzB,IAAI,GAAO,KAAK,SACZ,EAAQ,cAAa,EAEzB,SACE,EADE,KACG,KAAK,CAAC,EAEX,MAAK,GAAO,GAEd,EACD,sFClBD,kDAJA,iBACA,eACA,qBAiBe,QARN,UACP,MAAK,SACH,MAAQ,MACR,YAAO,IAAK,aACZ,gBAAU,MAEb,yFCjBD,8DAEA,OAae,QAJS,WACtB,OAAO,cAAW,KAAM,GAAK,UAC9B,mFCbD,8DAEA,OAae,QAJM,WACnB,OAAO,cAAW,KAAM,GAAK,IAC9B,mFCbD,8DAEA,OAae,QAJM,WACnB,OAAO,cAAW,KAAM,GAAK,IAC9B,mFCbD,8DAEA,OAee,QALW,aACxB,qBAAW,KAAM,GAAK,IAAI,EAC1B,GACD,sFCZD,kDAHA,iBACA,oBAce,QAJS,aACtB,OAAsB,EAAf,IAAK,OAAc,EAAS,cAAQ,EAAQ,cAAU,EAAM,EAAG,CACvE,uECZG,aAiBW,QALM,WACnB,aAAK,SAAS,IACd,EAZF,6BAaC,wEChBD,aAae,QAJM,WACnB,OAAO,MAAK,SAAS,IACtB,sECXD,aAiBe,QAVK,WAClB,IAAI,GAAQ,CAAC,EACT,EAAS,MAAM,EAEnB,eAAI,QAAiB,WACnB,GAAS,KAAS,CAAC,EACpB,EACD,GACD,kFCfD,8DAEA,OAWe,QAJN,UACP,MAAK,SAAW,MACjB,2ECXD,aAae,QAJM,WACnB,OAAO,MAAK,SAAS,UACtB,sECXD,aAae,QAJG,WAChB,OAAO,MAAK,SAAS,IACtB,sECXD,aAae,QAJG,WAChB,OAAO,MAAK,SAAS,IACtB,oFCPG,kDAJJ,gBACA,qBAwBe,QATQ,aACrB,IAAI,GAAQ,KACZ,eAAI,yBAA8B,EAAM,SACtC,QAbJ,QAaY,KAAK,SAAW,cAAa,EAEvC,aAAM,IAAI,EACV,GACD,sFCnBD,kDAJA,iBACA,mBAGI,EAGJ,sEAAI,EASJ,WAAI,EAAe,cAAiB,WAClC,IACA,0BAAS,GAAQ,QAAQ,EAA2C,iBAClE,GAAO,KAAK,EAAQ,EAAO,QAAQ,EAAc,MAAS,GAC3D,EACD,GACD,CANkB,aAQJ,yICxBf,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,iCAGE,SADa,QACN,UADM,QACG,SADH,QACW,aADX,QACuB,eACpC,yBAFa,QAEG,OAFH,QAES,YAFT,QAEoB,iBAFpB,QAEoC,YACjD,eAHa,QAGP,YAHO,QAGI,gBAHJ,QAGmB,QAHnB,QAG0B,UACvC,uBAJa,QAIA,gBAJA,QAIc,aAJd,QAIyB,QAJzB,QAI+B,WAC5C,mBALa,QAKJ,gBALI,QAKU,kBALV,QAK0B,oBAL1B,QAK4C,QACzD,gBANa,QAMP,eANO,QAMM,OANN,QAMW,QANX,QAMiB,WAC9B,qBAPa,QAOF,eAPE,QAOW,UAPX,QAOmB,UAPnB,QAO2B,WACxC,iBARa,QAQN,eARM,QAQO,iBARP,QAQsB,iBARtB,QAQqC,mBAClD,6BATa,QASM,qBATN,QASyB,cATzB,QASqC,gBATrC,QASmD,QAChE,gBAVa,QAUP,aAVO,QAUI,kBAVJ,QAUoB,aAVpB,QAU+B,SAC5C,mBAXa,QAWJ,aAXI,QAWO,QAXP,QAWa,UAXb,QAWqB,YAClC,iBAZa,QAYN,aAZM,QAYK,WAZL,QAYc,OAZd,QAYmB,SAChC,mBAba,QAaJ,OAbI,QAaC,aAbD,QAaY,iBAbZ,QAa2B,WAb3B,uOClEN,oGACA,mGACA,uGACA,yGACA,2GACA,iGACA,sGACA,2GACA,sGACA,iGACA,sGACA,0GACA,kGACA,oGACA,wGACA,yGACA,sGACA,iGACA,oGACA,oGACA,yGACA,2GACA,6GACA,iGACA,gGACA,wGACA,gGACA,iGACA,oGACA,wGACA,0GACA,qGACA,qGACA,sGACA,oGACA,0GACA,4GACA,4GACA,8GACA,gHACA,gHACA,yGACA,2GACA,mGACA,mGACA,wGACA,6GACA,wGACA,oGACA,sGACA,wGACA,mGACA,qGACA,uGACA,oGACA,wGACA,sGACA,kGACA,oGACA,sGACA,kGACA,wGACA,4GACA,sGACA,sGACA,2FCzDT,kDARA,gBACA,gBACA,gBACA,eACA,eACA,mBAGI,EAAc,OAGlB,UAAI,EAAuB,EAG3B,qBAAI,EAAiB,CAAC,EAAuC,iBAiC7D,WAAI,EAAW,cAAgC,aAC7C,IAAI,GAAkB,cAAY,IAAW,cAC3C,GAGF,yBAHa,EAAQ,cAAO,GAC1B,OAEG,GAAI,KACP,iBAAY,EAAQ,EAAK,EAE5B,GARc,aAUA,iFCzDf,+DAEA,OAgCe,QAJe,aAC5B,OAAO,cAAuB,QAC/B,sEChCD,aAuBe,QANG,WAChB,OAAO,WACL,OACD,EACF,mFClBD,kDAHA,iBACA,qBAgCe,QAJQ,aACrB,OAAiB,KAAV,KAAkB,cAAQ,EAAQ,IAC1C,uGC3BD,gQAJA,eACA,kBASA,4BAAI,EAAe,IAAmB,KAAY,GAAW,CAAC,EAAQ,SAKtE,SAAI,EAAc,IAAmB,KAAW,GAAU,CAAC,EAAO,SAKlE,SAAI,EAAiB,GAAc,EAAW,UAAY,EAK1D,SAAI,EAAS,EAAgB,UAmB7B,cAAI,EAAY,CAAD,CAAqC,WAClD,OAAO,aACR,EAFD,EAAyB,KAAS,uBAInB,qGChDf,+DAEA,OAiCe,QAJS,aACtB,OAAO,cAAY,EACpB,yFC7BG,kDAJJ,gBACA,kBA8BqB,KACN,EAXX,yBAWwC,EAVxC,yBAWW,EAVX,sBAUqC,EATrC,uBAUW,EATX,uBASsC,EARtC,uBASW,EARX,8BAQ6C,EAP7C,wBAQwB,EAL5B,2BAMe,EAhCX,sBAgCqC,EA/BrC,kBAgCW,EAnBX,wBAmB4C,EA/B5C,oBAgCW,EAnBX,qBAmByC,EA/BzC,iBAgCW,EA/BX,kBA+BsC,EA9BtC,qBA+BW,EA9BX,gBA8BoC,EA7BpC,mBA8BW,EA7BX,mBA6BuC,EA5BvC,mBA6BW,EA5BX,gBA4BoC,EA3BpC,mBA8BJ,EA5BI,uBA6BJ,GAAI,IAAc,OAOlB,UAAI,GAAiB,GAErB,WAuBe,QALO,YACpB,OAAO,cAAa,KAClB,cAAS,GAAM,SAAW,CAAC,CAAC,EAAe,GAAe,KAC7D,sFCvED,kDANA,iBACA,gBACA,eACA,kBAGI,EAAc,OAGlB,UAAI,EAAiB,EAErB,iBA2Ce,QApBC,WACd,QAAI,GAAQ,CAAC,EACT,EAAU,cAAY,GACtB,EAAQ,cAAW,GACnB,EAAc,EAAM,OACpB,EAAU,cACV,GACA,EAAoB,MACpB,EAAS,EAEb,SAAS,IACH,KAAM,EACV,GANgB,CAAC,CAAC,CAMZ,GAAuB,QAAP,KAAmB,cAAQ,EAC7C,GADA,EACS,aAAP,MAAyB,GAAW,CAAC,EAAe,KAAK,EAC7D,OAAO,KAGX,SACD,kCCHsB,eACrB,IAAmB,UAAf,QAAO,IAAuB,GAChC,UAD4C,QAAO,QAC7C,IAAI,WAEZ,MAAI,GAAW,YACb,IAAI,GAAO,UACP,EAAM,EAAW,EAAS,MAAM,KAAM,GAAQ,EAAK,GACnD,EAAQ,EAEZ,SAAI,EAAM,IACR,SAAO,GAAM,IAEf,MAAI,GAAS,EAAK,MAAM,KACxB,YAAS,MAAQ,EAAM,IAAI,EAC3B,GACD,CACD,WAAS,MAAQ,IAAK,EAAQ,SAC9B,SACD,CAED,kDArEA,+DAGA,KAAI,EAEJ,sBAiEA,EAAQ,0BAEO,oECxEf,aAmBe,QAJN,UAER,qECjBD,WAiBA,GAAI,GAAM,KAAK,cAEA,kFCdf,kDALA,iBACA,gBACA,eACA,oBA4Be,QAJG,WAChB,OAAO,cAAM,GAAQ,cAAa,cAAM,IAAS,cAClD,oFCzBG,kDAJJ,iBACA,oBAgEe,QAlBe,eAC5B,IAAc,MAGd,QACE,UADE,QAAO,QACH,IAER,WAhDF,6BAgDM,cACF,OAAU,WAAa,GAAU,CAAC,CAAC,EAAQ,QAC3C,IAAW,YAAc,GAAU,CAAC,CAAC,EAAQ,SAE/C,GAAO,cAAS,EAAM,EACpB,SACA,UACA,WAEH,oFC/DD,+DAGA,KAAI,EAAW,EAGf,IAmCe,QAZG,WAChB,IAAI,CACF,QAAiB,EAAV,KAAc,EAEvB,OAAQ,cACR,GAAI,IAAU,GAAY,IAAU,CAAC,EACnC,IAAI,GAAgB,CAAR,GAAY,CAAC,EACzB,QACD,yBACD,OAAO,KAAU,EAAQ,EAC1B,mFCnCG,kDAJJ,iBACA,oBAoCe,QAJG,WAChB,OAAO,GAAQ,cAAU,cAAU,GAAW,EA5BhD,YA6BC,mFCRD,kDA3BA,iBACA,kBA0BI,EAAU,gBAAd,mBAEe,iFC7Bf,+DAEA,OAyBe,QAJG,WAChB,OAAgB,KAAT,IAAgB,GAAK,cAC7B,+HCdD,mSAFA,aAKqB,YAMpB,CAAa,aAAO,mBAOnB,QAAK,KAAO,GAqBZ,UAAK,EAAI,iBAAe,GAAK,WAApB,UACT,CAED,6BAKS,aACR,IAAI,GAAmB,gBAAW,KAAK,KAEvC,SACC,OAAmB,EAAiB,QAAS,UAAoB,aAChE,OAAS,GAAQ,EAAO,OAAW,EAAQ,GAC3C,CAGF,IACA,qBApDmB,iFCAG,QAAiB,aACxC,IAAK,EAAK,MAAQ,EACjB,KACA,YAH8C,gBAK/C,WAAoB,EAAK,2DAAY,SACpC,MAAM,EAAO,KAAK,UAAW,EAC7B,IAAM,EAAO,KAAK,UAAW,EAAK,IAAK,EAEvC,QAAK,IACJ,EAED,QAZ8C,8EAc/C,CACA,Q,oECTK,aAuBS,QAfd,CARkB,IAQb,WACJ,OACC,QADI,QAAO,GAKZ,EAJQ,KAAM,IAAc,KAE3B,MAIF,EACA,YACA,gBACA,MACA,YAAS,wEC/BV,aAee,QANN,UACR,OAAgB,aACf,GACA,SACD,+BCgC8B,eAC9B,OACG,KAAQ,IACR,IAAkB,GAErB,EAED,oDAtCgB,IAAW,aAC1B,GAAc,GAAS,EAEvB,cAAO,OAAQ,EAAc,GAC7B,EAED,IAgBgB,UAAiB,aAC3B,OAAC,GAAgB,EACrB,GAGM,EAAc,GACrB,GAJQ,EAAe,QAAS,wBAGhC,GAGD,IAagB,iBACf,CACA,I,EA3DD,GAEA,spBCUA,CA6OyB,aACxB,OAAO,IAAW,WAAS,YAC1B,GAAW,WAAS,WACpB,GAAW,WAAS,SACpB,GAAW,WACZ,SAKD,CAC0B,aACzB,OAAO,IAAW,WAAS,QAAU,GAAW,WAChD,SAKD,CACiC,aAChC,MAAQ,GACP,IAAK,wBAA0C,EAAG,eACjD,SAGD,WAAU,EACV,MAED,CACA,Q,mSAtRD,eACA,gBACA,cACA,eACA,cACA,eACA,gBACA,OACA,aAEA,UAWqB,2IAQpB,uBAGO,OACN,KAAM,EAAe,KAAK,OAAO,QAEjC,KAIA,OAAK,OAAO,QAAQ,YAAY,GAAI,YAAsC,qBAEzE,CAAK,GAAsB,EAAmB,WAC7C,+BAAmB,cAGpB,+BAAM,IAAgB,GAGtB,cAAM,GAAkB,GAExB,qBAAyB,EAApB,EAAqB,eAI1B,SAAuB,WAAM,CAAE,MAAO,eACtC,SAAgB,WAChB,8BACA,GAlBD,EAkBG,CAAE,SAGL,UAAa,cACb,cAAK,SAAU,EAAc,YAAa,iBAAe,GAAK,qBAApB,UAG1C,QAAK,SAAU,EAAc,UAAW,iBAAe,GAAK,mBAApB,UAAxC,EAAmF,CAAE,SACrF,QAED,6BAOyB,aAAe,OACvC,KAAM,GAAS,KACf,OAAM,GAAe,GAAO,QAC5B,KAAI,GAAU,EAGd,WAAK,EAKA,MAAC,eACL,SAAU,GAAQ,eAElB,WAAK,CAKN,QAGK,iBAAC,GACL,cAID,WAAM,IAAe,GAAO,QAAQ,OAAO,eAE3C,OAAO,SAAS,eAAgB,UAC/B,GAAK,yBACL,GACD,GAED,2BAOuB,aACtB,IAAM,GAAU,EAChB,QAAM,GAAY,GAAW,WAAS,QAAU,GAAW,WAAS,WAAa,GAAW,WAI5F,YAAO,EAAiB,IAAa,KAAK,cAAe,KACtD,EAAgB,IAAa,KAAK,iBACpC,SACA,mBAED,OAED,8BAOe,WAAY,OAC1B,KAAM,EAAgB,KAAK,OAC3B,SAAM,GAAiB,EAGvB,UAAK,GAAC,GAIN,gBAAM,IAAgB,KAAK,iCAE3B,MACC,GAcD,SAde,eAAgB,UAE7B,IAAM,IAAe,GAAe,OAEpC,UAAK,GAAa,QACjB,IAAM,IAAQ,EACd,WAAM,OACN,GAED,GAAK,yBACL,GAED,MAIF,iCAMkB,WAAY,OAC7B,KAAM,EAAgB,KAAK,OAC3B,SAAM,GAAS,EACf,OAAM,GAAiB,EACvB,UAAM,GAAgB,GAGtB,wBAAK,IAAiB,GAAO,QAAQ,IAAK,GAAc,MACvD,IAAM,IAAW,EAAY,GAAe,kBAAoB,GAChE,mBAAM,GAAW,EAAc,yBAA0B,GAAU,EAAY,UAE/E,YAOA,MANC,OAAc,eAAgB,UAC7B,IAAe,UAAW,CAC1B,IAGF,KAKD,CAAK,GAAC,GAIN,gBAAM,IAAiB,KAAK,iCAE5B,MAAK,yBAA0C,EAAc,OAAO,QAAQ,IAAK,GAChF,MAMD,SANe,eAAgB,UAC7B,GAAK,yBACL,GAED,MAIF,yCAM0B,WACzB,MAAK,OAAO,SAAS,UAAU,UAAW,CAAE,UAAW,SACvD,IAED,iDASkC,WACjC,IAAM,GAAgB,KAAK,OAC3B,SAAM,EAAS,EACf,OAAM,GAAiB,EACvB,UAAM,GAAiB,KAAK,OAI5B,KAAM,GAAQ,UAAe,oBAC7B,OAAe,gBAAiB,GAAO,CAAE,UAAW,EAAU,UAC9D,gBAAM,IAAgB,EAAU,GAAM,MAAM,WAAa,GAAM,MAE/D,gBAAK,0BAAyC,EAAO,QAAQ,IAAK,GACjE,MAGD,GACA,cA5ND,2BAIC,OACA,yBA6NF,mBAnOqB,mBC9BrB,cAIA,YACA,YAAkH,2FAElH,sBCPA,cAIA,YACA,YAAiub,osbAEjub,sBCPA,cAIA,YACA,YAA0G,mFAE1G,sBCPA,cAIA,YACA,YAA6T,sSAE7T,sBCPA,cAIA,YACA,YAA0J,mIAE1J,sBCPA,cAIA,YACA,YAAoa,6YAEpa,sBCPA,cAIA,YACA,YAAsP,+NAEtP,sBCPA,cAIA,YACA,YAAuX,gWAEvX,sBCPA,cAIA,YACA,YAAwb,iaAExb,kBCPA,U,u+GCAA,U,4zECAA,UAA6V,o5HCA7V,U,2WCAA,U,yeCAA,U,24FCAA,U,4rECAA,U,gqFCAA,U,29CCAA,U,o+ECAA,U,0yBCAA,U,uxBCEA,CACA,QACA,oCAEA,YACA,6BAaA,2BClBA,CACA,QACA,oCAEA,YACA,6BAaA,2BClBA,CACA,QACA,oCAEA,YACA,6BAaA,2BClBA,CACA,QACA,oCAEA,YACA,6BAaA,2BClBA,CACA,QACA,oCAEA,YACA,6BAaA,2BClBA,CACA,QACA,oCAEA,YACA,6BAaA,2BClBA,CACA,QACA,oCAEA,YACA,6BAaA,2BClBA,CACA,QACA,oCAEA,YACA,6BAaA,2BClBA,CACA,QACA,oCAEA,YACA,6BAaA","file":"ckeditor.compat.js","sourcesContent":["/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module module:engine/view/writer\n */\n\nimport Position from './position';\nimport ContainerElement from './containerelement';\nimport AttributeElement from './attributeelement';\nimport EmptyElement from './emptyelement';\nimport UIElement from './uielement';\nimport Text from './text';\nimport Range from './range';\nimport TreeWalker from './treewalker';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport DocumentFragment from './documentfragment';\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\n\n/**\n * Contains functions used for composing view tree.\n *\n * @namespace writer\n */\n\nconst writer = {\n\tbreakAttributes,\n\tbreakContainer,\n\tmergeAttributes,\n\tmergeContainers,\n\tinsert,\n\tremove,\n\tclear,\n\tmove,\n\twrap,\n\twrapPosition,\n\tunwrap,\n\trename,\n\tbreakViewRangePerContainer\n};\n\nexport default writer;\n\n/**\n * Breaks attribute nodes at provided position or at boundaries of provided range. It breaks attribute elements inside\n * up to a container element.\n *\n * In following examples `

` is a container, `` and `` are attribute nodes:\n *\n *\t\t

foobar{}

->

foobar[]

\n *\t\t

foo{}bar

->

foo{}bar

\n *\t\t

foob{}ar

->

foob[]ar

\n *\t\t

fo{oba}r

->

foobar

\n *\n * **Note:** {@link module:engine/view/documentfragment~DocumentFragment DocumentFragment} is treated like a container.\n *\n * **Note:** Difference between {@link module:engine/view/writer~writer.breakAttributes breakAttributes} and\n * {@link module:engine/view/writer~writer.breakContainer breakContainer} is that `breakAttributes` breaks all\n * {@link module:engine/view/attributeelement~AttributeElement attribute elements} that are ancestors of given `position`, up to the first\n * encountered {@link module:engine/view/containerelement~ContainerElement container element}. `breakContainer` assumes that given\n * `position`\n * is directly in container element and breaks that container element.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container`\n * when {@link module:engine/view/range~Range#start start}\n * and {@link module:engine/view/range~Range#end end} positions of a passed range are not placed inside same parent container.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-empty-element`\n * when trying to break attributes\n * inside {@link module:engine/view/emptyelement~EmptyElement EmptyElement}.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-ui-element`\n * when trying to break attributes\n * inside {@link module:engine/view/uielement~UIElement UIElement}.\n *\n * @see module:engine/view/attributeelement~AttributeElement\n * @see module:engine/view/containerelement~ContainerElement\n * @see module:engine/view/writer~writer.breakContainer\n * @function module:engine/view/writer~writer.breakAttributes\n * @param {module:engine/view/position~Position|module:engine/view/range~Range} positionOrRange Position where to break attribute elements.\n * @returns {module:engine/view/position~Position|module:engine/view/range~Range} New position or range, after breaking the attribute\n * elements.\n */\nexport function breakAttributes( positionOrRange ) {\n\tif ( positionOrRange instanceof Position ) {\n\t\treturn _breakAttributes( positionOrRange );\n\t} else {\n\t\treturn _breakAttributesRange( positionOrRange );\n\t}\n}\n\n/**\n * Breaks {@link module:engine/view/containerelement~ContainerElement container view element} into two, at the given position. Position\n * has to be directly inside container element and cannot be in root. Does not break if position is at the beginning\n * or at the end of it's parent element.\n *\n *\t\t

foo^bar

->

foo

bar

\n *\t\t

foo

^

bar

->

foo

bar

\n *\t\t

^foobar

-> ^

foobar

\n *\t\t

foobar^

->

foobar

^\n *\n * **Note:** Difference between {@link module:engine/view/writer~writer.breakAttributes breakAttributes} and\n * {@link module:engine/view/writer~writer.breakContainer breakContainer} is that `breakAttributes` breaks all\n * {@link module:engine/view/attributeelement~AttributeElement attribute elements} that are ancestors of given `position`, up to the first\n * encountered {@link module:engine/view/containerelement~ContainerElement container element}. `breakContainer` assumes that given\n * `position`\n * is directly in container element and breaks that container element.\n *\n * @see module:engine/view/attributeelement~AttributeElement\n * @see module:engine/view/containerelement~ContainerElement\n * @see module:engine/view/writer~writer.breakAttributes\n * @function module:engine/view/writer~writer.breakContainer\n * @param {module:engine/view/position~Position} position Position where to break element.\n * @returns {module:engine/view/position~Position} Position between broken elements. If element has not been broken, the returned position\n * is placed either before it or after it.\n */\nexport function breakContainer( position ) {\n\tconst element = position.parent;\n\n\tif ( !( element.is( 'containerElement' ) ) ) {\n\t\t/**\n\t\t * Trying to break an element which is not a container element.\n\t\t *\n\t\t * @error view-writer-break-non-container-element\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-break-non-container-element: Trying to break an element which is not a container element.' );\n\t}\n\n\tif ( !element.parent ) {\n\t\t/**\n\t\t * Trying to break root element.\n\t\t *\n\t\t * @error view-writer-break-root\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-break-root: Trying to break root element.' );\n\t}\n\n\tif ( position.isAtStart ) {\n\t\treturn Position.createBefore( element );\n\t} else if ( !position.isAtEnd ) {\n\t\tconst newElement = element.clone( false );\n\n\t\tinsert( Position.createAfter( element ), newElement );\n\n\t\tconst sourceRange = new Range( position, Position.createAt( element, 'end' ) );\n\t\tconst targetPosition = new Position( newElement, 0 );\n\n\t\tmove( sourceRange, targetPosition );\n\t}\n\n\treturn Position.createAfter( element );\n}\n\n/**\n * Merges {@link module:engine/view/attributeelement~AttributeElement attribute elements}. It also merges text nodes if needed.\n * Only {@link module:engine/view/attributeelement~AttributeElement#isSimilar similar} attribute elements can be merged.\n *\n * In following examples `

` is a container and `` is an attribute element:\n *\n *\t\t

foo[]bar

->

foo{}bar

\n *\t\t

foo[]bar

->

foo{}bar

\n *\t\t

a[]b

->

a[]b

\n *\n * It will also take care about empty attributes when merging:\n *\n *\t\t

[]

->

[]

\n *\t\t

foo[]bar

->

foo{}bar

\n *\n * **Note:** Difference between {@link module:engine/view/writer~writer.mergeAttributes mergeAttributes} and\n * {@link module:engine/view/writer~writer.mergeContainers mergeContainers} is that `mergeAttributes` merges two\n * {@link module:engine/view/attributeelement~AttributeElement attribute elements} or {@link module:engine/view/text~Text text nodes}\n * while `mergeContainer` merges two {@link module:engine/view/containerelement~ContainerElement container elements}.\n *\n * @see module:engine/view/attributeelement~AttributeElement\n * @see module:engine/view/containerelement~ContainerElement\n * @see module:engine/view/writer~writer.mergeContainers\n * @function module:engine/view/writer~writer.mergeAttributes\n * @param {module:engine/view/position~Position} position Merge position.\n * @returns {module:engine/view/position~Position} Position after merge.\n */\nexport function mergeAttributes( position ) {\n\tconst positionOffset = position.offset;\n\tconst positionParent = position.parent;\n\n\t// When inside text node - nothing to merge.\n\tif ( positionParent.is( 'text' ) ) {\n\t\treturn position;\n\t}\n\n\t// When inside empty attribute - remove it.\n\tif ( positionParent.is( 'attributeElement' ) && positionParent.childCount === 0 ) {\n\t\tconst parent = positionParent.parent;\n\t\tconst offset = positionParent.index;\n\t\tpositionParent.remove();\n\n\t\treturn mergeAttributes( new Position( parent, offset ) );\n\t}\n\n\tconst nodeBefore = positionParent.getChild( positionOffset - 1 );\n\tconst nodeAfter = positionParent.getChild( positionOffset );\n\n\t// Position should be placed between two nodes.\n\tif ( !nodeBefore || !nodeAfter ) {\n\t\treturn position;\n\t}\n\n\t// When position is between two text nodes.\n\tif ( nodeBefore.is( 'text' ) && nodeAfter.is( 'text' ) ) {\n\t\treturn mergeTextNodes( nodeBefore, nodeAfter );\n\t}\n\t// When selection is between two same attribute elements.\n\telse if ( nodeBefore.is( 'attributeElement' ) && nodeAfter.is( 'attributeElement' ) && nodeBefore.isSimilar( nodeAfter ) ) {\n\t\t// Move all children nodes from node placed after selection and remove that node.\n\t\tconst count = nodeBefore.childCount;\n\t\tnodeBefore.appendChildren( nodeAfter.getChildren() );\n\t\tnodeAfter.remove();\n\n\t\t// New position is located inside the first node, before new nodes.\n\t\t// Call this method recursively to merge again if needed.\n\t\treturn mergeAttributes( new Position( nodeBefore, count ) );\n\t}\n\n\treturn position;\n}\n\n/**\n * Merges two {@link module:engine/view/containerelement~ContainerElement container elements} that are before and after given position.\n * Precisely, the element after the position is removed and it's contents are moved to element before the position.\n *\n *\t\t

foo

^

bar

->

foo^bar

\n *\t\t
foo
^

bar

->
foo^bar
\n *\n * **Note:** Difference between {@link module:engine/view/writer~writer.mergeAttributes mergeAttributes} and\n * {@link module:engine/view/writer~writer.mergeContainers mergeContainers} is that `mergeAttributes` merges two\n * {@link module:engine/view/attributeelement~AttributeElement attribute elements} or {@link module:engine/view/text~Text text nodes}\n * while `mergeContainer` merges two {@link module:engine/view/containerelement~ContainerElement container elements}.\n *\n * @see module:engine/view/attributeelement~AttributeElement\n * @see module:engine/view/containerelement~ContainerElement\n * @see module:engine/view/writer~writer.mergeAttributes\n * @function module:engine/view/writer~writer.mergeContainers\n * @param {module:engine/view/position~Position} position Merge position.\n * @returns {module:engine/view/position~Position} Position after merge.\n */\nexport function mergeContainers( position ) {\n\tconst prev = position.nodeBefore;\n\tconst next = position.nodeAfter;\n\n\tif ( !prev || !next || !prev.is( 'containerElement' ) || !next.is( 'containerElement' ) ) {\n\t\t/**\n\t\t * Element before and after given position cannot be merged.\n\t\t *\n\t\t * @error view-writer-merge-containers-invalid-position\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-merge-containers-invalid-position: ' +\n\t\t\t'Element before and after given position cannot be merged.' );\n\t}\n\n\tconst lastChild = prev.getChild( prev.childCount - 1 );\n\tconst newPosition = lastChild instanceof Text ? Position.createAt( lastChild, 'end' ) : Position.createAt( prev, 'end' );\n\n\tmove( Range.createIn( next ), Position.createAt( prev, 'end' ) );\n\tremove( Range.createOn( next ) );\n\n\treturn newPosition;\n}\n\n/**\n * Breaks given `range` on a set of {@link module:engine/view/range~Range ranges}, that each are contained within a\n * {@link module:engine/view/containerelement~ContainerElement container element}. After `range` is broken, it's \"pieces\" can\n * be used by other {@link module:engine/view/writer~writer} methods (which expect that passed ranges are contained within\n * one container element).\n *\n * @function module:engine/view/writer~writer.breakViewRangePerContainer\n * @param {module:engine/view/range~Range} range Range to break.\n * @returns {Array.} Ranges that combine into passed `viewRange`.\n */\nexport function breakViewRangePerContainer( range ) {\n\tconst ranges = [];\n\tconst walker = new TreeWalker( { boundaries: range } );\n\n\tlet start = range.start;\n\n\tfor ( const value of walker ) {\n\t\tif ( value.item.is( 'containerElement' ) ) {\n\t\t\tif ( !start.isEqual( value.previousPosition ) ) {\n\t\t\t\tranges.push( new Range( start, value.previousPosition ) );\n\t\t\t}\n\n\t\t\tstart = value.nextPosition;\n\t\t}\n\t}\n\n\tranges.push( new Range( start, range.end ) );\n\n\treturn ranges;\n}\n\n/**\n * Insert node or nodes at specified position. Takes care about breaking attributes before insertion\n * and merging them afterwards.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-insert-invalid-node` when nodes to insert\n * contains instances that are not {@link module:engine/view/text~Text Texts},\n * {@link module:engine/view/attributeelement~AttributeElement AttributeElements},\n * {@link module:engine/view/containerelement~ContainerElement ContainerElements},\n * {@link module:engine/view/emptyelement~EmptyElement EmptyElements} or\n * {@link module:engine/view/uielement~UIElement UIElements}.\n *\n * @function insert\n * @param {module:engine/view/position~Position} position Insertion position.\n * @param {module:engine/view/text~Text|module:engine/view/attributeelement~AttributeElement|\n * module:engine/view/containerelement~ContainerElement|module:engine/view/emptyelement~EmptyElement|\n * module:engine/view/uielement~UIElement|Iterable.} nodes Node or nodes to insert.\n * @returns {module:engine/view/range~Range} Range around inserted nodes.\n */\nexport function insert( position, nodes ) {\n\tnodes = isIterable( nodes ) ? [ ...nodes ] : [ nodes ];\n\n\t// Check if nodes to insert are instances of AttributeElements, ContainerElements, EmptyElements, UIElements or Text.\n\tvalidateNodesToInsert( nodes );\n\n\tconst container = getParentContainer( position );\n\n\tif ( !container ) {\n\t\t/**\n\t\t * Position's parent container cannot be found.\n\t\t *\n\t\t * @error view-writer-invalid-position-container\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-invalid-position-container' );\n\t}\n\n\tconst insertionPosition = _breakAttributes( position, true );\n\n\tconst length = container.insertChildren( insertionPosition.offset, nodes );\n\tconst endPosition = insertionPosition.getShiftedBy( length );\n\tconst start = mergeAttributes( insertionPosition );\n\n\t// When no nodes were inserted - return collapsed range.\n\tif ( length === 0 ) {\n\t\treturn new Range( start, start );\n\t} else {\n\t\t// If start position was merged - move end position.\n\t\tif ( !start.isEqual( insertionPosition ) ) {\n\t\t\tendPosition.offset--;\n\t\t}\n\n\t\tconst end = mergeAttributes( endPosition );\n\n\t\treturn new Range( start, end );\n\t}\n}\n\n/**\n * Removes provided range from the container.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when\n * {@link module:engine/view/range~Range#start start} and {@link module:engine/view/range~Range#end end} positions are not placed inside\n * same parent container.\n *\n * @function module:engine/view/writer~writer.remove\n * @param {module:engine/view/range~Range} range Range to remove from container. After removing, it will be updated\n * to a collapsed range showing the new position.\n * @returns {module:engine/view/documentfragment~DocumentFragment} Document fragment containing removed nodes.\n */\nexport function remove( range ) {\n\tvalidateRangeContainer( range );\n\n\t// If range is collapsed - nothing to remove.\n\tif ( range.isCollapsed ) {\n\t\treturn new DocumentFragment();\n\t}\n\n\t// Break attributes at range start and end.\n\tconst { start: breakStart, end: breakEnd } = _breakAttributesRange( range, true );\n\tconst parentContainer = breakStart.parent;\n\n\tconst count = breakEnd.offset - breakStart.offset;\n\n\t// Remove nodes in range.\n\tconst removed = parentContainer.removeChildren( breakStart.offset, count );\n\n\t// Merge after removing.\n\tconst mergePosition = mergeAttributes( breakStart );\n\trange.start = mergePosition;\n\trange.end = Position.createFromPosition( mergePosition );\n\n\t// Return removed nodes.\n\treturn new DocumentFragment( removed );\n}\n\n/**\n * Removes matching elements from given range.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when\n * {@link module:engine/view/range~Range#start start} and {@link module:engine/view/range~Range#end end} positions are not placed inside\n * same parent container.\n *\n * @function module:engine/view/writer~writer.clear\n * @param {module:engine/view/range~Range} range Range to clear.\n * @param {module:engine/view/element~Element} element Element to remove.\n */\nexport function clear( range, element ) {\n\tvalidateRangeContainer( range );\n\n\t// Create walker on given range.\n\t// We walk backward because when we remove element during walk it modifies range end position.\n\tconst walker = range.getWalker( {\n\t\tdirection: 'backward',\n\t\tignoreElementEnd: true\n\t} );\n\n\t// Let's walk.\n\tfor ( const current of walker ) {\n\t\tconst item = current.item;\n\t\tlet rangeToRemove;\n\n\t\t// When current item matches to the given element.\n\t\tif ( item.is( 'element' ) && element.isSimilar( item ) ) {\n\t\t\t// Create range on this element.\n\t\t\trangeToRemove = Range.createOn( item );\n\t\t// When range starts inside Text or TextProxy element.\n\t\t} else if ( !current.nextPosition.isAfter( range.start ) && ( item.is( 'text' ) || item.is( 'textProxy' ) ) ) {\n\t\t\t// We need to check if parent of this text matches to given element.\n\t\t\tconst parentElement = item.getAncestors().find( ancestor => {\n\t\t\t\treturn ancestor.is( 'element' ) && element.isSimilar( ancestor );\n\t\t\t} );\n\n\t\t\t// If it is then create range inside this element.\n\t\t\tif ( parentElement ) {\n\t\t\t\trangeToRemove = Range.createIn( parentElement );\n\t\t\t}\n\t\t}\n\n\t\t// If we have found element to remove.\n\t\tif ( rangeToRemove ) {\n\t\t\t// We need to check if element range stick out of the given range and truncate if it is.\n\t\t\tif ( rangeToRemove.end.isAfter( range.end ) ) {\n\t\t\t\trangeToRemove.end = range.end;\n\t\t\t}\n\n\t\t\tif ( rangeToRemove.start.isBefore( range.start ) ) {\n\t\t\t\trangeToRemove.start = range.start;\n\t\t\t}\n\n\t\t\t// At the end we remove range with found element.\n\t\t\tremove( rangeToRemove );\n\t\t}\n\t}\n}\n\n/**\n * Moves nodes from provided range to target position.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when\n * {@link module:engine/view/range~Range#start start} and {@link module:engine/view/range~Range#end end} positions are not placed inside\n * same parent container.\n *\n * @function module:engine/view/writer~writer.move\n * @param {module:engine/view/range~Range} sourceRange Range containing nodes to move.\n * @param {module:engine/view/position~Position} targetPosition Position to insert.\n * @returns {module:engine/view/range~Range} Range in target container. Inserted nodes are placed between\n * {@link module:engine/view/range~Range#start start} and {@link module:engine/view/range~Range#end end} positions.\n */\nexport function move( sourceRange, targetPosition ) {\n\tlet nodes;\n\n\tif ( targetPosition.isAfter( sourceRange.end ) ) {\n\t\ttargetPosition = _breakAttributes( targetPosition, true );\n\n\t\tconst parent = targetPosition.parent;\n\t\tconst countBefore = parent.childCount;\n\n\t\tsourceRange = _breakAttributesRange( sourceRange, true );\n\n\t\tnodes = remove( sourceRange );\n\n\t\ttargetPosition.offset += ( parent.childCount - countBefore );\n\t} else {\n\t\tnodes = remove( sourceRange );\n\t}\n\n\treturn insert( targetPosition, nodes );\n}\n\n/**\n * Wraps elements within range with provided {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-invalid-range-container`\n * when {@link module:engine/view/range~Range#start}\n * and {@link module:engine/view/range~Range#end} positions are not placed inside same parent container.\n * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n * an instance of {module:engine/view/attributeelement~AttributeElement AttributeElement}.\n *\n * @function module:engine/view/writer~writer.wrap\n * @param {module:engine/view/range~Range} range Range to wrap.\n * @param {module:engine/view/attributeelement~AttributeElement} attribute Attribute element to use as wrapper.\n */\nexport function wrap( range, attribute ) {\n\tif ( !( attribute instanceof AttributeElement ) ) {\n\t\t/**\n\t\t * Attribute element need to be instance of attribute element.\n\t\t *\n\t\t * @error view-writer-wrap-invalid-attribute\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-wrap-invalid-attribute' );\n\t}\n\n\tvalidateRangeContainer( range );\n\n\t// If range is collapsed - nothing to wrap.\n\tif ( range.isCollapsed ) {\n\t\treturn range;\n\t}\n\n\t// Range around one element.\n\tif ( range.end.isEqual( range.start.getShiftedBy( 1 ) ) ) {\n\t\tconst node = range.start.nodeAfter;\n\n\t\tif ( node instanceof AttributeElement && wrapAttributeElement( attribute, node ) ) {\n\t\t\treturn range;\n\t\t}\n\t}\n\n\t// Range is inside single attribute and spans on all children.\n\tif ( rangeSpansOnAllChildren( range ) && wrapAttributeElement( attribute, range.start.parent ) ) {\n\t\tconst parent = range.start.parent.parent;\n\t\tconst index = range.start.parent.index;\n\n\t\treturn Range.createFromParentsAndOffsets( parent, index, parent, index + 1 );\n\t}\n\n\t// Break attributes at range start and end.\n\tconst { start: breakStart, end: breakEnd } = _breakAttributesRange( range, true );\n\tconst parentContainer = breakStart.parent;\n\n\t// Unwrap children located between break points.\n\tconst unwrappedRange = unwrapChildren( parentContainer, breakStart.offset, breakEnd.offset, attribute );\n\n\t// Wrap all children with attribute.\n\tconst newRange = wrapChildren( parentContainer, unwrappedRange.start.offset, unwrappedRange.end.offset, attribute );\n\n\t// Merge attributes at the both ends and return a new range.\n\tconst start = mergeAttributes( newRange.start );\n\n\t// If start position was merged - move end position back.\n\tif ( !start.isEqual( newRange.start ) ) {\n\t\tnewRange.end.offset--;\n\t}\n\tconst end = mergeAttributes( newRange.end );\n\n\treturn new Range( start, end );\n}\n\n/**\n * Wraps position with provided attribute. Returns new position after wrapping. This method will also merge newly\n * added attribute with its siblings whenever possible.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n * an instance of {module:engine/view/attributeelement~AttributeElement AttributeElement}.\n *\n * @param {module:engine/view/position~Position} position\n * @param {module:engine/view/attributeelement~AttributeElement} attribute\n * @returns {module:engine/view/position~Position} New position after wrapping.\n */\nexport function wrapPosition( position, attribute ) {\n\tif ( !( attribute instanceof AttributeElement ) ) {\n\t\t/**\n\t\t * Attribute element need to be instance of attribute element.\n\t\t *\n\t\t * @error view-writer-wrap-invalid-attribute\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-wrap-invalid-attribute' );\n\t}\n\n\t// Return same position when trying to wrap with attribute similar to position parent.\n\tif ( attribute.isSimilar( position.parent ) ) {\n\t\treturn movePositionToTextNode( Position.createFromPosition( position ) );\n\t}\n\n\t// When position is inside text node - break it and place new position between two text nodes.\n\tif ( position.parent.is( 'text' ) ) {\n\t\tposition = breakTextNode( position );\n\t}\n\n\t// Create fake element that will represent position, and will not be merged with other attributes.\n\tconst fakePosition = new AttributeElement();\n\tfakePosition.priority = Number.POSITIVE_INFINITY;\n\tfakePosition.isSimilar = () => false;\n\n\t// Insert fake element in position location.\n\tposition.parent.insertChildren( position.offset, fakePosition );\n\n\t// Range around inserted fake attribute element.\n\tconst wrapRange = new Range( position, position.getShiftedBy( 1 ) );\n\n\t// Wrap fake element with attribute (it will also merge if possible).\n\twrap( wrapRange, attribute );\n\n\t// Remove fake element and place new position there.\n\tconst newPosition = new Position( fakePosition.parent, fakePosition.index );\n\tfakePosition.remove();\n\n\t// If position is placed between text nodes - merge them and return position inside.\n\tconst nodeBefore = newPosition.nodeBefore;\n\tconst nodeAfter = newPosition.nodeAfter;\n\n\tif ( nodeBefore instanceof Text && nodeAfter instanceof Text ) {\n\t\treturn mergeTextNodes( nodeBefore, nodeAfter );\n\t}\n\n\t// If position is next to text node - move position inside.\n\treturn movePositionToTextNode( newPosition );\n}\n\n/**\n * Unwraps nodes within provided range from attribute element.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when\n * {@link module:engine/view/range~Range#start start} and {@link module:engine/view/range~Range#end end} positions are not placed inside\n * same parent container.\n *\n * @param {module:engine/view/range~Range} range\n * @param {module:engine/view/attributeelement~AttributeElement} element\n */\nexport function unwrap( range, attribute ) {\n\tif ( !( attribute instanceof AttributeElement ) ) {\n\t\t/**\n\t\t * Attribute element need to be instance of attribute element.\n\t\t *\n\t\t * @error view-writer-unwrap-invalid-attribute\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-unwrap-invalid-attribute' );\n\t}\n\n\tvalidateRangeContainer( range );\n\n\t// If range is collapsed - nothing to unwrap.\n\tif ( range.isCollapsed ) {\n\t\treturn range;\n\t}\n\n\t// Range around one element - check if AttributeElement can be unwrapped partially when it's not similar.\n\t// For example:\n\t// unwrap with:\t

result: \n\tif ( range.end.isEqual( range.start.getShiftedBy( 1 ) ) ) {\n\t\tconst node = range.start.nodeAfter;\n\n\t\t// Unwrap single attribute element.\n\t\tif ( !attribute.isSimilar( node ) && node instanceof AttributeElement && unwrapAttributeElement( attribute, node ) ) {\n\t\t\treturn range;\n\t\t}\n\t}\n\n\t// Break attributes at range start and end.\n\tconst { start: breakStart, end: breakEnd } = _breakAttributesRange( range, true );\n\tconst parentContainer = breakStart.parent;\n\n\t// Unwrap children located between break points.\n\tconst newRange = unwrapChildren( parentContainer, breakStart.offset, breakEnd.offset, attribute );\n\n\t// Merge attributes at the both ends and return a new range.\n\tconst start = mergeAttributes( newRange.start );\n\n\t// If start position was merged - move end position back.\n\tif ( !start.isEqual( newRange.start ) ) {\n\t\tnewRange.end.offset--;\n\t}\n\tconst end = mergeAttributes( newRange.end );\n\n\treturn new Range( start, end );\n}\n\n/**\n * Renames element by creating a copy of renamed element but with changed name and then moving contents of the\n * old element to the new one. Keep in mind that this will invalidate all {@link module:engine/view/position~Position positions} which\n * has renamed element as {@link module:engine/view/position~Position#parent a parent}.\n *\n * New element has to be created because `Element#tagName` property in DOM is readonly.\n *\n * Since this function creates a new element and removes the given one, the new element is returned to keep reference.\n *\n * @param {module:engine/view/containerelement~ContainerElement} viewElement Element to be renamed.\n * @param {String} newName New name for element.\n */\nexport function rename( viewElement, newName ) {\n\tconst newElement = new ContainerElement( newName, viewElement.getAttributes() );\n\n\tinsert( Position.createAfter( viewElement ), newElement );\n\tmove( Range.createIn( viewElement ), Position.createAt( newElement ) );\n\tremove( Range.createOn( viewElement ) );\n\n\treturn newElement;\n}\n\n// Returns first parent container of specified {@link module:engine/view/position~Position Position}.\n// Position's parent node is checked as first, then next parents are checked.\n// Note that {@link module:engine/view/documentfragment~DocumentFragment DocumentFragment} is treated like a container.\n//\n// @param {module:engine/view/position~Position} position Position used as a start point to locate parent container.\n// @returns {module:engine/view/containerelement~ContainerElement|module:engine/view/documentfragment~DocumentFragment|undefined}\n// Parent container element or `undefined` if container is not found.\nfunction getParentContainer( position ) {\n\tlet parent = position.parent;\n\n\twhile ( !isContainerOrFragment( parent ) ) {\n\t\tif ( !parent ) {\n\t\t\treturn undefined;\n\t\t}\n\t\tparent = parent.parent;\n\t}\n\n\treturn parent;\n}\n\n// Function used by both public breakAttributes (without splitting text nodes) and by other methods (with\n// splitting text nodes).\n//\n// @param {module:engine/view/range~Range} range Range which `start` and `end` positions will be used to break attributes.\n// @param {Boolean} [forceSplitText = false] If set to `true`, will break text nodes even if they are directly in\n// container element. This behavior will result in incorrect view state, but is needed by other view writing methods\n// which then fixes view state. Defaults to `false`.\n// @returns {module:engine/view/range~Range} New range with located at break positions.\nfunction _breakAttributesRange( range, forceSplitText = false ) {\n\tconst rangeStart = range.start;\n\tconst rangeEnd = range.end;\n\n\tvalidateRangeContainer( range );\n\n\t// Break at the collapsed position. Return new collapsed range.\n\tif ( range.isCollapsed ) {\n\t\tconst position = _breakAttributes( range.start, forceSplitText );\n\n\t\treturn new Range( position, position );\n\t}\n\n\tconst breakEnd = _breakAttributes( rangeEnd, forceSplitText );\n\tconst count = breakEnd.parent.childCount;\n\tconst breakStart = _breakAttributes( rangeStart, forceSplitText );\n\n\t// Calculate new break end offset.\n\tbreakEnd.offset += breakEnd.parent.childCount - count;\n\n\treturn new Range( breakStart, breakEnd );\n}\n\n// Function used by public breakAttributes (without splitting text nodes) and by other methods (with\n// splitting text nodes).\n//\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-empty-element` when break position\n// is placed inside {@link module:engine/view/emptyelement~EmptyElement EmptyElement}.\n//\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-ui-element` when break position\n// is placed inside {@link module:engine/view/uielement~UIElement UIElement}.\n//\n// @param {module:engine/view/position~Position} position Position where to break attributes.\n// @param {Boolean} [forceSplitText = false] If set to `true`, will break text nodes even if they are directly in\n// container element. This behavior will result in incorrect view state, but is needed by other view writing methods\n// which then fixes view state. Defaults to `false`.\n// @returns {module:engine/view/position~Position} New position after breaking the attributes.\nfunction _breakAttributes( position, forceSplitText = false ) {\n\tconst positionOffset = position.offset;\n\tconst positionParent = position.parent;\n\n\t// If position is placed inside EmptyElement - throw an exception as we cannot break inside.\n\tif ( position.parent.is( 'emptyElement' ) ) {\n\t\t/**\n\t\t * Cannot break inside EmptyElement instance.\n\t\t *\n\t\t * @error view-writer-cannot-break-empty-element\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-cannot-break-empty-element' );\n\t}\n\n\t// If position is placed inside UIElement - throw an exception as we cannot break inside.\n\tif ( position.parent.is( 'uiElement' ) ) {\n\t\t/**\n\t\t * Cannot break inside UIElement instance.\n\t\t *\n\t\t * @error view-writer-cannot-break-ui-element\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-cannot-break-ui-element' );\n\t}\n\n\t// There are no attributes to break and text nodes breaking is not forced.\n\tif ( !forceSplitText && positionParent.is( 'text' ) && isContainerOrFragment( positionParent.parent ) ) {\n\t\treturn Position.createFromPosition( position );\n\t}\n\n\t// Position's parent is container, so no attributes to break.\n\tif ( isContainerOrFragment( positionParent ) ) {\n\t\treturn Position.createFromPosition( position );\n\t}\n\n\t// Break text and start again in new position.\n\tif ( positionParent.is( 'text' ) ) {\n\t\treturn _breakAttributes( breakTextNode( position ), forceSplitText );\n\t}\n\n\tconst length = positionParent.childCount;\n\n\t//

foobar{}

\n\t//

foobar[]

\n\t//

foobar[]

\n\tif ( positionOffset == length ) {\n\t\tconst newPosition = new Position( positionParent.parent, positionParent.index + 1 );\n\n\t\treturn _breakAttributes( newPosition, forceSplitText );\n\t} else\n\t//

foo{}bar

\n\t//

foo[]bar

\n\t//

foo{}bar

\n\tif ( positionOffset === 0 ) {\n\t\tconst newPosition = new Position( positionParent.parent, positionParent.index );\n\n\t\treturn _breakAttributes( newPosition, forceSplitText );\n\t}\n\t//

foob{}ar

\n\t//

foob[]ar

\n\t//

foob[]ar

\n\t//

foob[]ar

\n\telse {\n\t\tconst offsetAfter = positionParent.index + 1;\n\n\t\t// Break element.\n\t\tconst clonedNode = positionParent.clone();\n\n\t\t// Insert cloned node to position's parent node.\n\t\tpositionParent.parent.insertChildren( offsetAfter, clonedNode );\n\n\t\t// Get nodes to move.\n\t\tconst count = positionParent.childCount - positionOffset;\n\t\tconst nodesToMove = positionParent.removeChildren( positionOffset, count );\n\n\t\t// Move nodes to cloned node.\n\t\tclonedNode.appendChildren( nodesToMove );\n\n\t\t// Create new position to work on.\n\t\tconst newPosition = new Position( positionParent.parent, offsetAfter );\n\n\t\treturn _breakAttributes( newPosition, forceSplitText );\n\t}\n}\n\n// Unwraps children from provided `attribute`. Only children contained in `parent` element between\n// `startOffset` and `endOffset` will be unwrapped.\n//\n// @param {module:engine/view/element~Element} parent\n// @param {Number} startOffset\n// @param {Number} endOffset\n// @param {module:engine/view/element~Element} attribute\nfunction unwrapChildren( parent, startOffset, endOffset, attribute ) {\n\tlet i = startOffset;\n\tconst unwrapPositions = [];\n\n\t// Iterate over each element between provided offsets inside parent.\n\twhile ( i < endOffset ) {\n\t\tconst child = parent.getChild( i );\n\n\t\t// If attributes are the similar, then unwrap.\n\t\tif ( child.isSimilar( attribute ) ) {\n\t\t\tconst unwrapped = child.getChildren();\n\t\t\tconst count = child.childCount;\n\n\t\t\t// Replace wrapper element with its children\n\t\t\tchild.remove();\n\t\t\tparent.insertChildren( i, unwrapped );\n\n\t\t\t// Save start and end position of moved items.\n\t\t\tunwrapPositions.push(\n\t\t\t\tnew Position( parent, i ),\n\t\t\t\tnew Position( parent, i + count )\n\t\t\t);\n\n\t\t\t// Skip elements that were unwrapped. Assuming that there won't be another element to unwrap in child\n\t\t\t// elements.\n\t\t\ti += count;\n\t\t\tendOffset += count - 1;\n\t\t} else {\n\t\t\t// If other nested attribute is found start unwrapping there.\n\t\t\tif ( child.is( 'attributeElement' ) ) {\n\t\t\t\tunwrapChildren( child, 0, child.childCount, attribute );\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\t}\n\n\t// Merge at each unwrap.\n\tlet offsetChange = 0;\n\n\tfor ( const position of unwrapPositions ) {\n\t\tposition.offset -= offsetChange;\n\n\t\t// Do not merge with elements outside selected children.\n\t\tif ( position.offset == startOffset || position.offset == endOffset ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst newPosition = mergeAttributes( position );\n\n\t\t// If nodes were merged - other merge offsets will change.\n\t\tif ( !newPosition.isEqual( position ) ) {\n\t\t\toffsetChange++;\n\t\t\tendOffset--;\n\t\t}\n\t}\n\n\treturn Range.createFromParentsAndOffsets( parent, startOffset, parent, endOffset );\n}\n\n// Wraps children with provided `attribute`. Only children contained in `parent` element between\n// `startOffset` and `endOffset` will be wrapped.\n//\n// @param {module:engine/view/element~Element} parent\n// @param {Number} startOffset\n// @param {Number} endOffset\n// @param {module:engine/view/element~Element} attribute\nfunction wrapChildren( parent, startOffset, endOffset, attribute ) {\n\tlet i = startOffset;\n\tconst wrapPositions = [];\n\n\twhile ( i < endOffset ) {\n\t\tconst child = parent.getChild( i );\n\t\tconst isText = child.is( 'text' );\n\t\tconst isAttribute = child.is( 'attributeElement' );\n\t\tconst isEmpty = child.is( 'emptyElement' );\n\t\tconst isUI = child.is( 'uiElement' );\n\n\t\t// Wrap text, empty elements, ui elements or attributes with higher or equal priority.\n\t\tif ( isText || isEmpty || isUI || ( isAttribute && attribute.priority <= child.priority ) ) {\n\t\t\t// Clone attribute.\n\t\t\tconst newAttribute = attribute.clone();\n\n\t\t\t// Wrap current node with new attribute;\n\t\t\tchild.remove();\n\t\t\tnewAttribute.appendChildren( child );\n\t\t\tparent.insertChildren( i, newAttribute );\n\n\t\t\twrapPositions.push(\tnew Position( parent, i ) );\n\t\t}\n\t\t// If other nested attribute is found start wrapping there.\n\t\telse if ( isAttribute ) {\n\t\t\twrapChildren( child, 0, child.childCount, attribute );\n\t\t}\n\n\t\ti++;\n\t}\n\n\t// Merge at each wrap.\n\tlet offsetChange = 0;\n\n\tfor ( const position of wrapPositions ) {\n\t\tposition.offset -= offsetChange;\n\n\t\t// Do not merge with elements outside selected children.\n\t\tif ( position.offset == startOffset ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst newPosition = mergeAttributes( position );\n\n\t\t// If nodes were merged - other merge offsets will change.\n\t\tif ( !newPosition.isEqual( position ) ) {\n\t\t\toffsetChange++;\n\t\t\tendOffset--;\n\t\t}\n\t}\n\n\treturn Range.createFromParentsAndOffsets( parent, startOffset, parent, endOffset );\n}\n\n// Returns new position that is moved to near text node. Returns same position if there is no text node before of after\n// specified position.\n//\n//\t\t

foo[]

->

foo{}

\n//\t\t

[]foo

->

{}foo

\n//\n// @param {module:engine/view/position~Position} position\n// @returns {module:engine/view/position~Position} Position located inside text node or same position if there is no text nodes\n// before or after position location.\nfunction movePositionToTextNode( position ) {\n\tconst nodeBefore = position.nodeBefore;\n\n\tif ( nodeBefore && nodeBefore.is( 'text' ) ) {\n\t\treturn new Position( nodeBefore, nodeBefore.data.length );\n\t}\n\n\tconst nodeAfter = position.nodeAfter;\n\n\tif ( nodeAfter && nodeAfter.is( 'text' ) ) {\n\t\treturn new Position( nodeAfter, 0 );\n\t}\n\n\treturn position;\n}\n\n// Breaks text node into two text nodes when possible.\n//\n//\t\t

foo{}bar

->

foo[]bar

\n//\t\t

{}foobar

->

[]foobar

\n//\t\t

foobar{}

->

foobar[]

\n//\n// @param {module:engine/view/position~Position} position Position that need to be placed inside text node.\n// @returns {module:engine/view/position~Position} New position after breaking text node.\nfunction breakTextNode( position ) {\n\tif ( position.offset == position.parent.data.length ) {\n\t\treturn new Position( position.parent.parent, position.parent.index + 1 );\n\t}\n\n\tif ( position.offset === 0 ) {\n\t\treturn new Position( position.parent.parent, position.parent.index );\n\t}\n\n\t// Get part of the text that need to be moved.\n\tconst textToMove = position.parent.data.slice( position.offset );\n\n\t// Leave rest of the text in position's parent.\n\tposition.parent.data = position.parent.data.slice( 0, position.offset );\n\n\t// Insert new text node after position's parent text node.\n\tposition.parent.parent.insertChildren( position.parent.index + 1, new Text( textToMove ) );\n\n\t// Return new position between two newly created text nodes.\n\treturn new Position( position.parent.parent, position.parent.index + 1 );\n}\n\n// Merges two text nodes into first node. Removes second node and returns merge position.\n//\n// @param {module:engine/view/text~Text} t1 First text node to merge. Data from second text node will be moved at the end of\n// this text node.\n// @param {module:engine/view/text~Text} t2 Second text node to merge. This node will be removed after merging.\n// @returns {module:engine/view/position~Position} Position after merging text nodes.\nfunction mergeTextNodes( t1, t2 ) {\n\t// Merge text data into first text node and remove second one.\n\tconst nodeBeforeLength = t1.data.length;\n\tt1.data += t2.data;\n\tt2.remove();\n\n\treturn new Position( t1, nodeBeforeLength );\n}\n\n// Wraps one {@link module:engine/view/attributeelement~AttributeElement AttributeElement} into another by merging them if possible.\n// Two AttributeElements can be merged when there is no attribute or style conflicts between them.\n// When merging is possible - all attributes, styles and classes are moved from wrapper element to element being\n// wrapped.\n//\n// @param {module:engine/view/attributeelement~AttributeElement} wrapper Wrapper AttributeElement.\n// @param {module:engine/view/attributeelement~AttributeElement} toWrap AttributeElement to wrap using wrapper element.\n// @returns {Boolean} Returns `true` if elements are merged.\nfunction wrapAttributeElement( wrapper, toWrap ) {\n\t// Can't merge if name or priority differs.\n\tif ( wrapper.name !== toWrap.name || wrapper.priority !== toWrap.priority ) {\n\t\treturn false;\n\t}\n\n\t// Check if attributes can be merged.\n\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t// Classes and styles should be checked separately.\n\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// If some attributes are different we cannot wrap.\n\t\tif ( toWrap.hasAttribute( key ) && toWrap.getAttribute( key ) !== wrapper.getAttribute( key ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Check if styles can be merged.\n\tfor ( const key of wrapper.getStyleNames() ) {\n\t\tif ( toWrap.hasStyle( key ) && toWrap.getStyle( key ) !== wrapper.getStyle( key ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Move all attributes/classes/styles from wrapper to wrapped AttributeElement.\n\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t// Classes and styles should be checked separately.\n\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Move only these attributes that are not present - other are similar.\n\t\tif ( !toWrap.hasAttribute( key ) ) {\n\t\t\ttoWrap.setAttribute( key, wrapper.getAttribute( key ) );\n\t\t}\n\t}\n\n\tfor ( const key of wrapper.getStyleNames() ) {\n\t\tif ( !toWrap.hasStyle( key ) ) {\n\t\t\ttoWrap.setStyle( key, wrapper.getStyle( key ) );\n\t\t}\n\t}\n\n\tfor ( const key of wrapper.getClassNames() ) {\n\t\tif ( !toWrap.hasClass( key ) ) {\n\t\t\ttoWrap.addClass( key );\n\t\t}\n\t}\n\n\treturn true;\n}\n\n// Unwraps {@link module:engine/view/attributeelement~AttributeElement AttributeElement} from another by removing corresponding attributes,\n// classes and styles. All attributes, classes and styles from wrapper should be present inside element being unwrapped.\n//\n// @param {module:engine/view/attributeelement~AttributeElement} wrapper Wrapper AttributeElement.\n// @param {module:engine/view/attributeelement~AttributeElement} toUnwrap AttributeElement to unwrap using wrapper element.\n// @returns {Boolean} Returns `true` if elements are unwrapped.\nfunction unwrapAttributeElement( wrapper, toUnwrap ) {\n\t// Can't unwrap if name or priority differs.\n\tif ( wrapper.name !== toUnwrap.name || wrapper.priority !== toUnwrap.priority ) {\n\t\treturn false;\n\t}\n\n\t// Check if AttributeElement has all wrapper attributes.\n\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t// Classes and styles should be checked separately.\n\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// If some attributes are missing or different we cannot unwrap.\n\t\tif ( !toUnwrap.hasAttribute( key ) || toUnwrap.getAttribute( key ) !== wrapper.getAttribute( key ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Check if AttributeElement has all wrapper classes.\n\tif ( !toUnwrap.hasClass( ...wrapper.getClassNames() ) ) {\n\t\treturn false;\n\t}\n\n\t// Check if AttributeElement has all wrapper styles.\n\tfor ( const key of wrapper.getStyleNames() ) {\n\t\t// If some styles are missing or different we cannot unwrap.\n\t\tif ( !toUnwrap.hasStyle( key ) || toUnwrap.getStyle( key ) !== wrapper.getStyle( key ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Remove all wrapper's attributes from unwrapped element.\n\tfor ( const key of wrapper.getAttributeKeys() ) {\n\t\t// Classes and styles should be checked separately.\n\t\tif ( key === 'class' || key === 'style' ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttoUnwrap.removeAttribute( key );\n\t}\n\n\t// Remove all wrapper's classes from unwrapped element.\n\ttoUnwrap.removeClass( ...wrapper.getClassNames() );\n\n\t// Remove all wrapper's styles from unwrapped element.\n\ttoUnwrap.removeStyle( ...wrapper.getStyleNames() );\n\n\treturn true;\n}\n\n// Returns `true` if range is located in same {@link module:engine/view/attributeelement~AttributeElement AttributeElement}\n// (`start` and `end` positions are located inside same {@link module:engine/view/attributeelement~AttributeElement AttributeElement}),\n// starts on 0 offset and ends after last child node.\n//\n// @param {module:engine/view/range~Range} Range\n// @returns {Boolean}\nfunction rangeSpansOnAllChildren( range ) {\n\treturn range.start.parent == range.end.parent && range.start.parent.is( 'attributeElement' ) &&\n\t\trange.start.offset === 0 && range.end.offset === range.start.parent.childCount;\n}\n\n// Checks if provided nodes are valid to insert. Checks if each node is an instance of\n// {@link module:engine/view/text~Text Text} or {@link module:engine/view/attributeelement~AttributeElement AttributeElement},\n// {@link module:engine/view/containerelement~ContainerElement ContainerElement},\n// {@link module:engine/view/emptyelement~EmptyElement EmptyElement} or\n// {@link module:engine/view/uielement~UIElement UIElement}.\n//\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-insert-invalid-node` when nodes to insert\n// contains instances that are not {@link module:engine/view/text~Text Texts},\n// {@link module:engine/view/emptyelement~EmptyElement EmptyElements},\n// {@link module:engine/view/uielement~UIElement UIElements},\n// {@link module:engine/view/attributeelement~AttributeElement AttributeElements} or\n// {@link module:engine/view/containerelement~ContainerElement ContainerElements}.\n//\n// @param Iterable. nodes\nfunction validateNodesToInsert( nodes ) {\n\tfor ( const node of nodes ) {\n\t\tif ( !validNodesToInsert.some( ( validNode => node instanceof validNode ) ) ) { // eslint-disable-line no-use-before-define\n\t\t\t/**\n\t\t\t * Inserted nodes should be valid to insert. of {@link module:engine/view/attributeelement~AttributeElement AttributeElement},\n\t\t\t * {@link module:engine/view/containerelement~ContainerElement ContainerElement},\n\t\t\t * {@link module:engine/view/emptyelement~EmptyElement EmptyElement},\n\t\t\t * {@link module:engine/view/uielement~UIElement UIElement}, {@link module:engine/view/text~Text Text}.\n\t\t\t *\n\t\t\t * @error view-writer-insert-invalid-node\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-writer-insert-invalid-node' );\n\t\t}\n\n\t\tif ( !node.is( 'text' ) ) {\n\t\t\tvalidateNodesToInsert( node.getChildren() );\n\t\t}\n\t}\n}\n\nconst validNodesToInsert = [ Text, AttributeElement, ContainerElement, EmptyElement, UIElement ];\n\n// Checks if node is ContainerElement or DocumentFragment, because in most cases they should be treated the same way.\n//\n// @param {module:engine/view/node~Node} node\n// @returns {Boolean} Returns `true` if node is instance of ContainerElement or DocumentFragment.\nfunction isContainerOrFragment( node ) {\n\treturn node && ( node.is( 'containerElement' ) || node.is( 'documentFragment' ) );\n}\n\n// Checks if {@link module:engine/view/range~Range#start range start} and {@link module:engine/view/range~Range#end range end} are placed\n// inside same {@link module:engine/view/containerelement~ContainerElement container element}.\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when validation fails.\n//\n// @param {module:engine/view/range~Range} range\nfunction validateRangeContainer( range ) {\n\tconst startContainer = getParentContainer( range.start );\n\tconst endContainer = getParentContainer( range.end );\n\n\tif ( !startContainer || !endContainer || startContainer !== endContainer ) {\n\t\t/**\n\t\t * Range container is invalid. This can happen if {@link module:engine/view/range~Range#start range start} and\n\t\t * {@link module:engine/view/range~Range#end range end} positions are not placed inside same container or\n\t\t * parent container for these positions cannot be found.\n\t\t *\n\t\t * @error view-writer-invalid-range-container\n\t\t */\n\t\tthrow new CKEditorError( 'view-writer-invalid-range-container' );\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/view/writer.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module utils/uid\n */\n\n/**\n * Returns a unique id. This id is a number (starting from 1) which will never get repeated on successive calls\n * to this method.\n *\n * @returns {String} A number representing the id.\n */\nexport default function uid() {\n\tlet uuid = 'e'; // Make sure that id does not start with number.\n\n\tfor ( let i = 0; i < 8; i++ ) {\n\t\tuuid += Math.floor( ( 1 + Math.random() ) * 0x10000 ).toString( 16 ).substring( 1 );\n\t}\n\n\treturn uuid;\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/uid.js","import apply from './_apply';\nimport toInteger from './toInteger';\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : toInteger(start), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, array);\n case 1: return func.call(this, args[0], array);\n case 2: return func.call(this, args[0], args[1], array);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\nexport default rest;\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/lib/lodash/rest.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/model/position\n */\n\nimport TreeWalker from './treewalker';\nimport last from '@ckeditor/ckeditor5-utils/src/lib/lodash/last';\nimport compareArrays from '@ckeditor/ckeditor5-utils/src/comparearrays';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport Text from './text';\n\n/**\n * Represents a position in the model tree.\n *\n * **Note:** Position is based on offsets, not indexes. This means that position in element containing two text nodes\n * with data `foo` and `bar`, position between them has offset `3`, not `1`.\n * See {@link module:engine/model/position~Position#path} for more.\n *\n * Since position in a model is represented by a {@link module:engine/model/position~Position#root position root} and\n * {@link module:engine/model/position~Position#path position path} it is possible to create positions placed in non-existing elements.\n * This requirement is important for {@link module:engine/model/operation/transform~transform operational transformation}.\n *\n * Also, {@link module:engine/model/operation/operation~Operation operations}\n * kept in {@link module:engine/model/document~Document#history document history}\n * are storing positions (and ranges) which were correct when those operations were applied, but may not be correct\n * after document got changed.\n *\n * When changes are applied to model, it may also happen that {@link module:engine/model/position~Position#parent position parent}\n * will change even if position path has not changed. Keep in mind, that if a position leads to non-existing element,\n * {@link module:engine/model/position~Position#parent} and some other properties and methods will throw errors.\n *\n * In most cases, position with wrong path is caused by an error in code, but it is sometimes needed, as described above.\n */\nexport default class Position {\n\t/**\n\t * Creates a position.\n\t *\n\t * @param {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment} root Root of the position.\n\t * @param {Array.} path Position path. See {@link module:engine/model/position~Position#path}.\n\t */\n\tconstructor( root, path ) {\n\t\tif ( !root.is( 'element' ) && !root.is( 'documentFragment' ) ) {\n\t\t\t/**\n\t\t\t * Position root invalid.\n\t\t\t *\n\t\t\t * @error position-root-invalid.\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'model-position-root-invalid: Position root invalid.' );\n\t\t}\n\n\t\tif ( !( path instanceof Array ) || path.length === 0 ) {\n\t\t\t/**\n\t\t\t * Position path must be an Array with at least one item.\n\t\t\t *\n\t\t\t * @error position-path-incorrect\n\t\t\t * @param path\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'model-position-path-incorrect: Position path must be an Array with at least one item.', { path } );\n\t\t}\n\n\t\t// Normalize the root and path (if element was passed).\n\t\tpath = root.getPath().concat( path );\n\t\troot = root.root;\n\n\t\t/**\n\t\t * Root of the position path.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment}\n\t\t * module:engine/model/position~Position#root\n\t\t */\n\t\tthis.root = root;\n\n\t\t/**\n\t\t * Position of the node it the tree. Path is described through offsets, not indexes.\n\t\t *\n\t\t * Position can be placed before, after or in a {@link module:engine/model/node~Node node} if that node has\n\t\t * {@link module:engine/model/node~Node#offsetSize} greater than `1`. Items in position path are\n\t\t * {@link module:engine/model/node~Node#startOffset starting offsets} of position ancestors, starting from direct root children,\n\t\t * down to the position offset in it's parent.\n\t\t *\n\t\t *\t\t ROOT\n\t\t *\t\t |- P before: [ 0 ] after: [ 1 ]\n\t\t *\t\t |- UL before: [ 1 ] after: [ 2 ]\n\t\t *\t\t |- LI before: [ 1, 0 ] after: [ 1, 1 ]\n\t\t *\t\t | |- foo before: [ 1, 0, 0 ] after: [ 1, 0, 3 ]\n\t\t *\t\t |- LI before: [ 1, 1 ] after: [ 1, 2 ]\n\t\t *\t\t |- bar before: [ 1, 1, 0 ] after: [ 1, 1, 3 ]\n\t\t *\n\t\t * `foo` and `bar` are representing {@link module:engine/model/text~Text text nodes}. Since text nodes has offset size\n\t\t * greater than `1` you can place position offset between their start and end:\n\t\t *\n\t\t *\t\t ROOT\n\t\t *\t\t |- P\n\t\t *\t\t |- UL\n\t\t *\t\t |- LI\n\t\t *\t\t | |- f^o|o ^ has path: [ 1, 0, 1 ] | has path: [ 1, 0, 2 ]\n\t\t *\t\t |- LI\n\t\t *\t\t |- b^a|r ^ has path: [ 1, 1, 1 ] | has path: [ 1, 1, 2 ]\n\t\t *\n\t\t * @member {Array.} module:engine/model/position~Position#path\n\t\t */\n\t\tthis.path = path;\n\t}\n\n\t/**\n\t * Offset at which this position is located in its {@link module:engine/model/position~Position#parent parent}. It is equal\n\t * to the last item in position {@link module:engine/model/position~Position#path path}.\n\t *\n\t * @type {Number}\n\t */\n\tget offset() {\n\t\treturn last( this.path );\n\t}\n\n\t/**\n\t * @param {Number} newOffset\n\t */\n\tset offset( newOffset ) {\n\t\tthis.path[ this.path.length - 1 ] = newOffset;\n\t}\n\n\t/**\n\t * Parent element of this position.\n\t *\n\t * Keep in mind that `parent` value is calculated when the property is accessed.\n\t * If {@link module:engine/model/position~Position#path position path}\n\t * leads to a non-existing element, `parent` property will throw error.\n\t *\n\t * Also it is a good idea to cache `parent` property if it is used frequently in an algorithm (i.e. in a long loop).\n\t *\n\t * @readonly\n\t * @type {module:engine/model/element~Element}\n\t */\n\tget parent() {\n\t\tlet parent = this.root;\n\n\t\tfor ( let i = 0; i < this.path.length - 1; i++ ) {\n\t\t\tparent = parent.getChild( parent.offsetToIndex( this.path[ i ] ) );\n\t\t}\n\n\t\treturn parent;\n\t}\n\n\t/**\n\t * Position {@link module:engine/model/position~Position#offset offset} converted to an index in position's parent node. It is\n\t * equal to the {@link module:engine/model/node~Node#index index} of a node after this position. If position is placed\n\t * in text node, position index is equal to the index of that text node.\n\t *\n\t * @readonly\n\t * @type {Number}\n\t */\n\tget index() {\n\t\treturn this.parent.offsetToIndex( this.offset );\n\t}\n\n\t/**\n\t * Returns {@link module:engine/model/text~Text text node} instance in which this position is placed or `null` if this\n\t * position is not in a text node.\n\t *\n\t * @readonly\n\t * @type {module:engine/model/text~Text|null}\n\t */\n\tget textNode() {\n\t\tconst node = this.parent.getChild( this.index );\n\n\t\treturn ( node instanceof Text && node.startOffset < this.offset ) ? node : null;\n\t}\n\n\t/**\n\t * Node directly after this position or `null` if this position is in text node.\n\t *\n\t * @readonly\n\t * @type {module:engine/model/node~Node|null}\n\t */\n\tget nodeAfter() {\n\t\treturn this.textNode === null ? this.parent.getChild( this.index ) : null;\n\t}\n\n\t/**\n\t * Node directly before this position or `null` if this position is in text node.\n\t *\n\t * @readonly\n\t * @type {Node}\n\t */\n\tget nodeBefore() {\n\t\treturn this.textNode === null ? this.parent.getChild( this.index - 1 ) : null;\n\t}\n\n\t/**\n\t * Is `true` if position is at the beginning of its {@link module:engine/model/position~Position#parent parent}, `false` otherwise.\n\t *\n\t * @readonly\n\t * @type {Boolean}\n\t */\n\tget isAtStart() {\n\t\treturn this.offset === 0;\n\t}\n\n\t/**\n\t * Is `true` if position is at the end of its {@link module:engine/model/position~Position#parent parent}, `false` otherwise.\n\t *\n\t * @readonly\n\t * @type {Boolean}\n\t */\n\tget isAtEnd() {\n\t\treturn this.offset == this.parent.maxOffset;\n\t}\n\n\t/**\n\t * Checks whether this position is before or after given position.\n\t *\n\t * @param {module:engine/model/position~Position} otherPosition Position to compare with.\n\t * @returns {module:engine/model/position~PositionRelation}\n\t */\n\tcompareWith( otherPosition ) {\n\t\tif ( this.root != otherPosition.root ) {\n\t\t\treturn 'different';\n\t\t}\n\n\t\tconst result = compareArrays( this.path, otherPosition.path );\n\n\t\tswitch ( result ) {\n\t\t\tcase 'same':\n\t\t\t\treturn 'same';\n\n\t\t\tcase 'prefix':\n\t\t\t\treturn 'before';\n\n\t\t\tcase 'extension':\n\t\t\t\treturn 'after';\n\n\t\t\tdefault:\n\t\t\t\tif ( this.path[ result ] < otherPosition.path[ result ] ) {\n\t\t\t\t\treturn 'before';\n\t\t\t\t} else {\n\t\t\t\t\treturn 'after';\n\t\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Gets the farthest position which matches the callback using\n\t * {@link module:engine/model/treewalker~TreeWalker TreeWalker}.\n\t *\n\t * For example:\n\t *\n\t * \t\tgetLastMatchingPosition( value => value.type == 'text' );\n\t * \t\t// []foo -> foo[]\n\t *\n\t * \t\tgetLastMatchingPosition( value => value.type == 'text', { direction: 'backward' } );\n\t * \t\t// foo[] -> []foo\n\t *\n\t * \t\tgetLastMatchingPosition( value => false );\n\t * \t\t// Do not move the position.\n\t *\n\t * @param {Function} skip Callback function. Gets {@link module:engine/model/treewalker~TreeWalkerValue} and should\n\t * return `true` if the value should be skipped or `false` if not.\n\t * @param {Object} options Object with configuration options. See {@link module:engine/model/treewalker~TreeWalker}.\n\t *\n\t * @returns {module:engine/model/position~Position} The position after the last item which matches the `skip` callback test.\n\t */\n\tgetLastMatchingPosition( skip, options = {} ) {\n\t\toptions.startPosition = this;\n\n\t\tconst treeWalker = new TreeWalker( options );\n\t\ttreeWalker.skip( skip );\n\n\t\treturn treeWalker.position;\n\t}\n\n\t/**\n\t * Returns a path to this position's parent. Parent path is equal to position {@link module:engine/model/position~Position#path path}\n\t * but without the last item.\n\t *\n\t * This method returns the parent path even if the parent does not exists.\n\t *\n\t * @returns {Array.} Path to the parent.\n\t */\n\tgetParentPath() {\n\t\treturn this.path.slice( 0, -1 );\n\t}\n\n\t/**\n\t * Returns ancestors array of this position, that is this position's parent and its ancestors.\n\t *\n\t * @returns {Array.} Array with ancestors.\n\t */\n\tgetAncestors() {\n\t\tif ( this.parent.is( 'documentFragment' ) ) {\n\t\t\treturn [ this.parent ];\n\t\t} else {\n\t\t\treturn this.parent.getAncestors( { includeNode: true } );\n\t\t}\n\t}\n\n\t/**\n\t * Returns the slice of two position {@link #path paths} which is identical. The {@link #root roots}\n\t * of these two paths must be identical.\n\t *\n\t * @param {module:engine/model/position~Position} position The second position.\n\t * @returns {Array.} The common path.\n\t */\n\tgetCommonPath( position ) {\n\t\tif ( this.root != position.root ) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// We find on which tree-level start and end have the lowest common ancestor\n\t\tconst cmp = compareArrays( this.path, position.path );\n\t\t// If comparison returned string it means that arrays are same.\n\t\tconst diffAt = ( typeof cmp == 'string' ) ? Math.min( this.path.length, position.path.length ) : cmp;\n\n\t\treturn this.path.slice( 0, diffAt );\n\t}\n\n\t/**\n\t * Returns a new instance of `Position`, that has same {@link #parent parent} but it's offset\n\t * is shifted by `shift` value (can be a negative value).\n\t *\n\t * @param {Number} shift Offset shift. Can be a negative value.\n\t * @returns {module:engine/model/position~Position} Shifted position.\n\t */\n\tgetShiftedBy( shift ) {\n\t\tconst shifted = Position.createFromPosition( this );\n\n\t\tconst offset = shifted.offset + shift;\n\t\tshifted.offset = offset < 0 ? 0 : offset;\n\n\t\treturn shifted;\n\t}\n\n\t/**\n\t * Checks whether this position is after given position.\n\t *\n\t * @see module:engine/model/position~Position#isBefore\n\t *\n\t * @param {module:engine/model/position~Position} otherPosition Position to compare with.\n\t * @returns {Boolean} True if this position is after given position.\n\t */\n\tisAfter( otherPosition ) {\n\t\treturn this.compareWith( otherPosition ) == 'after';\n\t}\n\n\t/**\n\t * Checks whether this position is before given position.\n\t *\n\t * **Note:** watch out when using negation of the value returned by this method, because the negation will also\n\t * be `true` if positions are in different roots and you might not expect this. You should probably use\n\t * `a.isAfter( b ) || a.isEqual( b )` or `!a.isBefore( p ) && a.root == b.root` in most scenarios. If your\n\t * condition uses multiple `isAfter` and `isBefore` checks, build them so they do not use negated values, i.e.:\n\t *\n\t *\t\tif ( a.isBefore( b ) && c.isAfter( d ) ) {\n\t *\t\t\t// do A.\n\t *\t\t} else {\n\t *\t\t\t// do B.\n\t *\t\t}\n\t *\n\t * or, if you have only one if-branch:\n\t *\n\t *\t\tif ( !( a.isBefore( b ) && c.isAfter( d ) ) {\n\t *\t\t\t// do B.\n\t *\t\t}\n\t *\n\t * rather than:\n\t *\n\t *\t\tif ( !a.isBefore( b ) || && !c.isAfter( d ) ) {\n\t *\t\t\t// do B.\n\t *\t\t} else {\n\t *\t\t\t// do A.\n\t *\t\t}\n\t *\n\t * @param {module:engine/model/position~Position} otherPosition Position to compare with.\n\t * @returns {Boolean} True if this position is before given position.\n\t */\n\tisBefore( otherPosition ) {\n\t\treturn this.compareWith( otherPosition ) == 'before';\n\t}\n\n\t/**\n\t * Checks whether this position is equal to given position.\n\t *\n\t * @param {module:engine/model/position~Position} otherPosition Position to compare with.\n\t * @returns {Boolean} True if positions are same.\n\t */\n\tisEqual( otherPosition ) {\n\t\treturn this.compareWith( otherPosition ) == 'same';\n\t}\n\n\t/**\n\t * Checks whether this position is touching given position. Positions touch when there are no text nodes\n\t * or empty nodes in a range between them. Technically, those positions are not equal but in many cases\n\t * they are very similar or even indistinguishable.\n\t *\n\t * **Note:** this method traverses model document so it can be only used when range is up-to-date with model document.\n\t *\n\t * @param {module:engine/model/position~Position} otherPosition Position to compare with.\n\t * @returns {Boolean} True if positions touch.\n\t */\n\tisTouching( otherPosition ) {\n\t\tlet left = null;\n\t\tlet right = null;\n\t\tconst compare = this.compareWith( otherPosition );\n\n\t\tswitch ( compare ) {\n\t\t\tcase 'same':\n\t\t\t\treturn true;\n\n\t\t\tcase 'before':\n\t\t\t\tleft = Position.createFromPosition( this );\n\t\t\t\tright = Position.createFromPosition( otherPosition );\n\t\t\t\tbreak;\n\n\t\t\tcase 'after':\n\t\t\t\tleft = Position.createFromPosition( otherPosition );\n\t\t\t\tright = Position.createFromPosition( this );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\n\t\t// Cached for optimization purposes.\n\t\tlet leftParent = left.parent;\n\n\t\twhile ( left.path.length + right.path.length ) {\n\t\t\tif ( left.isEqual( right ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif ( left.path.length > right.path.length ) {\n\t\t\t\tif ( left.offset !== leftParent.maxOffset ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tleft.path = left.path.slice( 0, -1 );\n\t\t\t\tleftParent = leftParent.parent;\n\t\t\t\tleft.offset++;\n\t\t\t} else {\n\t\t\t\tif ( right.offset !== 0 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tright.path = right.path.slice( 0, -1 );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns a copy of this position that is updated by removing `howMany` nodes starting from `deletePosition`.\n\t * It may happen that this position is in a removed node. If that is the case, `null` is returned instead.\n\t *\n\t * @protected\n\t * @param {module:engine/model/position~Position} deletePosition Position before the first removed node.\n\t * @param {Number} howMany How many nodes are removed.\n\t * @returns {module:engine/model/position~Position|null} Transformed position or `null`.\n\t */\n\t_getTransformedByDeletion( deletePosition, howMany ) {\n\t\tconst transformed = Position.createFromPosition( this );\n\n\t\t// This position can't be affected if deletion was in a different root.\n\t\tif ( this.root != deletePosition.root ) {\n\t\t\treturn transformed;\n\t\t}\n\n\t\tif ( compareArrays( deletePosition.getParentPath(), this.getParentPath() ) == 'same' ) {\n\t\t\t// If nodes are removed from the node that is pointed by this position...\n\t\t\tif ( deletePosition.offset < this.offset ) {\n\t\t\t\t// And are removed from before an offset of that position...\n\t\t\t\tif ( deletePosition.offset + howMany > this.offset ) {\n\t\t\t\t\t// Position is in removed range, it's no longer in the tree.\n\t\t\t\t\treturn null;\n\t\t\t\t} else {\n\t\t\t\t\t// Decrement the offset accordingly.\n\t\t\t\t\ttransformed.offset -= howMany;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( compareArrays( deletePosition.getParentPath(), this.getParentPath() ) == 'prefix' ) {\n\t\t\t// If nodes are removed from a node that is on a path to this position...\n\t\t\tconst i = deletePosition.path.length - 1;\n\n\t\t\tif ( deletePosition.offset <= this.path[ i ] ) {\n\t\t\t\t// And are removed from before next node of that path...\n\t\t\t\tif ( deletePosition.offset + howMany > this.path[ i ] ) {\n\t\t\t\t\t// If the next node of that path is removed return null\n\t\t\t\t\t// because the node containing this position got removed.\n\t\t\t\t\treturn null;\n\t\t\t\t} else {\n\t\t\t\t\t// Otherwise, decrement index on that path.\n\t\t\t\t\ttransformed.path[ i ] -= howMany;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn transformed;\n\t}\n\n\t/**\n\t * Returns a copy of this position that is updated by inserting `howMany` nodes at `insertPosition`.\n\t *\n\t * @protected\n\t * @param {module:engine/model/position~Position} insertPosition Position where nodes are inserted.\n\t * @param {Number} howMany How many nodes are inserted.\n\t * @param {Boolean} insertBefore Flag indicating whether nodes are inserted before or after `insertPosition`.\n\t * This is important only when `insertPosition` and this position are same. If that is the case and the flag is\n\t * set to `true`, this position will get transformed. If the flag is set to `false`, it won't.\n\t * @returns {module:engine/model/position~Position} Transformed position.\n\t */\n\t_getTransformedByInsertion( insertPosition, howMany, insertBefore ) {\n\t\tconst transformed = Position.createFromPosition( this );\n\n\t\t// This position can't be affected if insertion was in a different root.\n\t\tif ( this.root != insertPosition.root ) {\n\t\t\treturn transformed;\n\t\t}\n\n\t\tif ( compareArrays( insertPosition.getParentPath(), this.getParentPath() ) == 'same' ) {\n\t\t\t// If nodes are inserted in the node that is pointed by this position...\n\t\t\tif ( insertPosition.offset < this.offset || ( insertPosition.offset == this.offset && insertBefore ) ) {\n\t\t\t\t// And are inserted before an offset of that position...\n\t\t\t\t// \"Push\" this positions offset.\n\t\t\t\ttransformed.offset += howMany;\n\t\t\t}\n\t\t} else if ( compareArrays( insertPosition.getParentPath(), this.getParentPath() ) == 'prefix' ) {\n\t\t\t// If nodes are inserted in a node that is on a path to this position...\n\t\t\tconst i = insertPosition.path.length - 1;\n\n\t\t\tif ( insertPosition.offset <= this.path[ i ] ) {\n\t\t\t\t// And are inserted before next node of that path...\n\t\t\t\t// \"Push\" the index on that path.\n\t\t\t\ttransformed.path[ i ] += howMany;\n\t\t\t}\n\t\t}\n\n\t\treturn transformed;\n\t}\n\n\t/**\n\t * Returns a copy of this position that is updated by moving `howMany` nodes from `sourcePosition` to `targetPosition`.\n\t *\n\t * @protected\n\t * @param {module:engine/model/position~Position} sourcePosition Position before the first element to move.\n\t * @param {module:engine/model/position~Position} targetPosition Position where moved elements will be inserted.\n\t * @param {Number} howMany How many consecutive nodes to move, starting from `sourcePosition`.\n\t * @param {Boolean} insertBefore Flag indicating whether moved nodes are pasted before or after `insertPosition`.\n\t * This is important only when `targetPosition` and this position are same. If that is the case and the flag is\n\t * set to `true`, this position will get transformed by range insertion. If the flag is set to `false`, it won't.\n\t * @param {Boolean} [sticky] Flag indicating whether this position \"sticks\" to range, that is if it should be moved\n\t * with the moved range if it is equal to one of range's boundaries.\n\t * @returns {module:engine/model/position~Position} Transformed position.\n\t */\n\t_getTransformedByMove( sourcePosition, targetPosition, howMany, insertBefore, sticky ) {\n\t\t// Moving a range removes nodes from their original position. We acknowledge this by proper transformation.\n\t\tlet transformed = this._getTransformedByDeletion( sourcePosition, howMany );\n\n\t\t// Then we update target position, as it could be affected by nodes removal too.\n\t\ttargetPosition = targetPosition._getTransformedByDeletion( sourcePosition, howMany );\n\n\t\tif ( transformed === null || ( sticky && transformed.isEqual( sourcePosition ) ) ) {\n\t\t\t// This position is inside moved range (or sticks to it).\n\t\t\t// In this case, we calculate a combination of this position, move source position and target position.\n\t\t\ttransformed = this._getCombined( sourcePosition, targetPosition );\n\t\t} else {\n\t\t\t// This position is not inside a removed range.\n\t\t\t// In next step, we simply reflect inserting `howMany` nodes, which might further affect the position.\n\t\t\ttransformed = transformed._getTransformedByInsertion( targetPosition, howMany, insertBefore );\n\t\t}\n\n\t\treturn transformed;\n\t}\n\n\t/**\n\t * Returns a new position that is a combination of this position and given positions.\n\t *\n\t * The combined position is a copy of this position transformed by moving a range starting at `source` position\n\t * to the `target` position. It is expected that this position is inside the moved range.\n\t *\n\t * Example:\n\t *\n\t *\t\tlet original = new Position( root, [ 2, 3, 1 ] );\n\t *\t\tlet source = new Position( root, [ 2, 2 ] );\n\t *\t\tlet target = new Position( otherRoot, [ 1, 1, 3 ] );\n\t *\t\toriginal._getCombined( source, target ); // path is [ 1, 1, 4, 1 ], root is `otherRoot`\n\t *\n\t * Explanation:\n\t *\n\t * We have a position `[ 2, 3, 1 ]` and move some nodes from `[ 2, 2 ]` to `[ 1, 1, 3 ]`. The original position\n\t * was inside moved nodes and now should point to the new place. The moved nodes will be after\n\t * positions `[ 1, 1, 3 ]`, `[ 1, 1, 4 ]`, `[ 1, 1, 5 ]`. Since our position was in the second moved node,\n\t * the transformed position will be in a sub-tree of a node at `[ 1, 1, 4 ]`. Looking at original path, we\n\t * took care of `[ 2, 3 ]` part of it. Now we have to add the rest of the original path to the transformed path.\n\t * Finally, the transformed position will point to `[ 1, 1, 4, 1 ]`.\n\t *\n\t * @protected\n\t * @param {module:engine/model/position~Position} source Beginning of the moved range.\n\t * @param {module:engine/model/position~Position} target Position where the range is moved.\n\t * @returns {module:engine/model/position~Position} Combined position.\n\t */\n\t_getCombined( source, target ) {\n\t\tconst i = source.path.length - 1;\n\n\t\t// The first part of a path to combined position is a path to the place where nodes were moved.\n\t\tconst combined = Position.createFromPosition( target );\n\n\t\t// Then we have to update the rest of the path.\n\n\t\t// Fix the offset because this position might be after `from` position and we have to reflect that.\n\t\tcombined.offset = combined.offset + this.path[ i ] - source.offset;\n\n\t\t// Then, add the rest of the path.\n\t\t// If this position is at the same level as `from` position nothing will get added.\n\t\tcombined.path = combined.path.concat( this.path.slice( i + 1 ) );\n\n\t\treturn combined;\n\t}\n\n\t/**\n\t * Creates position at the given location. The location can be specified as:\n\t *\n\t * * a {@link module:engine/model/position~Position position},\n\t * * parent element and offset (offset defaults to `0`),\n\t * * parent element and `'end'` (sets position at the end of that element),\n\t * * {@link module:engine/model/item~Item model item} and `'before'` or `'after'` (sets position before or after given model item).\n\t *\n\t * This method is a shortcut to other constructors such as:\n\t *\n\t * * {@link module:engine/model/position~Position.createBefore},\n\t * * {@link module:engine/model/position~Position.createAfter},\n\t * * {@link module:engine/model/position~Position.createFromParentAndOffset},\n\t * * {@link module:engine/model/position~Position.createFromPosition}.\n\t *\n\t * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n\t * @param {Number|'end'|'before'|'after'} [offset=0] Offset or one of the flags. Used only when\n\t * first parameter is a {@link module:engine/model/item~Item model item}.\n\t */\n\tstatic createAt( itemOrPosition, offset ) {\n\t\tif ( itemOrPosition instanceof Position ) {\n\t\t\treturn this.createFromPosition( itemOrPosition );\n\t\t} else {\n\t\t\tconst node = itemOrPosition;\n\n\t\t\tif ( offset == 'end' ) {\n\t\t\t\toffset = node.maxOffset;\n\t\t\t} else if ( offset == 'before' ) {\n\t\t\t\treturn this.createBefore( node );\n\t\t\t} else if ( offset == 'after' ) {\n\t\t\t\treturn this.createAfter( node );\n\t\t\t} else if ( !offset ) {\n\t\t\t\toffset = 0;\n\t\t\t}\n\n\t\t\treturn this.createFromParentAndOffset( node, offset );\n\t\t}\n\t}\n\n\t/**\n\t * Creates a new position, after given {@link module:engine/model/item~Item model item}.\n\t *\n\t * @param {module:engine/model/item~Item} item Item after which the position should be placed.\n\t * @returns {module:engine/model/position~Position}\n\t */\n\tstatic createAfter( item ) {\n\t\tif ( !item.parent ) {\n\t\t\t/**\n\t\t\t * You can not make position after root.\n\t\t\t *\n\t\t\t * @error position-after-root\n\t\t\t * @param {module:engine/model/item~Item} root\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'model-position-after-root: You can not make position after root.', { root: item } );\n\t\t}\n\n\t\treturn this.createFromParentAndOffset( item.parent, item.endOffset );\n\t}\n\n\t/**\n\t * Creates a new position, before the given {@link module:engine/model/item~Item model item}.\n\t *\n\t * @param {module:engine/model/item~Item} item Item before which the position should be placed.\n\t * @returns {module:engine/model/position~Position}\n\t */\n\tstatic createBefore( item ) {\n\t\tif ( !item.parent ) {\n\t\t\t/**\n\t\t\t * You can not make position before root.\n\t\t\t *\n\t\t\t * @error position-before-root\n\t\t\t * @param {module:engine/model/item~Item} root\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'model-position-before-root: You can not make position before root.', { root: item } );\n\t\t}\n\n\t\treturn this.createFromParentAndOffset( item.parent, item.startOffset );\n\t}\n\n\t/**\n\t * Creates a new position from the parent element and an offset in that element.\n\t *\n\t * @param {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment} parent Position's parent.\n\t * @param {Number} offset Position's offset.\n\t * @returns {module:engine/model/position~Position}\n\t */\n\tstatic createFromParentAndOffset( parent, offset ) {\n\t\tif ( !parent.is( 'element' ) && !parent.is( 'documentFragment' ) ) {\n\t\t\t/**\n\t\t\t * Position parent have to be a model element or model document fragment.\n\t\t\t *\n\t\t\t * @error position-parent-incorrect\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'model-position-parent-incorrect: Position parent have to be a element or document fragment.' );\n\t\t}\n\n\t\tconst path = parent.getPath();\n\n\t\tpath.push( offset );\n\n\t\treturn new this( parent.root, path );\n\t}\n\n\t/**\n\t * Creates a new position, which is equal to passed position.\n\t *\n\t * @param {module:engine/model/position~Position} position Position to be cloned.\n\t * @returns {module:engine/model/position~Position}\n\t */\n\tstatic createFromPosition( position ) {\n\t\treturn new this( position.root, position.path.slice() );\n\t}\n\n\t/**\n\t * Creates a `Position` instance from given plain object (i.e. parsed JSON string).\n\t *\n\t * @param {Object} json Plain object to be converted to `Position`.\n\t * @returns {module:engine/model/position~Position} `Position` instance created using given plain object.\n\t */\n\tstatic fromJSON( json, doc ) {\n\t\tif ( json.root === '$graveyard' ) {\n\t\t\treturn new Position( doc.graveyard, json.path );\n\t\t}\n\n\t\tif ( !doc.hasRoot( json.root ) ) {\n\t\t\t/**\n\t\t\t * Cannot create position for document. Root with specified name does not exist.\n\t\t\t *\n\t\t\t * @error position-fromjson-no-root\n\t\t\t * @param {String} rootName\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'model-position-fromjson-no-root: Cannot create position for document. Root with specified name does not exist.',\n\t\t\t\t{ rootName: json.root }\n\t\t\t);\n\t\t}\n\n\t\treturn new Position( doc.getRoot( json.root ), json.path );\n\t}\n}\n\n/**\n * A flag indicating whether this position is `'before'` or `'after'` or `'same'` as given position.\n * If positions are in different roots `'different'` flag is returned.\n *\n * @typedef {String} module:engine/model/position~PositionRelation\n */\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/model/position.js","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 542);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ecb096a2104482aaa84d","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module utils/ckeditorerror\n */\n\n/**\n * The CKEditor error class.\n *\n * All errors will be shortened during the minification process in order to reduce the code size.\n * Therefore, all error messages should be documented in the same way as those in {@link module:utils/log}.\n *\n * Read more in the {@link module:utils/log} module.\n *\n * @extends Error\n */\nexport default class CKEditorError extends Error {\n\t/**\n\t * Creates an instance of the CKEditorError class.\n\t *\n\t * Read more about error logging in the {@link module:utils/log} module.\n\t *\n\t * @param {String} message The error message in an `error-name: Error message.` format.\n\t * During the minification process the \"Error message\" part will be removed to limit the code size\n\t * and a link to this error documentation will be added to the `message`.\n\t * @param {Object} [data] Additional data describing the error. A stringified version of this object\n\t * will be appended to the error message, so the data are quickly visible in the console. The original\n\t * data object will also be later available under the {@link #data} property.\n\t */\n\tconstructor( message, data ) {\n\t\tif ( data ) {\n\t\t\tmessage += ' ' + JSON.stringify( data );\n\t\t}\n\n\t\tsuper( message );\n\n\t\t/**\n\t\t * @member {String}\n\t\t */\n\t\tthis.name = 'CKEditorError';\n\n\t\t/**\n\t\t * The additional error data passed to the constructor.\n\t\t *\n\t\t * @member {Object}\n\t\t */\n\t\tthis.data = data;\n\t}\n\n\t/**\n\t * Checks if error is an instance of CKEditorError class.\n\t *\n\t * @param {Object} error Object to check.\n\t * @returns {Boolean}\n\t */\n\tstatic isCKEditorError( error ) {\n\t\treturn error instanceof CKEditorError;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/ckeditorerror.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module core/plugin\n */\n\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n\n/**\n * The base class for CKEditor plugin classes.\n *\n * @implements module:core/plugin~PluginInterface\n * @mixes module:utils/observablemixin~ObservableMixin\n */\nexport default class Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor ) {\n\t\t/**\n\t\t * The editor instance.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:core/editor/editor~Editor} #editor\n\t\t */\n\t\tthis.editor = editor;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tdestroy() {\n\t}\n}\n\nmix( Plugin, ObservableMixin );\n\n/**\n * The base interface for CKEditor plugins.\n *\n * In its minimal form it can be a simple function (it will be used as a constructor) which accepts\n * {@link module:core/editor/editor~Editor the editor} as a parm.\n * It can also implement a few methods which, when present, will be used to properly initialize and destroy the plugin.\n *\n *\t\t// A simple plugin which enables a data processor.\n *\t\tfunction MyPlugin( editor ) {\n *\t\t\teditor.data.processor = new MyDataProcessor();\n *\t\t}\n *\n * In most cases, however, you'll want to inherit from the {@link module:core/plugin~Plugin} class which implements the\n * {@link module:utils/observablemixin~ObservableMixin} and is, therefore, more convenient:\n *\n *\t\tclass MyPlugin extends Plugin {\n *\t\t\tinit() {\n *\t\t\t\t// `listenTo()` and `editor` are available thanks to `Plugin`.\n *\t\t\t\t// By using `listenTo()` you'll ensure that the listener will be removed when\n *\t\t\t\t// the plugin is destroyed.\n *\t\t\t\tthis.listenTo( this.editor, 'dataReady', () => {\n *\t\t\t\t\t// Do something when data is ready.\n *\t\t\t\t} );\n *\t\t\t}\n *\t\t}\n *\n * @interface PluginInterface\n */\n\n/**\n * Creates a new plugin instance. This is the first step of a plugin initialization.\n * See also {@link #init} and {@link #afterInit}.\n *\n * A plugin is always instantiated after its {@link module:core/plugin~PluginInterface.requires dependencies} and the\n * {@link #init} and {@link #afterInit} methods are called in the same order.\n *\n * Usually, you'll want to put your plugin's initialization code in the {@link #init} method.\n * The constructor can be understood as \"before init\" and used in special cases, just like\n * {@link #afterInit} servers for the special \"after init\" scenarios (e.g. code which depends on other\n * plugins, but which doesn't {@link module:core/plugin~PluginInterface.requires explicitly require} them).\n *\n * @method #constructor\n * @param {module:core/editor/editor~Editor} editor\n */\n\n/**\n * An array of plugins required by this plugin.\n *\n * To keep a plugin class definition tight it's recommended to define this property as a static getter:\n *\n *\t\timport Image from './image.js';\n *\n *\t\texport default class ImageCaption {\n *\t\t\tstatic get requires() {\n *\t\t\t\treturn [ Image ];\n *\t\t\t}\n * }\n *\n * @static\n * @readonly\n * @member {Array.|undefined} module:core/plugin~PluginInterface.requires\n */\n\n/**\n * Optional name of the plugin. If set, the plugin will be available in\n * {@link module:core/plugincollection~PluginCollection#get} by its\n * name and its constructor. If not, then only by its constructor.\n *\n * The name should reflect the package name + the plugin module name. E.g. `ckeditor5-image/src/image.js` plugin\n * should be named `image/image`. If plugin is kept deeper in the directory structure, it's recommended to only use the module file name,\n * not the whole path. So, e.g. a plugin defined in `ckeditor5-ui/src/notification/notification.js` file may be named `ui/notification`.\n *\n * To keep a plugin class definition tight it's recommended to define this property as a static getter:\n *\n *\t\texport default class ImageCaption {\n *\t\t\tstatic get pluginName() {\n *\t\t\t\treturn 'image/imagecaption';\n *\t\t\t}\n *\t\t}\n *\n * @static\n * @readonly\n * @member {String|undefined} module:core/plugin~PluginInterface.pluginName\n */\n\n/**\n * The second stage (after plugin {@link #constructor}) of plugin initialization.\n * Unlike the plugin constructor this method can be asynchronous.\n *\n * A plugin's `init()` method is called after its {@link module:core/plugin~PluginInterface.requires dependencies} are initialized,\n * so in the same order as constructors of these plugins.\n *\n * **Note:** This method is optional. A plugin instance does not need to have to have it defined.\n *\n * @method #init\n * @returns {null|Promise}\n */\n\n/**\n * The third (and last) stage of plugin initialization. See also {@link #constructor} and {@link #init}.\n *\n * **Note:** This method is optional. A plugin instance does not need to have to have it defined.\n *\n * @method #afterInit\n * @returns {null|Promise}\n */\n\n/**\n * Destroys the plugin.\n *\n * **Note:** This method is optional. A plugin instance does not need to have to have it defined.\n *\n * @method #destroy\n * @returns {null|Promise}\n */\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-core/src/plugin.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/model/range\n */\n\nimport Position from './position';\nimport TreeWalker from './treewalker';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n\n/**\n * Range class. Range is iterable.\n */\nexport default class Range {\n\t/**\n\t * Creates a range spanning from `start` position to `end` position.\n\t *\n\t * **Note:** Constructor creates it's own {@link module:engine/model/position~Position Position} instances basing on passed values.\n\t *\n\t * @param {module:engine/model/position~Position} start Start position.\n\t * @param {module:engine/model/position~Position} [end] End position. If not set, range will be collapsed at `start` position.\n\t */\n\tconstructor( start, end = null ) {\n\t\t/**\n\t\t * Start position.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/model/position~Position}\n\t\t */\n\t\tthis.start = Position.createFromPosition( start );\n\n\t\t/**\n\t\t * End position.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/model/position~Position}\n\t\t */\n\t\tthis.end = end ? Position.createFromPosition( end ) : Position.createFromPosition( start );\n\t}\n\n\t/**\n\t * Returns an iterator that iterates over all {@link module:engine/model/item~Item items} that are in this range and returns\n\t * them together with additional information like length or {@link module:engine/model/position~Position positions},\n\t * grouped as {@link module:engine/model/treewalker~TreeWalkerValue}.\n\t * It iterates over all {@link module:engine/model/textproxy~TextProxy text contents} that are inside the range\n\t * and all the {@link module:engine/model/element~Element}s that are entered into when iterating over this range.\n\t *\n\t * This iterator uses {@link module:engine/model/treewalker~TreeWalker} with `boundaries` set to this range\n\t * and `ignoreElementEnd` option set to `true`.\n\t *\n\t * @returns {Iterable.}\n\t */\n\t* [ Symbol.iterator ]() {\n\t\tyield* new TreeWalker( { boundaries: this, ignoreElementEnd: true } );\n\t}\n\n\t/**\n\t * Returns whether the range is collapsed, that is if {@link #start start} and\n\t * {@link #end end} positions are equal.\n\t *\n\t * @type {Boolean}\n\t */\n\tget isCollapsed() {\n\t\treturn this.start.isEqual( this.end );\n\t}\n\n\t/**\n\t * Returns whether this range is flat, that is if {@link #start start} position and\n\t * {@link #end end} position are in the same {@link module:engine/model/position~Position#parent parent}.\n\t *\n\t * @type {Boolean}\n\t */\n\tget isFlat() {\n\t\treturn this.start.parent === this.end.parent;\n\t}\n\n\t/**\n\t * Range root element.\n\t *\n\t * @type {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment}\n\t */\n\tget root() {\n\t\treturn this.start.root;\n\t}\n\n\t/**\n\t * Checks whether this range contains given {@link module:engine/model/position~Position position}.\n\t *\n\t * @param {module:engine/model/position~Position} position Position to check.\n\t * @returns {Boolean} `true` if given {@link module:engine/model/position~Position position} is contained in this range,\n\t * `false` otherwise.\n\t */\n\tcontainsPosition( position ) {\n\t\treturn position.isAfter( this.start ) && position.isBefore( this.end );\n\t}\n\n\t/**\n\t * Checks whether this range contains given {@link ~Range range}.\n\t *\n\t * @param {module:engine/model/range~Range} otherRange Range to check.\n\t * @returns {Boolean} `true` if given {@link ~Range range} boundaries are contained by this range, `false` otherwise.\n\t */\n\tcontainsRange( otherRange ) {\n\t\treturn this.containsPosition( otherRange.start ) && this.containsPosition( otherRange.end );\n\t}\n\n\t/**\n\t * Two ranges are equal if their {@link #start start} and\n\t * {@link #end end} positions are equal.\n\t *\n\t * @param {module:engine/model/range~Range} otherRange Range to compare with.\n\t * @returns {Boolean} `true` if ranges are equal, `false` otherwise.\n\t */\n\tisEqual( otherRange ) {\n\t\treturn this.start.isEqual( otherRange.start ) && this.end.isEqual( otherRange.end );\n\t}\n\n\t/**\n\t * Checks and returns whether this range intersects with given range.\n\t *\n\t * @param {module:engine/model/range~Range} otherRange Range to compare with.\n\t * @returns {Boolean} `true` if ranges intersect, `false` otherwise.\n\t */\n\tisIntersecting( otherRange ) {\n\t\treturn this.start.isBefore( otherRange.end ) && this.end.isAfter( otherRange.start );\n\t}\n\n\t/**\n\t * Computes which part(s) of this {@link ~Range range} is not a part of given {@link ~Range range}.\n\t * Returned array contains zero, one or two {@link ~Range ranges}.\n\t *\n\t * Examples:\n\t *\n\t *\t\tlet range = new Range( new Position( root, [ 2, 7 ] ), new Position( root, [ 4, 0, 1 ] ) );\n\t *\t\tlet otherRange = new Range( new Position( root, [ 1 ] ), new Position( root, [ 5 ] ) );\n\t *\t\tlet transformed = range.getDifference( otherRange );\n\t *\t\t// transformed array has no ranges because `otherRange` contains `range`\n\t *\n\t *\t\totherRange = new Range( new Position( root, [ 1 ] ), new Position( root, [ 3 ] ) );\n\t *\t\ttransformed = range.getDifference( otherRange );\n\t *\t\t// transformed array has one range: from [ 3 ] to [ 4, 0, 1 ]\n\t *\n\t *\t\totherRange = new Range( new Position( root, [ 3 ] ), new Position( root, [ 4 ] ) );\n\t *\t\ttransformed = range.getDifference( otherRange );\n\t *\t\t// transformed array has two ranges: from [ 2, 7 ] to [ 3 ] and from [ 4 ] to [ 4, 0, 1 ]\n\t *\n\t * @param {module:engine/model/range~Range} otherRange Range to differentiate against.\n\t * @returns {Array.} The difference between ranges.\n\t */\n\tgetDifference( otherRange ) {\n\t\tconst ranges = [];\n\n\t\tif ( this.isIntersecting( otherRange ) ) {\n\t\t\t// Ranges intersect.\n\n\t\t\tif ( this.containsPosition( otherRange.start ) ) {\n\t\t\t\t// Given range start is inside this range. This means that we have to\n\t\t\t\t// add shrunken range - from the start to the middle of this range.\n\t\t\t\tranges.push( new Range( this.start, otherRange.start ) );\n\t\t\t}\n\n\t\t\tif ( this.containsPosition( otherRange.end ) ) {\n\t\t\t\t// Given range end is inside this range. This means that we have to\n\t\t\t\t// add shrunken range - from the middle of this range to the end.\n\t\t\t\tranges.push( new Range( otherRange.end, this.end ) );\n\t\t\t}\n\t\t} else {\n\t\t\t// Ranges do not intersect, return the original range.\n\t\t\tranges.push( Range.createFromRange( this ) );\n\t\t}\n\n\t\treturn ranges;\n\t}\n\n\t/**\n\t * Returns an intersection of this {@link ~Range range} and given {@link ~Range range}.\n\t * Intersection is a common part of both of those ranges. If ranges has no common part, returns `null`.\n\t *\n\t * Examples:\n\t *\n\t *\t\tlet range = new Range( new Position( root, [ 2, 7 ] ), new Position( root, [ 4, 0, 1 ] ) );\n\t *\t\tlet otherRange = new Range( new Position( root, [ 1 ] ), new Position( root, [ 2 ] ) );\n\t *\t\tlet transformed = range.getIntersection( otherRange ); // null - ranges have no common part\n\t *\n\t *\t\totherRange = new Range( new Position( root, [ 3 ] ), new Position( root, [ 5 ] ) );\n\t *\t\ttransformed = range.getIntersection( otherRange ); // range from [ 3 ] to [ 4, 0, 1 ]\n\t *\n\t * @param {module:engine/model/range~Range} otherRange Range to check for intersection.\n\t * @returns {module:engine/model/range~Range|null} A common part of given ranges or `null` if ranges have no common part.\n\t */\n\tgetIntersection( otherRange ) {\n\t\tif ( this.isIntersecting( otherRange ) ) {\n\t\t\t// Ranges intersect, so a common range will be returned.\n\t\t\t// At most, it will be same as this range.\n\t\t\tlet commonRangeStart = this.start;\n\t\t\tlet commonRangeEnd = this.end;\n\n\t\t\tif ( this.containsPosition( otherRange.start ) ) {\n\t\t\t\t// Given range start is inside this range. This means thaNt we have to\n\t\t\t\t// shrink common range to the given range start.\n\t\t\t\tcommonRangeStart = otherRange.start;\n\t\t\t}\n\n\t\t\tif ( this.containsPosition( otherRange.end ) ) {\n\t\t\t\t// Given range end is inside this range. This means that we have to\n\t\t\t\t// shrink common range to the given range end.\n\t\t\t\tcommonRangeEnd = otherRange.end;\n\t\t\t}\n\n\t\t\treturn new Range( commonRangeStart, commonRangeEnd );\n\t\t}\n\n\t\t// Ranges do not intersect, so they do not have common part.\n\t\treturn null;\n\t}\n\n\t/**\n\t * Computes and returns the smallest set of {@link #isFlat flat} ranges, that covers this range in whole.\n\t *\n\t * See an example of a model structure (`[` and `]` are range boundaries):\n\t *\n\t *\t\troot root\n\t *\t\t |- element DIV DIV P2 P3 DIV\n\t *\t\t | |- element H H P1 f o o b a r H P4\n\t *\t\t | | |- \"fir[st\" fir[st lorem se]cond ipsum\n\t *\t\t | |- element P1\n\t *\t\t | | |- \"lorem\" ||\n\t *\t\t |- element P2 ||\n\t *\t\t | |- \"foo\" VV\n\t *\t\t |- element P3\n\t *\t\t | |- \"bar\" root\n\t *\t\t |- element DIV DIV [P2 P3] DIV\n\t *\t\t | |- element H H [P1] f o o b a r H P4\n\t *\t\t | | |- \"se]cond\" fir[st] lorem [se]cond ipsum\n\t *\t\t | |- element P4\n\t *\t\t | | |- \"ipsum\"\n\t *\n\t * As it can be seen, letters contained in the range are: `stloremfoobarse`, spread across different parents.\n\t * We are looking for minimal set of flat ranges that contains the same nodes.\n\t *\n\t * Minimal flat ranges for above range `( [ 0, 0, 3 ], [ 3, 0, 2 ] )` will be:\n\t *\n\t *\t\t( [ 0, 0, 3 ], [ 0, 0, 5 ] ) = \"st\"\n\t *\t\t( [ 0, 1 ], [ 0, 2 ] ) = element P1 (\"lorem\")\n\t *\t\t( [ 1 ], [ 3 ] ) = element P2, element P3 (\"foobar\")\n\t *\t\t( [ 3, 0, 0 ], [ 3, 0, 2 ] ) = \"se\"\n\t *\n\t * **Note:** if an {@link module:engine/model/element~Element element} is not wholly contained in this range, it won't be returned\n\t * in any of the returned flat ranges. See in the example how `H` elements at the beginning and at the end of the range\n\t * were omitted. Only their parts that were wholly in the range were returned.\n\t *\n\t * **Note:** this method is not returning flat ranges that contain no nodes.\n\t *\n\t * @returns {Array.} Array of flat ranges covering this range.\n\t */\n\tgetMinimalFlatRanges() {\n\t\tconst ranges = [];\n\t\tconst diffAt = this.start.getCommonPath( this.end ).length;\n\n\t\tconst pos = Position.createFromPosition( this.start );\n\t\tlet posParent = pos.parent;\n\n\t\t// Go up.\n\t\twhile ( pos.path.length > diffAt + 1 ) {\n\t\t\tconst howMany = posParent.maxOffset - pos.offset;\n\n\t\t\tif ( howMany !== 0 ) {\n\t\t\t\tranges.push( new Range( pos, pos.getShiftedBy( howMany ) ) );\n\t\t\t}\n\n\t\t\tpos.path = pos.path.slice( 0, -1 );\n\t\t\tpos.offset++;\n\t\t\tposParent = posParent.parent;\n\t\t}\n\n\t\t// Go down.\n\t\twhile ( pos.path.length <= this.end.path.length ) {\n\t\t\tconst offset = this.end.path[ pos.path.length - 1 ];\n\t\t\tconst howMany = offset - pos.offset;\n\n\t\t\tif ( howMany !== 0 ) {\n\t\t\t\tranges.push( new Range( pos, pos.getShiftedBy( howMany ) ) );\n\t\t\t}\n\n\t\t\tpos.offset = offset;\n\t\t\tpos.path.push( 0 );\n\t\t}\n\n\t\treturn ranges;\n\t}\n\n\t/**\n\t * Creates a {@link module:engine/model/treewalker~TreeWalker TreeWalker} instance with this range as a boundary.\n\t *\n\t * @param {Object} options Object with configuration options. See {@link module:engine/model/treewalker~TreeWalker}.\n\t * @param {module:engine/model/position~Position} [options.startPosition]\n\t * @param {Boolean} [options.singleCharacters=false]\n\t * @param {Boolean} [options.shallow=false]\n\t * @param {Boolean} [options.ignoreElementEnd=false]\n\t */\n\tgetWalker( options = {} ) {\n\t\toptions.boundaries = this;\n\n\t\treturn new TreeWalker( options );\n\t}\n\n\t/**\n\t * Returns an iterator that iterates over all {@link module:engine/model/item~Item items} that are in this range and returns\n\t * them.\n\t *\n\t * This method uses {@link module:engine/model/treewalker~TreeWalker} with `boundaries` set to this range and `ignoreElementEnd` option\n\t * set to `true`. However it returns only {@link module:engine/model/item~Item model items},\n\t * not {@link module:engine/model/treewalker~TreeWalkerValue}.\n\t *\n\t * You may specify additional options for the tree walker. See {@link module:engine/model/treewalker~TreeWalker} for\n\t * a full list of available options.\n\t *\n\t * @method getItems\n\t * @param {Object} options Object with configuration options. See {@link module:engine/model/treewalker~TreeWalker}.\n\t * @returns {Iterable.}\n\t */\n\t* getItems( options = {} ) {\n\t\toptions.boundaries = this;\n\t\toptions.ignoreElementEnd = true;\n\n\t\tconst treeWalker = new TreeWalker( options );\n\n\t\tfor ( const value of treeWalker ) {\n\t\t\tyield value.item;\n\t\t}\n\t}\n\n\t/**\n\t * Returns an iterator that iterates over all {@link module:engine/model/position~Position positions} that are boundaries or\n\t * contained in this range.\n\t *\n\t * This method uses {@link module:engine/model/treewalker~TreeWalker} with `boundaries` set to this range. However it returns only\n\t * {@link module:engine/model/position~Position positions}, not {@link module:engine/model/treewalker~TreeWalkerValue}.\n\t *\n\t * You may specify additional options for the tree walker. See {@link module:engine/model/treewalker~TreeWalker} for\n\t * a full list of available options.\n\t *\n\t * @param {Object} options Object with configuration options. See {@link module:engine/model/treewalker~TreeWalker}.\n\t * @returns {Iterable.}\n\t */\n\t* getPositions( options = {} ) {\n\t\toptions.boundaries = this;\n\n\t\tconst treeWalker = new TreeWalker( options );\n\n\t\tyield treeWalker.position;\n\n\t\tfor ( const value of treeWalker ) {\n\t\t\tyield value.nextPosition;\n\t\t}\n\t}\n\n\t/**\n\t * Returns a range that is a result of transforming this range by given `delta`.\n\t *\n\t * **Note:** transformation may break one range into multiple ranges (e.g. when a part of the range is\n\t * moved to a different part of document tree). For this reason, an array is returned by this method and it\n\t * may contain one or more `Range` instances.\n\t *\n\t * @param {module:engine/model/delta/delta~Delta} delta Delta to transform range by.\n\t * @returns {Array.} Range which is the result of transformation.\n\t */\n\tgetTransformedByDelta( delta ) {\n\t\tconst ranges = [ Range.createFromRange( this ) ];\n\n\t\t// Operation types that a range can be transformed by.\n\t\tconst supportedTypes = new Set( [ 'insert', 'move', 'remove', 'reinsert' ] );\n\n\t\tfor ( const operation of delta.operations ) {\n\t\t\tif ( supportedTypes.has( operation.type ) ) {\n\t\t\t\tfor ( let i = 0; i < ranges.length; i++ ) {\n\t\t\t\t\tconst result = ranges[ i ]._getTransformedByDocumentChange(\n\t\t\t\t\t\toperation.type,\n\t\t\t\t\t\tdelta.type,\n\t\t\t\t\t\toperation.targetPosition || operation.position,\n\t\t\t\t\t\toperation.howMany || operation.nodes.maxOffset,\n\t\t\t\t\t\toperation.sourcePosition\n\t\t\t\t\t);\n\n\t\t\t\t\tranges.splice( i, 1, ...result );\n\n\t\t\t\t\ti += result.length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn ranges;\n\t}\n\n\t/**\n\t * Returns a range that is a result of transforming this range by multiple `deltas`.\n\t *\n\t * **Note:** transformation may break one range into multiple ranges (e.g. when a part of the range is\n\t * moved to a different part of document tree). For this reason, an array is returned by this method and it\n\t * may contain one or more `Range` instances.\n\t *\n\t * @param {Iterable.} deltas Deltas to transform the range by.\n\t * @returns {Array.} Range which is the result of transformation.\n\t */\n\tgetTransformedByDeltas( deltas ) {\n\t\tconst ranges = [ Range.createFromRange( this ) ];\n\n\t\tfor ( const delta of deltas ) {\n\t\t\tfor ( let i = 0; i < ranges.length; i++ ) {\n\t\t\t\tconst result = ranges[ i ].getTransformedByDelta( delta );\n\n\t\t\t\tranges.splice( i, 1, ...result );\n\t\t\t\ti += result.length - 1;\n\t\t\t}\n\t\t}\n\n\t\t// It may happen that a range is split into two, and then the part of second \"piece\" is moved into first\n\t\t// \"piece\". In this case we will have incorrect third rage, which should not be included in the result --\n\t\t// because it is already included in first \"piece\". In this loop we are looking for all such ranges that\n\t\t// are inside other ranges and we simply remove them.\n\t\tfor ( let i = 0; i < ranges.length; i++ ) {\n\t\t\tconst range = ranges[ i ];\n\n\t\t\tfor ( let j = i + 1; j < ranges.length; j++ ) {\n\t\t\t\tconst next = ranges[ j ];\n\n\t\t\t\tif ( range.containsRange( next ) || next.containsRange( range ) || range.isEqual( next ) ) {\n\t\t\t\t\tranges.splice( j, 1 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn ranges;\n\t}\n\n\t/**\n\t * Returns a range that is a result of transforming this range by a change in the model document.\n\t *\n\t * @protected\n\t * @param {'insert'|'move'|'remove'|'reinsert'} type Change type.\n\t * @param {String} deltaType Type of delta that introduced the change.\n\t * @param {module:engine/model/position~Position} targetPosition Position before the first changed node.\n\t * @param {Number} howMany How many nodes has been changed.\n\t * @param {module:engine/model/position~Position} sourcePosition Source position of changes.\n\t * @returns {Array.}\n\t */\n\t_getTransformedByDocumentChange( type, deltaType, targetPosition, howMany, sourcePosition ) {\n\t\tif ( type == 'insert' ) {\n\t\t\treturn this._getTransformedByInsertion( targetPosition, howMany, false, false );\n\t\t} else {\n\t\t\tconst sourceRange = Range.createFromPositionAndShift( sourcePosition, howMany );\n\n\t\t\tif (\n\t\t\t\tdeltaType == 'merge' &&\n\t\t\t\tthis.isCollapsed &&\n\t\t\t\t( this.start.isEqual( sourceRange.start ) || this.start.isEqual( sourceRange.end ) )\n\t\t\t) {\n\t\t\t\t// Collapsed range is in merged element.\n\t\t\t\t// Without fix, the range would end up in the graveyard, together with removed element.\n\t\t\t\t//

foo

[]bar

->

foobar

[]

->

foobar

->

foo[]bar

\n\t\t\t\treturn [ new Range( targetPosition.getShiftedBy( this.start.offset ) ) ];\n\t\t\t} else if ( type == 'move' ) {\n\t\t\t\t// In all examples `[]` is `this` and `{}` is `sourceRange`, while `^` is move target position.\n\t\t\t\t//\n\t\t\t\t// Example:\n\t\t\t\t//

xx

^{

a[b

}

c]d

-->

xx

a[b

c]d

\n\t\t\t\t// ^

xx

{

a[b

}

c]d

-->

a[b

xx

c]d

// Note

xx

inclusion.\n\t\t\t\t// {

a[b

}
^

c]d

-->

a[b

c]d

\n\t\t\t\tif (\n\t\t\t\t\tsourceRange.containsPosition( this.start ) &&\n\t\t\t\t\tthis.containsPosition( sourceRange.end ) &&\n\t\t\t\t\tthis.end.isAfter( targetPosition )\n\t\t\t\t) {\n\t\t\t\t\tconst start = this.start._getCombined(\n\t\t\t\t\t\tsourcePosition,\n\t\t\t\t\t\ttargetPosition._getTransformedByDeletion( sourcePosition, howMany )\n\t\t\t\t\t);\n\t\t\t\t\tconst end = this.end._getTransformedByMove( sourcePosition, targetPosition, howMany, false, false );\n\n\t\t\t\t\treturn [ new Range( start, end ) ];\n\t\t\t\t}\n\n\t\t\t\t// Example:\n\t\t\t\t//

c[d

{

a]b

}
^

xx

-->

c[d

a]b

xx

\n\t\t\t\t//

c[d

{

a]b

}

xx

^ -->

c[d

xx

a]b

// Note

xx

inclusion.\n\t\t\t\t//

c[d

^{

a]b

}
-->

c[d

a]b

\n\t\t\t\tif (\n\t\t\t\t\tsourceRange.containsPosition( this.end ) &&\n\t\t\t\t\tthis.containsPosition( sourceRange.start ) &&\n\t\t\t\t\tthis.start.isBefore( targetPosition )\n\t\t\t\t) {\n\t\t\t\t\tconst start = this.start._getTransformedByMove(\n\t\t\t\t\t\tsourcePosition,\n\t\t\t\t\t\ttargetPosition,\n\t\t\t\t\t\thowMany,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t\tconst end = this.end._getCombined(\n\t\t\t\t\t\tsourcePosition,\n\t\t\t\t\t\ttargetPosition._getTransformedByDeletion( sourcePosition, howMany )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn [ new Range( start, end ) ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this._getTransformedByMove( sourcePosition, targetPosition, howMany );\n\t\t}\n\t}\n\n\t/**\n\t * Returns an array containing one or two {@link ~Range ranges} that are a result of transforming this\n\t * {@link ~Range range} by inserting `howMany` nodes at `insertPosition`. Two {@link ~Range ranges} are\n\t * returned if the insertion was inside this {@link ~Range range} and `spread` is set to `true`.\n\t *\n\t * Examples:\n\t *\n\t *\t\tlet range = new Range( new Position( root, [ 2, 7 ] ), new Position( root, [ 4, 0, 1 ] ) );\n\t *\t\tlet transformed = range._getTransformedByInsertion( new Position( root, [ 1 ] ), 2 );\n\t *\t\t// transformed array has one range from [ 4, 7 ] to [ 6, 0, 1 ]\n\t *\n\t *\t\ttransformed = range._getTransformedByInsertion( new Position( root, [ 4, 0, 0 ] ), 4 );\n\t *\t\t// transformed array has one range from [ 2, 7 ] to [ 4, 0, 5 ]\n\t *\n\t *\t\ttransformed = range._getTransformedByInsertion( new Position( root, [ 3, 2 ] ), 4 );\n\t *\t\t// transformed array has one range, which is equal to original range\n\t *\n\t *\t\ttransformed = range._getTransformedByInsertion( new Position( root, [ 3, 2 ] ), 4, true );\n\t *\t\t// transformed array has two ranges: from [ 2, 7 ] to [ 3, 2 ] and from [ 3, 6 ] to [ 4, 0, 1 ]\n\t *\n\t *\t\ttransformed = range._getTransformedByInsertion( new Position( root, [ 4, 0, 1 ] ), 4, false, false );\n\t *\t\t// transformed array has one range which is equal to original range because insertion is after the range boundary\n\t *\n\t *\t\ttransformed = range._getTransformedByInsertion( new Position( root, [ 4, 0, 1 ] ), 4, false, true );\n\t *\t\t// transformed array has one range: from [ 2, 7 ] to [ 4, 0, 5 ] because range was expanded\n\t *\n\t * @protected\n\t * @param {module:engine/model/position~Position} insertPosition Position where nodes are inserted.\n\t * @param {Number} howMany How many nodes are inserted.\n\t * @param {Boolean} [spread] Flag indicating whether this {~Range range} should be spread if insertion\n\t * was inside the range. Defaults to `false`.\n\t * @param {Boolean} [isSticky] Flag indicating whether insertion should expand a range if it is in a place of\n\t * range boundary. Defaults to `false`.\n\t * @returns {Array.} Result of the transformation.\n\t */\n\t_getTransformedByInsertion( insertPosition, howMany, spread = false, isSticky = false ) {\n\t\tif ( spread && this.containsPosition( insertPosition ) ) {\n\t\t\t// Range has to be spread. The first part is from original start to the spread point.\n\t\t\t// The other part is from spread point to the original end, but transformed by\n\t\t\t// insertion to reflect insertion changes.\n\n\t\t\treturn [\n\t\t\t\tnew Range( this.start, insertPosition ),\n\t\t\t\tnew Range(\n\t\t\t\t\tinsertPosition._getTransformedByInsertion( insertPosition, howMany, true ),\n\t\t\t\t\tthis.end._getTransformedByInsertion( insertPosition, howMany, this.isCollapsed )\n\t\t\t\t)\n\t\t\t];\n\t\t} else {\n\t\t\tconst range = Range.createFromRange( this );\n\n\t\t\tconst insertBeforeStart = range.isCollapsed ? true : !isSticky;\n\t\t\tconst insertBeforeEnd = range.isCollapsed ? true : isSticky;\n\n\t\t\trange.start = range.start._getTransformedByInsertion( insertPosition, howMany, insertBeforeStart );\n\t\t\trange.end = range.end._getTransformedByInsertion( insertPosition, howMany, insertBeforeEnd );\n\n\t\t\treturn [ range ];\n\t\t}\n\t}\n\n\t/**\n\t * Returns an array containing {@link ~Range ranges} that are a result of transforming this\n\t * {@link ~Range range} by moving `howMany` nodes from `sourcePosition` to `targetPosition`.\n\t *\n\t * @protected\n\t * @param {module:engine/model/position~Position} sourcePosition Position from which nodes are moved.\n\t * @param {module:engine/model/position~Position} targetPosition Position to where nodes are moved.\n\t * @param {Number} howMany How many nodes are moved.\n\t * @returns {Array.} Result of the transformation.\n\t */\n\t_getTransformedByMove( sourcePosition, targetPosition, howMany ) {\n\t\tif ( this.isCollapsed ) {\n\t\t\tconst newPos = this.start._getTransformedByMove( sourcePosition, targetPosition, howMany, true, false );\n\n\t\t\treturn [ new Range( newPos ) ];\n\t\t}\n\n\t\tlet result;\n\n\t\tconst moveRange = new Range( sourcePosition, sourcePosition.getShiftedBy( howMany ) );\n\n\t\tconst differenceSet = this.getDifference( moveRange );\n\t\tlet difference = null;\n\n\t\tconst common = this.getIntersection( moveRange );\n\n\t\tif ( differenceSet.length == 1 ) {\n\t\t\t// `moveRange` and this range may intersect.\n\t\t\tdifference = new Range(\n\t\t\t\tdifferenceSet[ 0 ].start._getTransformedByDeletion( sourcePosition, howMany ),\n\t\t\t\tdifferenceSet[ 0 ].end._getTransformedByDeletion( sourcePosition, howMany )\n\t\t\t);\n\t\t} else if ( differenceSet.length == 2 ) {\n\t\t\t// `moveRange` is inside this range.\n\t\t\tdifference = new Range(\n\t\t\t\tthis.start,\n\t\t\t\tthis.end._getTransformedByDeletion( sourcePosition, howMany )\n\t\t\t);\n\t\t} // else, `moveRange` contains this range.\n\n\t\tconst insertPosition = targetPosition._getTransformedByDeletion( sourcePosition, howMany );\n\n\t\tif ( difference ) {\n\t\t\tresult = difference._getTransformedByInsertion( insertPosition, howMany, common !== null );\n\t\t} else {\n\t\t\tresult = [];\n\t\t}\n\n\t\tif ( common ) {\n\t\t\tresult.push( new Range(\n\t\t\t\tcommon.start._getCombined( moveRange.start, insertPosition ),\n\t\t\t\tcommon.end._getCombined( moveRange.start, insertPosition )\n\t\t\t) );\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * Creates a new range, spreading from specified {@link module:engine/model/position~Position position} to a position moved by\n\t * given `shift`. If `shift` is a negative value, shifted position is treated as the beginning of the range.\n\t *\n\t * @param {module:engine/model/position~Position} position Beginning of the range.\n\t * @param {Number} shift How long the range should be.\n\t * @returns {module:engine/model/range~Range}\n\t */\n\tstatic createFromPositionAndShift( position, shift ) {\n\t\tconst start = position;\n\t\tconst end = position.getShiftedBy( shift );\n\n\t\treturn shift > 0 ? new this( start, end ) : new this( end, start );\n\t}\n\n\t/**\n\t * Creates a range from given parents and offsets.\n\t *\n\t * @param {module:engine/model/element~Element} startElement Start position parent element.\n\t * @param {Number} startOffset Start position offset.\n\t * @param {module:engine/model/element~Element} endElement End position parent element.\n\t * @param {Number} endOffset End position offset.\n\t * @returns {module:engine/model/range~Range}\n\t */\n\tstatic createFromParentsAndOffsets( startElement, startOffset, endElement, endOffset ) {\n\t\treturn new this(\n\t\t\tPosition.createFromParentAndOffset( startElement, startOffset ),\n\t\t\tPosition.createFromParentAndOffset( endElement, endOffset )\n\t\t);\n\t}\n\n\t/**\n\t * Creates a new instance of `Range` which is equal to passed range.\n\t *\n\t * @param {module:engine/model/range~Range} range Range to clone.\n\t * @returns {module:engine/model/range~Range}\n\t */\n\tstatic createFromRange( range ) {\n\t\treturn new this( range.start, range.end );\n\t}\n\n\t/**\n\t * Creates a range inside an {@link module:engine/model/element~Element element} which starts before the first child of\n\t * that element and ends after the last child of that element.\n\t *\n\t * @param {module:engine/model/element~Element} element Element which is a parent for the range.\n\t * @returns {module:engine/model/range~Range}\n\t */\n\tstatic createIn( element ) {\n\t\treturn this.createFromParentsAndOffsets( element, 0, element, element.maxOffset );\n\t}\n\n\t/**\n\t * Creates a range that starts before given {@link module:engine/model/item~Item model item} and ends after it.\n\t *\n\t * @param {module:engine/model/item~Item} item\n\t * @returns {module:engine/model/range~Range}\n\t */\n\tstatic createOn( item ) {\n\t\treturn this.createFromPositionAndShift( Position.createBefore( item ), item.offsetSize );\n\t}\n\n\t/**\n\t * Combines all ranges from the passed array into a one range. At least one range has to be passed.\n\t * Passed ranges must not have common parts.\n\t *\n\t * The first range from the array is a reference range. If other ranges start or end on the exactly same position where\n\t * the reference range, they get combined into one range.\n\t *\n\t *\t\t[ ][] [ ][ ][ ][ ][] [ ] // Passed ranges, shown sorted\n\t *\t\t[ ] // The result of the function if the first range was a reference range.\n\t *\t [ ] // The result of the function if the third-to-seventh range was a reference range.\n\t *\t [ ] // The result of the function if the last range was a reference range.\n\t *\n\t * @param {Array.} ranges Ranges to combine.\n\t * @returns {module:engine/model/range~Range} Combined range.\n\t */\n\tstatic createFromRanges( ranges ) {\n\t\tif ( ranges.length === 0 ) {\n\t\t\t/**\n\t\t\t * At least one range has to be passed.\n\t\t\t *\n\t\t\t * @error range-create-from-ranges-empty-array\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'range-create-from-ranges-empty-array: At least one range has to be passed.' );\n\t\t} else if ( ranges.length == 1 ) {\n\t\t\treturn this.createFromRange( ranges[ 0 ] );\n\t\t}\n\n\t\t// 1. Set the first range in `ranges` array as a reference range.\n\t\t// If we are going to return just a one range, one of the ranges need to be the reference one.\n\t\t// Other ranges will be stuck to that range, if possible.\n\t\tconst ref = ranges[ 0 ];\n\n\t\t// 2. Sort all the ranges so it's easier to process them.\n\t\tranges.sort( ( a, b ) => {\n\t\t\treturn a.start.isAfter( b.start ) ? 1 : -1;\n\t\t} );\n\n\t\t// 3. Check at which index the reference range is now.\n\t\tconst refIndex = ranges.indexOf( ref );\n\n\t\t// 4. At this moment we don't need the original range.\n\t\t// We are going to modify the result and we need to return a new instance of Range.\n\t\t// We have to create a copy of the reference range.\n\t\tconst result = new this( ref.start, ref.end );\n\n\t\t// 5. Ranges should be checked and glued starting from the range that is closest to the reference range.\n\t\t// Since ranges are sorted, start with the range with index that is closest to reference range index.\n\t\tfor ( let i = refIndex - 1; i >= 0; i++ ) {\n\t\t\tif ( ranges[ i ].end.isEqual( result.start ) ) {\n\t\t\t\tresult.start = Position.createFromPosition( ranges[ i ].start );\n\t\t\t} else {\n\t\t\t\t// If ranges are not starting/ending at the same position there is no point in looking further.\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// 6. Ranges should be checked and glued starting from the range that is closest to the reference range.\n\t\t// Since ranges are sorted, start with the range with index that is closest to reference range index.\n\t\tfor ( let i = refIndex + 1; i < ranges.length; i++ ) {\n\t\t\tif ( ranges[ i ].start.isEqual( result.end ) ) {\n\t\t\t\tresult.end = Position.createFromPosition( ranges[ i ].end );\n\t\t\t} else {\n\t\t\t\t// If ranges are not starting/ending at the same position there is no point in looking further.\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * Creates a `Range` instance from given plain object (i.e. parsed JSON string).\n\t *\n\t * @param {Object} json Plain object to be converted to `Range`.\n\t * @param {module:engine/model/document~Document} doc Document object that will be range owner.\n\t * @returns {module:engine/model/element~Element} `Range` instance created using given plain object.\n\t */\n\tstatic fromJSON( json, doc ) {\n\t\treturn new this( Position.fromJSON( json.start, doc ), Position.fromJSON( json.end, doc ) );\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/model/range.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module utils/mix\n */\n\n/**\n * Copies enumerable properties and symbols from the objects given as 2nd+ parameters to the\n * prototype of first object (a constructor).\n *\n *\t\tclass Editor {\n *\t\t\t...\n *\t\t}\n *\n *\t\tconst SomeMixin = {\n *\t\t\ta() {\n *\t\t\t\treturn 'a';\n *\t\t\t}\n *\t\t};\n *\n *\t\tmix( Editor, SomeMixin, ... );\n *\n *\t\tnew Editor().a(); // -> 'a'\n *\n * Note: Properties which already exist in the base class will not be overriden.\n *\n * @param {Function} [baseClass] Class which prototype will be extended.\n * @param {Object} [...mixins] Objects from which to get properties.\n */\nexport default function mix( baseClass, ...mixins ) {\n\tmixins.forEach( mixin => {\n\t\tObject.getOwnPropertyNames( mixin ).concat( Object.getOwnPropertySymbols( mixin ) )\n\t\t\t.forEach( key => {\n\t\t\t\tif ( key in baseClass.prototype ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst sourceDescriptor = Object.getOwnPropertyDescriptor( mixin, key );\n\t\t\t\tsourceDescriptor.enumerable = false;\n\n\t\t\t\tObject.defineProperty( baseClass.prototype, key, sourceDescriptor );\n\t\t\t} );\n\t} );\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/mix.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/model/element\n */\n\nimport Node from './node';\nimport NodeList from './nodelist';\nimport Text from './text';\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\n\n/**\n * Model element. Type of {@link module:engine/model/node~Node node} that has a {@link module:engine/model/element~Element#name name} and\n * {@link module:engine/model/element~Element#getChildren child nodes}.\n *\n * **Important**: see {@link module:engine/model/node~Node} to read about restrictions using `Element` and `Node` API.\n */\nexport default class Element extends Node {\n\t/**\n\t * Creates a model element.\n\t *\n\t * @param {String} name Element's name.\n\t * @param {Object} [attrs] Element's attributes. See {@link module:utils/tomap~toMap} for a list of accepted values.\n\t * @param {module:engine/model/node~Node|Iterable.} [children]\n\t * One or more nodes to be inserted as children of created element.\n\t */\n\tconstructor( name, attrs, children ) {\n\t\tsuper( attrs );\n\n\t\t/**\n\t\t * Element name.\n\t\t *\n\t\t * @member {String} module:engine/model/element~Element#name\n\t\t */\n\t\tthis.name = name;\n\n\t\t/**\n\t\t * List of children nodes.\n\t\t *\n\t\t * @private\n\t\t * @member {module:engine/model/nodelist~NodeList} module:engine/model/element~Element#_children\n\t\t */\n\t\tthis._children = new NodeList();\n\n\t\tif ( children ) {\n\t\t\tthis.insertChildren( 0, children );\n\t\t}\n\t}\n\n\t/**\n\t * Number of this element's children.\n\t *\n\t * @readonly\n\t * @type {Number}\n\t */\n\tget childCount() {\n\t\treturn this._children.length;\n\t}\n\n\t/**\n\t * Sum of {module:engine/model/node~Node#offsetSize offset sizes} of all of this element's children.\n\t *\n\t * @readonly\n\t * @type {Number}\n\t */\n\tget maxOffset() {\n\t\treturn this._children.maxOffset;\n\t}\n\n\t/**\n\t * Is `true` if there are no nodes inside this element, `false` otherwise.\n\t *\n\t * @readonly\n\t * @type {Boolean}\n\t */\n\tget isEmpty() {\n\t\treturn this.childCount === 0;\n\t}\n\n\t/**\n\t * Checks whether given model tree object is of given type.\n\t *\n\t *\t\tobj.name; // 'listItem'\n\t *\t\tobj instanceof Element; // true\n\t *\n\t *\t\tobj.is( 'element' ); // true\n\t *\t\tobj.is( 'listItem' ); // true\n\t *\t\tobj.is( 'element', 'listItem' ); // true\n\t *\t\tobj.is( 'text' ); // false\n\t *\t\tobj.is( 'element', 'image' ); // false\n\t *\n\t * Read more in {@link module:engine/model/node~Node#is}.\n\t *\n\t * @param {String} type Type to check when `name` parameter is present.\n\t * Otherwise, it acts like the `name` parameter.\n\t * @param {String} [name] Element name.\n\t * @returns {Boolean}\n\t */\n\tis( type, name = null ) {\n\t\tif ( !name ) {\n\t\t\treturn type == 'element' || type == this.name;\n\t\t} else {\n\t\t\treturn type == 'element' && name == this.name;\n\t\t}\n\t}\n\n\t/**\n\t * Gets the child at the given index.\n\t *\n\t * @param {Number} index Index of child.\n\t * @returns {module:engine/model/node~Node} Child node.\n\t */\n\tgetChild( index ) {\n\t\treturn this._children.getNode( index );\n\t}\n\n\t/**\n\t * Returns an iterator that iterates over all of this element's children.\n\t *\n\t * @returns {Iterable.}\n\t */\n\tgetChildren() {\n\t\treturn this._children[ Symbol.iterator ]();\n\t}\n\n\t/**\n\t * Returns an index of the given child node. Returns `null` if given node is not a child of this element.\n\t *\n\t * @param {module:engine/model/node~Node} node Child node to look for.\n\t * @returns {Number} Child node's index in this element.\n\t */\n\tgetChildIndex( node ) {\n\t\treturn this._children.getNodeIndex( node );\n\t}\n\n\t/**\n\t * Returns the starting offset of given child. Starting offset is equal to the sum of\n\t * {module:engine/model/node~Node#offsetSize offset sizes} of all node's siblings that are before it. Returns `null` if\n\t * given node is not a child of this element.\n\t *\n\t * @param {module:engine/model/node~Node} node Child node to look for.\n\t * @returns {Number} Child node's starting offset.\n\t */\n\tgetChildStartOffset( node ) {\n\t\treturn this._children.getNodeStartOffset( node );\n\t}\n\n\t/**\n\t * Creates a copy of this element and returns it. Created element has the same name and attributes as the original element.\n\t * If clone is deep, the original element's children are also cloned. If not, then empty element is removed.\n\t *\n\t * @param {Boolean} [deep=false] If set to `true` clones element and all its children recursively. When set to `false`,\n\t * element will be cloned without any child.\n\t */\n\tclone( deep = false ) {\n\t\tconst children = deep ? Array.from( this._children ).map( node => node.clone( true ) ) : null;\n\n\t\treturn new Element( this.name, this.getAttributes(), children );\n\t}\n\n\t/**\n\t * Returns index of a node that occupies given offset. If given offset is too low, returns `0`. If given offset is\n\t * too high, returns {@link module:engine/model/element~Element#getChildIndex index after last child}.\n\t *\n\t *\t\tconst textNode = new Text( 'foo' );\n\t *\t\tconst pElement = new Element( 'p' );\n\t *\t\tconst divElement = new Element( [ textNode, pElement ] );\n\t *\t\tdivElement.offsetToIndex( -1 ); // Returns 0, because offset is too low.\n\t *\t\tdivElement.offsetToIndex( 0 ); // Returns 0, because offset 0 is taken by `textNode` which is at index 0.\n\t *\t\tdivElement.offsetToIndex( 1 ); // Returns 0, because `textNode` has `offsetSize` equal to 3, so it occupies offset 1 too.\n\t *\t\tdivElement.offsetToIndex( 2 ); // Returns 0.\n\t *\t\tdivElement.offsetToIndex( 3 ); // Returns 1.\n\t *\t\tdivElement.offsetToIndex( 4 ); // Returns 2. There are no nodes at offset 4, so last available index is returned.\n\t *\n\t * @param {Number} offset Offset to look for.\n\t * @returns {Number}\n\t */\n\toffsetToIndex( offset ) {\n\t\treturn this._children.offsetToIndex( offset );\n\t}\n\n\t/**\n\t * {@link module:engine/model/element~Element#insertChildren Inserts} one or more nodes at the end of this element.\n\t *\n\t * @param {module:engine/model/node~Node|Iterable.} nodes Nodes to be inserted.\n\t */\n\tappendChildren( nodes ) {\n\t\tthis.insertChildren( this.childCount, nodes );\n\t}\n\n\t/**\n\t * Inserts one or more nodes at the given index and sets {@link module:engine/model/node~Node#parent parent} of these nodes\n\t * to this element.\n\t *\n\t * @param {Number} index Index at which nodes should be inserted.\n\t * @param {module:engine/model/node~Node|Iterable.} nodes Nodes to be inserted.\n\t */\n\tinsertChildren( index, nodes ) {\n\t\tnodes = normalize( nodes );\n\n\t\tfor ( const node of nodes ) {\n\t\t\tnode.parent = this;\n\t\t}\n\n\t\tthis._children.insertNodes( index, nodes );\n\t}\n\n\t/**\n\t * Removes one or more nodes starting at the given index and sets\n\t * {@link module:engine/model/node~Node#parent parent} of these nodes to `null`.\n\t *\n\t * @param {Number} index Index of the first node to remove.\n\t * @param {Number} [howMany=1] Number of nodes to remove.\n\t * @returns {Array.} Array containing removed nodes.\n\t */\n\tremoveChildren( index, howMany = 1 ) {\n\t\tconst nodes = this._children.removeNodes( index, howMany );\n\n\t\tfor ( const node of nodes ) {\n\t\t\tnode.parent = null;\n\t\t}\n\n\t\treturn nodes;\n\t}\n\n\t/**\n\t * Returns a descendant node by its path relative to this element.\n\t *\n\t *\t\t// ac\n\t *\t\tthis.getNodeByPath( [ 0 ] ); // -> \"a\"\n\t *\t\tthis.getNodeByPath( [ 1 ] ); // -> \n\t *\t\tthis.getNodeByPath( [ 1, 0 ] ); // -> \"c\"\n\t *\n\t * @param {Array.} relativePath Path of the node to find, relative to this element.\n\t * @returns {module:engine/model/node~Node}\n\t */\n\tgetNodeByPath( relativePath ) {\n\t\tlet node = this; // eslint-disable-line consistent-this\n\n\t\tfor ( const index of relativePath ) {\n\t\t\tnode = node.getChild( index );\n\t\t}\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * Converts `Element` instance to plain object and returns it. Takes care of converting all of this element's children.\n\t *\n\t * @returns {Object} `Element` instance converted to plain object.\n\t */\n\ttoJSON() {\n\t\tconst json = super.toJSON();\n\n\t\tjson.name = this.name;\n\n\t\tif ( this._children.length > 0 ) {\n\t\t\tjson.children = [];\n\n\t\t\tfor ( const node of this._children ) {\n\t\t\t\tjson.children.push( node.toJSON() );\n\t\t\t}\n\t\t}\n\n\t\treturn json;\n\t}\n\n\t/**\n\t * Creates an `Element` instance from given plain object (i.e. parsed JSON string).\n\t * Converts `Element` children to proper nodes.\n\t *\n\t * @param {Object} json Plain object to be converted to `Element`.\n\t * @returns {module:engine/model/element~Element} `Element` instance created using given plain object.\n\t */\n\tstatic fromJSON( json ) {\n\t\tlet children = null;\n\n\t\tif ( json.children ) {\n\t\t\tchildren = [];\n\n\t\t\tfor ( const child of json.children ) {\n\t\t\t\tif ( child.name ) {\n\t\t\t\t\t// If child has name property, it is an Element.\n\t\t\t\t\tchildren.push( Element.fromJSON( child ) );\n\t\t\t\t} else {\n\t\t\t\t\t// Otherwise, it is a Text node.\n\t\t\t\t\tchildren.push( Text.fromJSON( child ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new Element( json.name, json.attributes, children );\n\t}\n}\n\n// Converts strings to Text and non-iterables to arrays.\n//\n// @param {String|module:engine/model/node~Node|Iterable.}\n// @return {Iterable.}\nfunction normalize( nodes ) {\n\t// Separate condition because string is iterable.\n\tif ( typeof nodes == 'string' ) {\n\t\treturn [ new Text( nodes ) ];\n\t}\n\n\tif ( !isIterable( nodes ) ) {\n\t\tnodes = [ nodes ];\n\t}\n\n\t// Array.from to enable .map() on non-arrays.\n\treturn Array.from( nodes )\n\t\t.map( node => {\n\t\t\treturn typeof node == 'string' ? new Text( node ) : node;\n\t\t} );\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/model/element.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module ui/template\n */\n\n/* global document */\n\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport View from './view';\nimport ViewCollection from './viewcollection';\nimport cloneDeepWith from '@ckeditor/ckeditor5-utils/src/lib/lodash/cloneDeepWith';\nimport isObject from '@ckeditor/ckeditor5-utils/src/lib/lodash/isObject';\nimport log from '@ckeditor/ckeditor5-utils/src/log';\n\nconst xhtmlNs = 'http://www.w3.org/1999/xhtml';\n\n/**\n * A basic Template class. It renders DOM HTMLElement or Text from {@link module:ui/template~TemplateDefinition} and supports\n * element attributes, children, bindings to {@link module:utils/observablemixin~ObservableMixin} instances and DOM events\n * propagation. For example:\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\tattributes: {\n *\t\t\t\tclass: 'foo',\n *\t\t\t\tstyle: {\n *\t\t\t\t\tbackgroundColor: 'yellow'\n *\t\t\t\t}\n *\t\t\t},\n *\t\t\tchildren: [\n *\t\t\t\t'A paragraph.'\n *\t\t\t]\n *\t\t} ).render();\n *\n * will render the following HTMLElement:\n *\n *\t\t

A paragraph.

\n *\n * See {@link module:ui/template~TemplateDefinition} to know more about templates and complex template definitions.\n *\n* @mixes module:utils/emittermixin~EmitterMixin\n */\nexport default class Template {\n\t/**\n\t * Creates an instance of the {@link ~Template} class.\n\t *\n\t * @param {module:ui/template~TemplateDefinition} def The definition of the template.\n\t */\n\tconstructor( def ) {\n\t\tObject.assign( this, normalize( clone( def ) ) );\n\n\t\t/**\n\t\t * Indicates whether this particular Template instance has been\n\t\t * {@link #render rendered}.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {Boolean}\n\t\t */\n\t\tthis._isRendered = false;\n\n\t\t/**\n\t\t * Tag of this template, i.e. `div`, indicating that the instance will render\n\t\t * to an HTMLElement.\n\t\t *\n\t\t * @member {String} #tag\n\t\t */\n\n\t\t/**\n\t\t * Text of this template, indicating that the instance will render to a DOM Text.\n\t\t *\n\t\t * @member {Array.} #text\n\t\t */\n\n\t\t/**\n\t\t * Attributes of this template, i.e. `{ id: [ 'ck-id' ] }`, corresponding with\n\t\t * HTML attributes on HTMLElement.\n\t\t *\n\t\t * Note: Only when {@link #tag} is defined.\n\t\t *\n\t\t * @member {Object} #attributes\n\t\t */\n\n\t\t/**\n\t\t * Children of this template; sub–templates. Each one is an independent\n\t\t * instance of {@link ~Template}.\n\t\t *\n\t\t * Note: Only when {@link #tag} is defined.\n\t\t *\n\t\t * @member {module:utils/collection~Collection.} #children\n\t\t */\n\n\t\t/**\n\t\t * DOM event listeners of this template.\n\t\t *\n\t\t * @member {Object} #eventListeners\n\t\t */\n\n\t\t/**\n\t\t * Data used by {@link #revert} method to restore a node\n\t\t * to its original state.\n\t\t *\n\t\t * See: {@link #apply}.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {module:ui/template~RenderData}\n\t\t */\n\t\tthis._revertData = null;\n\t}\n\n\t/**\n\t * Renders a DOM Node (`HTMLElement` or `Text`) out of the template.\n\t *\n\t * @see #apply\n\t *\n\t * @returns {HTMLElement|Text}\n\t */\n\trender() {\n\t\tconst node = this._renderNode( {\n\t\t\tintoFragment: true\n\t\t} );\n\n\t\tthis._isRendered = true;\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * Applies the template to an existing DOM Node, either `HTMLElement` or `Text`.\n\t *\n\t * **Note:** No new DOM nodes (HTMLElement or Text) will be created. Applying extends attributes\n\t * ({@link module:ui/template~TemplateDefinition attributes}) and listeners ({@link module:ui/template~TemplateDefinition on}) only.\n\t *\n\t * **Note:** Existing \"class\" and \"style\" attributes are extended when a template\n\t * is applied to a Node, while other attributes and `textContent` are overridden.\n\t *\n\t * **Note:** The process of applying a template can be easily reverted using\n\t * {@link module:ui/template~Template#revert} method.\n\t *\n\t *\t\tconst element = document.createElement( 'div' );\n\t *\t\tconst bind = Template.bind( observableInstance, emitterInstance );\n\t *\n\t *\t\tnew Template( {\n\t *\t\t\tattrs: {\n\t *\t\t\t\tid: 'first-div',\n\t *\t\t\t\tclass: bind.to( 'divClass' )\n\t *\t\t\t},\n\t *\t\t\ton: {\n\t *\t\t\t\tclick: bind( 'elementClicked' ) // Will be fired by the observableInstance.\n\t *\t\t\t}\n\t *\t\t\tchildren: [\n\t *\t\t\t\t'Div text.'\n\t *\t\t\t]\n\t *\t\t} ).apply( element );\n\t *\n\t *\t\telement.outerHTML == \"
Div text.
\"\n\t *\n\t * @see module:ui/template~Template#render\n\t * @see module:ui/template~Template#revert\n\t * @param {Node} node Root node for the template to apply.\n\t */\n\tapply( node ) {\n\t\tthis._revertData = getEmptyRevertData();\n\n\t\tthis._renderNode( {\n\t\t\tnode,\n\t\t\tisApplying: true,\n\t\t\trevertData: this._revertData\n\t\t} );\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * Reverts a template {@link module:ui/template~Template#apply applied} to a DOM Node.\n\t *\n\t * @param {Node} node Root node for the template to revert. In most cases, it's the same node\n\t * that {@link module:ui/template~Template#apply} has used.\n\t */\n\trevert( node ) {\n\t\tif ( !this._revertData ) {\n\t\t\t/**\n\t\t\t * Attempting reverting a template which has not been applied yet.\n\t\t\t *\n\t\t\t * @error ui-template-revert-not-applied\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'ui-template-revert-not-applied: Attempting reverting a template which has not been applied yet.' );\n\t\t}\n\n\t\tthis._revertTemplateFromNode( node, this._revertData );\n\t}\n\n\t/**\n\t * An entry point to the interface which allows binding DOM nodes to {@link module:utils/observablemixin~ObservableMixin}.\n\t * There are two types of bindings:\n\t *\n\t * * `HTMLElement` attributes or Text Node `textContent` can be synchronized with {@link module:utils/observablemixin~ObservableMixin}\n\t * instance attributes. See {@link module:ui/template~BindChain#to} and {@link module:ui/template~BindChain#if}.\n\t *\n\t * * DOM events fired on `HTMLElement` can be propagated through {@link module:utils/observablemixin~ObservableMixin}.\n\t * See {@link module:ui/template~BindChain#to}.\n\t *\n\t * @param {module:utils/observablemixin~ObservableMixin} observable An instance of ObservableMixin class.\n\t * @param {module:utils/emittermixin~EmitterMixin} emitter An instance of `Emitter` class. It listens\n\t * to `observable` attribute changes and DOM Events, depending on the binding. Usually {@link module:ui/view~View} instance.\n\t * @returns {module:ui/template~BindChain}\n\t */\n\tstatic bind( observable, emitter ) {\n\t\treturn {\n\t\t\tto( eventNameOrFunctionOrAttribute, callback ) {\n\t\t\t\treturn new TemplateToBinding( {\n\t\t\t\t\teventNameOrFunction: eventNameOrFunctionOrAttribute,\n\t\t\t\t\tattribute: eventNameOrFunctionOrAttribute,\n\t\t\t\t\tobservable, emitter, callback\n\t\t\t\t} );\n\t\t\t},\n\n\t\t\tif( attribute, valueIfTrue, callback ) {\n\t\t\t\treturn new TemplateIfBinding( {\n\t\t\t\t\tobservable, emitter, attribute, valueIfTrue, callback\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Extends {@link module:ui/template~Template} instance with additional content from {@link module:ui/template~TemplateDefinition}.\n\t *\n\t *\t\tconst bind = Template.bind( observable, emitterInstance );\n\t *\t\tconst instance = new Template( {\n\t *\t\t\ttag: 'p',\n\t *\t\t\tattributes: {\n\t *\t\t\t\tclass: 'a',\n\t *\t\t\t\tdata-x: bind.to( 'foo' )\n\t *\t\t\t},\n\t *\t\t\tchildren: [\n\t *\t\t\t\t{\n\t *\t\t\t\t\ttag: 'span',\n\t *\t\t\t\t\tattributes: {\n\t *\t\t\t\t\t\tclass: 'b'\n\t *\t\t\t\t\t},\n\t *\t\t\t\t\tchildren: [\n\t *\t\t\t\t\t\t'Span'\n\t *\t\t\t\t\t]\n\t *\t\t\t\t}\n\t *\t\t\t]\n\t *\t\t } );\n\t *\n\t *\t\t// Instance-level extension.\n\t *\t\tTemplate.extend( instance, {\n\t *\t\t\tattributes: {\n\t *\t\t\t\tclass: 'b',\n\t *\t\t\t\tdata-x: bind.to( 'bar' )\n\t *\t\t\t},\n\t *\t\t\tchildren: [\n\t *\t\t\t\t{\n\t *\t\t\t\t\tattributes: {\n\t *\t\t\t\t\t\tclass: 'c'\n\t *\t\t\t\t\t}\n\t *\t\t\t\t}\n\t *\t\t\t]\n\t *\t\t} );\n\t *\n\t *\t\t// Child extension.\n\t *\t\tTemplate.extend( instance.children.get( 0 ), {\n\t *\t\t\tattributes: {\n\t *\t\t\t\tclass: 'd'\n\t *\t\t\t}\n\t *\t\t} );\n\t *\n\t * the `instance.render().outerHTML` is\n\t *\n\t *\t\t

\n\t *\t\t\tSpan\n\t *\t\t

\n\t *\n\t * @param {module:ui/template~Template} template Existing Template instance to be extended.\n\t * @param {module:ui/template~TemplateDefinition} def An extension to existing an template instance.\n\t */\n\tstatic extend( template, def ) {\n\t\tif ( template._isRendered ) {\n\t\t\t/**\n\t\t\t * Extending a template after rendering may not work as expected. To make sure\n\t\t\t * the {@link #extend extending} works for the rendered element, perform it\n\t\t\t * before {@link #render} is called.\n\t\t\t *\n\t\t\t * @error template-extend-render\n\t\t\t */\n\t\t\tlog.warn( 'template-extend-render: Attempting to extend a template which has already been rendered.' );\n\t\t}\n\n\t\textendTemplate( template, normalize( clone( def ) ) );\n\t}\n\n\t/**\n\t * Renders a DOM Node (either `HTMLElement` or `Text`) out of the template.\n\t *\n\t * @protected\n\t * @param {module:ui/template~RenderData} data Rendering data.\n\t */\n\t_renderNode( data ) {\n\t\tlet isInvalid;\n\n\t\tif ( data.node ) {\n\t\t\t// When applying, a definition cannot have \"tag\" and \"text\" at the same time.\n\t\t\tisInvalid = this.tag && this.text;\n\t\t} else {\n\t\t\t// When rendering, a definition must have either \"tag\" or \"text\": XOR( this.tag, this.text ).\n\t\t\tisInvalid = this.tag ? this.text : !this.text;\n\t\t}\n\n\t\tif ( isInvalid ) {\n\t\t\t/**\n\t\t\t * Node definition cannot have \"tag\" and \"text\" properties at the same time.\n\t\t\t * Node definition must have either \"tag\" or \"text\" when rendering new Node.\n\t\t\t *\n\t\t\t * @error ui-template-wrong-syntax\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'ui-template-wrong-syntax: Node definition must have either \"tag\" or \"text\" when rendering new Node.'\n\t\t\t);\n\t\t}\n\n\t\tif ( this.text ) {\n\t\t\treturn this._renderText( data );\n\t\t} else {\n\t\t\treturn this._renderElement( data );\n\t\t}\n\t}\n\n\t/**\n\t * Renders an `HTMLElement` out of the template.\n\t *\n\t * @protected\n\t * @param {module:ui/template~RenderData} data Rendering data.\n\t */\n\t_renderElement( data ) {\n\t\tlet node = data.node;\n\n\t\tif ( !node ) {\n\t\t\tnode = data.node = document.createElementNS( this.ns || xhtmlNs, this.tag );\n\t\t}\n\n\t\tthis._renderAttributes( data );\n\t\tthis._renderElementChildren( data );\n\t\tthis._setUpListeners( data );\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * Renders a `Text` node out of {@link module:ui/template~Template#text}.\n\t *\n\t * @protected\n\t * @param {module:ui/template~RenderData} data Rendering data.\n\t */\n\t_renderText( data ) {\n\t\tlet node = data.node;\n\n\t\t// Save the original textContent to revert it in #revert().\n\t\tif ( node ) {\n\t\t\tdata.revertData.text = node.textContent;\n\t\t} else {\n\t\t\tnode = data.node = document.createTextNode( '' );\n\t\t}\n\n\t\t// Check if this Text Node is bound to Observable. Cases:\n\t\t//\n\t\t//\t\ttext: [ Template.bind( ... ).to( ... ) ]\n\t\t//\n\t\t//\t\ttext: [\n\t\t//\t\t\t'foo',\n\t\t//\t\t\tTemplate.bind( ... ).to( ... ),\n\t\t//\t\t\t...\n\t\t//\t\t]\n\t\t//\n\t\tif ( hasTemplateBinding( this.text ) ) {\n\t\t\tthis._bindToObservable( {\n\t\t\t\tschema: this.text,\n\t\t\t\tupdater: getTextUpdater( node ),\n\t\t\t\tdata\n\t\t\t} );\n\t\t}\n\t\t// Simply set text. Cases:\n\t\t//\n\t\t//\t\ttext: [ 'all', 'are', 'static' ]\n\t\t//\n\t\t//\t\ttext: [ 'foo' ]\n\t\t//\n\t\telse {\n\t\t\tnode.textContent = this.text.join( '' );\n\t\t}\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * Renders an `HTMLElement` attributes out of {@link module:ui/template~Template#attributes}.\n\t *\n\t * @protected\n\t * @param {module:ui/template~RenderData} data Rendering data.\n\t */\n\t_renderAttributes( data ) {\n\t\tlet attrName, attrValue, domAttrValue, attrNs;\n\n\t\tif ( !this.attributes ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst node = data.node;\n\t\tconst revertData = data.revertData;\n\n\t\tfor ( attrName in this.attributes ) {\n\t\t\t// Current attribute value in DOM.\n\t\t\tdomAttrValue = node.getAttribute( attrName );\n\n\t\t\t// The value to be set.\n\t\t\tattrValue = this.attributes[ attrName ];\n\n\t\t\t// Save revert data.\n\t\t\tif ( revertData ) {\n\t\t\t\trevertData.attributes[ attrName ] = domAttrValue;\n\t\t\t}\n\n\t\t\t// Detect custom namespace:\n\t\t\t//\n\t\t\t//\t\tclass: {\n\t\t\t//\t\t\tns: 'abc',\n\t\t\t//\t\t\tvalue: Template.bind( ... ).to( ... )\n\t\t\t//\t\t}\n\t\t\t//\n\t\t\tattrNs = ( isObject( attrValue[ 0 ] ) && attrValue[ 0 ].ns ) ? attrValue[ 0 ].ns : null;\n\n\t\t\t// Activate binding if one is found. Cases:\n\t\t\t//\n\t\t\t//\t\tclass: [\n\t\t\t//\t\t\tTemplate.bind( ... ).to( ... )\n\t\t\t//\t\t]\n\t\t\t//\n\t\t\t//\t\tclass: [\n\t\t\t//\t\t\t'bar',\n\t\t\t//\t\t\tTemplate.bind( ... ).to( ... ),\n\t\t\t//\t\t\t'baz'\n\t\t\t//\t\t]\n\t\t\t//\n\t\t\t//\t\tclass: {\n\t\t\t//\t\t\tns: 'abc',\n\t\t\t//\t\t\tvalue: Template.bind( ... ).to( ... )\n\t\t\t//\t\t}\n\t\t\t//\n\t\t\tif ( hasTemplateBinding( attrValue ) ) {\n\t\t\t\t// Normalize attributes with additional data like namespace:\n\t\t\t\t//\n\t\t\t\t//\t\tclass: {\n\t\t\t\t//\t\t\tns: 'abc',\n\t\t\t\t//\t\t\tvalue: [ ... ]\n\t\t\t\t//\t\t}\n\t\t\t\t//\n\t\t\t\tconst valueToBind = attrNs ? attrValue[ 0 ].value : attrValue;\n\n\t\t\t\t// Extend the original value of attributes like \"style\" and \"class\",\n\t\t\t\t// don't override them.\n\t\t\t\tif ( revertData && shouldExtend( attrName ) ) {\n\t\t\t\t\tvalueToBind.unshift( domAttrValue );\n\t\t\t\t}\n\n\t\t\t\tthis._bindToObservable( {\n\t\t\t\t\tschema: valueToBind,\n\t\t\t\t\tupdater: getAttributeUpdater( node, attrName, attrNs ),\n\t\t\t\t\tdata\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Style attribute could be an Object so it needs to be parsed in a specific way.\n\t\t\t//\n\t\t\t//\t\tstyle: {\n\t\t\t//\t\t\twidth: '100px',\n\t\t\t//\t\t\theight: Template.bind( ... ).to( ... )\n\t\t\t//\t\t}\n\t\t\t//\n\t\t\telse if ( attrName == 'style' && typeof attrValue[ 0 ] !== 'string' ) {\n\t\t\t\tthis._renderStyleAttribute( attrValue[ 0 ], data );\n\t\t\t}\n\n\t\t\t// Otherwise simply set the static attribute:\n\t\t\t//\n\t\t\t//\t\tclass: [ 'foo' ]\n\t\t\t//\n\t\t\t//\t\tclass: [ 'all', 'are', 'static' ]\n\t\t\t//\n\t\t\t//\t\tclass: [\n\t\t\t//\t\t\t{\n\t\t\t//\t\t\t\tns: 'abc',\n\t\t\t//\t\t\t\tvalue: [ 'foo' ]\n\t\t\t//\t\t\t}\n\t\t\t//\t\t]\n\t\t\t//\n\t\t\telse {\n\t\t\t\t// Extend the original value of attributes like \"style\" and \"class\",\n\t\t\t\t// don't override them.\n\t\t\t\tif ( revertData && domAttrValue && shouldExtend( attrName ) ) {\n\t\t\t\t\tattrValue.unshift( domAttrValue );\n\t\t\t\t}\n\n\t\t\t\tattrValue = attrValue\n\t\t\t\t\t// Retrieve \"values\" from:\n\t\t\t\t\t//\n\t\t\t\t\t//\t\tclass: [\n\t\t\t\t\t//\t\t\t{\n\t\t\t\t\t//\t\t\t\tns: 'abc',\n\t\t\t\t\t//\t\t\t\tvalue: [ ... ]\n\t\t\t\t\t//\t\t\t}\n\t\t\t\t\t//\t\t]\n\t\t\t\t\t//\n\t\t\t\t\t.map( val => val ? ( val.value || val ) : val )\n\t\t\t\t\t// Flatten the array.\n\t\t\t\t\t.reduce( ( prev, next ) => prev.concat( next ), [] )\n\t\t\t\t\t// Convert into string.\n\t\t\t\t\t.reduce( arrayValueReducer, '' );\n\n\t\t\t\tif ( !isFalsy( attrValue ) ) {\n\t\t\t\t\tnode.setAttributeNS( attrNs, attrName, attrValue );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Renders `style` attribute of an `HTMLElement` based on {@link module:ui/template~Template#attributes}.\n\t *\n\t * Style attribute is an {Object} with static values:\n\t *\n\t *\t\tattributes: {\n\t *\t\t\tstyle: {\n\t *\t\t\t\tcolor: 'red'\n\t *\t\t\t}\n\t *\t\t}\n\t *\n\t * or values bound to {@link module:ui/model~Model} properties:\n\t *\n\t *\t\tattributes: {\n\t *\t\t\tstyle: {\n\t *\t\t\t\tcolor: bind.to( ... )\n\t *\t\t\t}\n\t *\t\t}\n\t *\n\t * Note: `style` attribute is rendered without setting the namespace. It does not seem to be\n\t * needed.\n\t *\n\t * @private\n\t * @param {Object} styles Styles located in `attributes.style` of {@link module:ui/template~TemplateDefinition}.\n\t * @param {module:ui/template~RenderData} data Rendering data.\n\t */\n\t_renderStyleAttribute( styles, data ) {\n\t\tconst node = data.node;\n\n\t\tfor ( const styleName in styles ) {\n\t\t\tconst styleValue = styles[ styleName ];\n\n\t\t\t// Cases:\n\t\t\t//\n\t\t\t//\t\tstyle: {\n\t\t\t//\t\t\tcolor: bind.to( 'attribute' )\n\t\t\t//\t\t}\n\t\t\t//\n\t\t\tif ( hasTemplateBinding( styleValue ) ) {\n\t\t\t\tthis._bindToObservable( {\n\t\t\t\t\tschema: [ styleValue ],\n\t\t\t\t\tupdater: getStyleUpdater( node, styleName ),\n\t\t\t\t\tdata\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Cases:\n\t\t\t//\n\t\t\t//\t\tstyle: {\n\t\t\t//\t\t\tcolor: 'red'\n\t\t\t//\t\t}\n\t\t\t//\n\t\t\telse {\n\t\t\t\tnode.style[ styleName ] = styleValue;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Recursively renders `HTMLElement` children from {@link module:ui/template~Template#children}.\n\t *\n\t * @protected\n\t * @param {module:ui/template~RenderData} data Rendering data.\n\t */\n\t_renderElementChildren( data ) {\n\t\tconst node = data.node;\n\t\tconst container = data.intoFragment ? document.createDocumentFragment() : node;\n\t\tconst isApplying = data.isApplying;\n\t\tlet childIndex = 0;\n\n\t\tfor ( const child of this.children ) {\n\t\t\tif ( isViewCollection( child ) ) {\n\t\t\t\tif ( !isApplying ) {\n\t\t\t\t\tchild.setParent( node );\n\n\t\t\t\t\tfor ( const view of child ) {\n\t\t\t\t\t\tcontainer.appendChild( view.element );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if ( isView( child ) ) {\n\t\t\t\tif ( !isApplying ) {\n\t\t\t\t\tcontainer.appendChild( child.element );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isApplying ) {\n\t\t\t\t\tconst revertData = data.revertData;\n\t\t\t\t\tconst childRevertData = getEmptyRevertData();\n\n\t\t\t\t\trevertData.children.push( childRevertData );\n\n\t\t\t\t\tchild._renderNode( {\n\t\t\t\t\t\tnode: container.childNodes[ childIndex++ ],\n\t\t\t\t\t\tisApplying: true,\n\t\t\t\t\t\trevertData: childRevertData\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tcontainer.appendChild( child.render() );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( data.intoFragment ) {\n\t\t\tnode.appendChild( container );\n\t\t}\n\t}\n\n\t/**\n\t * Activates `on` listeners in the {@link module:ui/template~TemplateDefinition}\n\t * on a passed `HTMLElement`.\n\t *\n\t * @protected\n\t * @param {module:ui/template~RenderData} data Rendering data.\n\t */\n\t_setUpListeners( data ) {\n\t\tif ( !this.eventListeners ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( const key in this.eventListeners ) {\n\t\t\tconst revertBindings = this.eventListeners[ key ].map( schemaItem => {\n\t\t\t\tconst [ domEvtName, domSelector ] = key.split( '@' );\n\n\t\t\t\treturn schemaItem.activateDomEventListener( domEvtName, domSelector, data );\n\t\t\t} );\n\n\t\t\tif ( data.revertData ) {\n\t\t\t\tdata.revertData.bindings.push( revertBindings );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * For given {@link module:ui/template~TemplateValueSchema} containing {@link module:ui/template~TemplateBinding} it activates the\n\t * binding and sets its initial value.\n\t *\n\t * Note: {@link module:ui/template~TemplateValueSchema} can be for HTMLElement attributes or Text Node `textContent`.\n\t *\n\t * @protected\n\t * @param {Object} options Binding options.\n\t * @param {module:ui/template~TemplateValueSchema} options.schema\n\t * @param {Function} options.updater A function which updates DOM (like attribute or text).\n\t * @param {module:ui/template~RenderData} options.data Rendering data.\n\t */\n\t_bindToObservable( { schema, updater, data } ) {\n\t\tconst revertData = data.revertData;\n\n\t\t// Set initial values.\n\t\tsyncValueSchemaValue( schema, updater, data );\n\n\t\tconst revertBindings = schema\n\t\t\t// Filter \"falsy\" (false, undefined, null, '') value schema components out.\n\t\t\t.filter( item => !isFalsy( item ) )\n\t\t\t// Filter inactive bindings from schema, like static strings ('foo'), numbers (42), etc.\n\t\t\t.filter( item => item.observable )\n\t\t\t// Once only the actual binding are left, let the emitter listen to observable change:attribute event.\n\t\t\t// TODO: Reduce the number of listeners attached as many bindings may listen\n\t\t\t// to the same observable attribute.\n\t\t\t.map( templateBinding => templateBinding.activateAttributeListener( schema, updater, data ) );\n\n\t\tif ( revertData ) {\n\t\t\trevertData.bindings.push( revertBindings );\n\t\t}\n\t}\n\n\t/**\n\t * Reverts {@link module:ui/template~RenderData#revertData template data} from a node to\n\t * return it to the the original state.\n\t *\n\t * @protected\n\t * @param {HTMLElement|Text} node A node to be reverted.\n\t * @param {module:ui/template~RenderData#revertData} revertData Stores information about\n\t * what changes have been made by {@link #apply} to the node.\n\t */\n\t_revertTemplateFromNode( node, revertData ) {\n\t\tfor ( const binding of revertData.bindings ) {\n\t\t\t// Each binding may consist of several observable+observable#attribute.\n\t\t\t// like the following has 2:\n\t\t\t//\n\t\t\t//\t\tclass: [\n\t\t\t//\t\t\t'x',\n\t\t\t//\t\t\tbind.to( 'foo' ),\n\t\t\t//\t\t\t'y',\n\t\t\t//\t\t\tbind.to( 'bar' )\n\t\t\t//\t\t]\n\t\t\t//\n\t\t\tfor ( const revertBinding of binding ) {\n\t\t\t\trevertBinding();\n\t\t\t}\n\t\t}\n\n\t\tif ( revertData.text ) {\n\t\t\tnode.textContent = revertData.text;\n\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( const attrName in revertData.attributes ) {\n\t\t\tconst attrValue = revertData.attributes[ attrName ];\n\n\t\t\t// When the attribute has **not** been set before #apply().\n\t\t\tif ( attrValue === null ) {\n\t\t\t\tnode.removeAttribute( attrName );\n\t\t\t} else {\n\t\t\t\tnode.setAttribute( attrName, attrValue );\n\t\t\t}\n\t\t}\n\n\t\tfor ( let i = 0; i < revertData.children.length; ++i ) {\n\t\t\tthis._revertTemplateFromNode( node.childNodes[ i ], revertData.children[ i ] );\n\t\t}\n\t}\n}\n\nmix( Template, EmitterMixin );\n\n/**\n * Describes a binding created by {@link module:ui/template~Template.bind} interface.\n *\n * @protected\n */\nexport class TemplateBinding {\n\t/**\n\t * Creates an instance of the {@link module:ui/template~TemplateBinding} class.\n\t *\n\t * @param {module:ui/template~TemplateDefinition} def The definition of the binding.\n\t */\n\tconstructor( def ) {\n\t\tObject.assign( this, def );\n\n\t\t/**\n\t\t * An observable instance of the binding. It provides the attribute\n\t\t * with the value or passes the event when a corresponding DOM event is fired.\n\t\t *\n\t\t * @member {module:utils/observablemixin~ObservableMixin} module:ui/template~TemplateBinding#observable\n\t\t */\n\n\t\t/**\n\t\t * An {@link module:utils/emittermixin~EmitterMixin} instance used by the binding\n\t\t * to (either):\n\t\t *\n\t\t * * listen to the attribute change in the {@link module:ui/template~TemplateBinding#observable},\n\t\t * * listen to the event in the DOM.\n\t\t *\n\t\t * @member {module:utils/emittermixin~EmitterMixin} module:ui/template~TemplateBinding#emitter\n\t\t */\n\n\t\t/**\n\t\t * The name of the attribute of {@link module:ui/template~TemplateBinding#observable} which is observed.\n\t\t *\n\t\t * @member {String} module:ui/template~TemplateBinding#attribute\n\t\t */\n\n\t\t/**\n\t\t * A custom function to process the value of {@link module:ui/template~TemplateBinding#attribute}.\n\t\t *\n\t\t * @member {Function} [module:ui/template~TemplateBinding#callback]\n\t\t */\n\t}\n\n\t/**\n\t * Returns the value of the binding, which is the value of {@link module:ui/template~TemplateBinding#attribute} in\n\t * {@link module:ui/template~TemplateBinding#observable}.\n\t *\n\t * @param {Node} [node] A native DOM node, passed to the custom {@link module:ui/template~TemplateBinding#callback}.\n\t * @returns {*} The value of {@link module:ui/template~TemplateBinding#attribute} in\n\t * {@link module:ui/template~TemplateBinding#observable}.\n\t */\n\tgetValue( node ) {\n\t\tconst value = this.observable[ this.attribute ];\n\n\t\treturn this.callback ? this.callback( value, node ) : value;\n\t}\n\n\t/**\n\t * Activates the listener for the changes of {@link module:ui/template~TemplateBinding#attribute} in\n\t * {@link module:ui/template~TemplateBinding#observable}, which then updates the DOM with the aggregated\n\t * value of {@link module:ui/template~TemplateValueSchema}.\n\t *\n\t * For instance, the `class` attribute of the `Template` element can be be bound to\n\t * the observable `foo` attribute in `ObservableMixin` instance.\n\t *\n\t * @param {module:ui/template~TemplateValueSchema} schema A full schema to generate an attribute or text in DOM.\n\t * @param {Function} updater A DOM updater function used to update native DOM attribute or text.\n\t * @param {module:ui/template~RenderData} data Rendering data.\n\t * @returns {Function} A function to sever the listener binding.\n\t */\n\tactivateAttributeListener( schema, updater, data ) {\n\t\tconst callback = () => syncValueSchemaValue( schema, updater, data );\n\n\t\tthis.emitter.listenTo( this.observable, 'change:' + this.attribute, callback );\n\n\t\t// Allows revert of the listener.\n\t\treturn () => {\n\t\t\tthis.emitter.stopListening( this.observable, 'change:' + this.attribute, callback );\n\t\t};\n\t}\n}\n\n/**\n * Describes either:\n *\n * * a binding to {@link module:utils/observablemixin~ObservableMixin}\n * * or a native DOM event binding\n *\n * created by {@link module:ui/template~BindChain#to} method.\n *\n * @protected\n */\nexport class TemplateToBinding extends TemplateBinding {\n\t/**\n\t * Activates the listener for the native DOM event, which when fired, is propagated by\n\t * the {@link module:ui/template~TemplateBinding#emitter}.\n\t *\n\t * @param {String} domEvtName A name of the native DOM event.\n\t * @param {String} domSelector A selector in DOM to filter delegated events.\n\t * @param {module:ui/template~RenderData} data Rendering data.\n\t * @returns {Function} A function to sever the listener binding.\n\t */\n\tactivateDomEventListener( domEvtName, domSelector, data ) {\n\t\tconst callback = ( evt, domEvt ) => {\n\t\t\tif ( !domSelector || domEvt.target.matches( domSelector ) ) {\n\t\t\t\tif ( typeof this.eventNameOrFunction == 'function' ) {\n\t\t\t\t\tthis.eventNameOrFunction( domEvt );\n\t\t\t\t} else {\n\t\t\t\t\tthis.observable.fire( this.eventNameOrFunction, domEvt );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tthis.emitter.listenTo( data.node, domEvtName, callback );\n\n\t\t// Allows revert of the listener.\n\t\treturn () => {\n\t\t\tthis.emitter.stopListening( data.node, domEvtName, callback );\n\t\t};\n\t}\n}\n\n/**\n * Describes a binding to {@link module:utils/observablemixin~ObservableMixin} created by {@link module:ui/template~BindChain#if}\n * method.\n *\n * @protected\n */\nexport class TemplateIfBinding extends TemplateBinding {\n\t/**\n\t * @inheritDoc\n\t */\n\tgetValue( node ) {\n\t\tconst value = super.getValue( node );\n\n\t\treturn isFalsy( value ) ? false : ( this.valueIfTrue || true );\n\t}\n\n\t/**\n\t * The value of the DOM attribute/text to be set if the {@link module:ui/template~TemplateBinding#attribute} in\n\t * {@link module:ui/template~TemplateBinding#observable} is `true`.\n\t *\n\t * @member {String} [module:ui/template~TemplateIfBinding#valueIfTrue]\n\t */\n}\n\n// Checks whether given {@link module:ui/template~TemplateValueSchema} contains a\n// {@link module:ui/template~TemplateBinding}.\n//\n// @param {module:ui/template~TemplateValueSchema} schema\n// @returns {Boolean}\nfunction hasTemplateBinding( schema ) {\n\tif ( !schema ) {\n\t\treturn false;\n\t}\n\n\t// Normalize attributes with additional data like namespace:\n\t//\n\t//\t\tclass: {\n\t//\t\t\tns: 'abc',\n\t//\t\t\tvalue: [ ... ]\n\t//\t\t}\n\t//\n\tif ( schema.value ) {\n\t\tschema = schema.value;\n\t}\n\n\tif ( Array.isArray( schema ) ) {\n\t\treturn schema.some( hasTemplateBinding );\n\t} else if ( schema instanceof TemplateBinding ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n// Assembles the value using {@link module:ui/template~TemplateValueSchema} and stores it in a form of\n// an Array. Each entry of an Array corresponds to one of {@link module:ui/template~TemplateValueSchema}\n// items.\n//\n// @param {module:ui/template~TemplateValueSchema} schema\n// @param {Node} node DOM Node updated when {@link module:utils/observablemixin~ObservableMixin} changes.\n// @return {Array}\nfunction getValueSchemaValue( schema, node ) {\n\treturn schema.map( schemaItem => {\n\t\t// Process {@link module:ui/template~TemplateBinding} bindings.\n\t\tif ( schemaItem instanceof TemplateBinding ) {\n\t\t\treturn schemaItem.getValue( node );\n\t\t}\n\n\t\t// All static values like strings, numbers, and \"falsy\" values (false, null, undefined, '', etc.) just pass.\n\t\treturn schemaItem;\n\t} );\n}\n\n// A function executed each time bound Observable attribute changes, which updates DOM with a value\n// constructed from {@link module:ui/template~TemplateValueSchema}.\n//\n// @param {module:ui/template~TemplateValueSchema} schema\n// @param {Function} updater A function which updates DOM (like attribute or text).\n// @param {Node} node DOM Node updated when {@link module:utils/observablemixin~ObservableMixin} changes.\nfunction syncValueSchemaValue( schema, updater, { node } ) {\n\tlet value = getValueSchemaValue( schema, node );\n\n\t// Check if schema is a single Template.bind.if, like:\n\t//\n\t//\t\tclass: Template.bind.if( 'foo' )\n\t//\n\tif ( schema.length == 1 && schema[ 0 ] instanceof TemplateIfBinding ) {\n\t\tvalue = value[ 0 ];\n\t} else {\n\t\tvalue = value.reduce( arrayValueReducer, '' );\n\t}\n\n\tif ( isFalsy( value ) ) {\n\t\tupdater.remove();\n\t} else {\n\t\tupdater.set( value );\n\t}\n}\n\n// Returns an object consisting of `set` and `remove` functions, which\n// can be used in the context of DOM Node to set or reset `textContent`.\n// @see module:ui/view~View#_bindToObservable\n//\n// @param {Node} node DOM Node to be modified.\n// @returns {Object}\nfunction getTextUpdater( node ) {\n\treturn {\n\t\tset( value ) {\n\t\t\tnode.textContent = value;\n\t\t},\n\n\t\tremove() {\n\t\t\tnode.textContent = '';\n\t\t}\n\t};\n}\n\n// Returns an object consisting of `set` and `remove` functions, which\n// can be used in the context of DOM Node to set or reset an attribute.\n// @see module:ui/view~View#_bindToObservable\n//\n// @param {Node} node DOM Node to be modified.\n// @param {String} attrName Name of the attribute to be modified.\n// @param {String} [ns=null] Namespace to use.\n// @returns {Object}\nfunction getAttributeUpdater( el, attrName, ns ) {\n\treturn {\n\t\tset( value ) {\n\t\t\tel.setAttributeNS( ns, attrName, value );\n\t\t},\n\n\t\tremove() {\n\t\t\tel.removeAttributeNS( ns, attrName );\n\t\t}\n\t};\n}\n\n// Returns an object consisting of `set` and `remove` functions, which\n// can be used in the context of CSSStyleDeclaration to set or remove a style.\n// @see module:ui/view~View#_bindToObservable\n//\n// @param {Node} node DOM Node to be modified.\n// @param {String} styleName Name of the style to be modified.\n// @returns {Object}\nfunction getStyleUpdater( el, styleName ) {\n\treturn {\n\t\tset( value ) {\n\t\t\tel.style[ styleName ] = value;\n\t\t},\n\n\t\tremove() {\n\t\t\tel.style[ styleName ] = null;\n\t\t}\n\t};\n}\n\n// Clones definition of the template.\n//\n// @param {module:ui/template~TemplateDefinition} def\n// @returns {module:ui/template~TemplateDefinition}\nfunction clone( def ) {\n\tconst clone = cloneDeepWith( def, value => {\n\t\t// Don't clone the `Template.bind`* bindings because of the references to Observable\n\t\t// and DomEmitterMixin instances inside, which would also be traversed and cloned by greedy\n\t\t// cloneDeepWith algorithm. There's no point in cloning Observable/DomEmitterMixins\n\t\t// along with the definition.\n\t\t//\n\t\t// Don't clone Template instances if provided as a child. They're simply #render()ed\n\t\t// and nothing should interfere.\n\t\t//\n\t\t// Also don't clone View instances if provided as a child of the Template. The template\n\t\t// instance will be extracted from the View during the normalization and there's no need\n\t\t// to clone it.\n\t\tif ( value && ( value instanceof TemplateBinding || isTemplate( value ) || isView( value ) || isViewCollection( value ) ) ) {\n\t\t\treturn value;\n\t\t}\n\t} );\n\n\treturn clone;\n}\n\n// Normalizes given {@link module:ui/template~TemplateDefinition}.\n//\n// See:\n// * {@link normalizeAttributes}\n// * {@link normalizeListeners}\n// * {@link normalizePlainTextDefinition}\n// * {@link normalizeTextDefinition}\n//\n// @param {module:ui/template~TemplateDefinition} def\n// @returns {module:ui/template~TemplateDefinition} Normalized definition.\nfunction normalize( def ) {\n\tif ( typeof def == 'string' ) {\n\t\tdef = normalizePlainTextDefinition( def );\n\t} else if ( def.text ) {\n\t\tnormalizeTextDefinition( def );\n\t}\n\n\tif ( def.on ) {\n\t\tdef.eventListeners = normalizeListeners( def.on );\n\n\t\t// Template mixes EmitterMixin, so delete #on to avoid collision.\n\t\tdelete def.on;\n\t}\n\n\tif ( !def.text ) {\n\t\tif ( def.attributes ) {\n\t\t\tnormalizeAttributes( def.attributes );\n\t\t}\n\n\t\tconst children = new Collection();\n\n\t\tif ( def.children ) {\n\t\t\tif ( isViewCollection( def.children ) ) {\n\t\t\t\tchildren.add( def.children );\n\t\t\t} else {\n\t\t\t\tfor ( const child of def.children ) {\n\t\t\t\t\tif ( isTemplate( child ) || isView( child ) ) {\n\t\t\t\t\t\tchildren.add( child );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchildren.add( new Template( child ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdef.children = children;\n\t}\n\n\treturn def;\n}\n\n// Normalizes \"attributes\" section of {@link module:ui/template~TemplateDefinition}.\n//\n//\t\tattributes: {\n//\t\t\ta: 'bar',\n//\t\t\tb: {@link module:ui/template~TemplateBinding},\n//\t\t\tc: {\n//\t\t\t\tvalue: 'bar'\n//\t\t\t}\n//\t\t}\n//\n// becomes\n//\n//\t\tattributes: {\n//\t\t\ta: [ 'bar' ],\n//\t\t\tb: [ {@link module:ui/template~TemplateBinding} ],\n//\t\t\tc: {\n//\t\t\t\tvalue: [ 'bar' ]\n//\t\t\t}\n//\t\t}\n//\n// @param {Object} attrs\nfunction normalizeAttributes( attrs ) {\n\tfor ( const a in attrs ) {\n\t\tif ( attrs[ a ].value ) {\n\t\t\tattrs[ a ].value = [].concat( attrs[ a ].value );\n\t\t}\n\n\t\tarrayify( attrs, a );\n\t}\n}\n\n// Normalizes \"on\" section of {@link module:ui/template~TemplateDefinition}.\n//\n//\t\ton: {\n//\t\t\ta: 'bar',\n//\t\t\tb: {@link module:ui/template~TemplateBinding},\n//\t\t\tc: [ {@link module:ui/template~TemplateBinding}, () => { ... } ]\n//\t\t}\n//\n// becomes\n//\n//\t\ton: {\n//\t\t\ta: [ 'bar' ],\n//\t\t\tb: [ {@link module:ui/template~TemplateBinding} ],\n//\t\t\tc: [ {@link module:ui/template~TemplateBinding}, () => { ... } ]\n//\t\t}\n//\n// @param {Object} listeners\n// @returns {Object} Object containing normalized listeners.\nfunction normalizeListeners( listeners ) {\n\tfor ( const l in listeners ) {\n\t\tarrayify( listeners, l );\n\t}\n\n\treturn listeners;\n}\n\n// Normalizes \"string\" {@link module:ui/template~TemplateDefinition}.\n//\n//\t\t\"foo\"\n//\n// becomes\n//\n//\t\t{ text: [ 'foo' ] },\n//\n// @param {String} def\n// @returns {module:ui/template~TemplateDefinition} Normalized template definition.\nfunction normalizePlainTextDefinition( def ) {\n\treturn {\n\t\ttext: [ def ]\n\t};\n}\n\n// Normalizes text {@link module:ui/template~TemplateDefinition}.\n//\n//\t\tchildren: [\n//\t\t\t{ text: 'def' },\n//\t\t\t{ text: {@link module:ui/template~TemplateBinding} }\n//\t\t]\n//\n// becomes\n//\n//\t\tchildren: [\n//\t\t\t{ text: [ 'def' ] },\n//\t\t\t{ text: [ {@link module:ui/template~TemplateBinding} ] }\n//\t\t]\n//\n// @param {module:ui/template~TemplateDefinition} def\nfunction normalizeTextDefinition( def ) {\n\tif ( !Array.isArray( def.text ) ) {\n\t\tdef.text = [ def.text ];\n\t}\n}\n\n// Wraps an entry in Object in an Array, if not already one.\n//\n//\t\t{\n//\t\t\tx: 'y',\n//\t\t\ta: [ 'b' ]\n//\t\t}\n//\n// becomes\n//\n//\t\t{\n//\t\t\tx: [ 'y' ],\n//\t\t\ta: [ 'b' ]\n//\t\t}\n//\n// @param {Object} obj\n// @param {String} key\nfunction arrayify( obj, key ) {\n\tif ( !Array.isArray( obj[ key ] ) ) {\n\t\tobj[ key ] = [ obj[ key ] ];\n\t}\n}\n\n// A helper which concatenates the value avoiding unwanted\n// leading white spaces.\n//\n// @param {String} prev\n// @param {String} cur\n// @returns {String}\nfunction arrayValueReducer( prev, cur ) {\n\tif ( isFalsy( cur ) ) {\n\t\treturn prev;\n\t} else if ( isFalsy( prev ) ) {\n\t\treturn cur;\n\t} else {\n\t\treturn `${ prev } ${ cur }`;\n\t}\n}\n\n// Extends one object defined in the following format:\n//\n//\t\t{\n//\t\t\tkey1: [Array1],\n//\t\t\tkey2: [Array2],\n//\t\t\t...\n//\t\t\tkeyN: [ArrayN]\n//\t\t}\n//\n// with another object of the same data format.\n//\n// @param {Object} obj Base object.\n// @param {Object} ext Object extending base.\n// @returns {String}\nfunction extendObjectValueArray( obj, ext ) {\n\tfor ( const a in ext ) {\n\t\tif ( obj[ a ] ) {\n\t\t\tobj[ a ].push( ...ext[ a ] );\n\t\t} else {\n\t\t\tobj[ a ] = ext[ a ];\n\t\t}\n\t}\n}\n\n// A helper for {@link module:ui/template~Template#extend}. Recursively extends {@link module:ui/template~Template} instance\n// with content from {module:ui/template~TemplateDefinition}. See {@link module:ui/template~Template#extend} to learn more.\n//\n// @param {module:ui/template~Template} def A template instance to be extended.\n// @param {module:ui/template~TemplateDefinition} def A definition which is to extend the template instance.\nfunction extendTemplate( template, def ) {\n\tif ( def.attributes ) {\n\t\tif ( !template.attributes ) {\n\t\t\ttemplate.attributes = {};\n\t\t}\n\n\t\textendObjectValueArray( template.attributes, def.attributes );\n\t}\n\n\tif ( def.eventListeners ) {\n\t\tif ( !template.eventListeners ) {\n\t\t\ttemplate.eventListeners = {};\n\t\t}\n\n\t\textendObjectValueArray( template.eventListeners, def.eventListeners );\n\t}\n\n\tif ( def.text ) {\n\t\ttemplate.text.push( ...def.text );\n\t}\n\n\tif ( def.children && def.children.length ) {\n\t\tif ( template.children.length != def.children.length ) {\n\t\t\t/**\n\t\t\t * The number of children in extended definition does not match.\n\t\t\t *\n\t\t\t * @error ui-template-extend-children-mismatch\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'ui-template-extend-children-mismatch: The number of children in extended definition does not match.'\n\t\t\t);\n\t\t}\n\n\t\tlet childIndex = 0;\n\n\t\tfor ( const childDef of def.children ) {\n\t\t\textendTemplate( template.children.get( childIndex++ ), childDef );\n\t\t}\n\t}\n}\n\n// Checks if value is \"falsy\".\n// Note: 0 (Number) is not \"falsy\" in this context.\n//\n// @private\n// @param {*} value Value to be checked.\nfunction isFalsy( value ) {\n\treturn !value && value !== 0;\n}\n\n// Checks if the item is an instance of {@link module:ui/view~View}\n//\n// @private\n// @param {*} value Value to be checked.\nfunction isView( item ) {\n\treturn item instanceof View;\n}\n\n// Checks if the item is an instance of {@link module:ui/template~Template}\n//\n// @private\n// @param {*} value Value to be checked.\nfunction isTemplate( item ) {\n\treturn item instanceof Template;\n}\n\n// Checks if the item is an instance of {@link module:ui/viewcollection~ViewCollection}\n//\n// @private\n// @param {*} value Value to be checked.\nfunction isViewCollection( item ) {\n\treturn item instanceof ViewCollection;\n}\n\n// Creates an empty skeleton for {@link module:ui/template~Template#revert}\n// data.\n//\n// @private\nfunction getEmptyRevertData() {\n\treturn {\n\t\tchildren: [],\n\t\tbindings: [],\n\t\tattributes: {}\n\t};\n}\n\n// Checks whether an attribute should be extended when\n// {@link module:ui/template~Template#apply} is called.\n//\n// @private\n// @param {String} attrName Attribute name to check.\nfunction shouldExtend( attrName ) {\n\treturn attrName == 'class' || attrName == 'style';\n}\n\n/**\n * A definition of {@link module:ui/template~Template}.\n * See: {@link module:ui/template~TemplateValueSchema}.\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\tchildren: [\n *\t\t\t\t{\n *\t\t\t\t\ttag: 'span',\n *\t\t\t\t\tattributes: { ... },\n *\t\t\t\t\tchildren: [ ... ],\n *\t\t\t\t\t...\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\ttext: 'static–text'\n *\t\t\t\t},\n *\t\t\t\t'also-static–text',\n *\t\t\t\t<{@link module:ui/view~View} instance>\n *\t\t\t\t<{@link module:ui/template~Template} instance>\n *\t\t\t\t...\n *\t\t\t],\n *\t\t\tattributes: {\n *\t\t\t\tclass: {@link module:ui/template~TemplateValueSchema},\n *\t\t\t\tid: {@link module:ui/template~TemplateValueSchema},\n *\t\t\t\tstyle: {@link module:ui/template~TemplateValueSchema}\n *\t\t\t\t...\n *\t\t\t},\n *\t\t\ton: {\n *\t\t\t\t'click': {@link module:ui/template~TemplateListenerSchema}\n *\t\t\t\t'keyup@.some-class': {@link module:ui/template~TemplateListenerSchema},\n *\t\t\t\t...\n *\t\t\t}\n *\t\t} );\n *\n *\t\t// An entire view collection can be used as a child in the definition.\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\tchildren: <{@link module:ui/viewcollection~ViewCollection} instance>\n *\t\t} );\n *\n * @typedef module:ui/template~TemplateDefinition\n * @type Object\n * @property {String} tag\n * @property {Array.} [children]\n * @property {Object.} [attributes]\n * @property {String|module:ui/template~TemplateValueSchema|Array.} [text]\n * @property {Object.} [on]\n */\n\n/**\n * Describes a value of HTMLElement attribute or `textContent`. See:\n * * {@link module:ui/template~TemplateDefinition},\n * * {@link module:ui/template~Template.bind},\n *\n *\t\tconst bind = Template.bind( observableInstance, emitterInstance );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\tattributes: {\n *\t\t\t\t// Plain String schema.\n *\t\t\t\tclass: 'static-text'\n *\n *\t\t\t\t// Object schema, an `ObservableMixin` binding.\n *\t\t\t\tclass: bind.to( 'foo' )\n *\n *\t\t\t\t// Array schema, combines the above.\n *\t\t\t\tclass: [\n *\t\t\t\t\t'static-text',\n *\t\t\t\t\tbind.to( 'bar', () => { ... } )\n *\t\t\t\t],\n *\n *\t\t\t\t// Array schema, with custom namespace.\n *\t\t\t\tclass: {\n *\t\t\t\t\tns: 'http://ns.url',\n *\t\t\t\t\tvalue: [\n *\t\t\t\t\t\tbind.if( 'baz', 'value-when-true' )\n *\t\t\t\t\t\t'static-text'\n *\t\t\t\t\t]\n *\t\t\t\t},\n *\n *\t\t\t\t// Object literal schema, specific for styles.\n *\t\t\t\tstyle: {\n *\t\t\t\t\tcolor: 'red',\n *\t\t\t\t\tbackgroundColor: bind.to( 'qux', () => { ... } )\n *\t\t\t\t}\n *\t\t\t}\n *\t\t} );\n *\n * @typedef module:ui/template~TemplateValueSchema\n * @type {Object|String|Array}\n */\n\n/**\n * Describes a listener attached to HTMLElement. See: {@link module:ui/template~TemplateDefinition}.\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\ton: {\n *\t\t\t\t// Plain String schema.\n *\t\t\t\tclick: 'clicked'\n *\n *\t\t\t\t// Object schema, an `ObservableMixin` binding.\n *\t\t\t\tclick: {@link module:ui/template~TemplateBinding}\n *\n *\t\t\t\t// Array schema, combines the above.\n *\t\t\t\tclick: [\n *\t\t\t\t\t'clicked',\n *\t\t\t\t\t{@link module:ui/template~TemplateBinding}\n *\t\t\t\t],\n *\n *\t\t\t\t// Array schema, with custom callback.\n *\t\t\t\t// Note: It will work for \"click\" event on class=\".foo\" children only.\n *\t\t\t\t'click@.foo': {\n *\t\t\t\t\t'clicked',\n *\t\t\t\t\t{@link module:ui/template~TemplateBinding},\n *\t\t\t\t\t() => { ... }\n *\t\t\t\t}\n *\t\t\t}\n *\t\t} );\n *\n * @typedef module:ui/template~TemplateListenerSchema\n * @type {Object|String|Array}\n */\n\n/**\n * The type of {@link ~Template.bind}'s return value.\n *\n * @interface module:ui/template~BindChain\n */\n\n/**\n * Binds {@link module:utils/observablemixin~ObservableMixin} instance to:\n *\n * * HTMLElement attribute or Text Node `textContent` so remains in sync with the Observable when it changes:\n * * HTMLElement DOM event, so the DOM events are propagated through Observable.\n *\n *\t\tconst bind = Template.bind( observableInstance, emitterInstance );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\tattributes: {\n *\t\t\t\t// class=\"...\" attribute gets bound to `observableInstance#a`\n *\t\t\t\t'class': bind.to( 'a' )\n *\t\t\t},\n *\t\t\tchildren: [\n *\t\t\t\t//

...

gets bound to `observableInstance#b`; always `toUpperCase()`.\n *\t\t\t\t{ text: bind.to( 'b', ( value, node ) => value.toUpperCase() ) }\n *\t\t\t],\n *\t\t\ton: {\n *\t\t\t\tclick: [\n *\t\t\t\t\t// \"clicked\" event will be fired on `observableInstance` when \"click\" fires in DOM.\n *\t\t\t\t\tbind.to( 'clicked' ),\n *\n *\t\t\t\t\t// A custom callback function will be executed when \"click\" fires in DOM.\n *\t\t\t\t\tbind.to( () => {\n *\t\t\t\t\t\t...\n *\t\t\t\t\t} )\n *\t\t\t\t]\n *\t\t\t}\n *\t\t} ).render();\n *\n *\t\tconst bind = Template.bind( observableInstance, emitterInstance );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t} ).render();\n *\n * @method #to\n * @param {String|Function} eventNameOrFunctionOrAttribute An attribute name of\n * {@link module:utils/observablemixin~ObservableMixin} or a DOM event name or an event callback.\n * @param {Function} [callback] Allows processing of the value. Accepts `Node` and `value` as arguments.\n * @return {module:ui/template~TemplateBinding}\n */\n\n/**\n * Binds {@link module:utils/observablemixin~ObservableMixin} to HTMLElement attribute or Text Node `textContent`\n * so remains in sync with the Model when it changes. Unlike {@link module:ui/template~BindChain#to},\n * it controls the presence of the attribute/`textContent` depending on the \"falseness\" of\n * {@link module:utils/observablemixin~ObservableMixin} attribute.\n *\n *\t\tconst bind = Template.bind( observableInstance, emitterInstance );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'input',\n *\t\t\tattributes: {\n *\t\t\t\t// when `observableInstance#a` is not undefined/null/false/''\n *\t\t\t\t// when `observableInstance#a` is undefined/null/false\n *\t\t\t\tchecked: bind.if( 'a' )\n *\t\t\t},\n *\t\t\tchildren: [\n *\t\t\t\t{\n *\t\t\t\t\t// \"b-is-not-set\" when `observableInstance#b` is undefined/null/false/''\n *\t\t\t\t\t// when `observableInstance#b` is not \"falsy\"\n *\t\t\t\t\ttext: bind.if( 'b', 'b-is-not-set', ( value, node ) => !value )\n *\t\t\t\t}\n *\t\t\t]\n *\t\t} ).render();\n *\n * @method #if\n * @param {String} attribute An attribute name of {@link module:utils/observablemixin~ObservableMixin} used in the binding.\n * @param {String} [valueIfTrue] Value set when {@link module:utils/observablemixin~ObservableMixin} attribute is not\n * undefined/null/false/''.\n * @param {Function} [callback] Allows processing of the value. Accepts `Node` and `value` as arguments.\n * @return {module:ui/template~TemplateBinding}\n */\n\n/**\n * The {@link module:ui/template~Template#_renderNode} configuration.\n *\n * @private\n * @interface module:ui/template~RenderData\n */\n\n/**\n * Tells {@link module:ui/template~Template#_renderNode} to render\n * children into `DocumentFragment` first and then append the fragment\n * to the parent element. It's a speed optimization.\n *\n * @member {Boolean} #intoFragment\n */\n\n/**\n * A node which is being rendered.\n *\n * @member {HTMLElement|Text} #node\n */\n\n/**\n * Indicates whether the {@module:ui/template~RenderNodeOptions#node} has\n * been provided by {@module:ui/template~Template#apply}.\n *\n * @member {Boolean} #isApplying\n */\n\n/**\n * An object storing the data that helps {@module:ui/template~Template#revert}\n * bringing back an element to its initial state, i.e. before\n * {@module:ui/template~Template#apply} was called.\n *\n * @member {Object} #revertData\n */\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-ui/src/template.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module utils/emittermixin\n */\n\nimport EventInfo from './eventinfo';\nimport uid from './uid';\nimport priorities from './priorities';\n\nconst _listeningTo = Symbol( 'listeningTo' );\nconst _emitterId = Symbol( 'emitterId' );\n\n/**\n * Mixin that injects the events API into its host.\n *\n * @mixin EmitterMixin\n * @implements module:utils/emittermixin~Emitter\n */\nconst EmitterMixin = {\n\t/**\n\t * Registers a callback function to be executed when an event is fired. Events can be grouped in namespaces using `:`.\n\t * When namespaced event is fired, it additionaly fires all callbacks for that namespace.\n\t *\n\t *\t\tmyEmitter.on( 'myGroup', genericCallback );\n\t *\t\tmyEmitter.on( 'myGroup:myEvent', specificCallback );\n\t *\t\tmyEmitter.fire( 'myGroup' ); // genericCallback is fired.\n\t *\t\tmyEmitter.fire( 'myGroup:myEvent' ); // both genericCallback and specificCallback are fired.\n\t *\t\tmyEmitter.fire( 'myGroup:foo' ); // genericCallback is fired even though there are no callbacks for \"foo\".\n\t *\n\t * @method #on\n\t * @param {String} event The name of the event.\n\t * @param {Function} callback The function to be called on event.\n\t * @param {Object} [options={}] Additional options.\n\t * @param {module:utils/priorities~PriorityString|Number} [options.priority='normal'] The priority of this event callback. The higher\n\t * the priority value the sooner the callback will be fired. Events having the same priority are called in the\n\t * order they were added.\n\t * @param {Object} [options.context] The object that represents `this` in the callback. Defaults to the object firing the event.\n\t */\n\ton( event, callback, options = {} ) {\n\t\tcreateEventNamespace( this, event );\n\t\tconst lists = getCallbacksListsForNamespace( this, event );\n\t\tconst priority = priorities.get( options.priority );\n\n\t\tcallback = {\n\t\t\tcallback,\n\t\t\tcontext: options.context || this,\n\t\t\tpriority\n\t\t};\n\n\t\t// Add the callback to all callbacks list.\n\t\tfor ( const callbacks of lists ) {\n\t\t\t// Add the callback to the list in the right priority position.\n\t\t\tlet added = false;\n\n\t\t\tfor ( let i = 0; i < callbacks.length; i++ ) {\n\t\t\t\tif ( callbacks[ i ].priority < priority ) {\n\t\t\t\t\tcallbacks.splice( i, 0, callback );\n\t\t\t\t\tadded = true;\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add at the end, if right place was not found.\n\t\t\tif ( !added ) {\n\t\t\t\tcallbacks.push( callback );\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Registers a callback function to be executed on the next time the event is fired only. This is similar to\n\t * calling {@link #on} followed by {@link #off} in the callback.\n\t *\n\t * @method #once\n\t * @param {String} event The name of the event.\n\t * @param {Function} callback The function to be called on event.\n\t * @param {Object} [options={}] Additional options.\n\t * @param {module:utils/priorities~PriorityString|Number} [options.priority='normal'] The priority of this event callback. The higher\n\t * the priority value the sooner the callback will be fired. Events having the same priority are called in the\n\t * order they were added.\n\t * @param {Object} [options.context] The object that represents `this` in the callback. Defaults to the object firing the event.\n\t */\n\tonce( event, callback, options ) {\n\t\tconst onceCallback = function( event, ...args ) {\n\t\t\t// Go off() at the first call.\n\t\t\tevent.off();\n\n\t\t\t// Go with the original callback.\n\t\t\tcallback.call( this, event, ...args );\n\t\t};\n\n\t\t// Make a similar on() call, simply replacing the callback.\n\t\tthis.on( event, onceCallback, options );\n\t},\n\n\t/**\n\t * Stops executing the callback on the given event.\n\t *\n\t * @method #off\n\t * @param {String} event The name of the event.\n\t * @param {Function} callback The function to stop being called.\n\t * @param {Object} [context] The context object to be removed, pared with the given callback. To handle cases where\n\t * the same callback is used several times with different contexts.\n\t */\n\toff( event, callback, context ) {\n\t\tconst lists = getCallbacksListsForNamespace( this, event );\n\n\t\tfor ( const callbacks of lists ) {\n\t\t\tfor ( let i = 0; i < callbacks.length; i++ ) {\n\t\t\t\tif ( callbacks[ i ].callback == callback ) {\n\t\t\t\t\tif ( !context || context == callbacks[ i ].context ) {\n\t\t\t\t\t\t// Remove the callback from the list (fixing the next index).\n\t\t\t\t\t\tcallbacks.splice( i, 1 );\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Registers a callback function to be executed when an event is fired in a specific (emitter) object.\n\t *\n\t * @method #listenTo\n\t * @param {module:utils/emittermixin~Emitter} emitter The object that fires the event.\n\t * @param {String} event The name of the event.\n\t * @param {Function} callback The function to be called on event.\n\t * @param {Object} [options={}] Additional options.\n\t * @param {module:utils/priorities~PriorityString|Number} [options.priority='normal'] The priority of this event callback. The higher\n\t * the priority value the sooner the callback will be fired. Events having the same priority are called in the\n\t * order they were added.\n\t * @param {Object} [options.context] The object that represents `this` in the callback. Defaults to the object firing the event.\n\t */\n\tlistenTo( emitter, event, callback, options ) {\n\t\tlet emitterInfo, eventCallbacks;\n\n\t\t// _listeningTo contains a list of emitters that this object is listening to.\n\t\t// This list has the following format:\n\t\t//\n\t\t// _listeningTo: {\n\t\t// emitterId: {\n\t\t// emitter: emitter,\n\t\t// callbacks: {\n\t\t// event1: [ callback1, callback2, ... ]\n\t\t// ....\n\t\t// }\n\t\t// },\n\t\t// ...\n\t\t// }\n\n\t\tif ( !this[ _listeningTo ] ) {\n\t\t\tthis[ _listeningTo ] = {};\n\t\t}\n\n\t\tconst emitters = this[ _listeningTo ];\n\n\t\tif ( !_getEmitterId( emitter ) ) {\n\t\t\t_setEmitterId( emitter );\n\t\t}\n\n\t\tconst emitterId = _getEmitterId( emitter );\n\n\t\tif ( !( emitterInfo = emitters[ emitterId ] ) ) {\n\t\t\temitterInfo = emitters[ emitterId ] = {\n\t\t\t\temitter,\n\t\t\t\tcallbacks: {}\n\t\t\t};\n\t\t}\n\n\t\tif ( !( eventCallbacks = emitterInfo.callbacks[ event ] ) ) {\n\t\t\teventCallbacks = emitterInfo.callbacks[ event ] = [];\n\t\t}\n\n\t\teventCallbacks.push( callback );\n\n\t\t// Finally register the callback to the event.\n\t\temitter.on( event, callback, options );\n\t},\n\n\t/**\n\t * Stops listening for events. It can be used at different levels:\n\t *\n\t * * To stop listening to a specific callback.\n\t * * To stop listening to a specific event.\n\t * * To stop listening to all events fired by a specific object.\n\t * * To stop listening to all events fired by all object.\n\t *\n\t * @method #stopListening\n\t * @param {module:utils/emittermixin~Emitter} [emitter] The object to stop listening to. If omitted, stops it for all objects.\n\t * @param {String} [event] (Requires the `emitter`) The name of the event to stop listening to. If omitted, stops it\n\t * for all events from `emitter`.\n\t * @param {Function} [callback] (Requires the `event`) The function to be removed from the call list for the given\n\t * `event`.\n\t */\n\tstopListening( emitter, event, callback ) {\n\t\tconst emitters = this[ _listeningTo ];\n\t\tlet emitterId = emitter && _getEmitterId( emitter );\n\t\tconst emitterInfo = emitters && emitterId && emitters[ emitterId ];\n\t\tconst eventCallbacks = emitterInfo && event && emitterInfo.callbacks[ event ];\n\n\t\t// Stop if nothing has been listened.\n\t\tif ( !emitters || ( emitter && !emitterInfo ) || ( event && !eventCallbacks ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// All params provided. off() that single callback.\n\t\tif ( callback ) {\n\t\t\temitter.off( event, callback );\n\t\t}\n\t\t// Only `emitter` and `event` provided. off() all callbacks for that event.\n\t\telse if ( eventCallbacks ) {\n\t\t\twhile ( ( callback = eventCallbacks.pop() ) ) {\n\t\t\t\temitter.off( event, callback );\n\t\t\t}\n\t\t\tdelete emitterInfo.callbacks[ event ];\n\t\t}\n\t\t// Only `emitter` provided. off() all events for that emitter.\n\t\telse if ( emitterInfo ) {\n\t\t\tfor ( event in emitterInfo.callbacks ) {\n\t\t\t\tthis.stopListening( emitter, event );\n\t\t\t}\n\t\t\tdelete emitters[ emitterId ];\n\t\t}\n\t\t// No params provided. off() all emitters.\n\t\telse {\n\t\t\tfor ( emitterId in emitters ) {\n\t\t\t\tthis.stopListening( emitters[ emitterId ].emitter );\n\t\t\t}\n\t\t\tdelete this[ _listeningTo ];\n\t\t}\n\t},\n\n\t/**\n\t * Fires an event, executing all callbacks registered for it.\n\t *\n\t * The first parameter passed to callbacks is an {@link module:utils/eventinfo~EventInfo} object,\n\t * followed by the optional `args` provided in the `fire()` method call.\n\t *\n\t * @method #fire\n\t * @param {String|module:utils/eventinfo~EventInfo} eventOrInfo The name of the event or `EventInfo` object if event is delegated.\n\t * @param {...*} [args] Additional arguments to be passed to the callbacks.\n\t */\n\tfire( eventOrInfo, ...args ) {\n\t\tconst eventInfo = eventOrInfo instanceof EventInfo ? eventOrInfo : new EventInfo( this, eventOrInfo );\n\t\tconst event = eventInfo.name;\n\t\tlet callbacks = getCallbacksForEvent( this, event );\n\n\t\t// Record that the event passed this emitter on its path.\n\t\teventInfo.path.push( this );\n\n\t\t// Handle event listener callbacks first.\n\t\tif ( callbacks ) {\n\t\t\t// Arguments passed to each callback.\n\t\t\tconst callbackArgs = [ eventInfo, ...args ];\n\n\t\t\t// Copying callbacks array is the easiest and most secure way of preventing infinite loops, when event callbacks\n\t\t\t// are added while processing other callbacks. Previous solution involved adding counters (unique ids) but\n\t\t\t// failed if callbacks were added to the queue before currently processed callback.\n\t\t\t// If this proves to be too inefficient, another method is to change `.on()` so callbacks are stored if same\n\t\t\t// event is currently processed. Then, `.fire()` at the end, would have to add all stored events.\n\t\t\tcallbacks = Array.from( callbacks );\n\n\t\t\tfor ( let i = 0; i < callbacks.length; i++ ) {\n\t\t\t\tcallbacks[ i ].callback.apply( callbacks[ i ].context, callbackArgs );\n\n\t\t\t\t// Remove the callback from future requests if off() has been called.\n\t\t\t\tif ( eventInfo.off.called ) {\n\t\t\t\t\t// Remove the called mark for the next calls.\n\t\t\t\t\tdelete eventInfo.off.called;\n\n\t\t\t\t\tthis.off( event, callbacks[ i ].callback, callbacks[ i ].context );\n\t\t\t\t}\n\n\t\t\t\t// Do not execute next callbacks if stop() was called.\n\t\t\t\tif ( eventInfo.stop.called ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Delegate event to other emitters if needed.\n\t\tif ( this._delegations ) {\n\t\t\tconst destinations = this._delegations.get( event );\n\t\t\tconst passAllDestinations = this._delegations.get( '*' );\n\n\t\t\tif ( destinations ) {\n\t\t\t\tfireDelegatedEvents( destinations, eventInfo, args );\n\t\t\t}\n\n\t\t\tif ( passAllDestinations ) {\n\t\t\t\tfireDelegatedEvents( passAllDestinations, eventInfo, args );\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Delegates selected events to another {@link module:utils/emittermixin~Emitter}. For instance:\n\t *\n\t *\t\temitterA.delegate( 'eventX' ).to( emitterB );\n\t *\t\temitterA.delegate( 'eventX', 'eventY' ).to( emitterC );\n\t *\n\t * then `eventX` is delegated (fired by) `emitterB` and `emitterC` along with `data`:\n\t *\n\t *\t\temitterA.fire( 'eventX', data );\n\t *\n\t * and `eventY` is delegated (fired by) `emitterC` along with `data`:\n\t *\n\t *\t\temitterA.fire( 'eventY', data );\n\t *\n\t * @method #delegate\n\t * @param {...String} events Event names that will be delegated to another emitter.\n\t * @returns {module:utils/emittermixin~EmitterMixinDelegateChain}\n\t */\n\tdelegate( ...events ) {\n\t\treturn {\n\t\t\tto: ( emitter, nameOrFunction ) => {\n\t\t\t\tif ( !this._delegations ) {\n\t\t\t\t\tthis._delegations = new Map();\n\t\t\t\t}\n\n\t\t\t\tfor ( const eventName of events ) {\n\t\t\t\t\tconst destinations = this._delegations.get( eventName );\n\n\t\t\t\t\tif ( !destinations ) {\n\t\t\t\t\t\tthis._delegations.set( eventName, new Map( [ [ emitter, nameOrFunction ] ] ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdestinations.set( emitter, nameOrFunction );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t},\n\n\t/**\n\t * Stops delegating events. It can be used at different levels:\n\t *\n\t * * To stop delegating all events.\n\t * * To stop delegating a specific event to all emitters.\n\t * * To stop delegating a specific event to a specific emitter.\n\t *\n\t * @method #stopDelegating\n\t * @param {String} [event] The name of the event to stop delegating. If omitted, stops it all delegations.\n\t * @param {module:utils/emittermixin~Emitter} [emitter] (requires `event`) The object to stop delegating a particular event to.\n\t * If omitted, stops delegation of `event` to all emitters.\n\t */\n\tstopDelegating( event, emitter ) {\n\t\tif ( !this._delegations ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !event ) {\n\t\t\tthis._delegations.clear();\n\t\t} else if ( !emitter ) {\n\t\t\tthis._delegations.delete( event );\n\t\t} else {\n\t\t\tconst destinations = this._delegations.get( event );\n\n\t\t\tif ( destinations ) {\n\t\t\t\tdestinations.delete( emitter );\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport default EmitterMixin;\n\n/**\n * Checks if `listeningEmitter` listens to an emitter with given `listenedToEmitterId` and if so, returns that emitter.\n * If not, returns `null`.\n *\n * @protected\n * @param {module:utils/emittermixin~EmitterMixin} listeningEmitter Emitter that listens.\n * @param {String} listenedToEmitterId Unique emitter id of emitter listened to.\n * @returns {module:utils/emittermixin~EmitterMixin|null}\n */\nexport function _getEmitterListenedTo( listeningEmitter, listenedToEmitterId ) {\n\tif ( listeningEmitter[ _listeningTo ] && listeningEmitter[ _listeningTo ][ listenedToEmitterId ] ) {\n\t\treturn listeningEmitter[ _listeningTo ][ listenedToEmitterId ].emitter;\n\t}\n\n\treturn null;\n}\n\n/**\n * Sets emitter's unique id.\n *\n * **Note:** `_emitterId` can be set only once.\n *\n * @protected\n * @param {module:utils/emittermixin~EmitterMixin} emitter Emitter for which id will be set.\n * @param {String} [id] Unique id to set. If not passed, random unique id will be set.\n */\nexport function _setEmitterId( emitter, id ) {\n\tif ( !emitter[ _emitterId ] ) {\n\t\temitter[ _emitterId ] = id || uid();\n\t}\n}\n\n/**\n * Returns emitter's unique id.\n *\n * @protected\n * @param {module:utils/emittermixin~EmitterMixin} emitter Emitter which id will be returned.\n */\nexport function _getEmitterId( emitter ) {\n\treturn emitter[ _emitterId ];\n}\n\n// Gets the internal `_events` property of the given object.\n// `_events` property store all lists with callbacks for registered event names.\n// If there were no events registered on the object, empty `_events` object is created.\nfunction getEvents( source ) {\n\tif ( !source._events ) {\n\t\tObject.defineProperty( source, '_events', {\n\t\t\tvalue: {}\n\t\t} );\n\t}\n\n\treturn source._events;\n}\n\n// Creates event node for generic-specific events relation architecture.\nfunction makeEventNode() {\n\treturn {\n\t\tcallbacks: [],\n\t\tchildEvents: []\n\t};\n}\n\n// Creates an architecture for generic-specific events relation.\n// If needed, creates all events for given eventName, i.e. if the first registered event\n// is foo:bar:abc, it will create foo:bar:abc, foo:bar and foo event and tie them together.\n// It also copies callbacks from more generic events to more specific events when\n// specific events are created.\nfunction createEventNamespace( source, eventName ) {\n\tconst events = getEvents( source );\n\n\t// First, check if the event we want to add to the structure already exists.\n\tif ( events[ eventName ] ) {\n\t\t// If it exists, we don't have to do anything.\n\t\treturn;\n\t}\n\n\t// In other case, we have to create the structure for the event.\n\t// Note, that we might need to create intermediate events too.\n\t// I.e. if foo:bar:abc is being registered and we only have foo in the structure,\n\t// we need to also register foo:bar.\n\n\t// Currently processed event name.\n\tlet name = eventName;\n\t// Name of the event that is a child event for currently processed event.\n\tlet childEventName = null;\n\n\t// Array containing all newly created specific events.\n\tconst newEventNodes = [];\n\n\t// While loop can't check for ':' index because we have to handle generic events too.\n\t// In each loop, we truncate event name, going from the most specific name to the generic one.\n\t// I.e. foo:bar:abc -> foo:bar -> foo.\n\twhile ( name !== '' ) {\n\t\tif ( events[ name ] ) {\n\t\t\t// If the currently processed event name is already registered, we can be sure\n\t\t\t// that it already has all the structure created, so we can break the loop here\n\t\t\t// as no more events need to be registered.\n\t\t\tbreak;\n\t\t}\n\n\t\t// If this event is not yet registered, create a new object for it.\n\t\tevents[ name ] = makeEventNode();\n\t\t// Add it to the array with newly created events.\n\t\tnewEventNodes.push( events[ name ] );\n\n\t\t// Add previously processed event name as a child of this event.\n\t\tif ( childEventName ) {\n\t\t\tevents[ name ].childEvents.push( childEventName );\n\t\t}\n\n\t\tchildEventName = name;\n\t\t// If `.lastIndexOf()` returns -1, `.substr()` will return '' which will break the loop.\n\t\tname = name.substr( 0, name.lastIndexOf( ':' ) );\n\t}\n\n\tif ( name !== '' ) {\n\t\t// If name is not empty, we found an already registered event that was a parent of the\n\t\t// event we wanted to register.\n\n\t\t// Copy that event's callbacks to newly registered events.\n\t\tfor ( const node of newEventNodes ) {\n\t\t\tnode.callbacks = events[ name ].callbacks.slice();\n\t\t}\n\n\t\t// Add last newly created event to the already registered event.\n\t\tevents[ name ].childEvents.push( childEventName );\n\t}\n}\n\n// Gets an array containing callbacks list for a given event and it's more specific events.\n// I.e. if given event is foo:bar and there is also foo:bar:abc event registered, this will\n// return callback list of foo:bar and foo:bar:abc (but not foo).\n// Returns empty array if given event has not been yet registered.\nfunction getCallbacksListsForNamespace( source, eventName ) {\n\tconst eventNode = getEvents( source )[ eventName ];\n\n\tif ( !eventNode ) {\n\t\treturn [];\n\t}\n\n\tlet callbacksLists = [ eventNode.callbacks ];\n\n\tfor ( let i = 0; i < eventNode.childEvents.length; i++ ) {\n\t\tconst childCallbacksLists = getCallbacksListsForNamespace( source, eventNode.childEvents[ i ] );\n\n\t\tcallbacksLists = callbacksLists.concat( childCallbacksLists );\n\t}\n\n\treturn callbacksLists;\n}\n\n// Get the list of callbacks for a given event, but only if there any callbacks have been registered.\n// If there are no callbacks registered for given event, it checks if this is a specific event and looks\n// for callbacks for it's more generic version.\nfunction getCallbacksForEvent( source, eventName ) {\n\tlet event;\n\n\tif ( !source._events || !( event = source._events[ eventName ] ) || !event.callbacks.length ) {\n\t\t// There are no callbacks registered for specified eventName.\n\t\t// But this could be a specific-type event that is in a namespace.\n\t\tif ( eventName.indexOf( ':' ) > -1 ) {\n\t\t\t// If the eventName is specific, try to find callback lists for more generic event.\n\t\t\treturn getCallbacksForEvent( source, eventName.substr( 0, eventName.lastIndexOf( ':' ) ) );\n\t\t} else {\n\t\t\t// If this is a top-level generic event, return null;\n\t\t\treturn null;\n\t\t}\n\t}\n\n\treturn event.callbacks;\n}\n\n// Fires delegated events for given map of destinations.\n//\n// @private\n// * @param {Map.} destinations A map containing `[ {@link utils.Emitter}, \"event name\" ]` pair destinations.\n// * @param {utils.EventInfo} eventInfo The original event info object.\n// * @param {Array.<*>} fireArgs Arguments the original event was fired with.\nfunction fireDelegatedEvents( destinations, eventInfo, fireArgs ) {\n\tfor ( let [ emitter, name ] of destinations ) {\n\t\tif ( !name ) {\n\t\t\tname = eventInfo.name;\n\t\t} else if ( typeof name == 'function' ) {\n\t\t\tname = name( eventInfo.name );\n\t\t}\n\n\t\tconst delegatedInfo = new EventInfo( eventInfo.source, name );\n\n\t\tdelegatedInfo.path = [ ...eventInfo.path ];\n\n\t\temitter.fire( delegatedInfo, ...fireArgs );\n\t}\n}\n\n/**\n * Interface representing classes which mix in {@link module:utils/emittermixin~EmitterMixin}.\n *\n * @interface Emitter\n */\n\n/**\n * The return value of {@link ~EmitterMixin#delegate}.\n *\n * @interface module:utils/emittermixin~EmitterMixinDelegateChain\n */\n\n/**\n * Selects destination for {@link module:utils/emittermixin~EmitterMixin#delegate} events.\n *\n * @method #to\n * @param {module:utils/emittermixin~Emitter} emitter An `EmitterMixin` instance which is the destination for delegated events.\n * @param {String|Function} nameOrFunction A custom event name or function which converts the original name string.\n */\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/emittermixin.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module ui/view\n */\n\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport ViewCollection from './viewcollection';\nimport Template from './template';\nimport DomEmmiterMixin from '@ckeditor/ckeditor5-utils/src/dom/emittermixin';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\n\n/**\n * Basic View class.\n *\n *\t\tclass SampleView extends View {\n *\t\t\tconstructor( locale ) {\n *\t\t\t\tsuper( locale );\n *\n *\t\t\t\tthis.template = new Template( {\n *\t\t\t\t\ttag: 'p',\n *\t\t\t\t\tchildren: [\n *\t\t\t\t\t\t'Hello',\n *\t\t\t\t\t\t{\n *\t\t\t\t\t\t\ttag: 'b',\n *\t\t\t\t\t\t\tchildren: [\n *\t\t\t\t\t\t\t\t'world!'\n *\t\t\t\t\t\t\t]\n *\t\t\t\t\t\t}\n *\t\t\t\t\t],\n *\t\t\t\t\tattributes: {\n *\t\t\t\t\t\tclass: 'foo'\n *\t\t\t\t\t}\n *\t\t\t\t} );\n *\t\t\t}\n *\t\t}\n *\n *\t\tconst view = new SampleView( locale );\n *\n *\t\tview.init().then( () => {\n *\t\t\t// Will append

Helloworld

\n *\t\t\tdocument.body.appendChild( view.element );\n *\t\t} );\n *\n * @mixes module:utils/dom/emittermixin~EmmiterMixin\n * @mixes module:utils/observablemixin~ObservableMixin\n */\nexport default class View {\n\t/**\n\t * Creates an instance of the {@link module:ui/view~View} class.\n\t *\n\t * @param {module:utils/locale~Locale} [locale] The {@link module:core/editor/editor~Editor editor's locale} instance.\n\t */\n\tconstructor( locale ) {\n\t\t/**\n\t\t * A set of tools to localize the user interface. See {@link module:core/editor/editor~Editor}.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:utils/locale~Locale}\n\t\t */\n\t\tthis.locale = locale;\n\n\t\t/**\n\t\t * Shorthand for {@link module:utils/locale~Locale#t}.\n\t\t *\n\t\t * Note: If locale instance hasn't been passed to the view this method may not be available.\n\t\t *\n\t\t * @see module:utils/locale~Locale#t\n\t\t * @method\n\t\t */\n\t\tthis.t = locale && locale.t;\n\n\t\t/**\n\t\t * Set `true` after {@link #init}, which can be asynchronous.\n\t\t *\n\t\t * @readonly\n\t\t * @observable\n\t\t * @member {Boolean} #ready\n\t\t */\n\t\tthis.set( 'ready', false );\n\n\t\t/**\n\t\t * Collections registered with {@link #createCollection}.\n\t\t *\n\t\t * @protected\n\t\t * @member {Set.}\n\t\t */\n\t\tthis._viewCollections = new Collection();\n\n\t\t/**\n\t\t * A collection of view instances, which have been added directly\n\t\t * into the {@link module:ui/template~Template#children}.\n\t\t *\n\t\t * @protected\n\t\t * @member {module:ui/viewcollection~ViewCollection}\n\t\t */\n\t\tthis._unboundChildren = this.createCollection();\n\n\t\t// Pass parent locale to its children.\n\t\tthis._viewCollections.on( 'add', ( evt, collection ) => {\n\t\t\tcollection.locale = locale;\n\t\t} );\n\n\t\t/**\n\t\t * Template of this view.\n\t\t *\n\t\t * @member {module:ui/template~Template} #template\n\t\t */\n\n\t\t/**\n\t\t * Element of this view.\n\t\t *\n\t\t * @private\n\t\t * @member {HTMLElement} #_element\n\t\t */\n\n\t\t/**\n\t\t * Cached {@link module:ui/template~Template} binder object specific for this instance.\n\t\t * See {@link #bindTemplate}.\n\t\t *\n\t\t * @private\n\t\t * @member {Object} #_bindTemplate\n\t\t */\n\t}\n\n\t/**\n\t * Element of this view. The element is rendered on first reference\n\t * using {@link #template} definition.\n\t *\n\t * @type {HTMLElement}\n\t */\n\tget element() {\n\t\tif ( this._element ) {\n\t\t\treturn this._element;\n\t\t}\n\n\t\t// No template means no element (a virtual view).\n\t\tif ( !this.template ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tthis._addTemplateChildren();\n\n\t\treturn ( this._element = this.template.render() );\n\t}\n\n\t/**\n\t * @type {HTMLElement}\n\t */\n\tset element( el ) {\n\t\tthis._element = el;\n\t}\n\n\t/**\n\t * Shorthand for {@link module:ui/template~Template.bind}, bound to {@link ~View} on the first access.\n\t *\n\t * Cached {@link module:ui/template~Template.bind} object is stored in {@link #_bindTemplate}.\n\t *\n\t * @method #bindTemplate\n\t */\n\tget bindTemplate() {\n\t\tif ( this._bindTemplate ) {\n\t\t\treturn this._bindTemplate;\n\t\t}\n\n\t\treturn ( this._bindTemplate = Template.bind( this, this ) );\n\t}\n\n\t/**\n\t * Creates a new collection of views, which can be used in this view instance,\n\t * e.g. as a member of {@link module:ui/template~TemplateDefinition TemplateDefinition} children.\n\t *\n\t *\t\tclass SampleView extends View {\n\t *\t\t\tconstructor( locale ) {\n\t *\t\t\t\tsuper( locale );\n\t *\n\t *\t\t\t\tthis.items = this.createCollection();\n \t *\n\t *\t\t\t\tthis.template = new Template( {\n\t *\t\t\t\t\ttag: 'p',\n\t *\n\t *\t\t\t\t\t// `items` collection will render here.\n\t *\t\t\t\t\tchildren: this.items\n\t *\t\t\t\t} );\n\t *\t\t\t}\n\t *\t\t}\n\t *\n\t *\t\tconst view = new SampleView( locale );\n\t *\t\tconst anotherView = new AnotherSampleView( locale );\n\t *\n\t *\t\tview.init().then( () => {\n\t *\t\t\t// Will append

\n\t *\t\t\tdocument.body.appendChild( view.element );\n\t *\n\t *\t\t\t// `anotherView` becomes a child of the view, which is reflected in DOM\n\t *\t\t\t//

\n\t *\t\t\tview.items.add( anotherView );\n\t *\t\t} );\n\t *\n\t * @returns {module:ui/viewcollection~ViewCollection} A new collection of view instances.\n\t */\n\tcreateCollection() {\n\t\tconst collection = new ViewCollection();\n\n\t\tthis._viewCollections.add( collection );\n\n\t\treturn collection;\n\t}\n\n\t/**\n\t * Registers a new child view under this view instance. Once registered, a child\n\t * view is managed by its parent, including initialization ({@link #init})\n\t * and destruction ({@link #destroy}).\n\t *\n\t *\t\tclass SampleView extends View {\n\t *\t\t\tconstructor( locale ) {\n\t *\t\t\t\tsuper( locale );\n\t *\n\t *\t\t\t\tthis.childA = new SomeChildView( locale );\n\t *\t\t\t\tthis.childB = new SomeChildView( locale );\n\t *\n\t *\t\t\t\tthis.template = new Template( { tag: 'p' } );\n\t *\n\t *\t\t\t\t// Register children.\n\t *\t\t\t\tthis.addChildren( [ this.childA, this.childB ] );\n\t *\t\t\t}\n\t *\n\t *\t\t\tinit() {\n\t *\t\t\t\tthis.element.appendChild( this.childA.element );\n\t *\t\t\t\tthis.element.appendChild( this.childB.element );\n\t *\n\t *\t\t\t\treturn super.init();\n\t *\t\t\t}\n\t *\t\t}\n\t *\n\t *\t\tconst view = new SampleView( locale );\n\t *\n\t *\t\tview.init().then( () => {\n\t *\t\t\t// Will append

\n\t *\t\t\tdocument.body.appendChild( view.element );\n\t *\t\t} );\n\t *\n\t * **Note**: There's no need to add child views if they're used in the\n\t * {@link #template} explicitly:\n\t *\n\t *\t\tclass SampleView extends View {\n\t *\t\t\tconstructor( locale ) {\n\t *\t\t\t\tsuper( locale );\n\t *\n\t *\t\t\t\tthis.childA = new SomeChildView( locale );\n\t *\t\t\t\tthis.childB = new SomeChildView( locale );\n\t *\n\t *\t\t\t\tthis.template = new Template( {\n\t *\t\t\t\t\ttag: 'p',\n\t *\n \t *\t\t\t\t\t// These children will be added automatically. There's no\n \t *\t\t\t\t\t// need to call {@link #addChildren} for any of them.\n\t *\t\t\t\t\tchildren: [ this.childA, this.childB ]\n\t *\t\t\t\t} );\n\t *\t\t\t}\n\t *\n\t *\t\t\t...\n\t *\t\t}\n\t *\n\t * @param {module:ui/view~View|Iterable.} children Children views to be registered.\n\t * @returns {Promise}\n\t */\n\taddChildren( children ) {\n\t\tif ( !isIterable( children ) ) {\n\t\t\tchildren = [ children ];\n\t\t}\n\n\t\treturn Promise.all( children.map( c => this._unboundChildren.add( c ) ) );\n\t}\n\n\t/**\n\t * Initializes the view and child views located in {@link #_viewCollections}.\n\t *\n\t * @returns {Promise} A Promise resolved when the initialization process is finished.\n\t */\n\tinit() {\n\t\tif ( this.ready ) {\n\t\t\t/**\n\t\t\t * This View has already been initialized.\n\t\t\t *\n\t\t\t * @error ui-view-init-reinit\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'ui-view-init-reinit: This View has already been initialized.' );\n\t\t}\n\n\t\treturn Promise.resolve()\n\t\t\t// Initialize collections in #_viewCollections.\n\t\t\t.then( () => {\n\t\t\t\treturn Promise.all( this._viewCollections.map( c => c.init() ) );\n\t\t\t} )\n\t\t\t// Spread the word that this view is ready!\n\t\t\t.then( () => {\n\t\t\t\tthis.ready = true;\n\t\t\t} );\n\t}\n\n\t/**\n\t * Destroys the view instance and child views located in {@link #_viewCollections}.\n\t *\n\t * @returns {Promise} A Promise resolved when the destruction process is finished.\n\t */\n\tdestroy() {\n\t\tthis.stopListening();\n\n\t\treturn Promise.all( this._viewCollections.map( c => c.destroy() ) )\n\t\t\t.then( () => {\n\t\t\t\tthis._unboundChildren.clear();\n\t\t\t\tthis._viewCollections.clear();\n\n\t\t\t\tthis.element = this.template = this.locale = this.t =\n\t\t\t\t\tthis._viewCollections = this._unboundChildren = null;\n\t\t\t} );\n\t}\n\n\t/**\n\t * Recursively traverses {@link #template} in search of {@link module:ui/view~View}\n\t * instances and automatically registers them using {@link #addChildren} method.\n\t *\n\t * @protected\n\t */\n\t_addTemplateChildren() {\n\t\tconst search = def => {\n\t\t\tif ( def.children ) {\n\t\t\t\tfor ( const defOrView of def.children ) {\n\t\t\t\t\tif ( defOrView instanceof View ) {\n\t\t\t\t\t\tthis.addChildren( defOrView );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsearch( defOrView );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tsearch( this.template );\n\t}\n}\n\nmix( View, DomEmmiterMixin );\nmix( View, ObservableMixin );\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-ui/src/view.js","import baseMatches from './_baseMatches';\nimport baseMatchesProperty from './_baseMatchesProperty';\nimport identity from './identity';\nimport isArray from './isArray';\nimport property from './property';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/lib/lodash/_baseIteratee.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module core/command/command\n */\n\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n\n/**\n * The base class for CKEditor commands.\n *\n * Commands are main way to manipulate editor contents and state. They are mostly used by UI elements (or by other\n * commands) to make changes in Tree Model. Commands are available in every part of code that has access to\n * {@link module:core/editor/editor~Editor} instance, since they are registered in it and executed through\n * {@link module:core/editor/editor~Editor#execute}.\n * Commands instances are available through {@link module:core/editor/editor~Editor#commands}.\n *\n * This is an abstract base class for all commands.\n *\n * @mixes module:utils/observablemixin~ObservaleMixin\n */\nexport default class Command {\n\t/**\n\t * Creates a new Command instance.\n\t *\n\t * @param {module:core/editor/editor~Editor} editor Editor on which this command will be used.\n\t */\n\tconstructor( editor ) {\n\t\t/**\n\t\t * Editor on which this command will be used.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:core/editor/editor~Editor} #editor\n\t\t */\n\t\tthis.editor = editor;\n\n\t\t/**\n\t\t * Flag indicating whether a command is enabled or disabled.\n\t\t * A disabled command should do nothing upon it's execution.\n\t\t *\n\t\t * @observable\n\t\t * @member {Boolean} #isEnabled\n\t\t */\n\t\tthis.set( 'isEnabled', true );\n\n\t\t// If schema checking function is specified, add it to the `refreshState` listeners.\n\t\t// Feature will be disabled if it does not apply to schema requirements.\n\t\tif ( this._checkEnabled ) {\n\t\t\tthis.on( 'refreshState', ( evt, data ) => {\n\t\t\t\tdata.isEnabled = this._checkEnabled();\n\t\t\t} );\n\t\t}\n\t}\n\n\tdestroy() {\n\t\tthis.stopListening();\n\t}\n\n\t/**\n\t * Fires `refreshState` event and checks it's resolve value to decide whether command should be enabled or not.\n\t * Other parts of code might listen to `refreshState` event on this command and add their callbacks. This\n\t * way the responsibility of deciding whether a command should be enabled is shared.\n\t *\n\t * @fires refreshState\n\t */\n\trefreshState() {\n\t\tconst data = { isEnabled: true };\n\t\tthis.fire( 'refreshState', data );\n\n\t\tthis.isEnabled = data.isEnabled;\n\t}\n\n\t/**\n\t * Executes the command if it is enabled.\n\t *\n\t * @protected\n\t * @param {*} param Parameter passed to {@link module:core/editor/editor~Editor#execute execute} method of this command.\n\t */\n\t_execute( param ) {\n\t\tif ( this.isEnabled ) {\n\t\t\tthis._doExecute( param );\n\t\t}\n\t}\n\n\t/**\n\t * Disables the command. This should be used only by the command itself. Other parts of code should add\n\t * listeners to `refreshState` event.\n\t *\n\t * @protected\n\t */\n\t_disable() {\n\t\tthis.on( 'refreshState', disableCallback );\n\t\tthis.refreshState();\n\t}\n\n\t/**\n\t * Enables the command (internally). This should be used only by the command itself. Command will be enabled if\n\t * other listeners does not return false on `refreshState` event callbacks. Firing {@link #_enable}\n\t * does not guarantee that {@link #isEnabled} will be set to true, as it depends on other listeners.\n\t *\n\t * @protected\n\t */\n\t_enable() {\n\t\tthis.off( 'refreshState', disableCallback );\n\t\tthis.refreshState();\n\t}\n\n\t/**\n\t * Executes command.\n\t * This is an abstract method that should be overwritten in child classes.\n\t *\n\t * @protected\n\t */\n\t_doExecute() {}\n\n\t/**\n\t * Checks if a command should be enabled according to its own rules. Mostly it will check schema to see if the command\n\t * is allowed to be executed in given position. This method can be defined in child class (but is not obligatory).\n\t * If it is defined, it will be added as a callback to `refreshState` event.\n\t *\n\t * @protected\n\t * @method #_checkEnabled\n\t * @returns {Boolean} `true` if command should be enabled according to\n\t * {@link module:engine/model/document~Document#schema}. `false` otherwise.\n\t */\n}\n\nfunction disableCallback( evt, data ) {\n\tdata.isEnabled = false;\n}\n\nmix( Command, ObservableMixin );\n\n/**\n * Fired whenever command has to have its {@link #isEnabled} property refreshed. Every feature,\n * command or other class which needs to disable command (set `isEnabled` to `false`) should listen to this\n * event.\n *\n * @event refreshState\n * @param {Object} data\n * @param {Boolean} [data.isEnabled=true]\n */\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-core/src/command/command.js","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @type {Function}\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified,\n * else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/lib/lodash/isArray.js","import isArrayLike from './isArrayLike';\nimport isObjectLike from './isObjectLike';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/lib/lodash/isArrayLikeObject.js","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/lib/lodash/isObject.js","import toFinite from './toFinite';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This function is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/lib/lodash/toInteger.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/model/batch\n */\n\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n\n/**\n * `Batch` instance groups document changes ({@link module:engine/model/delta/delta~Delta deltas}). All deltas grouped in a single `Batch`\n * can be reverted together, so you can think about `Batch` as of a single undo step. If you want to extend given undo step you\n * can call another method on the same `Batch` object. If you want to create a separate undo step you can create a new `Batch`.\n *\n * For example to create two separate undo steps you can call:\n *\n *\t\tdoc.batch().insert( firstPosition, 'foo' );\n *\t\tdoc.batch().insert( secondPosition, 'bar' );\n *\n * To create a single undo step:\n *\n *\t\tconst batch = doc.batch();\n *\t\tbatch.insert( firstPosition, 'foo' );\n *\t\tbatch.insert( secondPosition, 'bar' );\n *\n * Note that all document modification methods (insert, remove, split, etc.) are chainable so you can shorten code to:\n *\n *\t\tdoc.batch().insert( firstPosition, 'foo' ).insert( secondPosition, 'bar' );\n */\nexport default class Batch {\n\t/**\n\t * Creates `Batch` instance. Not recommended to use directly, use {@link module:engine/model/document~Document#batch} instead.\n\t *\n\t * @param {module:engine/model/document~Document} document Document which this Batch changes.\n\t * @param {'transparent'|'default'} [type='default'] Type of the batch.\n\t */\n\tconstructor( document, type = 'default' ) {\n\t\t/**\n\t\t * Document which this batch changes.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/model/document~Document} module:engine/model/batch~Batch#document\n\t\t */\n\t\tthis.document = document;\n\n\t\t/**\n\t\t * Array of deltas which compose this batch.\n\t\t *\n\t\t * @readonly\n\t\t * @member {Array.} module:engine/model/batch~Batch#deltas\n\t\t */\n\t\tthis.deltas = [];\n\n\t\t/**\n\t\t * Type of the batch.\n\t\t *\n\t\t * Can be one of the following values:\n\t\t * * `'default'` - all \"normal\" batches, most commonly used type.\n\t\t * * `'transparent'` - batch that should be ignored by other features, i.e. initial batch or collaborative editing changes.\n\t\t *\n\t\t * @readonly\n\t\t * @member {'transparent'|'default'} module:engine/model/batch~Batch#type\n\t\t */\n\t\tthis.type = type;\n\t}\n\n\t/**\n\t * Returns this batch base version, which is equal to the base version of first delta in the batch.\n\t * If there are no deltas in the batch, it returns `null`.\n\t *\n\t * @readonly\n\t * @type {Number|null}\n\t */\n\tget baseVersion() {\n\t\treturn this.deltas.length > 0 ? this.deltas[ 0 ].baseVersion : null;\n\t}\n\n\t/**\n\t * Adds delta to the batch instance. All modification methods (insert, remove, split, etc.) use this method\n\t * to add created deltas.\n\t *\n\t * @param {module:engine/model/delta/delta~Delta} delta Delta to add.\n\t * @return {module:engine/model/delta/delta~Delta} Added delta.\n\t */\n\taddDelta( delta ) {\n\t\tdelta.batch = this;\n\t\tthis.deltas.push( delta );\n\n\t\treturn delta;\n\t}\n\n\t/**\n\t * Gets an iterable collection of operations.\n\t *\n\t * @returns {Iterable.}\n\t */\n\t* getOperations() {\n\t\tfor ( const delta of this.deltas ) {\n\t\t\tyield* delta.operations;\n\t\t}\n\t}\n}\n\n/**\n * Function to register batch methods. To make code scalable `Batch` do not have modification\n * methods built in. They can be registered using this method.\n *\n * This method checks if there is no naming collision and throws `batch-register-taken` if the method name\n * is already taken.\n *\n * Besides that no magic happens here, the method is added to the `Batch` class prototype.\n *\n * For example:\n *\n *\t\tBatch.register( 'insert', function( position, nodes ) {\n *\t\t\t// You can use a class inheriting from `Delta` if that class should handle OT in a special way.\n *\t\t\tconst delta = new Delta();\n *\n *\t\t\t// Add delta to the Batch instance. It is important to add a delta to the batch before applying any operation.\n *\t\t\tthis.addDelta( delta );\n *\n *\t\t\t// Create operations which should be components of this delta.\n *\t\t\tconst operation = new InsertOperation( position, nodes, this.document.version );\n *\n *\t\t\t// Add operation to the delta. It is important to add operation before applying it.\n *\t\t\tdelta.addOperation( operation );\n *\n *\t\t\t// Remember to apply every operation, no magic, you need to do it manually.\n *\t\t\tthis.document.applyOperation( operation );\n *\n *\t\t\t// Make this method chainable.\n *\t\t\treturn this;\n *\t\t} );\n *\n * @method module:engine/model/batch~Batch.register\n * @param {String} name Method name.\n * @param {Function} creator Method body.\n */\nexport function register( name, creator ) {\n\tif ( Batch.prototype[ name ] ) {\n\t\t/**\n\t\t * This batch method name is already taken.\n\t\t *\n\t\t * @error batch-register-taken\n\t\t * @param {String} name\n\t\t */\n\t\tthrow new CKEditorError(\n\t\t\t'model-batch-register-taken: This batch method name is already taken.',\n\t\t\t{ name } );\n\t}\n\n\tBatch.prototype[ name ] = creator;\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/model/batch.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/model/delta/deltafactory\n */\n\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n\nimport OperationFactory from '../operation/operationfactory';\n\nconst deserializers = new Map();\n\n/**\n * A factory class for creating operations.\n *\n * Delta is a single, from the user action point of view, change in the editable document, like insert, split or\n * rename element. Delta is composed of operations, which are unit changes needed to be done to execute user action.\n *\n * Multiple deltas are grouped into a single {@link module:engine/model/batch~Batch}.\n */\nexport default class DeltaFactory {\n\t/**\n\t * Creates InsertDelta from deserialized object, i.e. from parsed JSON string.\n\t *\n\t * @param {Object} json\n\t * @param {module:engine/model/document~Document} doc Document on which this delta will be applied.\n\t * @returns {module:engine/model/delta/insertdelta~InsertDelta}\n\t */\n\tstatic fromJSON( json, doc ) {\n\t\tif ( !deserializers.has( json.__className ) ) {\n\t\t\t/**\n\t\t\t * This delta has no defined deserializer.\n\t\t\t *\n\t\t\t * @error delta-fromjson-no-deserializer\n\t\t\t * @param {String} name\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'delta-fromjson-no-deserializer: This delta has no defined deserializer',\n\t\t\t\t{ name: json.__className }\n\t\t\t);\n\t\t}\n\n\t\tconst Delta = deserializers.get( json.__className );\n\n\t\tconst delta = new Delta();\n\n\t\tfor ( const operation of json.operations ) {\n\t\t\tdelta.addOperation( OperationFactory.fromJSON( operation, doc ) );\n\t\t}\n\n\t\t// Rewrite all other properties.\n\t\tfor ( const prop in json ) {\n\t\t\tif ( prop != '__className' && delta[ prop ] === undefined ) {\n\t\t\t\tdelta[ prop ] = json[ prop ];\n\t\t\t}\n\t\t}\n\n\t\treturn delta;\n\t}\n\n\t/**\n\t * Registers a class for delta factory.\n\t *\n\t * @param {Function} Delta A delta class to register.\n\t */\n\tstatic register( Delta ) {\n\t\tdeserializers.set( Delta.className, Delta );\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/model/delta/deltafactory.js","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array ? array.length : 0;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/lib/lodash/last.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/model/delta/delta\n */\n\nimport clone from '@ckeditor/ckeditor5-utils/src/lib/lodash/clone';\nimport DeltaFactory from './deltafactory';\n\n/**\n * Base class for all deltas.\n *\n * Delta is a single, from the user action point of view, change in the editable document, like insert, split or\n * rename element. Delta is composed of operations, which are unit changes needed to be done to execute user action.\n *\n * Multiple deltas are grouped into a single {@link module:engine/model/batch~Batch}.\n */\nexport default class Delta {\n\t/**\n\t * Creates a delta instance.\n\t */\n\tconstructor() {\n\t\t/**\n\t\t * {@link module:engine/model/batch~Batch} which delta is a part of. This property is null by default and set by the\n\t\t * {@link module:engine/model/batch~Batch#addDelta} method.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/model/batch~Batch} module:engine/model/delta/delta~Delta#batch\n\t\t */\n\t\tthis.batch = null;\n\n\t\t/**\n\t\t * Array of operations which compose delta.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:engine/model/operation/operation~Operation[]} module:engine/model/delta/delta~Delta#operations\n\t\t */\n\t\tthis.operations = [];\n\t}\n\n\t/**\n\t * Returns delta base version which is equal to the base version of the first operation in delta. If there\n\t * are no operations in delta, returns `null`.\n\t *\n\t * @see module:engine/model/document~Document\n\t * @type {Number|null}\n\t */\n\tget baseVersion() {\n\t\tif ( this.operations.length > 0 ) {\n\t\t\treturn this.operations[ 0 ].baseVersion;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @param {Number} baseVersion\n\t */\n\tset baseVersion( baseVersion ) {\n\t\tfor ( const operation of this.operations ) {\n\t\t\toperation.baseVersion = baseVersion++;\n\t\t}\n\t}\n\n\t/**\n\t * A class that will be used when creating reversed delta.\n\t *\n\t * @private\n\t * @type {Function}\n\t */\n\tget _reverseDeltaClass() {\n\t\treturn Delta;\n\t}\n\n\t/**\n\t * Delta type.\n\t *\n\t * @readonly\n\t * @member {String} #type\n\t */\n\n\t/**\n\t * Add operation to the delta.\n\t *\n\t * @param {module:engine/model/operation/operation~Operation} operation Operation instance.\n\t */\n\taddOperation( operation ) {\n\t\toperation.delta = this;\n\t\tthis.operations.push( operation );\n\n\t\treturn operation;\n\t}\n\n\t/**\n\t * Creates and returns a delta that has the same parameters as this delta.\n\t *\n\t * @returns {module:engine/model/delta/delta~Delta} Clone of this delta.\n\t */\n\tclone() {\n\t\tconst delta = new this.constructor();\n\n\t\tfor ( const op of this.operations ) {\n\t\t\tdelta.addOperation( op.clone() );\n\t\t}\n\n\t\treturn delta;\n\t}\n\n\t/**\n\t * Creates and returns a reverse delta. Reverse delta when executed right after the original delta will bring back\n\t * tree model state to the point before the original delta execution. In other words, it reverses changes done\n\t * by the original delta.\n\t *\n\t * Keep in mind that tree model state may change since executing the original delta, so reverse delta may be \"outdated\".\n\t * In that case you will need to {@link module:engine/model/delta/transform~transform} it by all deltas that were executed after\n\t * the original delta.\n\t *\n\t * @returns {module:engine/model/delta/delta~Delta} Reversed delta.\n\t */\n\tgetReversed() {\n\t\tconst delta = new this._reverseDeltaClass();\n\n\t\tfor ( const op of this.operations ) {\n\t\t\tdelta.addOperation( op.getReversed() );\n\t\t}\n\n\t\tdelta.operations.reverse();\n\n\t\tfor ( let i = 0; i < delta.operations.length; i++ ) {\n\t\t\tdelta.operations[ i ].baseVersion = this.operations[ this.operations.length - 1 ].baseVersion + i + 1;\n\t\t}\n\n\t\treturn delta;\n\t}\n\n\t/**\n\t * Custom toJSON method to make deltas serializable.\n\t *\n\t * @returns {Object} Clone of this delta with added class name.\n\t */\n\ttoJSON() {\n\t\tconst json = clone( this );\n\n\t\tjson.__className = this.constructor.className;\n\n\t\t// Remove parent batch to avoid circular dependencies.\n\t\tdelete json.batch;\n\n\t\treturn json;\n\t}\n\n\t/**\n\t * Delta class name. Used by {@link #toJSON} method for serialization and\n\t * {@link module:engine/model/delta/deltafactory~DeltaFactory.fromJSON} during deserialization.\n\t *\n\t * @type {String}\n\t * @readonly\n\t */\n\tstatic get className() {\n\t\treturn 'engine.model.delta.Delta';\n\t}\n\n\t/**\n\t * Delta priority. Used in {@link module:engine/model/delta/transform~transform delta transformations}. Delta with the higher\n\t * priority will be treated as more important when resolving transformation conflicts. If deltas have same\n\t * priority, other factors will be used to determine which delta is more important.\n\t *\n\t * @private\n\t * @type {Number}\n\t */\n\tstatic get _priority() {\n\t\treturn 0;\n\t}\n}\n\nDeltaFactory.register( Delta );\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/model/delta/delta.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/model/writer\n */\n\nimport Node from './node';\nimport Text from './text';\nimport TextProxy from './textproxy';\nimport Range from './range';\nimport DocumentFragment from './documentfragment';\nimport NodeList from './nodelist';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n\n/**\n * Contains functions used for composing model tree, grouped together under \"model writer\" name. Those functions\n * are built on top of {@link module:engine/model/node~Node node}, and it's child classes', APIs.\n *\n * Model writer API has multiple advantages and it is highly recommended to use it when changing model tree and nodes:\n * * model writer API {@link module:engine/model/writer~writer.normalizeNodes normalizes inserted nodes}, which means that you can insert\n * not only {@link module:engine/model/node~Node nodes}, but also `String`s, {@link module:engine/model/textproxy~TextProxy text proxies}\n * and\n * {@link module:engine/model/documentfragment~DocumentFragment document fragments},\n * * model writer API operates on {@link module:engine/model/position~Position positions}, which means that you have\n * better control over manipulating model tree as positions operate on offsets rather than indexes,\n * * model writer API automatically merges {@link module:engine/model/text~Text text nodes} with same attributes, which means\n * lower memory usage and better efficiency.\n *\n * @namespace writer\n */\nconst writer = {\n\tinsert,\n\tremove,\n\tmove,\n\tsetAttribute,\n\tremoveAttribute,\n\tnormalizeNodes\n};\n\nexport default writer;\n\n/**\n * Inserts given nodes at given position.\n *\n * @function module:engine/model/writer~writer.insert\n * @param {module:engine/model/position~Position} position Position at which nodes should be inserted.\n * @param {module:engine/model/node~NodeSet} nodes Nodes to insert.\n * @returns {module:engine/model/range~Range} Range spanning over inserted elements.\n */\nexport function insert( position, nodes ) {\n\tnodes = normalizeNodes( nodes );\n\n\t// We have to count offset before inserting nodes because they can get merged and we would get wrong offsets.\n\tconst offset = nodes.reduce( ( sum, node ) => sum + node.offsetSize, 0 );\n\tconst parent = position.parent;\n\n\t// Insertion might be in a text node, we should split it if that's the case.\n\t_splitNodeAtPosition( position );\n\tconst index = position.index;\n\n\t// Insert nodes at given index. After splitting we have a proper index and insertion is between nodes,\n\t// using basic `Element` API.\n\tparent.insertChildren( index, nodes );\n\n\t// Merge text nodes, if possible. Merging is needed only at points where inserted nodes \"touch\" \"old\" nodes.\n\t_mergeNodesAtIndex( parent, index + nodes.length );\n\t_mergeNodesAtIndex( parent, index );\n\n\treturn new Range( position, position.getShiftedBy( offset ) );\n}\n\n/**\n * Removed nodes in given range. Only {@link module:engine/model/range~Range#isFlat flat} ranges are accepted.\n *\n * @function module:engine/model/writer~writer.remove\n * @param {module:engine/model/range~Range} range Range containing nodes to remove.\n * @returns {Array.}\n */\nexport function remove( range ) {\n\tif ( !range.isFlat ) {\n\t\t/**\n\t\t * Trying to remove a range that starts and ends in different element.\n\t\t *\n\t\t * @error model-writer-remove-range-not-flat\n\t\t */\n\t\tthrow new CKEditorError( 'model-writer-remove-range-not-flat: ' +\n\t\t\t'Trying to remove a range that starts and ends in different element.' );\n\t}\n\n\tconst parent = range.start.parent;\n\n\t// Range may be inside text nodes, we have to split them if that's the case.\n\t_splitNodeAtPosition( range.start );\n\t_splitNodeAtPosition( range.end );\n\n\t// Remove the text nodes using basic `Element` API.\n\tconst removed = parent.removeChildren( range.start.index, range.end.index - range.start.index );\n\n\t// Merge text nodes, if possible. After some nodes were removed, node before and after removed range will be\n\t// touching at the position equal to the removed range beginning. We check merging possibility there.\n\t_mergeNodesAtIndex( parent, range.start.index );\n\n\treturn removed;\n}\n\n/**\n * Moves nodes in given range to given target position. Only {@link module:engine/model/range~Range#isFlat flat} ranges are accepted.\n *\n * @param {module:engine/model/range~Range} sourceRange Range containing nodes to move.\n * @param {module:engine/model/position~Position} targetPosition Position to which nodes should be moved.\n * @returns {module:engine/model/range~Range} Range containing moved nodes.\n */\nexport function move( sourceRange, targetPosition ) {\n\tif ( !sourceRange.isFlat ) {\n\t\t/**\n\t\t * Trying to move a range that starts and ends in different element.\n\t\t *\n\t\t * @error model-writer-move-range-not-flat\n\t\t */\n\t\tthrow new CKEditorError( 'model-writer-move-range-not-flat: ' +\n\t\t\t'Trying to move a range that starts and ends in different element.' );\n\t}\n\n\tconst nodes = this.remove( sourceRange );\n\n\t// We have to fix `targetPosition` because model changed after nodes from `sourceRange` got removed and\n\t// that change might have an impact on `targetPosition`.\n\ttargetPosition = targetPosition._getTransformedByDeletion( sourceRange.start, sourceRange.end.offset - sourceRange.start.offset );\n\n\treturn this.insert( targetPosition, nodes );\n}\n\n/**\n * Sets given attribute on nodes in given range.\n *\n * @param {module:engine/model/range~Range} range Range containing nodes that should have the attribute set.\n * @param {String} key Key of attribute to set.\n * @param {*} value Attribute value.\n */\nexport function setAttribute( range, key, value ) {\n\t// Range might start or end in text nodes, so we have to split them.\n\t_splitNodeAtPosition( range.start );\n\t_splitNodeAtPosition( range.end );\n\n\t// Iterate over all items in the range.\n\tfor ( const item of range.getItems() ) {\n\t\t// Iterator will return `TextProxy` instances but we know that those text proxies will\n\t\t// always represent full text nodes (this is guaranteed thanks to splitting we did before).\n\t\t// So, we can operate on those text proxies' text nodes.\n\t\tconst node = item.is( 'textProxy' ) ? item.textNode : item;\n\n\t\tif ( value !== null ) {\n\t\t\tnode.setAttribute( key, value );\n\t\t} else {\n\t\t\tnode.removeAttribute( key );\n\t\t}\n\n\t\t// After attributes changing it may happen that some text nodes can be merged. Try to merge with previous node.\n\t\t_mergeNodesAtIndex( node.parent, node.index );\n\t}\n\n\t// Try to merge last changed node with it's previous sibling (not covered by the loop above).\n\t_mergeNodesAtIndex( range.end.parent, range.end.index );\n}\n\n/**\n * Removes given attribute from nodes in given range.\n *\n * @param {module:engine/model/range~Range} range Range containing nodes that should have the attribute removed.\n * @param {String} key Key of attribute to remove.\n */\nexport function removeAttribute( range, key ) {\n\tthis.setAttribute( range, key, null );\n}\n\n/**\n * Normalizes given object or an array of objects to an array of {@link module:engine/model/node~Node nodes}. See\n * {@link module:engine/model/node~NodeSet NodeSet} for details on how normalization is performed.\n *\n * @param {module:engine/model/node~NodeSet} nodes Objects to normalize.\n * @returns {Array.} Normalized nodes.\n */\nexport function normalizeNodes( nodes ) {\n\tconst normalized = [];\n\n\tif ( !( nodes instanceof Array ) ) {\n\t\tnodes = [ nodes ];\n\t}\n\n\t// Convert instances of classes other than Node.\n\tfor ( let i = 0; i < nodes.length; i++ ) {\n\t\tif ( typeof nodes[ i ] == 'string' ) {\n\t\t\tnormalized.push( new Text( nodes[ i ] ) );\n\t\t} else if ( nodes[ i ] instanceof TextProxy ) {\n\t\t\tnormalized.push( new Text( nodes[ i ].data, nodes[ i ].getAttributes() ) );\n\t\t} else if ( nodes[ i ] instanceof DocumentFragment || nodes[ i ] instanceof NodeList ) {\n\t\t\tfor ( const child of nodes[ i ] ) {\n\t\t\t\tnormalized.push( child );\n\t\t\t}\n\t\t} else if ( nodes[ i ] instanceof Node ) {\n\t\t\tnormalized.push( nodes[ i ] );\n\t\t}\n\t\t// Skip unrecognized type.\n\t}\n\n\t// Merge text nodes.\n\tfor ( let i = 1; i < normalized.length; i++ ) {\n\t\tconst node = normalized[ i ];\n\t\tconst prev = normalized[ i - 1 ];\n\n\t\tif ( node instanceof Text && prev instanceof Text && _haveSameAttributes( node, prev ) ) {\n\t\t\t// Doing this instead changing prev.data because .data is readonly.\n\t\t\tnormalized.splice( i - 1, 2, new Text( prev.data + node.data, prev.getAttributes() ) );\n\t\t\ti--;\n\t\t}\n\t}\n\n\treturn normalized;\n}\n\n/**\n * Checks if nodes before and after given index in given element are {@link module:engine/model/text~Text text nodes} and\n * merges them into one node if they have same attributes.\n *\n * Merging is done by removing two text nodes and inserting a new text node containing data from both merged text nodes.\n *\n * @ignore\n * @private\n * @param {module:engine/model/element~Element} element Parent element of nodes to merge.\n * @param {Number} index Index between nodes to merge.\n */\nfunction _mergeNodesAtIndex( element, index ) {\n\tconst nodeBefore = element.getChild( index - 1 );\n\tconst nodeAfter = element.getChild( index );\n\n\t// Check if both of those nodes are text objects with same attributes.\n\tif ( nodeBefore && nodeAfter && nodeBefore.is( 'text' ) && nodeAfter.is( 'text' ) && _haveSameAttributes( nodeBefore, nodeAfter ) ) {\n\t\t// Append text of text node after index to the before one.\n\t\tconst mergedNode = new Text( nodeBefore.data + nodeAfter.data, nodeBefore.getAttributes() );\n\n\t\t// Remove separate text nodes.\n\t\telement.removeChildren( index - 1, 2 );\n\n\t\t// Insert merged text node.\n\t\telement.insertChildren( index - 1, mergedNode );\n\t}\n}\n\n/**\n * Checks if given position is in a text node, and if so, splits the text node in two text nodes, each of them\n * containing a part of original text node.\n *\n * @ignore\n * @private\n * @param {module:engine/model/position~Position} position Position at which node should be split.\n */\nfunction _splitNodeAtPosition( position ) {\n\tconst textNode = position.textNode;\n\tconst element = position.parent;\n\n\tif ( textNode ) {\n\t\tconst offsetDiff = position.offset - textNode.startOffset;\n\t\tconst index = textNode.index;\n\n\t\telement.removeChildren( index, 1 );\n\n\t\tconst firstPart = new Text( textNode.data.substr( 0, offsetDiff ), textNode.getAttributes() );\n\t\tconst secondPart = new Text( textNode.data.substr( offsetDiff ), textNode.getAttributes() );\n\n\t\telement.insertChildren( index, [ firstPart, secondPart ] );\n\t}\n}\n\n/**\n * Checks whether two given nodes have same attributes.\n *\n * @ignore\n * @private\n * @param {module:engine/model/node~Node} nodeA Node to check.\n * @param {module:engine/model/node~Node} nodeB Node to check.\n * @returns {Boolean} `true` if nodes have same attributes, `false` otherwise.\n */\nfunction _haveSameAttributes( nodeA, nodeB ) {\n\tconst iteratorA = nodeA.getAttributes();\n\tconst iteratorB = nodeB.getAttributes();\n\n\tfor ( const attr of iteratorA ) {\n\t\tif ( attr[ 1 ] !== nodeB.getAttribute( attr[ 0 ] ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\titeratorB.next();\n\t}\n\n\treturn iteratorB.next().done;\n}\n\n/**\n * Value that can be normalized to an array of {@link module:engine/model/node~Node nodes}.\n *\n * Non-arrays are normalized as follows:\n * * {@link module:engine/model/node~Node Node} is left as is,\n * * {@link module:engine/model/textproxy~TextProxy TextProxy} and `String` are normalized to {@link module:engine/model/text~Text Text},\n * * {@link module:engine/model/nodelist~NodeList NodeList} is normalized to an array containing all nodes that are in that node list,\n * * {@link module:engine/model/documentfragment~DocumentFragment DocumentFragment} is normalized to an array containing all of it's\n * * children.\n *\n * Arrays are processed item by item like non-array values and flattened to one array. Normalization always results in\n * a flat array of {@link module:engine/model/node~Node nodes}. Consecutive text nodes (or items normalized to text nodes) will be\n * merged if they have same attributes.\n *\n * @typedef {module:engine/model/node~Node|module:engine/model/textproxy~TextProxy|String|\n * module:engine/model/nodelist~NodeList|module:engine/model/documentfragment~DocumentFragment|Iterable}\n * module:engine/model/node~NodeSet\n */\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/model/writer.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module ui/button/buttonview\n */\n\nimport View from '../view';\nimport Template from '../template';\nimport IconView from '../icon/iconview';\n\nimport { getEnvKeystrokeText } from '@ckeditor/ckeditor5-utils/src/keyboard';\n\n/**\n * The button view class.\n *\n * @extends module:ui/view~View\n */\nexport default class ButtonView extends View {\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale ) {\n\t\tsuper( locale );\n\n\t\t/**\n\t\t * The label of the button view visible to the user.\n\t\t *\n\t\t * @observable\n\t\t * @member {String} #label\n\t\t */\n\t\tthis.set( 'label' );\n\n\t\t/**\n\t\t * (Optional) The keystroke associated with the button, i.e. CTRL+B,\n\t\t * in the string format compatible with {@link module:utils/keyboard}.\n\t\t *\n\t\t * @observable\n\t\t * @member {Boolean} #keystroke\n\t\t */\n\t\tthis.set( 'keystroke' );\n\n\t\t/**\n\t\t * (Optional) Tooltip of the button, i.e. displayed when hovering the button with the mouse cursor.\n\t\t *\n\t\t * * If defined as a `Boolean` (e.g. `true`), then combination of `label` and `keystroke` will be set as a tooltip.\n\t\t * * If defined as a `String`, tooltip will equal the exact text of that `String`.\n\t\t * * If defined as a `Function`, `label` and `keystroke` will be passed to that function, which is to return\n\t\t * a string with the tooltip text.\n\t\t *\n\t\t *\t\tconst view = new ButtonView( locale );\n\t\t *\t\tview.tooltip = ( label, keystroke ) => `A tooltip for ${ label } and ${ keystroke }.`\n\t\t *\n\t\t * @observable\n\t\t * @default false\n\t\t * @member {Boolean|String|Function} #tooltip\n\t\t */\n\t\tthis.set( 'tooltip' );\n\n\t\t/**\n\t\t * The HTML type of the button. Default `button`.\n\t\t *\n\t\t * @observable\n\t\t * @member {'button'|'submit'|'reset'|'menu'} #type\n\t\t */\n\t\tthis.set( 'type', 'button' );\n\n\t\t/**\n\t\t * Controls whether the button view is \"on\", e.g. some feature which it represents\n\t\t * is currently enabled.\n\t\t *\n\t\t * @observable\n\t\t * @member {Boolean} #isOn\n\t\t */\n\t\tthis.set( 'isOn', false );\n\n\t\t/**\n\t\t * Controls whether the button view is enabled (can be clicked).\n\t\t *\n\t\t * @observable\n\t\t * @member {Boolean} #isEnabled\n\t\t */\n\t\tthis.set( 'isEnabled', true );\n\n\t\t/**\n\t\t * Controls whether the button view is visible.\n\t\t *\n\t\t * @observable\n\t\t * @member {Boolean} #isVisible\n\t\t */\n\t\tthis.set( 'isVisible', true );\n\n\t\t/**\n\t\t * (Optional) Whether the label of the button is hidden (e.g. button with icon only).\n\t\t *\n\t\t * @observable\n\t\t * @member {Boolean} #withText\n\t\t */\n\t\tthis.set( 'withText', false );\n\n\t\t/**\n\t\t * (Optional) Source of the icon. See {@link module:ui/icon/iconview~IconView#content}.\n\t\t *\n\t\t * @observable\n\t\t * @member {String} #icon\n\t\t */\n\t\tthis.set( 'icon' );\n\n\t\t/**\n\t\t * Controls the `tabindex` attribute of the button.\n\t\t *\n\t\t * @observable\n\t\t * @default -1\n\t\t * @member {String} #tabindex\n\t\t */\n\t\tthis.set( 'tabindex', -1 );\n\n\t\t/**\n\t\t * Tooltip of the button bound to the template.\n\t\t *\n\t\t * @see #tooltip\n\t\t * @see #_getTooltipString\n\t\t * @private\n\t\t * @observable\n\t\t * @member {Boolean} #_tooltipString\n\t\t */\n\t\tthis.bind( '_tooltipString' ).to(\n\t\t\tthis, 'tooltip',\n\t\t\tthis, 'label',\n\t\t\tthis, 'keystroke',\n\t\t\tthis._getTooltipString.bind( this )\n\t\t);\n\n\t\t/**\n\t\t * Icon of the button view.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:ui/icon/iconview~IconView} #iconView\n\t\t */\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.template = new Template( {\n\t\t\ttag: 'button',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-button',\n\t\t\t\t\tbind.if( '_tooltipString', 'ck-tooltip_s' ),\n\t\t\t\t\tbind.to( 'isEnabled', value => value ? 'ck-enabled' : 'ck-disabled' ),\n\t\t\t\t\tbind.if( 'isVisible', 'ck-hidden', value => !value ),\n\t\t\t\t\tbind.to( 'isOn', value => value ? 'ck-on' : 'ck-off' ),\n\t\t\t\t\tbind.if( 'withText', 'ck-button_with-text' )\n\t\t\t\t],\n\t\t\t\ttype: bind.to( 'type', value => value ? value : 'button' ),\n\t\t\t\t'data-ck-tooltip': [\n\t\t\t\t\tbind.to( '_tooltipString' )\n\t\t\t\t],\n\t\t\t\ttabindex: bind.to( 'tabindex' )\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'span',\n\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [ 'ck-button__label' ]\n\t\t\t\t\t},\n\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttext: bind.to( 'label' )\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t],\n\n\t\t\ton: {\n\t\t\t\tmousedown: bind.to( evt => {\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t} ),\n\n\t\t\t\tclick: bind.to( evt => {\n\t\t\t\t\t// We can't make the button disabled using the disabled attribute, because it won't be focusable.\n\t\t\t\t\t// Though, shouldn't this condition be moved to the button controller?\n\t\t\t\t\tif ( this.isEnabled ) {\n\t\t\t\t\t\tthis.fire( 'execute' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Prevent the default when button is disabled, to block e.g.\n\t\t\t\t\t\t// automatic form submitting. See ckeditor/ckeditor5-link#74.\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t}\n\t\t} );\n\n\t\t/**\n\t\t * Fired when the button view is clicked. It won't be fired when the button is disabled.\n\t\t *\n\t\t * @event #execute\n\t\t */\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tlet promise = Promise.resolve();\n\n\t\tif ( this.icon && !this.iconView ) {\n\t\t\tconst iconView = this.iconView = new IconView();\n\n\t\t\ticonView.bind( 'content' ).to( this, 'icon' );\n\n\t\t\tthis.element.insertBefore( iconView.element, this.element.firstChild );\n\n\t\t\t// Make sure the icon view will be destroyed along with button.\n\t\t\tpromise = promise.then( () => this.addChildren( iconView ) );\n\t\t}\n\n\t\treturn promise.then( () => super.init() );\n\t}\n\n\t/**\n\t * Focuses the button.\n\t */\n\tfocus() {\n\t\tthis.element.focus();\n\t}\n\n\t/**\n\t * Gets value for the `data-ck-tooltip` attribute from the combination of\n\t * {@link #tooltip}, {@link #label} and {@link #keystroke} attributes.\n\t *\n\t * @private\n\t * @see #tooltip\n\t * @see #_tooltipString\n\t * @param {Boolean|String|Function} tooltip Button tooltip.\n\t * @param {String} label Button label.\n\t * @param {String} keystroke Button keystroke.\n\t * @returns {String}\n\t */\n\t_getTooltipString( tooltip, label, keystroke ) {\n\t\tif ( tooltip ) {\n\t\t\tif ( typeof tooltip == 'string' ) {\n\t\t\t\treturn tooltip;\n\t\t\t} else {\n\t\t\t\tif ( keystroke ) {\n\t\t\t\t\tkeystroke = getEnvKeystrokeText( keystroke );\n\t\t\t\t}\n\n\t\t\t\tif ( tooltip instanceof Function ) {\n\t\t\t\t\treturn tooltip( label, keystroke );\n\t\t\t\t} else if ( tooltip === true ) {\n\t\t\t\t\treturn `${ label }${ keystroke ? ` (${ keystroke })` : '' }`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-ui/src/button/buttonview.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * Set of utils related to keyboard support.\n *\n * @module utils/keyboard\n */\n\nimport CKEditorError from './ckeditorerror';\nimport env from './env';\n\n/**\n * Object with `keyName => keyCode` pairs for a set of known keys.\n *\n * Contains:\n *\n * * `a-z`,\n * * `0-9`,\n * * `f1-f12`,\n * * `arrow(left|up|right|bottom)`,\n * * `backspace`, `delete`, `enter`, `esc`, `tab`,\n * * `ctrl`, `cmd`, `shift`, `alt`.\n */\nexport const keyCodes = generateKnownKeyCodes();\n\n/**\n * Converts a key name or a {@link module:utils/keyboard~KeystrokeInfo keystroke info} into a key code.\n *\n * Note: Key names are matched with {@link module:utils/keyboard~keyCodes} in a case-insensitive way.\n *\n * @param {String|module:utils/keyboard~KeystrokeInfo} Key name (see {@link module:utils/keyboard~keyCodes})\n * or a keystroke data object.\n * @returns {Number} Key or keystroke code.\n */\nexport function getCode( key ) {\n\tlet keyCode;\n\n\tif ( typeof key == 'string' ) {\n\t\tkeyCode = keyCodes[ key.toLowerCase() ];\n\n\t\tif ( !keyCode ) {\n\t\t\t/**\n\t\t\t * Unknown key name. Only key names contained by the {@link module:utils/keyboard~keyCodes} can be used.\n\t\t\t *\n\t\t\t * @errror keyboard-unknown-key\n\t\t\t * @param {String} key\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'keyboard-unknown-key: Unknown key name.', { key } );\n\t\t}\n\t} else {\n\t\tkeyCode = key.keyCode +\n\t\t\t( key.altKey ? keyCodes.alt : 0 ) +\n\t\t\t( key.ctrlKey ? keyCodes.ctrl : 0 ) +\n\t\t\t( key.shiftKey ? keyCodes.shift : 0 );\n\t}\n\n\treturn keyCode;\n}\n\n/**\n * Parses keystroke and returns a keystroke code that will match the code returned by\n * link {@link module:utils/keyboard.getCode} for a corresponding {@link module:utils/keyboard~KeystrokeInfo keystroke info}.\n *\n * The keystroke can be passed in two formats:\n *\n * * as a single string – e.g. `ctrl + A`,\n * * as an array of {@link module:utils/keyboard~keyCodes known key names} and key codes – e.g.:\n * * `[ 'ctrl', 32 ]` (ctrl + space),\n * * `[ 'ctrl', 'a' ]` (ctrl + A).\n *\n * Note: Key names are matched with {@link module:utils/keyboard~keyCodes} in a case-insensitive way.\n *\n * Note: Only keystrokes with a single non-modifier key are supported (e.g. `ctrl+A` is OK, but `ctrl+A+B` is not).\n *\n * @param {String|Array.} keystroke Keystroke definition.\n * @returns {Number} Keystroke code.\n */\nexport function parseKeystroke( keystroke ) {\n\tif ( typeof keystroke == 'string' ) {\n\t\tkeystroke = splitKeystrokeText( keystroke );\n\t}\n\n\treturn keystroke\n\t\t.map( key => ( typeof key == 'string' ) ? getCode( key ) : key )\n\t\t.reduce( ( key, sum ) => sum + key, 0 );\n}\n\n/**\n * It translates any keystroke string text like `\"CTRL+A\"` to an\n * environment–specific keystroke, i.e. `\"⌘A\"` on Mac OSX.\n *\n * @param {String} keystroke Keystroke text.\n * @returns {String} Keystroke text specific for the environment.\n */\nexport function getEnvKeystrokeText( keystroke ) {\n\tconst split = splitKeystrokeText( keystroke );\n\n\tif ( env.mac ) {\n\t\tif ( split[ 0 ].toLowerCase() == 'ctrl' ) {\n\t\t\treturn '⌘' + ( split[ 1 ] || '' );\n\t\t}\n\t}\n\n\treturn keystroke;\n}\n\nfunction generateKnownKeyCodes() {\n\tconst keyCodes = {\n\t\tarrowleft: 37,\n\t\tarrowup: 38,\n\t\tarrowright: 39,\n\t\tarrowdown: 40,\n\t\tbackspace: 8,\n\t\tdelete: 46,\n\t\tenter: 13,\n\t\tesc: 27,\n\t\ttab: 9,\n\n\t\t// The idea about these numbers is that they do not collide with any real key codes, so we can use them\n\t\t// like bit masks.\n\t\tctrl: 0x110000,\n\t\t// Has the same code as ctrl, because their behaviour should be unified across the editor.\n\t\t// See http://ckeditor.github.io/editor-recommendations/general-policies#ctrl-vs-cmd\n\t\tcmd: 0x110000,\n\t\tshift: 0x220000,\n\t\talt: 0x440000\n\t};\n\n\t// a-z\n\tfor ( let code = 65; code <= 90; code++ ) {\n\t\tconst letter = String.fromCharCode( code );\n\n\t\tkeyCodes[ letter.toLowerCase() ] = code;\n\t}\n\n\t// 0-9\n\tfor ( let code = 48; code <= 57; code++ ) {\n\t\tkeyCodes[ code - 48 ] = code;\n\t}\n\n\t// F1-F12\n\tfor ( let code = 112; code <= 123; code++ ) {\n\t\tkeyCodes[ 'f' + ( code - 111 ) ] = code;\n\t}\n\n\treturn keyCodes;\n}\n\nfunction splitKeystrokeText( keystroke ) {\n\treturn keystroke.split( /\\s*\\+\\s*/ );\n}\n\n/**\n * Information about a keystroke.\n *\n * @interface module:utils/keyboard~KeystrokeInfo\n */\n\n/**\n * The [key code](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode).\n *\n * @member {Number} module:utils/keyboard~KeystrokeInfo#keyCode\n */\n\n/**\n * Whether the Alt modifier was pressed.\n *\n * @member {Bolean} module:utils/keyboard~KeystrokeInfo#altKey\n */\n\n/**\n * Whether the Ctrl or Cmd modifier was pressed.\n *\n * @member {Bolean} module:utils/keyboard~KeystrokeInfo#ctrlKey\n */\n\n/**\n * Whether the Shift modifier was pressed.\n *\n * @member {Bolean} module:utils/keyboard~KeystrokeInfo#shiftKey\n */\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/keyboard.js","import arrayPush from './_arrayPush';\nimport isFlattenable from './_isFlattenable';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/lib/lodash/_baseFlatten.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/model/text\n */\n\nimport Node from './node';\n\n/**\n * Model text node. Type of {@link module:engine/model/node~Node node} that contains {@link module:engine/model/text~Text#data text data}.\n *\n * **Important:** see {@link module:engine/model/node~Node} to read about restrictions using `Text` and `Node` API.\n *\n * **Note:** keep in mind that `Text` instances might indirectly got removed from model tree when model is changed.\n * This happens when {@link module:engine/model/writer~writer model writer} is used to change model and the text node is merged with\n * another text node. Then, both text nodes are removed and a new text node is inserted into the model. Because of\n * this behavior, keeping references to `Text` is not recommended. Instead, consider creating\n * {@link module:engine/model/liveposition~LivePosition live position} placed before the text node.\n */\nexport default class Text extends Node {\n\t/**\n\t * Creates a text node.\n\t *\n\t * @param {String} data Node's text.\n\t * @param {Object} [attrs] Node's attributes. See {@link module:utils/tomap~toMap} for a list of accepted values.\n\t */\n\tconstructor( data, attrs ) {\n\t\tsuper( attrs );\n\n\t\t/**\n\t\t * Text data contained in this text node.\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tthis.data = data || '';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tget offsetSize() {\n\t\treturn this.data.length;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tis( type ) {\n\t\treturn type == 'text';\n\t}\n\n\t/**\n\t * Creates a copy of this text node and returns it. Created text node has same text data and attributes as original text node.\n\t */\n\tclone() {\n\t\treturn new Text( this.data, this.getAttributes() );\n\t}\n\n\t/**\n\t * Converts `Text` instance to plain object and returns it.\n\t *\n\t * @returns {Object} `Text` instance converted to plain object.\n\t */\n\ttoJSON() {\n\t\tconst json = super.toJSON();\n\n\t\tjson.data = this.data;\n\n\t\treturn json;\n\t}\n\n\t/**\n\t * Creates a `Text` instance from given plain object (i.e. parsed JSON string).\n\t *\n\t * @param {Object} json Plain object to be converted to `Text`.\n\t * @returns {module:engine/model/text~Text} `Text` instance created using given plain object.\n\t */\n\tstatic fromJSON( json ) {\n\t\treturn new Text( json.data, json.attributes );\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/model/text.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/view/element\n */\n\nimport Node from './node';\nimport Text from './text';\nimport objectToMap from '@ckeditor/ckeditor5-utils/src/objecttomap';\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\nimport isPlainObject from '@ckeditor/ckeditor5-utils/src/lib/lodash/isPlainObject';\nimport Matcher from './matcher';\n\n/**\n * View element.\n *\n * Editing engine does not define fixed HTML DTD. This is why the type of the {@link module:engine/view/element~Element} need to\n * be defined by the feature developer. Creating an element you should use {@link module:engine/view/containerelement~ContainerElement}\n * class, {@link module:engine/view/attributeelement~AttributeElement} class or {@link module:engine/view/emptyelement~EmptyElement} class.\n *\n * Note that for view elements which are not created from model, like elements from mutations, paste or\n * {@link module:engine/controller/datacontroller~DataController#set data.set} it is not possible to define the type of the element, so\n * these will be instances of the {@link module:engine/view/element~Element}.\n *\n * @extends module:engine/view/node~Node\n */\nexport default class Element extends Node {\n\t/**\n\t * Creates a view element.\n\t *\n\t * Attributes can be passed in various formats:\n\t *\n\t *\t\tnew Element( 'div', { 'class': 'editor', 'contentEditable': 'true' } ); // object\n\t *\t\tnew Element( 'div', [ [ 'class', 'editor' ], [ 'contentEditable', 'true' ] ] ); // map-like iterator\n\t *\t\tnew Element( 'div', mapOfAttributes ); // map\n\t *\n\t * @param {String} name Node name.\n\t * @param {Object|Iterable} [attrs] Collection of attributes.\n\t * @param {module:engine/view/node~Node|Iterable.} [children]\n\t * List of nodes to be inserted into created element.\n\t */\n\tconstructor( name, attrs, children ) {\n\t\tsuper();\n\n\t\t/**\n\t\t * Name of the element.\n\t\t *\n\t\t * @readonly\n\t\t * @member {String}\n\t\t */\n\t\tthis.name = name;\n\n\t\t/**\n\t\t * Map of attributes, where attributes names are keys and attributes values are values.\n\t\t *\n\t\t * @protected\n\t\t * @member {Map} #_attrs\n\t\t */\n\t\tif ( isPlainObject( attrs ) ) {\n\t\t\tthis._attrs = objectToMap( attrs );\n\t\t} else {\n\t\t\tthis._attrs = new Map( attrs );\n\t\t}\n\n\t\t/**\n\t\t * Array of child nodes.\n\t\t *\n\t\t * @protected\n\t\t * @member {Array.}\n\t\t */\n\t\tthis._children = [];\n\n\t\tif ( children ) {\n\t\t\tthis.insertChildren( 0, children );\n\t\t}\n\n\t\t/**\n\t\t * Set of classes associated with element instance.\n\t\t *\n\t\t * @protected\n\t\t * @member {Set}\n\t\t */\n\t\tthis._classes = new Set();\n\n\t\tif ( this._attrs.has( 'class' ) ) {\n\t\t\t// Remove class attribute and handle it by class set.\n\t\t\tconst classString = this._attrs.get( 'class' );\n\t\t\tparseClasses( this._classes, classString );\n\t\t\tthis._attrs.delete( 'class' );\n\t\t}\n\n\t\t/**\n\t\t * Map of styles.\n\t\t *\n\t\t * @protected\n\t\t * @member {Set} module:engine/view/element~Element#_styles\n\t\t */\n\t\tthis._styles = new Map();\n\n\t\tif ( this._attrs.has( 'style' ) ) {\n\t\t\t// Remove style attribute and handle it by styles map.\n\t\t\tparseInlineStyles( this._styles, this._attrs.get( 'style' ) );\n\t\t\tthis._attrs.delete( 'style' );\n\t\t}\n\n\t\t/**\n\t\t * Map of custom properties.\n\t\t * Custom properties can be added to element instance, will be cloned but not rendered into DOM.\n\t\t *\n\t\t * @protected\n\t\t * @memeber {Map}\n\t\t */\n\t\tthis._customProperties = new Map();\n\t}\n\n\t/**\n\t * Number of element's children.\n\t *\n\t * @readonly\n\t * @type {Number}\n\t */\n\tget childCount() {\n\t\treturn this._children.length;\n\t}\n\n\t/**\n\t * Is `true` if there are no nodes inside this element, `false` otherwise.\n\t *\n\t * @readonly\n\t * @type {Boolean}\n\t */\n\tget isEmpty() {\n\t\treturn this._children.length === 0;\n\t}\n\n\t/**\n\t * Checks whether given view tree object is of given type.\n\t *\n\t * Read more in {@link module:engine/view/node~Node#is}.\n\t *\n\t * @param {String} type\n\t * @param {String} [name] Element name.\n\t * @returns {Boolean}\n\t */\n\tis( type, name = null ) {\n\t\tif ( !name ) {\n\t\t\treturn type == 'element' || type == this.name;\n\t\t} else {\n\t\t\treturn type == 'element' && name == this.name;\n\t\t}\n\t}\n\n\t/**\n\t * Clones provided element.\n\t *\n\t * @param {Boolean} [deep=false] If set to `true` clones element and all its children recursively. When set to `false`,\n\t * element will be cloned without any children.\n\t * @returns {module:engine/view/element~Element} Clone of this element.\n\t */\n\tclone( deep = false ) {\n\t\tconst childrenClone = [];\n\n\t\tif ( deep ) {\n\t\t\tfor ( const child of this.getChildren() ) {\n\t\t\t\tchildrenClone.push( child.clone( deep ) );\n\t\t\t}\n\t\t}\n\n\t\t// ContainerElement and AttributeElement should be also cloned properly.\n\t\tconst cloned = new this.constructor( this.name, this._attrs, childrenClone );\n\n\t\t// Classes and styles are cloned separately - this solution is faster than adding them back to attributes and\n\t\t// parse once again in constructor.\n\t\tcloned._classes = new Set( this._classes );\n\t\tcloned._styles = new Map( this._styles );\n\n\t\t// Clone custom properties.\n\t\tcloned._customProperties = new Map( this._customProperties );\n\n\t\t// Clone filler offset method.\n\t\tcloned.getFillerOffset = this.getFillerOffset;\n\n\t\treturn cloned;\n\t}\n\n\t/**\n\t * {@link module:engine/view/element~Element#insertChildren Insert} a child node or a list of child nodes at the end of this node\n\t * and sets the parent of these nodes to this element.\n\t *\n\t * @fires module:engine/view/node~Node#change\n\t * @param {module:engine/view/node~Node|Iterable.} nodes Node or the list of nodes to be inserted.\n\t * @returns {Number} Number of appended nodes.\n\t */\n\tappendChildren( nodes ) {\n\t\treturn this.insertChildren( this.childCount, nodes );\n\t}\n\n\t/**\n\t * Gets child at the given index.\n\t *\n\t * @param {Number} index Index of child.\n\t * @returns {module:engine/view/node~Node} Child node.\n\t */\n\tgetChild( index ) {\n\t\treturn this._children[ index ];\n\t}\n\n\t/**\n\t * Gets index of the given child node. Returns `-1` if child node is not found.\n\t *\n\t * @param {module:engine/view/node~Node} node Child node.\n\t * @returns {Number} Index of the child node.\n\t */\n\tgetChildIndex( node ) {\n\t\treturn this._children.indexOf( node );\n\t}\n\n\t/**\n\t * Gets child nodes iterator.\n\t *\n\t * @returns {Iterable.} Child nodes iterator.\n\t */\n\tgetChildren() {\n\t\treturn this._children[ Symbol.iterator ]();\n\t}\n\n\t/**\n\t * Returns an iterator that contains the keys for attributes. Order of inserting attributes is not preserved.\n\t *\n\t * @returns {Iterator.} Keys for attributes.\n\t */\n\t* getAttributeKeys() {\n\t\tif ( this._classes.size > 0 ) {\n\t\t\tyield 'class';\n\t\t}\n\n\t\tif ( this._styles.size > 0 ) {\n\t\t\tyield 'style';\n\t\t}\n\n\t\t// This is not an optimal solution because of https://github.com/ckeditor/ckeditor5-engine/issues/454.\n\t\t// It can be simplified to `yield* this._attrs.keys();`.\n\t\tfor ( const key of this._attrs.keys() ) {\n\t\t\tyield key;\n\t\t}\n\t}\n\n\t/**\n\t * Returns iterator that iterates over this element's attributes.\n\t *\n\t * Attributes are returned as arrays containing two items. First one is attribute key and second is attribute value.\n\t * This format is accepted by native `Map` object and also can be passed in `Node` constructor.\n\t *\n\t * @returns {Iterable.<*>}\n\t */\n\t* getAttributes() {\n\t\tyield* this._attrs.entries();\n\n\t\tif ( this._classes.size > 0 ) {\n\t\t\tyield [ 'class', this.getAttribute( 'class' ) ];\n\t\t}\n\n\t\tif ( this._styles.size > 0 ) {\n\t\t\tyield [ 'style', this.getAttribute( 'style' ) ];\n\t\t}\n\t}\n\n\t/**\n\t * Gets attribute by key. If attribute is not present - returns undefined.\n\t *\n\t * @param {String} key Attribute key.\n\t * @returns {String|undefined} Attribute value.\n\t */\n\tgetAttribute( key ) {\n\t\tif ( key == 'class' ) {\n\t\t\tif ( this._classes.size > 0 ) {\n\t\t\t\treturn [ ...this._classes ].join( ' ' );\n\t\t\t}\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif ( key == 'style' ) {\n\t\t\tif ( this._styles.size > 0 ) {\n\t\t\t\tlet styleString = '';\n\n\t\t\t\tfor ( const [ property, value ] of this._styles ) {\n\t\t\t\t\tstyleString += `${ property }:${ value };`;\n\t\t\t\t}\n\n\t\t\t\treturn styleString;\n\t\t\t}\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn this._attrs.get( key );\n\t}\n\n\t/**\n\t * Returns a boolean indicating whether an attribute with the specified key exists in the element.\n\t *\n\t * @param {String} key Attribute key.\n\t * @returns {Boolean} `true` if attribute with the specified key exists in the element, false otherwise.\n\t */\n\thasAttribute( key ) {\n\t\tif ( key == 'class' ) {\n\t\t\treturn this._classes.size > 0;\n\t\t}\n\n\t\tif ( key == 'style' ) {\n\t\t\treturn this._styles.size > 0;\n\t\t}\n\n\t\treturn this._attrs.has( key );\n\t}\n\n\t/**\n\t * Adds or overwrite attribute with a specified key and value.\n\t *\n\t * @param {String} key Attribute key.\n\t * @param {String} value Attribute value.\n\t * @fires module:engine/view/node~Node#change\n\t */\n\tsetAttribute( key, value ) {\n\t\tthis._fireChange( 'attributes', this );\n\n\t\tif ( key == 'class' ) {\n\t\t\tparseClasses( this._classes, value );\n\t\t} else if ( key == 'style' ) {\n\t\t\tparseInlineStyles( this._styles, value );\n\t\t} else {\n\t\t\tthis._attrs.set( key, value );\n\t\t}\n\t}\n\n\t/**\n\t * Inserts a child node or a list of child nodes on the given index and sets the parent of these nodes to\n\t * this element.\n\t *\n\t * @param {Number} index Position where nodes should be inserted.\n\t * @param {module:engine/view/node~Node|Iterable.} nodes Node or the list of nodes to be inserted.\n\t * @fires module:engine/view/node~Node#change\n\t * @returns {Number} Number of inserted nodes.\n\t */\n\tinsertChildren( index, nodes ) {\n\t\tthis._fireChange( 'children', this );\n\t\tlet count = 0;\n\n\t\tnodes = normalize( nodes );\n\n\t\tfor ( const node of nodes ) {\n\t\t\tnode.parent = this;\n\n\t\t\tthis._children.splice( index, 0, node );\n\t\t\tindex++;\n\t\t\tcount++;\n\t\t}\n\n\t\treturn count;\n\t}\n\n\t/**\n\t * Removes attribute from the element.\n\t *\n\t * @param {String} key Attribute key.\n\t * @returns {Boolean} Returns true if an attribute existed and has been removed.\n\t * @fires module:engine/view/node~Node#change\n\t */\n\tremoveAttribute( key ) {\n\t\tthis._fireChange( 'attributes', this );\n\n\t\t// Remove class attribute.\n\t\tif ( key == 'class' ) {\n\t\t\tif ( this._classes.size > 0 ) {\n\t\t\t\tthis._classes.clear();\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\t// Remove style attribute.\n\t\tif ( key == 'style' ) {\n\t\t\tif ( this._styles.size > 0 ) {\n\t\t\t\tthis._styles.clear();\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\t// Remove other attributes.\n\t\treturn this._attrs.delete( key );\n\t}\n\n\t/**\n\t * Removes number of child nodes starting at the given index and set the parent of these nodes to `null`.\n\t *\n\t * @param {Number} index Number of the first node to remove.\n\t * @param {Number} [howMany=1] Number of nodes to remove.\n\t * @returns {Array.} The array of removed nodes.\n\t * @fires module:engine/view/node~Node#change\n\t */\n\tremoveChildren( index, howMany = 1 ) {\n\t\tthis._fireChange( 'children', this );\n\n\t\tfor ( let i = index; i < index + howMany; i++ ) {\n\t\t\tthis._children[ i ].parent = null;\n\t\t}\n\n\t\treturn this._children.splice( index, howMany );\n\t}\n\n\t/**\n\t * Checks if this element is similar to other element.\n\t * Both elements should have the same name and attributes to be considered as similar. Two similar elements\n\t * can contain different set of children nodes.\n\t *\n\t * @param {module:engine/view/element~Element} otherElement\n\t * @returns {Boolean}\n\t */\n\tisSimilar( otherElement ) {\n\t\tif ( !( otherElement instanceof Element ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If exactly the same Element is provided - return true immediately.\n\t\tif ( this === otherElement ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Check element name.\n\t\tif ( this.name != otherElement.name ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check number of attributes, classes and styles.\n\t\tif ( this._attrs.size !== otherElement._attrs.size || this._classes.size !== otherElement._classes.size ||\n\t\t\tthis._styles.size !== otherElement._styles.size ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if attributes are the same.\n\t\tfor ( const [ key, value ] of this._attrs ) {\n\t\t\tif ( !otherElement._attrs.has( key ) || otherElement._attrs.get( key ) !== value ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Check if classes are the same.\n\t\tfor ( const className of this._classes ) {\n\t\t\tif ( !otherElement._classes.has( className ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Check if styles are the same.\n\t\tfor ( const [ property, value ] of this._styles ) {\n\t\t\tif ( !otherElement._styles.has( property ) || otherElement._styles.get( property ) !== value ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Adds specified class.\n\t *\n\t *\t\telement.addClass( 'foo' ); // Adds 'foo' class.\n\t *\t\telement.addClass( 'foo', 'bar' ); // Adds 'foo' and 'bar' classes.\n\t *\n\t * @param {...String} className\n\t * @fires module:engine/view/node~Node#change\n\t */\n\taddClass( ...className ) {\n\t\tthis._fireChange( 'attributes', this );\n\t\tclassName.forEach( name => this._classes.add( name ) );\n\t}\n\n\t/**\n\t * Removes specified class.\n\t *\n \t *\t\telement.removeClass( 'foo' ); // Removes 'foo' class.\n\t *\t\telement.removeClass( 'foo', 'bar' ); // Removes both 'foo' and 'bar' classes.\n\t *\n\t * @param {...String} className\n\t * @fires module:engine/view/node~Node#change\n\t */\n\tremoveClass( ...className ) {\n\t\tthis._fireChange( 'attributes', this );\n\t\tclassName.forEach( name => this._classes.delete( name ) );\n\t}\n\n\t/**\n\t * Returns true if class is present.\n\t * If more then one class is provided - returns true only when all classes are present.\n\t *\n\t *\t\telement.hasClass( 'foo' ); // Returns true if 'foo' class is present.\n\t *\t\telement.hasClass( 'foo', 'bar' ); // Returns true if 'foo' and 'bar' classes are both present.\n\t *\n\t * @param {...String} className\n\t */\n\thasClass( ...className ) {\n\t\tfor ( const name of className ) {\n\t\t\tif ( !this._classes.has( name ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Returns iterator that contains all class names.\n\t *\n\t * @returns {Iterator.}\n\t */\n\tgetClassNames() {\n\t\treturn this._classes.keys();\n\t}\n\n\t/**\n\t * Adds style to the element.\n\t *\n\t *\t\telement.setStyle( 'color', 'red' );\n\t *\t\telement.setStyle( {\n\t *\t\t\tcolor: 'red',\n\t *\t\t\tposition: 'fixed'\n\t *\t\t} );\n\t *\n\t * @param {String|Object} property Property name or object with key - value pairs.\n\t * @param {String} [value] Value to set. This parameter is ignored if object is provided as the first parameter.\n\t * @fires module:engine/view/node~Node#change\n\t */\n\tsetStyle( property, value ) {\n\t\tthis._fireChange( 'attributes', this );\n\n\t\tif ( isPlainObject( property ) ) {\n\t\t\tconst keys = Object.keys( property );\n\n\t\t\tfor ( const key of keys ) {\n\t\t\t\tthis._styles.set( key, property[ key ] );\n\t\t\t}\n\t\t} else {\n\t\t\tthis._styles.set( property, value );\n\t\t}\n\t}\n\n\t/**\n\t * Returns style value for given property.\n\t * Undefined is returned if style does not exist.\n\t *\n\t * @param {String} property\n\t * @returns {String|undefined}\n\t */\n\tgetStyle( property ) {\n\t\treturn this._styles.get( property );\n\t}\n\n\t/**\n\t * Returns iterator that contains all style names.\n\t *\n\t * @returns {Iterator.}\n\t */\n\tgetStyleNames() {\n\t\treturn this._styles.keys();\n\t}\n\n\t/**\n\t * Returns true if style keys are present.\n\t * If more then one style property is provided - returns true only when all properties are present.\n\t *\n\t *\t\telement.hasStyle( 'color' ); // Returns true if 'border-top' style is present.\n\t *\t\telement.hasStyle( 'color', 'border-top' ); // Returns true if 'color' and 'border-top' styles are both present.\n\t *\n\t * @param {...String} property\n\t */\n\thasStyle( ...property ) {\n\t\tfor ( const name of property ) {\n\t\t\tif ( !this._styles.has( name ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Removes specified style.\n\t *\n\t *\t\telement.removeStyle( 'color' ); // Removes 'color' style.\n\t *\t\telement.removeStyle( 'color', 'border-top' ); // Removes both 'color' and 'border-top' styles.\n\t *\n\t * @param {...String} property\n\t * @fires module:engine/view/node~Node#change\n\t */\n\tremoveStyle( ...property ) {\n\t\tthis._fireChange( 'attributes', this );\n\t\tproperty.forEach( name => this._styles.delete( name ) );\n\t}\n\n\t/**\n\t * Returns ancestor element that match specified pattern.\n\t * Provided patterns should be compatible with {@link module:engine/view/matcher~Matcher Matcher} as it is used internally.\n\t *\n\t * @see module:engine/view/matcher~Matcher\n\t * @param {Object|String|RegExp|Function} patterns Patterns used to match correct ancestor.\n\t * See {@link module:engine/view/matcher~Matcher}.\n\t * @returns {module:engine/view/element~Element|null} Found element or `null` if no matching ancestor was found.\n\t */\n\tfindAncestor( ...patterns ) {\n\t\tconst matcher = new Matcher( ...patterns );\n\t\tlet parent = this.parent;\n\n\t\twhile ( parent ) {\n\t\t\tif ( matcher.match( parent ) ) {\n\t\t\t\treturn parent;\n\t\t\t}\n\n\t\t\tparent = parent.parent;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Sets a custom property. Unlike attributes, custom properties are not rendered to the DOM,\n\t * so they can be used to add special data to elements.\n\t *\n\t * @param {String|Symbol} key\n\t * @param {*} value\n\t */\n\tsetCustomProperty( key, value ) {\n\t\tthis._customProperties.set( key, value );\n\t}\n\n\t/**\n\t * Returns the custom property value for the given key.\n\t *\n\t * @param {String|Symbol} key\n\t * @returns {*}\n\t */\n\tgetCustomProperty( key ) {\n\t\treturn this._customProperties.get( key );\n\t}\n\n\t/**\n\t * Removes the custom property stored under the given key.\n\t *\n\t * @param {String|Symbol} key\n\t * @returns {Boolean} Returns true if property was removed.\n\t */\n\tremoveCustomProperty( key ) {\n\t\treturn this._customProperties.delete( key );\n\t}\n\n\t/**\n\t * Returns an iterator which iterates over this element's custom properties.\n\t * Iterator provides [key, value] pair for each stored property.\n\t *\n\t * @returns {Iterable.<*>}\n\t */\n\t* getCustomProperties() {\n\t\tyield* this._customProperties.entries();\n\t}\n\n\t/**\n\t * Returns block {@link module:engine/view/filler filler} offset or `null` if block filler is not needed.\n\t *\n\t * @abstract\n\t * @method module:engine/view/element~Element#getFillerOffset\n\t */\n}\n\n// Parses inline styles and puts property - value pairs into styles map.\n// Styles map is cleared before insertion.\n//\n// @param {Map.} stylesMap Map to insert parsed properties and values.\n// @param {String} stylesString Styles to parse.\nfunction parseInlineStyles( stylesMap, stylesString ) {\n\t// `null` if no quote was found in input string or last found quote was a closing quote. See below.\n\tlet quoteType = null;\n\tlet propertyNameStart = 0;\n\tlet propertyValueStart = 0;\n\tlet propertyName = null;\n\n\tstylesMap.clear();\n\n\t// Do not set anything if input string is empty.\n\tif ( stylesString === '' ) {\n\t\treturn;\n\t}\n\n\t// Fix inline styles that do not end with `;` so they are compatible with algorithm below.\n\tif ( stylesString.charAt( stylesString.length - 1 ) != ';' ) {\n\t\tstylesString = stylesString + ';';\n\t}\n\n\t// Seek the whole string for \"special characters\".\n\tfor ( let i = 0; i < stylesString.length; i++ ) {\n\t\tconst char = stylesString.charAt( i );\n\n\t\tif ( quoteType === null ) {\n\t\t\t// No quote found yet or last found quote was a closing quote.\n\t\t\tswitch ( char ) {\n\t\t\t\tcase ':':\n\t\t\t\t\t// Most of time colon means that property name just ended.\n\t\t\t\t\t// Sometimes however `:` is found inside property value (for example in background image url).\n\t\t\t\t\tif ( !propertyName ) {\n\t\t\t\t\t\t// Treat this as end of property only if property name is not already saved.\n\t\t\t\t\t\t// Save property name.\n\t\t\t\t\t\tpropertyName = stylesString.substr( propertyNameStart, i - propertyNameStart );\n\t\t\t\t\t\t// Save this point as the start of property value.\n\t\t\t\t\t\tpropertyValueStart = i + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase '\\'':\n\t\t\t\t\t// Opening quote found (this is an opening quote, because `quoteType` is `null`).\n\t\t\t\t\tquoteType = char;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t// eslint-disable-next-line no-case-declarations\n\t\t\t\tcase ';':\n\t\t\t\t\t// Property value just ended.\n\t\t\t\t\t// Use previously stored property value start to obtain property value.\n\t\t\t\t\tconst propertyValue = stylesString.substr( propertyValueStart, i - propertyValueStart );\n\n\t\t\t\t\tif ( propertyName ) {\n\t\t\t\t\t\t// Save parsed part.\n\t\t\t\t\t\tstylesMap.set( propertyName.trim(), propertyValue.trim() );\n\t\t\t\t\t}\n\n\t\t\t\t\tpropertyName = null;\n\n\t\t\t\t\t// Save this point as property name start. Property name starts immediately after previous property value ends.\n\t\t\t\t\tpropertyNameStart = i + 1;\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} else if ( char === quoteType ) {\n\t\t\t// If a quote char is found and it is a closing quote, mark this fact by `null`-ing `quoteType`.\n\t\t\tquoteType = null;\n\t\t}\n\t}\n}\n\n// Parses class attribute and puts all classes into classes set.\n// Classes set s cleared before insertion.\n//\n// @param {Set.} classesSet Set to insert parsed classes.\n// @param {String} classesString String with classes to parse.\nfunction parseClasses( classesSet, classesString ) {\n\tconst classArray = classesString.split( /\\s+/ );\n\tclassesSet.clear();\n\tclassArray.forEach( name => classesSet.add( name ) );\n}\n\n// Converts strings to Text and non-iterables to arrays.\n//\n// @param {String|module:engine/view/node~Node|Iterable.}\n// @return {Iterable.}\nfunction normalize( nodes ) {\n\t// Separate condition because string is iterable.\n\tif ( typeof nodes == 'string' ) {\n\t\treturn [ new Text( nodes ) ];\n\t}\n\n\tif ( !isIterable( nodes ) ) {\n\t\tnodes = [ nodes ];\n\t}\n\n\t// Array.from to enable .map() on non-arrays.\n\treturn Array.from( nodes )\n\t\t.map( node => {\n\t\t\treturn typeof node == 'string' ? new Text( node ) : node;\n\t\t} );\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/view/element.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/view/position\n */\n\nimport TreeWalker from './treewalker';\n\nimport compareArrays from '@ckeditor/ckeditor5-utils/src/comparearrays';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport EditableElement from './editableelement';\n\n/**\n * Position in the tree. Position is always located before or after a node.\n */\nexport default class Position {\n\t/**\n\t * Creates a position.\n\t *\n\t * @param {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment} parent Position parent.\n\t * @param {Number} offset Position offset.\n\t */\n\tconstructor( parent, offset ) {\n\t\t/**\n\t\t * Position parent.\n\t\t *\n\t\t * @member {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment}\n\t\t * module:engine/view/position~Position#parent\n\t\t */\n\t\tthis.parent = parent;\n\n\t\t/**\n\t\t * Position offset.\n\t\t *\n\t\t * @member {Number} module:engine/view/position~Position#offset\n\t\t */\n\t\tthis.offset = offset;\n\t}\n\n\t/**\n\t * Node directly after the position. Equals `null` when there is no node after position or position is located\n\t * inside text node.\n\t *\n\t * @readonly\n\t * @type {module:engine/view/node~Node|null}\n\t */\n\tget nodeAfter() {\n\t\tif ( this.parent.is( 'text' ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.parent.getChild( this.offset ) || null;\n\t}\n\n\t/**\n\t * Node directly before the position. Equals `null` when there is no node before position or position is located\n\t * inside text node.\n\t *\n\t * @readonly\n\t * @type {module:engine/view/node~Node|null}\n\t */\n\tget nodeBefore() {\n\t\tif ( this.parent.is( 'text' ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.parent.getChild( this.offset - 1 ) || null;\n\t}\n\n\t/**\n\t * Is `true` if position is at the beginning of its {@link module:engine/view/position~Position#parent parent}, `false` otherwise.\n\t *\n\t * @readonly\n\t * @type {Boolean}\n\t */\n\tget isAtStart() {\n\t\treturn this.offset === 0;\n\t}\n\n\t/**\n\t * Is `true` if position is at the end of its {@link module:engine/view/position~Position#parent parent}, `false` otherwise.\n\t *\n\t * @readonly\n\t * @type {Boolean}\n\t */\n\tget isAtEnd() {\n\t\tconst endOffset = this.parent.is( 'text' ) ? this.parent.data.length : this.parent.childCount;\n\n\t\treturn this.offset === endOffset;\n\t}\n\n\t/**\n\t * Position's root, that is the root of the position's parent element.\n\t *\n\t * @readonly\n\t * @type {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment}\n\t */\n\tget root() {\n\t\treturn this.parent.root;\n\t}\n\n\t/**\n\t * {@link module:engine/view/editableelement~EditableElement EditableElement} instance that contains this position, or `null` if\n\t * position is not inside an editable element.\n\t *\n\t * @type {module:engine/view/editableelement~EditableElement|null}\n\t */\n\tget editableElement() {\n\t\tlet editable = this.parent;\n\n\t\twhile ( !( editable instanceof EditableElement ) ) {\n\t\t\tif ( editable.parent ) {\n\t\t\t\teditable = editable.parent;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\treturn editable;\n\t}\n\n\t/**\n\t * Returns a new instance of Position with offset incremented by `shift` value.\n\t *\n\t * @param {Number} shift How position offset should get changed. Accepts negative values.\n\t * @returns {module:engine/view/position~Position} Shifted position.\n\t */\n\tgetShiftedBy( shift ) {\n\t\tconst shifted = Position.createFromPosition( this );\n\n\t\tconst offset = shifted.offset + shift;\n\t\tshifted.offset = offset < 0 ? 0 : offset;\n\n\t\treturn shifted;\n\t}\n\n\t/**\n\t * Gets the farthest position which matches the callback using\n\t * {@link module:engine/view/treewalker~TreeWalker TreeWalker}.\n\t *\n\t * For example:\n\t *\n\t * \t\tgetLastMatchingPosition( value => value.type == 'text' ); //

{}foo

->

foo[]

\n\t * \t\tgetLastMatchingPosition( value => value.type == 'text', { direction: 'backward' } ); //

foo[]

->

{}foo

\n\t * \t\tgetLastMatchingPosition( value => false ); // Do not move the position.\n\t *\n\t * @param {Function} skip Callback function. Gets {@link module:engine/view/treewalker~TreeWalkerValue} and should\n\t * return `true` if the value should be skipped or `false` if not.\n\t * @param {Object} options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}.\n\t *\n\t * @returns {module:engine/view/position~Position} The position after the last item which matches the `skip` callback test.\n\t */\n\tgetLastMatchingPosition( skip, options = {} ) {\n\t\toptions.startPosition = this;\n\n\t\tconst treeWalker = new TreeWalker( options );\n\t\ttreeWalker.skip( skip );\n\n\t\treturn treeWalker.position;\n\t}\n\n\t/**\n\t * Returns ancestors array of this position, that is this position's parent and it's ancestors.\n\t *\n\t * @returns {Array} Array with ancestors.\n\t */\n\tgetAncestors() {\n\t\tif ( this.parent.is( 'documentFragment' ) ) {\n\t\t\treturn [ this.parent ];\n\t\t} else {\n\t\t\treturn this.parent.getAncestors( { includeNode: true } );\n\t\t}\n\t}\n\n\t/**\n\t * Checks whether this position equals given position.\n\t *\n\t * @param {module:engine/view/position~Position} otherPosition Position to compare with.\n\t * @returns {Boolean} True if positions are same.\n\t */\n\tisEqual( otherPosition ) {\n\t\treturn ( this.parent == otherPosition.parent && this.offset == otherPosition.offset );\n\t}\n\n\t/**\n\t * Checks whether this position is located before given position. When method returns `false` it does not mean that\n\t * this position is after give one. Two positions may be located inside separate roots and in that situation this\n\t * method will still return `false`.\n\t *\n\t * @see module:engine/view/position~Position#isAfter\n\t * @see module:engine/view/position~Position#compareWith\n\t * @param {module:engine/view/position~Position} otherPosition Position to compare with.\n\t * @returns {Boolean} Returns `true` if this position is before given position.\n\t */\n\tisBefore( otherPosition ) {\n\t\treturn this.compareWith( otherPosition ) == 'before';\n\t}\n\n\t/**\n\t * Checks whether this position is located after given position. When method returns `false` it does not mean that\n\t * this position is before give one. Two positions may be located inside separate roots and in that situation this\n\t * method will still return `false`.\n\t *\n\t * @see module:engine/view/position~Position#isBefore\n\t * @see module:engine/view/position~Position#compareWith\n\t * @param {module:engine/view/position~Position} otherPosition Position to compare with.\n\t * @returns {Boolean} Returns `true` if this position is after given position.\n\t */\n\tisAfter( otherPosition ) {\n\t\treturn this.compareWith( otherPosition ) == 'after';\n\t}\n\n\t/**\n\t * Checks whether this position is before, after or in same position that other position. Two positions may be also\n\t * different when they are located in separate roots.\n\t *\n\t * @param {module:engine/view/position~Position} otherPosition Position to compare with.\n\t * @returns {module:engine/view/position~PositionRelation}\n\t */\n\tcompareWith( otherPosition ) {\n\t\tif ( this.isEqual( otherPosition ) ) {\n\t\t\treturn 'same';\n\t\t}\n\n\t\t// If positions have same parent.\n\t\tif ( this.parent === otherPosition.parent ) {\n\t\t\treturn this.offset - otherPosition.offset < 0 ? 'before' : 'after';\n\t\t}\n\n\t\t// Get path from root to position's parent element.\n\t\tconst path = this.getAncestors();\n\t\tconst otherPath = otherPosition.getAncestors();\n\n\t\t// Compare both path arrays to find common ancestor.\n\t\tconst result = compareArrays( path, otherPath );\n\n\t\tlet commonAncestorIndex;\n\n\t\tswitch ( result ) {\n\t\t\tcase 0:\n\t\t\t\t// No common ancestors found.\n\t\t\t\treturn 'different';\n\n\t\t\tcase 'prefix':\n\t\t\t\tcommonAncestorIndex = path.length - 1;\n\t\t\t\tbreak;\n\n\t\t\tcase 'extension':\n\t\t\t\tcommonAncestorIndex = otherPath.length - 1;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tcommonAncestorIndex = result - 1;\n\t\t}\n\n\t\t// Common ancestor of two positions.\n\t\tconst commonAncestor = path[ commonAncestorIndex ];\n\t\tconst nextAncestor1 = path[ commonAncestorIndex + 1 ];\n\t\tconst nextAncestor2 = otherPath[ commonAncestorIndex + 1 ];\n\n\t\t// Check if common ancestor is not one of the parents.\n\t\tif ( commonAncestor === this.parent ) {\n\t\t\tconst index = this.offset - nextAncestor2.index;\n\n\t\t\treturn index <= 0 ? 'before' : 'after';\n\t\t} else if ( commonAncestor === otherPosition.parent ) {\n\t\t\tconst index = nextAncestor1.index - otherPosition.offset;\n\n\t\t\treturn index < 0 ? 'before' : 'after';\n\t\t}\n\n\t\tconst index = nextAncestor1.index - nextAncestor2.index;\n\n\t\t// Compare indexes of next ancestors inside common one.\n\t\treturn index < 0 ? 'before' : 'after';\n\t}\n\n\t/**\n\t * Creates position at the given location. The location can be specified as:\n\t *\n\t * * a {@link module:engine/view/position~Position position},\n\t * * parent element and offset (offset defaults to `0`),\n\t * * parent element and `'end'` (sets position at the end of that element),\n\t * * {@link module:engine/view/item~Item view item} and `'before'` or `'after'` (sets position before or after given view item).\n\t *\n\t * This method is a shortcut to other constructors such as:\n\t *\n\t * * {@link module:engine/view/position~Position.createBefore},\n\t * * {@link module:engine/view/position~Position.createAfter},\n\t * * {@link module:engine/view/position~Position.createFromPosition}.\n\t *\n\t * @param {module:engine/view/item~Item|module:engine/model/position~Position} itemOrPosition\n\t * @param {Number|'end'|'before'|'after'} [offset=0] Offset or one of the flags. Used only when\n\t * first parameter is a {@link module:engine/view/item~Item view item}.\n\t */\n\tstatic createAt( itemOrPosition, offset ) {\n\t\tif ( itemOrPosition instanceof Position ) {\n\t\t\treturn this.createFromPosition( itemOrPosition );\n\t\t} else {\n\t\t\tconst node = itemOrPosition;\n\n\t\t\tif ( offset == 'end' ) {\n\t\t\t\toffset = node.is( 'text' ) ? node.data.length : node.childCount;\n\t\t\t} else if ( offset == 'before' ) {\n\t\t\t\treturn this.createBefore( node );\n\t\t\t} else if ( offset == 'after' ) {\n\t\t\t\treturn this.createAfter( node );\n\t\t\t} else if ( !offset ) {\n\t\t\t\toffset = 0;\n\t\t\t}\n\n\t\t\treturn new Position( node, offset );\n\t\t}\n\t}\n\n\t/**\n\t * Creates a new position after given view item.\n\t *\n\t * @param {module:engine/view/item~Item} item View item after which the position should be located.\n\t * @returns {module:engine/view/position~Position}\n\t */\n\tstatic createAfter( item ) {\n\t\t// TextProxy is not a instance of Node so we need do handle it in specific way.\n\t\tif ( item.is( 'textProxy' ) ) {\n\t\t\treturn new Position( item.textNode, item.offsetInText + item.data.length );\n\t\t}\n\n\t\tif ( !item.parent ) {\n\t\t\t/**\n\t\t\t * You can not make a position after a root.\n\t\t\t *\n\t\t\t * @error position-after-root\n\t\t\t * @param {module:engine/view/node~Node} root\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-position-after-root: You can not make position after root.', { root: item } );\n\t\t}\n\n\t\treturn new Position( item.parent, item.index + 1 );\n\t}\n\n\t/**\n\t * Creates a new position before given view item.\n\t *\n\t * @param {module:engine/view/item~Item} item View item before which the position should be located.\n\t * @returns {module:engine/view/position~Position}\n\t */\n\tstatic createBefore( item ) {\n\t\t// TextProxy is not a instance of Node so we need do handle it in specific way.\n\t\tif ( item.is( 'textProxy' ) ) {\n\t\t\treturn new Position( item.textNode, item.offsetInText );\n\t\t}\n\n\t\tif ( !item.parent ) {\n\t\t\t/**\n\t\t\t * You cannot make a position before a root.\n\t\t\t *\n\t\t\t * @error position-before-root\n\t\t\t * @param {module:engine/view/node~Node} root\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'view-position-before-root: You can not make position before root.', { root: item } );\n\t\t}\n\n\t\treturn new Position( item.parent, item.index );\n\t}\n\n\t/**\n\t * Creates and returns a new instance of `Position`, which is equal to the passed position.\n\t *\n\t * @param {module:engine/view/position~Position} position Position to be cloned.\n\t * @returns {module:engine/view/position~Position}\n\t */\n\tstatic createFromPosition( position ) {\n\t\treturn new this( position.parent, position.offset );\n\t}\n}\n\n/**\n * A flag indicating whether this position is `'before'` or `'after'` or `'same'` as given position.\n * If positions are in different roots `'different'` flag is returned.\n *\n * @typedef {String} module:engine/view/position~PositionRelation\n */\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/view/position.js","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/lib/lodash/_arrayMap.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n// WEBPACK FOOTER //\n// /Users/pomek/Projects/ckeditor/ckeditor5/~/css-loader/lib/css-base.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/model/operation/moveoperation\n */\n\nimport Operation from './operation';\nimport Position from '../position';\nimport Range from '../range';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport compareArrays from '@ckeditor/ckeditor5-utils/src/comparearrays';\nimport writer from './../writer';\n\n/**\n * Operation to move a range of {@link module:engine/model/item~Item model items}\n * to given {@link module:engine/model/position~Position target position}.\n */\nexport default class MoveOperation extends Operation {\n\t/**\n\t * Creates a move operation.\n\t *\n\t * @param {module:engine/model/position~Position} sourcePosition\n\t * Position before the first {@link module:engine/model/item~Item model item} to move.\n\t * @param {Number} howMany Offset size of moved range. Moved range will start from `sourcePosition` and end at\n\t * `sourcePosition` with offset shifted by `howMany`.\n\t * @param {module:engine/model/position~Position} targetPosition Position at which moved nodes will be inserted.\n\t * @param {Number} baseVersion {@link module:engine/model/document~Document#version} on which operation can be applied.\n\t */\n\tconstructor( sourcePosition, howMany, targetPosition, baseVersion ) {\n\t\tsuper( baseVersion );\n\n\t\t/**\n\t\t * Position before the first {@link module:engine/model/item~Item model item} to move.\n\t\t *\n\t\t * @member {module:engine/model/position~Position} module:engine/model/operation/moveoperation~MoveOperation#sourcePosition\n\t\t */\n\t\tthis.sourcePosition = Position.createFromPosition( sourcePosition );\n\n\t\t/**\n\t\t * Offset size of moved range.\n\t\t *\n\t\t * @member {Number} module:engine/model/operation/moveoperation~MoveOperation#howMany\n\t\t */\n\t\tthis.howMany = howMany;\n\n\t\t/**\n\t\t * Position at which moved nodes will be inserted.\n\t\t *\n\t\t * @member {module:engine/model/position~Position} module:engine/model/operation/moveoperation~MoveOperation#targetPosition\n\t\t */\n\t\tthis.targetPosition = Position.createFromPosition( targetPosition );\n\n\t\t/**\n\t\t * Defines whether `MoveOperation` is sticky. If `MoveOperation` is sticky, during\n\t\t * {@link module:engine/model/operation/transform~transform operational transformation} if there will be an operation that\n\t\t * inserts some nodes at the position equal to the boundary of this `MoveOperation`, that operation will\n\t\t * get their insertion path updated to the position where this `MoveOperation` moves the range.\n\t\t *\n\t\t * @member {Boolean} module:engine/model/operation/moveoperation~MoveOperation#isSticky\n\t\t */\n\t\tthis.isSticky = false;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tget type() {\n\t\treturn 'move';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t * @returns {module:engine/model/operation/moveoperation~MoveOperation}\n\t */\n\tclone() {\n\t\tconst op = new this.constructor( this.sourcePosition, this.howMany, this.targetPosition, this.baseVersion );\n\t\top.isSticky = this.isSticky;\n\n\t\treturn op;\n\t}\n\n\t/**\n\t * Returns the start position of the moved range after it got moved. This may be different than\n\t * {@link module:engine/model/operation/moveoperation~MoveOperation#targetPosition} in some cases, i.e. when a range is moved\n\t * inside the same parent but {@link module:engine/model/operation/moveoperation~MoveOperation#targetPosition targetPosition}\n\t * is after {@link module:engine/model/operation/moveoperation~MoveOperation#sourcePosition sourcePosition}.\n\t *\n\t *\t\t vv vv\n\t *\t\tabcdefg ===> adefbcg\n\t *\t\t ^ ^\n\t *\t\t targetPos\tmovedRangeStart\n\t *\t\t offset 6\toffset 4\n\t *\n\t * @returns {module:engine/model/position~Position}\n\t */\n\tgetMovedRangeStart() {\n\t\treturn this.targetPosition._getTransformedByDeletion( this.sourcePosition, this.howMany );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t * @returns {module:engine/model/operation/moveoperation~MoveOperation}\n\t */\n\tgetReversed() {\n\t\tconst newTargetPosition = this.sourcePosition._getTransformedByInsertion( this.targetPosition, this.howMany );\n\n\t\tconst op = new this.constructor( this.getMovedRangeStart(), this.howMany, newTargetPosition, this.baseVersion + 1 );\n\t\top.isSticky = this.isSticky;\n\n\t\treturn op;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\t_execute() {\n\t\tconst sourceElement = this.sourcePosition.parent;\n\t\tconst targetElement = this.targetPosition.parent;\n\t\tconst sourceOffset = this.sourcePosition.offset;\n\t\tconst targetOffset = this.targetPosition.offset;\n\n\t\t// Validate whether move operation has correct parameters.\n\t\t// Validation is pretty complex but move operation is one of the core ways to manipulate the document state.\n\t\t// We expect that many errors might be connected with one of scenarios described below.\n\t\tif ( !sourceElement || !targetElement ) {\n\t\t\t/**\n\t\t\t * Source position or target position is invalid.\n\t\t\t *\n\t\t\t * @error move-operation-position-invalid\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'move-operation-position-invalid: Source position or target position is invalid.'\n\t\t\t);\n\t\t} else if ( sourceOffset + this.howMany > sourceElement.maxOffset ) {\n\t\t\t/**\n\t\t\t * The nodes which should be moved do not exist.\n\t\t\t *\n\t\t\t * @error move-operation-nodes-do-not-exist\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'move-operation-nodes-do-not-exist: The nodes which should be moved do not exist.'\n\t\t\t);\n\t\t} else if ( sourceElement === targetElement && sourceOffset < targetOffset && targetOffset < sourceOffset + this.howMany ) {\n\t\t\t/**\n\t\t\t * Trying to move a range of nodes into the middle of that range.\n\t\t\t *\n\t\t\t * @error move-operation-range-into-itself\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'move-operation-range-into-itself: Trying to move a range of nodes to the inside of that range.'\n\t\t\t);\n\t\t} else if ( this.sourcePosition.root == this.targetPosition.root ) {\n\t\t\tif ( compareArrays( this.sourcePosition.getParentPath(), this.targetPosition.getParentPath() ) == 'prefix' ) {\n\t\t\t\tconst i = this.sourcePosition.path.length - 1;\n\n\t\t\t\tif ( this.targetPosition.path[ i ] >= sourceOffset && this.targetPosition.path[ i ] < sourceOffset + this.howMany ) {\n\t\t\t\t\t/**\n\t\t\t\t\t * Trying to move a range of nodes into one of nodes from that range.\n\t\t\t\t\t *\n\t\t\t\t\t * @error move-operation-node-into-itself\n\t\t\t\t\t */\n\t\t\t\t\tthrow new CKEditorError(\n\t\t\t\t\t\t'move-operation-node-into-itself: Trying to move a range of nodes into one of nodes from that range.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst range = writer.move( Range.createFromPositionAndShift( this.sourcePosition, this.howMany ), this.targetPosition );\n\n\t\treturn {\n\t\t\tsourcePosition: this.sourcePosition,\n\t\t\trange\n\t\t};\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get className() {\n\t\treturn 'engine.model.operation.MoveOperation';\n\t}\n\n\t/**\n\t * Creates `MoveOperation` object from deserilized object, i.e. from parsed JSON string.\n\t *\n\t * @param {Object} json Deserialized JSON object.\n\t * @param {module:engine/model/document~Document} document Document on which this operation will be applied.\n\t * @returns {module:engine/model/operation/moveoperation~MoveOperation}\n\t */\n\tstatic fromJSON( json, document ) {\n\t\tconst sourcePosition = Position.fromJSON( json.sourcePosition, document );\n\t\tconst targetPosition = Position.fromJSON( json.targetPosition, document );\n\n\t\tconst move = new this( sourcePosition, json.howMany, targetPosition, json.baseVersion );\n\n\t\tif ( json.isSticky ) {\n\t\t\tmove.isSticky = true;\n\t\t}\n\n\t\treturn move;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/model/operation/moveoperation.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/view/text\n */\n\nimport Node from './node';\n\n/**\n * Tree view text node.\n *\n * @extends module:engine/view/node~Node\n */\nexport default class Text extends Node {\n\t/**\n\t * Creates a tree view text node.\n\t *\n\t * @param {String} data Text.\n\t */\n\tconstructor( data ) {\n\t\tsuper();\n\n\t\t/**\n\t\t * The text content.\n\t\t *\n\t\t * Setting the data fires the {@link module:engine/view/node~Node#event:change:text change event}.\n\t\t *\n\t\t * @private\n\t\t * @member {String} module:engine/view/text~Text#_data\n\t\t */\n\t\tthis._data = data;\n\t}\n\n\t/**\n\t * Clones this node.\n\t *\n\t * @returns {module:engine/view/text~Text} Text node that is a clone of this node.\n\t */\n\tclone() {\n\t\treturn new Text( this.data );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tis( type ) {\n\t\treturn type == 'text';\n\t}\n\n\t/**\n\t * The text content.\n\t *\n\t * Setting the data fires the {@link module:engine/view/node~Node#event:change:text change event}.\n\t */\n\tget data() {\n\t\treturn this._data;\n\t}\n\n\tset data( data ) {\n\t\tthis._fireChange( 'text', this );\n\n\t\tthis._data = data;\n\t}\n\n\t/**\n\t * Checks if this text node is similar to other text node.\n\t * Both nodes should have the same data to be considered as similar.\n\t *\n\t * @param {module:engine/view/text~Text} otherNode Node to check if it is same as this node.\n\t * @returns {Boolean}\n\t */\n\tisSimilar( otherNode ) {\n\t\tif ( !( otherNode instanceof Text ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this === otherNode || this.data === otherNode.data;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-engine/src/view/text.js","import checkGlobal from './_checkGlobal';\n\n/** Used to determine if values are of the language type `Object`. */\nvar objectTypes = {\n 'function': true,\n 'object': true\n};\n\n/** Detect free variable `exports`. */\nvar freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)\n ? exports\n : undefined;\n\n/** Detect free variable `module`. */\nvar freeModule = (objectTypes[typeof module] && module && !module.nodeType)\n ? module\n : undefined;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);\n\n/** Detect free variable `self`. */\nvar freeSelf = checkGlobal(objectTypes[typeof self] && self);\n\n/** Detect free variable `window`. */\nvar freeWindow = checkGlobal(objectTypes[typeof window] && window);\n\n/** Detect `this` as the global object. */\nvar thisGlobal = checkGlobal(objectTypes[typeof this] && this);\n\n/**\n * Used as a reference to the global object.\n *\n * The `this` value is used if it's the global object to avoid Greasemonkey's\n * restricted `window` object, otherwise the `window` object is used.\n */\nvar root = freeGlobal ||\n ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||\n freeSelf || thisGlobal || Function('return this')();\n\nexport default root;\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/lib/lodash/_root.js","/**\n * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module utils/observablemixin\n */\n\nimport EmitterMixin from './emittermixin';\nimport CKEditorError from './ckeditorerror';\nimport extend from './lib/lodash/extend';\nimport isObject from './lib/lodash/isObject';\n\nconst attributesSymbol = Symbol( 'attributes' );\nconst boundObservablesSymbol = Symbol( 'boundObservables' );\nconst boundAttributesSymbol = Symbol( 'boundAttributes' );\n\n/**\n * Mixin that injects the \"observable attributes\" and data binding functionality.\n * Used mainly in the {@link module:ui/model~Model} class.\n *\n * @mixin ObservableMixin\n * @mixes module:utils/emittermixin~EmitterMixin\n * @implements module:utils/observablemixin~Observable\n */\nconst ObservableMixin = {\n\t/**\n\t * Creates and sets the value of an observable attribute of this object. Such an attribute becomes a part\n\t * of the state and is be observable.\n\t *\n\t * It accepts also a single object literal containing key/value pairs with attributes to be set.\n\t *\n\t * This method throws the observable-set-cannot-override error if the observable instance already\n\t * have a property with a given attribute name. This prevents from mistakenly overriding existing\n\t * properties and methods, but means that `foo.set( 'bar', 1 )` may be slightly slower than `foo.bar = 1`.\n\t *\n\t * @method #set\n\t * @param {String} name The attributes name.\n\t * @param {*} value The attributes value.\n\t */\n\tset( name, value ) {\n\t\t// If the first parameter is an Object, iterate over its properties.\n\t\tif ( isObject( name ) ) {\n\t\t\tObject.keys( name ).forEach( attr => {\n\t\t\t\tthis.set( attr, name[ attr ] );\n\t\t\t}, this );\n\n\t\t\treturn;\n\t\t}\n\n\t\tinitObservable( this );\n\n\t\tconst attributes = this[ attributesSymbol ];\n\n\t\tif ( ( name in this ) && !attributes.has( name ) ) {\n\t\t\t/**\n\t\t\t * Cannot override an existing property.\n\t\t\t *\n\t\t\t * This error is thrown when trying to {@link ~Observable#set set} an attribute with\n\t\t\t * a name of an already existing property. For example:\n\t\t\t *\n\t\t\t *\t\tlet observable = new Model();\n\t\t\t *\t\tobservable.property = 1;\n\t\t\t *\t\tobservable.set( 'property', 2 );\t\t// throws\n\t\t\t *\n\t\t\t *\t\tobservable.set( 'attr', 1 );\n\t\t\t *\t\tobservable.set( 'attr', 2 );\t\t\t// ok, because this is an existing attribute.\n\t\t\t *\n\t\t\t * @error observable-set-cannot-override\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'observable-set-cannot-override: Cannot override an existing property.' );\n\t\t}\n\n\t\tObject.defineProperty( this, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget() {\n\t\t\t\treturn attributes.get( name );\n\t\t\t},\n\n\t\t\tset( value ) {\n\t\t\t\tconst oldValue = attributes.get( name );\n\n\t\t\t\t// Allow undefined as an initial value like A.define( 'x', undefined ) (#132).\n\t\t\t\t// Note: When attributes map has no such own property, then its value is undefined.\n\t\t\t\tif ( oldValue !== value || !attributes.has( name ) ) {\n\t\t\t\t\tattributes.set( name, value );\n\t\t\t\t\tthis.fire( 'change:' + name, name, value, oldValue );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tthis[ name ] = value;\n\t},\n\n\t/**\n\t * Binds observable attributes to another objects implementing {@link ~ObservableMixin}\n\t * interface (like {@link module:ui/model~Model}).\n\t *\n\t * Once bound, the observable will immediately share the current state of attributes\n\t * of the observable it is bound to and react to the changes to these attributes\n\t * in the future.\n\t *\n\t * **Note**: To release the binding use {@link module:utils/observablemixin~ObservableMixin#unbind}.\n\t *\n\t *\t\tA.bind( 'a' ).to( B );\n\t *\t\tA.bind( 'a' ).to( B, 'b' );\n\t *\t\tA.bind( 'a', 'b' ).to( B, 'c', 'd' );\n\t *\t\tA.bind( 'a' ).to( B, 'b', C, 'd', ( b, d ) => b + d );\n\t *\n\t * @method #bind\n\t * @param {...String} bindAttrs Observable attributes that will be bound to another observable(s).\n\t * @returns {module:utils/observablemixin~BindChain}\n\t */\n\tbind( ...bindAttrs ) {\n\t\tif ( !bindAttrs.length || !isStringArray( bindAttrs ) ) {\n\t\t\t/**\n\t\t\t * All attributes must be strings.\n\t\t\t *\n\t\t\t * @error observable-bind-wrong-attrs\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'observable-bind-wrong-attrs: All attributes must be strings.' );\n\t\t}\n\n\t\tif ( ( new Set( bindAttrs ) ).size !== bindAttrs.length ) {\n\t\t\t/**\n\t\t\t * Attributes must be unique.\n\t\t\t *\n\t\t\t * @error observable-bind-duplicate-attrs\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'observable-bind-duplicate-attrs: Attributes must be unique.' );\n\t\t}\n\n\t\tinitObservable( this );\n\n\t\tconst boundAttributes = this[ boundAttributesSymbol ];\n\n\t\tbindAttrs.forEach( attrName => {\n\t\t\tif ( boundAttributes.has( attrName ) ) {\n\t\t\t\t/**\n\t\t\t\t * Cannot bind the same attribute more that once.\n\t\t\t\t *\n\t\t\t\t * @error observable-bind-rebind\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'observable-bind-rebind: Cannot bind the same attribute more that once.' );\n\t\t\t}\n\t\t} );\n\n\t\tconst bindings = new Map();\n\n\t\t/**\n\t\t * @typedef Binding\n\t\t * @type Object\n\t\t * @property {Array} attr Attribute which is bound.\n\t\t * @property {Array} to Array of observable–attribute components of the binding (`{ observable: ..., attr: .. }`).\n\t\t * @property {Array} callback A function which processes `to` components.\n\t\t */\n\t\tbindAttrs.forEach( a => {\n\t\t\tconst binding = { attr: a, to: [] };\n\n\t\t\tboundAttributes.set( a, binding );\n\t\t\tbindings.set( a, binding );\n\t\t} );\n\n\t\t/**\n\t\t * @typedef BindChain\n\t\t * @type Object\n\t\t * @property {Function} to See {@link ~ObservableMixin#_bindTo}.\n\t\t * @property {module:utils/observablemixin~Observable} _observable The observable which initializes the binding.\n\t\t * @property {Array} _bindAttrs Array of `_observable` attributes to be bound.\n\t\t * @property {Array} _to Array of `to()` observable–attributes (`{ observable: toObservable, attrs: ...toAttrs }`).\n\t\t * @property {Map} _bindings Stores bindings to be kept in\n\t\t * {@link ~ObservableMixin#_boundAttributes}/{@link ~ObservableMixin#_boundObservables}\n\t\t * initiated in this binding chain.\n\t\t */\n\t\treturn {\n\t\t\tto: bindTo,\n\n\t\t\t_observable: this,\n\t\t\t_bindAttrs: bindAttrs,\n\t\t\t_to: [],\n\t\t\t_bindings: bindings\n\t\t};\n\t},\n\n\t/**\n\t * Removes the binding created with {@link ~ObservableMixin#bind}.\n\t *\n\t *\t\tA.unbind( 'a' );\n\t *\t\tA.unbind();\n\t *\n\t * @method #unbind\n\t * @param {...String} [unbindAttrs] Observable attributes to be unbound. All the bindings will\n\t * be released if no attributes provided.\n\t */\n\tunbind( ...unbindAttrs ) {\n\t\t// Nothing to do here if not inited yet.\n\t\tif ( !( attributesSymbol in this ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst boundAttributes = this[ boundAttributesSymbol ];\n\t\tconst boundObservables = this[ boundObservablesSymbol ];\n\n\t\tif ( unbindAttrs.length ) {\n\t\t\tif ( !isStringArray( unbindAttrs ) ) {\n\t\t\t\t/**\n\t\t\t\t * Attributes must be strings.\n\t\t\t\t *\n\t\t\t\t * @error observable-unbind-wrong-attrs\n\t\t\t\t */\n\t\t\t\tthrow new CKEditorError( 'observable-unbind-wrong-attrs: Attributes must be strings.' );\n\t\t\t}\n\n\t\t\tunbindAttrs.forEach( attrName => {\n\t\t\t\tconst binding = boundAttributes.get( attrName );\n\t\t\t\tlet toObservable, toAttr, toAttrs, toAttrBindings;\n\n\t\t\t\tbinding.to.forEach( to => {\n\t\t\t\t\t// TODO: ES6 destructuring.\n\t\t\t\t\ttoObservable = to[ 0 ];\n\t\t\t\t\ttoAttr = to[ 1 ];\n\t\t\t\t\ttoAttrs = boundObservables.get( toObservable );\n\t\t\t\t\ttoAttrBindings = toAttrs[ toAttr ];\n\n\t\t\t\t\ttoAttrBindings.delete( binding );\n\n\t\t\t\t\tif ( !toAttrBindings.size ) {\n\t\t\t\t\t\tdelete toAttrs[ toAttr ];\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !Object.keys( toAttrs ).length ) {\n\t\t\t\t\t\tboundObservables.delete( toObservable );\n\t\t\t\t\t\tthis.stopListening( toObservable, 'change' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tboundAttributes.delete( attrName );\n\t\t\t} );\n\t\t} else {\n\t\t\tboundObservables.forEach( ( bindings, boundObservable ) => {\n\t\t\t\tthis.stopListening( boundObservable, 'change' );\n\t\t\t} );\n\n\t\t\tboundObservables.clear();\n\t\t\tboundAttributes.clear();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @member ~ObservableMixin#_boundAttributes\n\t */\n\n\t/**\n\t * @private\n\t * @member ~ObservableMixin#_boundObservables\n\t */\n\n\t/**\n\t * @private\n\t * @member ~ObservableMixin#_bindTo\n\t */\n};\n\nexport default ObservableMixin;\n\n// Init symbol properties needed to for the observable mechanism to work.\n//\n// @private\n// @param {module:utils/observablemixin~ObservableMixin} observable\nfunction initObservable( observable ) {\n\t// Do nothing if already inited.\n\tif ( attributesSymbol in observable ) {\n\t\treturn;\n\t}\n\n\t// The internal hash containing the observable's state.\n\t//\n\t// @private\n\t// @type {Map}\n\tObject.defineProperty( observable, attributesSymbol, {\n\t\tvalue: new Map()\n\t} );\n\n\t// Map containing bindings to external observables. It shares the binding objects\n\t// (`{ observable: A, attr: 'a', to: ... }`) with {@link module:utils/observablemixin~ObservableMixin#_boundAttributes} and\n\t// it is used to observe external observables to update own attributes accordingly.\n\t// See {@link module:utils/observablemixin~ObservableMixin#bind}.\n\t//\n\t//\t\tA.bind( 'a', 'b', 'c' ).to( B, 'x', 'y', 'x' );\n\t//\t\tconsole.log( A._boundObservables );\n\t//\n\t//\t\t\tMap( {\n\t//\t\t\t\tB: {\n\t//\t\t\t\t\tx: Set( [\n\t//\t\t\t\t\t\t{ observable: A, attr: 'a', to: [ [ B, 'x' ] ] },\n\t//\t\t\t\t\t\t{ observable: A, attr: 'c', to: [ [ B, 'x' ] ] }\n\t//\t\t\t\t\t] ),\n\t//\t\t\t\t\ty: Set( [\n\t//\t\t\t\t\t\t{ observable: A, attr: 'b', to: [ [ B, 'y' ] ] },\n\t//\t\t\t\t\t] )\n\t//\t\t\t\t}\n\t//\t\t\t} )\n\t//\n\t//\t\tA.bind( 'd' ).to( B, 'z' ).to( C, 'w' ).as( callback );\n\t//\t\tconsole.log( A._boundObservables );\n\t//\n\t//\t\t\tMap( {\n\t//\t\t\t\tB: {\n\t//\t\t\t\t\tx: Set( [\n\t//\t\t\t\t\t\t{ observable: A, attr: 'a', to: [ [ B, 'x' ] ] },\n\t//\t\t\t\t\t\t{ observable: A, attr: 'c', to: [ [ B, 'x' ] ] }\n\t//\t\t\t\t\t] ),\n\t//\t\t\t\t\ty: Set( [\n\t//\t\t\t\t\t\t{ observable: A, attr: 'b', to: [ [ B, 'y' ] ] },\n\t//\t\t\t\t\t] ),\n\t//\t\t\t\t\tz: Set( [\n\t//\t\t\t\t\t\t{ observable: A, attr: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback }\n\t//\t\t\t\t\t] )\n\t//\t\t\t\t},\n\t//\t\t\t\tC: {\n\t//\t\t\t\t\tw: Set( [\n\t//\t\t\t\t\t\t{ observable: A, attr: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback }\n\t//\t\t\t\t\t] )\n\t//\t\t\t\t}\n\t//\t\t\t} )\n\t//\n\t// @private\n\t// @type {Map}\n\tObject.defineProperty( observable, boundObservablesSymbol, {\n\t\tvalue: new Map()\n\t} );\n\n\t// Object that stores which attributes of this observable are bound and how. It shares\n\t// the binding objects (`{ observable: A, attr: 'a', to: ... }`) with {@link utils.ObservableMixin#_boundObservables}.\n\t// This data structure is a reverse of {@link utils.ObservableMixin#_boundObservables} and it is helpful for\n\t// {@link utils.ObservableMixin#unbind}.\n\t//\n\t// See {@link utils.ObservableMixin#bind}.\n\t//\n\t//\t\tA.bind( 'a', 'b', 'c' ).to( B, 'x', 'y', 'x' );\n\t//\t\tconsole.log( A._boundAttributes );\n\t//\n\t//\t\t\tMap( {\n\t//\t\t\t\ta: { observable: A, attr: 'a', to: [ [ B, 'x' ] ] },\n\t//\t\t\t\tb: { observable: A, attr: 'b', to: [ [ B, 'y' ] ] },\n\t//\t\t\t\tc: { observable: A, attr: 'c', to: [ [ B, 'x' ] ] }\n\t//\t\t\t} )\n\t//\n\t//\t\tA.bind( 'd' ).to( B, 'z' ).to( C, 'w' ).as( callback );\n\t//\t\tconsole.log( A._boundAttributes );\n\t//\n\t//\t\t\tMap( {\n\t//\t\t\t\ta: { observable: A, attr: 'a', to: [ [ B, 'x' ] ] },\n\t//\t\t\t\tb: { observable: A, attr: 'b', to: [ [ B, 'y' ] ] },\n\t//\t\t\t\tc: { observable: A, attr: 'c', to: [ [ B, 'x' ] ] },\n\t//\t\t\t\td: { observable: A, attr: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback }\n\t//\t\t\t} )\n\t//\n\t// @private\n\t// @type {Map}\n\tObject.defineProperty( observable, boundAttributesSymbol, {\n\t\tvalue: new Map()\n\t} );\n}\n\n// A chaining for {@link module:utils/observablemixin~ObservableMixin#bind} providing `.to()` interface.\n//\n// @private\n// @param {...[Observable|String|Function]} args Arguments of the `.to( args )` binding.\nfunction bindTo( ...args ) {\n\tconst parsedArgs = parseBindToArgs( ...args );\n\tconst bindingsKeys = Array.from( this._bindings.keys() );\n\tconst numberOfBindings = bindingsKeys.length;\n\n\t// Eliminate A.bind( 'x' ).to( B, C )\n\tif ( !parsedArgs.callback && parsedArgs.to.length > 1 ) {\n\t\t/**\n\t\t * Binding multiple observables only possible with callback.\n\t\t *\n\t\t * @error observable-bind-no-callback\n\t\t */\n\t\tthrow new CKEditorError( 'observable-bind-to-no-callback: Binding multiple observables only possible with callback.' );\n\t}\n\n\t// Eliminate A.bind( 'x', 'y' ).to( B, callback )\n\tif ( numberOfBindings > 1 && parsedArgs.callback ) {\n\t\t/**\n\t\t * Cannot bind multiple attributes and use a callback in one binding.\n\t\t *\n\t\t * @error observable-bind-to-extra-callback\n\t\t */\n\t\tthrow new CKEditorError( 'observable-bind-to-extra-callback: Cannot bind multiple attributes and use a callback in one binding.' );\n\t}\n\n\tparsedArgs.to.forEach( to => {\n\t\t// Eliminate A.bind( 'x', 'y' ).to( B, 'a' )\n\t\tif ( to.attrs.length && to.attrs.length !== numberOfBindings ) {\n\t\t\t/**\n\t\t\t * The number of attributes must match.\n\t\t\t *\n\t\t\t * @error observable-bind-to-attrs-length\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'observable-bind-to-attrs-length: The number of attributes must match.' );\n\t\t}\n\n\t\t// When no to.attrs specified, observing source attributes instead i.e.\n\t\t// A.bind( 'x', 'y' ).to( B ) -> Observe B.x and B.y\n\t\tif ( !to.attrs.length ) {\n\t\t\tto.attrs = this._bindAttrs;\n\t\t}\n\t} );\n\n\tthis._to = parsedArgs.to;\n\n\t// Fill {@link BindChain#_bindings} with callback. When the callback is set there's only one binding.\n\tif ( parsedArgs.callback ) {\n\t\tthis._bindings.get( bindingsKeys[ 0 ] ).callback = parsedArgs.callback;\n\t}\n\n\tattachBindToListeners( this._observable, this._to );\n\n\t// Update observable._boundAttributes and observable._boundObservables.\n\tupdateBindToBound( this );\n\n\t// Set initial values of bound attributes.\n\tthis._bindAttrs.forEach( attrName => {\n\t\tupdateBoundObservableAttr( this._observable, attrName );\n\t} );\n}\n\n// Check if all entries of the array are of `String` type.\n//\n// @private\n// @param {Array} arr An array to be checked.\n// @returns {Boolean}\nfunction isStringArray( arr ) {\n\treturn arr.every( a => typeof a == 'string' );\n}\n\n// Parses and validates {@link Observable#bind}`.to( args )` arguments and returns\n// an object with a parsed structure. For example\n//\n//\t\tA.bind( 'x' ).to( B, 'a', C, 'b', call );\n//\n// becomes\n//\n//\t\t{\n//\t\t\tto: [\n//\t\t\t\t{ observable: B, attrs: [ 'a' ] },\n//\t\t\t\t{ observable: C, attrs: [ 'b' ] },\n//\t\t\t],\n//\t\t\tcallback: call\n// \t\t}\n//\n// @private\n// @param {...*} args Arguments of {@link Observable#bind}`.to( args )`.\n// @returns {Object}\nfunction parseBindToArgs( ...args ) {\n\t// Eliminate A.bind( 'x' ).to()\n\tif ( !args.length ) {\n\t\t/**\n\t\t * Invalid argument syntax in `to()`.\n\t\t *\n\t\t * @error observable-bind-to-parse-error\n\t\t */\n\t\tthrow new CKEditorError( 'observable-bind-to-parse-error: Invalid argument syntax in `to()`.' );\n\t}\n\n\tconst parsed = { to: [] };\n\tlet lastObservable;\n\n\tif ( typeof args[ args.length - 1 ] == 'function' ) {\n\t\tparsed.callback = args.pop();\n\t}\n\n\targs.forEach( a => {\n\t\tif ( typeof a == 'string' ) {\n\t\t\tlastObservable.attrs.push( a );\n\t\t} else if ( typeof a == 'object' ) {\n\t\t\tlastObservable = { observable: a, attrs: [] };\n\t\t\tparsed.to.push( lastObservable );\n\t\t} else {\n\t\t\tthrow new CKEditorError( 'observable-bind-to-parse-error: Invalid argument syntax in `to()`.' );\n\t\t}\n\t} );\n\n\treturn parsed;\n}\n\n// Synchronizes {@link module:utils/observablemixin#_boundObservables} with {@link Binding}.\n//\n// @private\n// @param {Binding} binding A binding to store in {@link Observable#_boundObservables}.\n// @param {Observable} toObservable A observable, which is a new component of `binding`.\n// @param {String} toAttrName A name of `toObservable`'s attribute, a new component of the `binding`.\nfunction updateBoundObservables( observable, binding, toObservable, toAttrName ) {\n\tconst boundObservables = observable[ boundObservablesSymbol ];\n\tconst bindingsToObservable = boundObservables.get( toObservable );\n\tconst bindings = bindingsToObservable || {};\n\n\tif ( !bindings[ toAttrName ] ) {\n\t\tbindings[ toAttrName ] = new Set();\n\t}\n\n\t// Pass the binding to a corresponding Set in `observable._boundObservables`.\n\tbindings[ toAttrName ].add( binding );\n\n\tif ( !bindingsToObservable ) {\n\t\tboundObservables.set( toObservable, bindings );\n\t}\n}\n\n// Synchronizes {@link Observable#_boundAttributes} and {@link Observable#_boundObservables}\n// with {@link BindChain}.\n//\n// Assuming the following binding being created\n//\n// \t\tA.bind( 'a', 'b' ).to( B, 'x', 'y' );\n//\n// the following bindings were initialized by {@link Observable#bind} in {@link BindChain#_bindings}:\n//\n// \t\t{\n// \t\t\ta: { observable: A, attr: 'a', to: [] },\n// \t\t\tb: { observable: A, attr: 'b', to: [] },\n// \t\t}\n//\n// Iterate over all bindings in this chain and fill their `to` properties with\n// corresponding to( ... ) arguments (components of the binding), so\n//\n// \t\t{\n// \t\t\ta: { observable: A, attr: 'a', to: [ B, 'x' ] },\n// \t\t\tb: { observable: A, attr: 'b', to: [ B, 'y' ] },\n// \t\t}\n//\n// Then update the structure of {@link Observable#_boundObservables} with updated\n// binding, so it becomes:\n//\n// \t\tMap( {\n// \t\t\tB: {\n// \t\t\t\tx: Set( [\n// \t\t\t\t\t{ observable: A, attr: 'a', to: [ [ B, 'x' ] ] }\n// \t\t\t\t] ),\n// \t\t\t\ty: Set( [\n// \t\t\t\t\t{ observable: A, attr: 'b', to: [ [ B, 'y' ] ] },\n// \t\t\t\t] )\n//\t\t\t}\n// \t\t} )\n//\n// @private\n// @param {BindChain} chain The binding initialized by {@link Observable#bind}.\nfunction updateBindToBound( chain ) {\n\tlet toAttr;\n\n\tchain._bindings.forEach( ( binding, attrName ) => {\n\t\t// Note: For a binding without a callback, this will run only once\n\t\t// like in A.bind( 'x', 'y' ).to( B, 'a', 'b' )\n\t\t// TODO: ES6 destructuring.\n\t\tchain._to.forEach( to => {\n\t\t\ttoAttr = to.attrs[ binding.callback ? 0 : chain._bindAttrs.indexOf( attrName ) ];\n\n\t\t\tbinding.to.push( [ to.observable, toAttr ] );\n\t\t\tupdateBoundObservables( chain._observable, binding, to.observable, toAttr );\n\t\t} );\n\t} );\n}\n\n// Updates an attribute of a {@link Observable} with a value\n// determined by an entry in {@link Observable#_boundAttributes}.\n//\n// @private\n// @param {Observable} observable A observable which attribute is to be updated.\n// @param {String} attrName An attribute to be updated.\nfunction updateBoundObservableAttr( observable, attrName ) {\n\tconst boundAttributes = observable[ boundAttributesSymbol ];\n\tconst binding = boundAttributes.get( attrName );\n\tlet attrValue;\n\n\t// When a binding with callback is created like\n\t//\n\t// \t\tA.bind( 'a' ).to( B, 'b', C, 'c', callback );\n\t//\n\t// collect B.b and C.c, then pass them to callback to set A.a.\n\tif ( binding.callback ) {\n\t\tattrValue = binding.callback.apply( observable, binding.to.map( to => to[ 0 ][ to[ 1 ] ] ) );\n\t} else {\n\t\tattrValue = binding.to[ 0 ];\n\t\tattrValue = attrValue[ 0 ][ attrValue[ 1 ] ];\n\t}\n\n\tif ( observable.hasOwnProperty( attrName ) ) {\n\t\tobservable[ attrName ] = attrValue;\n\t} else {\n\t\tobservable.set( attrName, attrValue );\n\t}\n}\n\n// Starts listening to changes in {@link BindChain._to} observables to update\n// {@link BindChain._observable} {@link BindChain._bindAttrs}. Also sets the\n// initial state of {@link BindChain._observable}.\n//\n// @private\n// @param {BindChain} chain The chain initialized by {@link Observable#bind}.\nfunction attachBindToListeners( observable, toBindings ) {\n\ttoBindings.forEach( to => {\n\t\tconst boundObservables = observable[ boundObservablesSymbol ];\n\t\tlet bindings;\n\n\t\t// If there's already a chain between the observables (`observable` listens to\n\t\t// `to.observable`), there's no need to create another `change` event listener.\n\t\tif ( !boundObservables.get( to.observable ) ) {\n\t\t\tobservable.listenTo( to.observable, 'change', ( evt, attrName ) => {\n\t\t\t\tbindings = boundObservables.get( to.observable )[ attrName ];\n\n\t\t\t\t// Note: to.observable will fire for any attribute change, react\n\t\t\t\t// to changes of attributes which are bound only.\n\t\t\t\tif ( bindings ) {\n\t\t\t\t\tbindings.forEach( binding => {\n\t\t\t\t\t\tupdateBoundObservableAttr( observable, binding.attr );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t} );\n}\n\nextend( ObservableMixin, EmitterMixin );\n\n/**\n * Fired when an attribute changed value.\n *\n * @event module:utils/observablemixin~ObservableMixin#change:{attribute}\n * @param {String} name The attribute name.\n * @param {*} value The new attribute value.\n * @param {*} oldValue The previous attribute value.\n */\n\n/**\n * Interface representing classes which mix in {@link module:utils/observablemixin~ObservableMixin}.\n *\n * @interface Observable\n */\n\n\n\n// WEBPACK FOOTER //\n// ../ckeditor5-utils/src/observablemixin.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nvar stylesInDom = {},\n\tmemoize = function(fn) {\n\t\tvar memo;\n\t\treturn function () {\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\t\treturn memo;\n\t\t};\n\t},\n\tisOldIE = memoize(function() {\n\t\t// Test for IE <= 9 as proposed by Browserhacks\n\t\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t\t// Tests for existence of standard globals is to allow style-loader \n\t\t// to operate correctly into non-standard environments\n\t\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\t\treturn window && document && document.all && !window.atob;\n\t}),\n\tgetElement = (function(fn) {\n\t\tvar memo = {};\n\t\treturn function(selector) {\n\t\t\tif (typeof memo[selector] === \"undefined\") {\n\t\t\t\tmemo[selector] = fn.call(this, selector);\n\t\t\t}\n\t\t\treturn memo[selector]\n\t\t};\n\t})(function (styleTarget) {\n\t\treturn document.querySelector(styleTarget)\n\t}),\n\tsingletonElement = null,\n\tsingletonCounter = 0,\n\tstyleElementsInsertedAtTop = [],\n\tfixUrls = require(\"./fixUrls\");\n\nmodule.exports = function(list, options) {\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of