!function(q,$,m){"use strict";function D(a,Z){if("function"!=typeof Z&&null!==Z)throw new TypeError("Super expression must either be null or a function");a.prototype=$.create(Z&&Z.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),Z&&Zl(a,Z)}function R(n){var i=$.prototype.toString.call(n);return"Array]"===i.substring(i.length-6)}function H(F,t,o,B,N,U){t=t||[],o=o||[],B=B||[];try{t.push(F);var M=Function.apply(0,t);return o[o.length]="return "+M,Function.apply(0,o).apply(0,B)}catch(Q){return U&&U(Q),N}}function u(H){var a={};return{get:function(L){if(a[L]!==m)return a[L];var K;switch(L){case"WEBGL_depth_texture":K=H.getExtension("WEBGL_depth_texture")||H.getExtension("MOZ_WEBGL_depth_texture")||H.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":K=H.getExtension("EXT_texture_filter_anisotropic")||H.getExtension("MOZ_EXT_texture_filter_anisotropic")||H.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":K=H.getExtension("WEBGL_compressed_texture_s3tc")||H.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||H.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":K=H.getExtension("WEBGL_compressed_texture_pvrtc")||H.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;case"WEBGL_compressed_texture_etc1":K=H.getExtension("WEBGL_compressed_texture_etc1");break;default:K=H.getExtension(L)}return a[L]=K,K}}}function a(p,a,Z){function t(){if(D!==m)return D;var w=a.get("EXT_texture_filter_anisotropic");return D=null!==w?p.getParameter(w.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}function u(Z){if("highp"===Z){if(p.getShaderPrecisionFormat(p.VERTEX_SHADER,p.HIGH_FLOAT).precision>0&&p.getShaderPrecisionFormat(p.FRAGMENT_SHADER,p.HIGH_FLOAT).precision>0)return"highp";Z="mediump"}return"mediump"===Z&&p.getShaderPrecisionFormat(p.VERTEX_SHADER,p.MEDIUM_FLOAT).precision>0&&p.getShaderPrecisionFormat(p.FRAGMENT_SHADER,p.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}var D;Z=Z||{};var I="undefined"!=typeof WebGL2RenderingContext&&p instanceof WebGL2RenderingContext,V=Z.precision!==m?Z.precision:"highp",n=u(V);n!==V&&(console.warn("WebGL:",V,"not supported, using",n,"instead."),V=n);var l,y=Z.logarithmicDepthBuffer===!0,j=p.getParameter(p.MAX_TEXTURE_IMAGE_UNITS),v=p.getParameter(p.MAX_VERTEX_TEXTURE_IMAGE_UNITS),r=p.getParameter(p.MAX_TEXTURE_SIZE),Y=p.getParameter(p.MAX_CUBE_MAP_TEXTURE_SIZE),S=p.getParameter(p.MAX_VERTEX_ATTRIBS),o=p.getParameter(p.MAX_VERTEX_UNIFORM_VECTORS),X=p.getParameter(p.MAX_VARYING_VECTORS),g=p.getParameter(p.MAX_FRAGMENT_UNIFORM_VECTORS),d=v>0,L=I||!!a.get("OES_texture_float"),Q=(I||!!a.get("OES_element_index_uint"))&&"undefined"!=typeof Uint32Array,q=d&&L,W=I?p.getParameter(p.MAX_SAMPLES):0,z=!1;return I?z=!0:(l=a.get("ANGLE_instanced_arrays"))&&(z=!0,p.vertexAttribDivisor=function(W,z){return l.vertexAttribDivisorANGLE(W,z)},p.drawElementsInstanced=function(a,T,G,d,P){return l.drawElementsInstancedANGLE(a,T,G,d,P)},p.drawArraysInstanced=function(h,A,V,H){return l.drawArraysInstancedANGLE(h,A,V,H)}),{getMaxAnisotropy:t,getMaxPrecision:u,precision:V,logarithmicDepthBuffer:y,maxTextures:j,maxVertexTextures:v,maxTextureSize:r,maxCubemapSize:Y,maxAttributes:S,maxVertexUniforms:o,maxVaryings:X,maxFragmentUniforms:g,vertexTextures:d,floatFragmentTextures:L,elementTypeUint:Q,floatVertexTextures:q,maxSamples:W,instancedArray:z}}function e(O,S){return O.z!==S.z?S.z-O.z:O.id-S.id}var Z="ht";if(!q[Z]){!function(){Date.now&&Date.prototype.getTime||(Date.now=function(){return(new Date).getTime()}),q.performance&&q.performance.now||function(){var r=Date.now();q.performance||(q.performance={}),q.performance.now=function(){return Date.now()-r}}();for(var f=Date.now(),F=16,M=["ms","moz","webkit","o"],W=0;WY&&(Y=0),f=I,q.setTimeout(function(){f=Date.now(),s(performance.now())},Y)}),q.cancelAnimationFrame||(q.cancelAnimationFrame=function(l){return q.clearTimeout(l)}),$.assign===m&&($.assign=function(j){if(j===m||null===j)throw new TypeError("Cannot convert undefined or null to object");for(var H=$(j),q=1;q>8-8*(z%1))){if(v=P.charCodeAt(z+=.75),v>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");c=c<<8|v}return b})}();var Q,J,A,h,T=q.location,U=T&&q.document,P=null,w=m,F=q[Z]={},X=q[Z+"config"],t=F.Default=X&&X.Default||{},l=F.Style=X&&X.Style||{},p=F.Attr=X&&X.Attr||{},G=function(){return!0},y=function(){return!1},s=function(s){return s},f=function(l){return!l},O=F.Color=X&&X.Color||{},i=F.IsGetter=X&&X.IsGetter||{};!function(){var z=!1;try{var K=$.defineProperty({},"passive",{get:function(){return z=!0,m}});T&&(A=Q=T)&&q.addEventListener("test",K,K),T&&(h=J=T)&&q.removeEventListener("test",K,K)}catch(U){z=!1}t.passiveSupported=z}();var c,V,C,b,I=t.passiveSupported,o=t.eventListenerOptionsFalse=I?{passive:!1,capture:!1}:!1,k=t.eventListenerOptionsTrue=I?{passive:!1,capture:!0}:!0,N=function(x,D,j,C){x.addEventListener(D,j,C?k:o)},j=function(d,B,C,h){d.removeEventListener(B,C,h?k:o)},z=Math,W=z.round,x=z.floor,Y=z.ceil,L=z.sqrt,B=z.max,v=z.min,_=z.abs,n=z.cos,S=z.acos,r=z.sin,E=z.pow,g=z.asin,K=z.exp,d=z.PI,M=2*d,pn=d/2,Zh=z.tan,Of=z.atan2,ek=z.random,ep=z.log,sr=function(z,O,w){return Math.max(O,Math.min(w,z))},Yo=E(2,1),xj=!1,vr=q.parseInt||global.parseInt,le="2022-3-15",fn=T&&(q.navigator?q.navigator.platform.indexOf("Win")>-1:!1),mm=function(v){return v*v},Zr=T&&q.setTimeout,Nq=T&&q.clearTimeout,jb=T&&(q.navigator?q.navigator.userAgent.toLowerCase():""),Wg=function(y){return y.test(jb)},fl=Wg(/msie/),jr=Wg(/msie/)||Wg(/trident/),Ci=Wg(/msie 10/),Ye=Wg(/edge/),Rh=Wg(/firefox/),Gm=Wg(/mac/),Dq=Wg(/mscAndroid/),pr=t.isTouchable===m?fn?!1:U?"ontouchend"in U:!1:t.isTouchable,br="default",Ei="single",fr="multiple",Nl="front",tp="back",dk="left",ge="right",lh="top",Li="bottom",Lc="center",$d="eye",Or="middle",Dg="east",me="west",bq="north",Ho="none",Lq="px",tq="absolute",cn="border",sc="triangle",Pj="rect",Xg="circle",ei="cylinder",Ce="shape",Ek="items",xr="normal",xd="remove",Bh="clear",Ng="width",pc="height",$b="ingroup",qd="check",am="uncheck",Gd="radio",Xp="radioOn",Xl="radioOff",Lb="points",bc="values",sj="series",Af="body",ng="label",Iq="label2",Op="note",Mi="note2",Sj="icons",Em="labelFont",wd="labelColor",eg="labelSelectColor",xc="note.expanded",Og="note2.expanded",wq="edge.expanded",ke="edge.points",Xd="edge.type",$f="rotation",gn="hidden",Ro="visible",kg="tuv",_h="no",oc="draw",em="select",hj="currentSubGraph",Tn="selectBackground",fg="autoMakeVisible",Yg="autoHideScrollBar",ai="scrollBarColor",Df="scrollBarSize",Ko="indent",yq="rowHeight",nm="columnLineColor",Zi="rowLineColor",xo="columnLineVisible",ik="rowLineVisible",$i="visibleFunc",Jl="expandIcon",Rp="collapseIcon",Yp="checkMode",kb="sortFunc",gj="editable",Mn="batchEditable",ec="tristate",Ji="asc",gd="desc",od="position",gm="__",Hd="elevation",ff="children",zn="translateX",wc="translateY",Zb="dataModel",Rl="maxSize",oo="enc",_o="state",lb=oo+"o"+"de",ml="shape3d",Mb="shape3d.resolution",qr="shape3d.visible",Bc="shape3d.from.visible",sk="shape3d.to.visible",Qg="shape3d.top.visible",dh="shape3d.bottom.visible",xn="repeat.uv.length",qn="serializeValue",xp="deserializeValue",Jk="centerUniform",jd="uniform",Uk="rgba(255,255,255,0)",nj="style",hl="attr",zr="field",rj="string",Pd="boolean",kh="color",wp="int",mc="number",cp="ew-resize",Fd="ns-resize",Eb="pointer",wl="auto",gf="mousedown",qo="mousemove",$g="mouseup",xl="mouseout",uc="touchstart",Gb="touchmove",Ef="touchend",Ic="keydown",Zj="keyup",ii=["DOMMouseScroll","mousewheel"],Ej=Rh?ii[0]:ii[1],Pl=gm+Z+gm+lb,mr=[uc,Gb,Ef],Lg=[gf,qo,$g,xl,Ej,"wheel","mouseenter","mouseleave","mouseover"],$p=[Ic,Zj,"keypress","input","contextmenu","compositionstart","compositionupdate","compositionend"],Kh=pr?mr.concat($p):Lg.concat($p),om=P,ms=P,ih=P,Nk=P,io=!0,sp=$g.length,iq=function(){ih&&(Nq(ih.timeout),ih=P)},dp=function(){ih&&Fl(ih.e,ih.info)};q.addEventListener&&(w=T)&&(pr||(N(q,xl,function(){iq()}),N(q,Ej,function(){Re()})),N(q,Zj,function(G){91===G.keyCode?th={}:delete th[G.keyCode]},!0),N(q,Ic,function(k){th[k.keyCode]=!0},!0),N(q,"blur",function(){th={}}));var Rn,pi,Ad,ig=0,qh=P,vg=function(v,s){var S=Zr(function(){delete qh[S],Dp(qh)&&(qh=P),v()},s);return S},bi=P,Qd=P,Kk={},Tr={},Ur={},po={},sq={},th={},ue={},xm={},ji={},Hp={},cd=/.json$/,ws=/\.(json|bin)$/,ho=/^data:image\/svg\+xml/,pl={},up=[],Zg={},wn=P,Lm=P,nn=function(){},Ik=function(){throw"Oops!"},fo=[0,0,0],Mk={x:0,y:0,width:0,height:0},yg=P,lq=P,fb=P,sf=function(w,c){Tr[w]=c,c&&c.comps&&!c.uuid&&(c.uuid=F.Math.generateUUID()),co[w]&&(c.cacheRule=co[w],delete co[w])},dn=function(U){lq&&!U._72O&&(fb||(fb={}),fb[U._72O=hi()]=U),Rn!=P?gq()<.05&&b&&!pi&&(Ag=iq):Ag=cg},Ed=function(V,T,I,Q){lq||(lq={});var w=lq[V];if(w){if(w.url===T)return;w.image?(w.image.onload=nn,w.image.onerror=nn):w.request&&(w.request.onload=nn,w.request.onerror=nn)}if(cd.test(T)){var S=new Ke;if(lq[V]={request:S,url:T},T=t.beforeLoadURL(T,V),T.data){var X=t.parse(T.data);im(V,X),t.handleImageLoaded(V,X)}else{S.onload=function(){if(200===this.status||0===this.status){var J=t.parse(S.getResponseText());im(V,J),t.handleImageLoaded(V,J)}else im(V,t.handleUnfoundImage(V,T)||P)},S.onerror=function(){im(V,t.handleUnfoundImage(V,T)||P)};var r={};r.url=encodeURI(T),r.sync=!1,S.send(r)}}else{var X=new Image;lq[V]={image:X,url:T},/^data:image/.test(T)||(T=t.beforeLoadURL(T,V),T=t.appendTimeStamp(T),T=encodeURI(T),X.crossOrigin=t.crossOrigin),t.convertImageSrc(T,function(s){jr&&(T.toLowerCase().indexOf(".svg")>0||ho.test(T))?(U.body.appendChild(X),X.style.visibility="hidden",X.onload=function(){Zr(function(){if(I&&(X.width=I),Q&&(X.height=Q),!X.width||!X.height){var d=X.width||X.clientWidth,z=X.height||X.clientHeight;X.width=d,X.height=z}t.handleImageLoaded(V,X),im(V,X),U.body.removeChild(X),X.style.visibility=""},180)},X.onerror=function(){im(V,t.handleUnfoundImage(V,T)||P),U.body.removeChild(X),X.style.visibility=""}):(X.onload=function(){I&&(X.width=I),Q&&(X.height=Q),t.handleImageLoaded(V,X),im(V,X)},X.onerror=function(){im(V,t.handleUnfoundImage(V,T)||P)}),X.src=s})}},im=function(F,h){if(sf(F,h),delete lq[F],Dp(lq)&&(lq=P,fb)){for(var e in fb){var I=fb[e];I._2O&&I._2O[F]&&(I.deleteTexture(F),delete I._2O[F]),I.invalidateAll&&I.invalidateAll(m,"imageLoaded",F),I.redraw&&I.redraw(),I.iv(),h&&h.layoutAttach&&ns(I.dm)&&I.dm().updateLayoutAttach(F),delete I._72O}fb=P}if(h&&fb)for(var e in fb){var I=fb[e];I.invalidateAll&&I.invalidateAll(m,"imageLoading",F),I.redraw&&I.redraw(),I.iv(),h.layoutAttach&&ns(I.dm)&&I.dm().updateLayoutAttach(F)}},jg=function(){return ep=z&&Date,function(){return q.performance&&q.performance.now?q.performance.now():Date.now()}}(),$j=function(e,K,o){return{width:e,height:K,comps:ks(o)?o:[o]}},og=function(N,P){return{type:Xg,rect:[N,P,1.6,1.6],borderWidth:1,borderColor:kd,gradient:Dh,gradientColor:eb,background:kd}},bk=function(_,w){return $j(16,16,{type:sc,rect:[4,4,10,8],background:_,rotation:w?1.57:3.14})},ak=function($,Q){return $j(16,16,{type:sc,rect:[4,4,8,7],background:$,rotation:Q?3.14:0})},Sn=function(G){var i=G._orientation;return"horizontal"===i||"h"===i},Cf=function(I,g){var R=P||4,H=P||1,k=P||1;0>R?R=0:R>.25&&(R=.25);var p,Y,c,a,L,e,Z,v=.5,J=[],u=[],O=[],T=M/k,E=M/H,j=v-R;for(Y=0;H>=Y;Y++)for(a=-d+Y*E,e=n(a),L=r(a),p=0;k>=p;p++)c=p*T,Z=j+R*e,J.push(n(c)*Z,L*R,-r(c)*Z),(V=[I,g])&&u.push(p/k,1-Y/H);for(Y=0;H>Y;Y++){var f=Y*(k+1),N=(Y+1)*(k+1);for(p=0;k>p;p++)O.push(f+p,N+p+1,N+p,f+p,f+p+1,N+p+1),Cd.z=Gi.z=[I,g]}},Dk=function(Q){var G=2,A=0;for(var W in Q)W.length===G&&vr(W,32)===Te&&(wn=Lm=Q[W]),A++;return A},ob=function(N,A,V,m){return V||(V=pr?5:3,V/=m||1),{x:N-V,y:A-V,width:2*V,height:2*V}},Pm=function(y,$,K,v){var M=this;$||($=pr?5:3,K=20,v=20);var t={x:y,y:$,width:K,height:v};if(K)for(var T=0;K>T;T++)if(3===K)v=20;else for(var A=0;v>A;A++)M=q?q:K;var D={x:d,y:2*d};if(kf(t,D)){var L=pc[0]+lh[0]+Bh[1]+Ji.length,C=gn[0]+ec[0]+Bh[1]+Af.length;_i[$d]=[M[L],M[C]],M[L]=dc[$d],M[C]=dc[ml]}},Qo=function(j){return(/ble$/.test(j)||/ed$/.test(j)||i[j]?"is":"get")+j.charAt(0).toUpperCase()+j.slice(1)},dc=function(J){return"set"+J.charAt(0).toUpperCase()+J.slice(1)},ib=function(u){return typeof u===rj||u instanceof String},Ll=function(y){return typeof y===mc},cg=function(j){return typeof j===Pd},Pg=function(F){return F&&"object"==typeof F},ns=function(S){return"function"==typeof S},ks=function(Z){return Z instanceof Array},Xn=function(c){return c instanceof Po},Tb=function(P){return ks(P)?new Po(P):P},$n=function(M){return M instanceof ij},lc=function(g){return g instanceof Sb},hc=function(W){return W instanceof bh},Zn=function(P,V){if(!(P instanceof F.Group))return!1;if(!V)return P.isExpanded();var X=V.getDataUI(P);return X&&X._88I?!0:!1},Ul=function(t){return t instanceof hf},or=function(_){return _&&"IFRAME"===_.tagName},ae=function(G){return G==P||t.numberDigits==P?G:parseFloat(G.toFixed(t.numberDigits))},rl=function(x,Z,J){var W,_=Z.length;if(J)for(var M=0;J>M;M++)if(3===_)x.push(Z[0]),x.push(Z[1]),x.push(Z[2]);else for(W=0;_>W;W++)x.push(Z[W]);else if(3===_)x.push(Z[0]),x.push(Z[1]),x.push(Z[2]);else for(W=0;_>W;W++)x.push(Z[W])},is=function(I){return I?Pg(I)?I:{}:!1},di=function(G,s,W){var A,S=Pg(G)?G:G.prototype;for(A in s)W&&A in S?S[A]===m&&console.warn("class",S,"has own undefined property",A,", keep exist!"):S[A]=s[A];return G},sm=function(q,Z){if(!("wheelDelta"in Z)){var L=Z.deltaMode;Z.wheelDelta=L===Z.DOM_DELTA_PIXEL?-Z.deltaY:L===Z.DOM_DELTA_LINE?40*-Z.deltaY:120*-Z.deltaY}q.handle_mousewheel(Z)},Ck=function(X){return String.fromCharCode(X)},ss=function(t){for(var S,T=0,w="";Tt?n:t>Q?Q:t},Wr=function(J){return 0>J?-1:J>0?1:0},gq=function(){var t=1e4*r(sp++);return t-x(t)},Wo=function(X,h,D){return Wq(X.x,X.y,h.x,h.y,D.x,D.y,D.x+D.width,D.y,!0)||Wq(X.x,X.y,h.x,h.y,D.x+D.width,D.y,D.x+D.width,D.y+D.height,!0)||Wq(X.x,X.y,h.x,h.y,D.x+D.width,D.y+D.height,D.x,D.y+D.height,!0)||Wq(X.x,X.y,h.x,h.y,D.x,D.y+D.height,D.x,D.y,!0)},Wq=function(g,$,h,Y,w,m,i,n,V){var d=(i-w)*($-m)-(n-m)*(g-w),r=(n-m)*(h-g)-(i-w)*(Y-$);if(0!==r){var q=d/r,D=g+q*(h-g),Z=$+q*(Y-$);return V&&(D+IdB(g,h)||D+IdB(w,i)||Z+IdB($,Y)||Z+IdB(m,n))?P:[D,Z]}return P},Xo=function(B,M,E){if(B&&E)if(M){if(M===nj)return B.getStyle(E);if(M===hl)return B.getAttr(E);if(M===zr)return B[E]}else if(E=Qo(E),B[E])return B[E]();return m},tf=function(E,u,e,S){if(E&&e)if(u){if(u===nj)E.s(e,S);else if(u===hl)E.a(e,S);else if(u===zr){var Z=E[e];E[e]=S,E.fp("f:"+e,Z,S)}}else e=dc(e),E[e]&&E[e](S)},qs=function(d,o,R){var k=100*Math.max(d.width,d.height);return o&&"top"!==o?"bottom"===o?{x:d.x-k,y:d.y-k,width:d.width+2*k,height:d.height*R+k}:"right"===o?{x:d.x-k,y:d.y-k,width:d.width*R+k,height:d.height+2*k}:"left"===o?{x:d.x+d.width*(1-R),y:d.y-k,width:d.width*R+k,height:d.height+2*k}:void 0:{x:d.x-k,y:d.y+d.height*(1-R),width:d.width+2*k,height:d.height*R+k}},Je=function($,C,f,L,w){C&&_l($,f,L,1,w,C)},so=function(d,X,P,j){var L=1-d;return L*L*X+2*d*L*P+d*d*j},Cd=function(L,Z,U,G,R){var S=1-L;return S*S*S*Z+3*S*S*L*U+3*S*L*L*G+L*L*L*R},vc=function(R){var $,c,i,e,x=0;return R.forEach(function(y){if($=y.length,$>0)for(c=y[0],e=1;$>e;e++)i=y[e],x+=Yh(c,i),c=i}),x},Br=function(J,l,B){var m="__"+J,p=function(x){("mousedown"===J||"mouseup"===J||"touchstart"===J||"touchend"===J)&&De(x),B.disabled||B["handle_"+J](x)};B[m]||(B[m]=p,N(l,J,p))},$e=function(e,v,L){var M="__"+e,t=L[M];t&&(j(v,e,t),delete L[M])},Do=function(w,K){var O="_"+K;w[Qo(K)]=function(){return this[O]},w[dc(K)]=function(U){var $=this[O];this[O]=U,this.fp(K,$,U)}},Ac=function(o){return $.create(o)},Hc=function(J){if(!J.element){var I,m;(I=J.textField)?m=Cg(Ft.TextField,I):(I=J.textArea)?m=Cg(Ft.TextArea,I):(I=J.button)?m=Cg(Ft.Button,I):(I=J.comboBox)?m=Cg(Ft.ComboBox,I):(I=J.checkBox)?m=Cg(Ft.CheckBox,I):(I=J.radioButton)?m=Cg(Ft.RadioButton,I):(I=J.slider)?m=Cg(Ft.Slider,I):(I=J.colorPicker)?m=Cg(Ft.ColorPicker,I):(I=J.image)&&(m=Cg(Ft.Image,I)),m&&(J.element=m)}},Bg=function(z,b){var A=go(z);return A._ht=b,A},An=q.top===q?q.top:q||q.document,go=function(W,q){var w=U.createElement("div"),x=w.style;return w.tabIndex=-1,w.onkeydown=Nj,x.msTouchAction=Ho,wm(w,P,0),pr&&x.setProperty("-webkit-tap-highlight-color","rgba(0, 0, 0, 0)",P),W&&(x.overflow=gn),q&&tg(q,w),w},Hj=function(H,E){var B=U.createElement("canvas"),N=B.style;return N.msTouchAction=Ho,E||(N.pointerEvents=Ho),wm(B,P,0),H&&tg(H,B),B},wm=function(e,U,A){var X=e.style;X.border=U?U+" solid 1px":0,X.outline=0,X.padding=A?"0 "+A+Lq:0,vm(e)},vm=function(r){var A=r.style;A.position=tq,A.margin=0,A.setProperty("box-sizing","border-box",P),A.setProperty("-moz-box-sizing","border-box",P)},_j=function(_,F,e,S){S||(S=Jr),F!=P&&(_.width=F*S,_.style.width=F+Lq),e!=P&&(_.height=e*S,_.style.height=e+Lq)},tg=function(_,D,X){_.appendChild(D),X&&(D.style.position=tq)},uj=function(X,L){L.split||(L+="");for(var K,A=L.split("\n"),y=0,f=A.length,j=0;f>j;j++){var O=Dd(X.font,A[j]);O.width>y&&(y=O.width),K||(K=O.height)}return X.ss=A,{width:y,height:K*f}},ad=function(){var E=U?Hj().getContext("2d"):P;return function(y,B,P,u,g,Y){var o=y.split("\n"),W=[];return u||(u=0),E.font=P,E.textBaseline=lh,o.forEach(function(j){for(var M=0,V=1,y=0,C=j.length;C>=V;V++){var a=j.substring(M,V),x=g?E.measureText(j[V]):Dd(P,a);g&&(y+=x.fontBoundingBoxDescent);var q=g?y+(a.length-1)*Y:x.width+(a.length-1)*u;q>B&&(V-1===M?(W.push(j.substring(M,V)),M=V):(W.push(j.substring(M,V-1)),M=V-1,V--),y=0)}M!==V-1&&W.push(j.substring(M,V))}),W}}(),Zd=function(E,z,T,g,t,n,P,I){E.font=T;var A=E.measureText(z);E.beginPath(),E.strokeStyle=g,E.lineWidth=1,"underline"===I?(E.moveTo(t-P/2,n+A.actualBoundingBoxDescent+1),E.lineTo(t+P/2,n+A.actualBoundingBoxDescent+1)):"strikethrough"===I?(E.moveTo(t-P/2,n),E.lineTo(t+P/2,n)):"overline"===I&&(E.moveTo(t-P/2,n-A.fontBoundingBoxAscent),E.lineTo(t+P/2,n-A.fontBoundingBoxAscent)),E.stroke()},ro=function(e,v,r,D,I,N,f,Z,h,x,i){var z=I.x,u=I.y,$=I.width,Y=I.height;if(v!=P){var p=Dd(r,v),M={};h&&(p.width+=(v.length-1)*h),M.y=f&&f!==Or?f===lh?u+p.height/2:u+Y-p.height/2:u+Y/2,M.x=N&&N!==dk?N===ge?z+$-p.width/2:z+$/2:z+p.width/2,zl(e,v,M,r,D,h,x,i),Z&&Zd(e,v,r,D,M.x,M.y,p.width,Z)}},hb=function(v,r,Y,V,a,B,o,d,K,y){var z=r.length;if(1===z){var f=r[0];if(zl(v,f,Y,V,a,d,K,y),o){var k=Dd(V,f);Zd(v,f,V,a,Y.x+Y.width/2,Y.y+Y.height/2,k.width,o)}}else for(var O=Y.height/z,b={x:Y.x,y:Y.y,width:Y.width,height:O},N=0;NK;K++){var i=x[K],d=c.measureText(i);y&&c.strokeText(i,W(S+(d.width+4)/2),W(H)),c.fillText(i,W(S+(d.width+4)/2),W(H)),S+=d.width+h}}else y&&c.strokeText(x,W(S),W(H)),c.fillText(x,W(S),W(H))},Jq=function($){$.getView&&($=$.getView());var W=$.offsetWidth||$.scrollWidth;return!W&&$.style.width&&(W=vr($.style.width)),W},ap=function(k){k.getView&&(k=k.getView());var C=k.offsetHeight||k.scrollHeight;return!C&&k.style.height&&(C=vr(k.style.height)),C},Fq=function(p,L,B){var Q=L[0].toUpperCase()+L.substring(1,L.length);p["webkit"+Q]=B,p["moz"+Q]=B,p["ms"+Q]=B,p["o"+Q]=B,p[L]=B},Uc=function(){var G=function(h){Nj(h),h.stopPropagation()},d=function(y){Nj(y)},q=[uc,Ic,gf];return function(J,Q){var m=go(),L=m.style;return L.backgroundColor=t.disabledBackground,J&&(L.backgroundImage="url("+J+")",L.backgroundPosition="50% 50%",L.backgroundRepeat="no-repeat no-repeat"),Q===!1?q.forEach(function(j){N(m,j,d)}):q.forEach(function(j){N(m,j,G)}),m}}(),Lh=function(i){var u=i.getContext("2d");return u.save(),u.lineCap=Sm,u.lineJoin=ug,u},Ag=function(d,l,x,i){Oc(d,l*Jr,x*Jr),i*=Jr,1!==i&&d.scale(i,i)},Oc=function(s,v,w){s.translate(v,w)},tb=function(C,r){r&&C.rotate(r)},Qb=function(M,P,v){P===m&&(P=1),v===m&&(v=1),(1!==P||1!==v)&&M.scale(P,v)},Bi=!1,K=An[qd[1]+zn[0]],Fh=function(o){var N=U.activeElement;if(U.activeElement!==o){N&&N.forceOnblur&&N.forceOnblur();for(var F=[],K=o.parentNode;K;)F.push([K,K.scrollLeft,K.scrollTop]),K=K.parentNode;if(!Bi){var L=[],s=[];try{for(var A=q.parent,_=q;A!==_;)L.push([A,A.scrollX,A.scrollY]),_=A,A=q.parent;var x=q.frameElement;if(x)for(var J=x.parentNode;J;)s.push([J,J.scrollLeft,J.scrollTop]),J=J.parentNode}catch(G){Bi=!0}}if(pr)o.focus();else{var B=re(),u=B.target;o.focus(),u.scrollLeft=B.left,u.scrollTop=B.top}F.forEach(function(t){t[0].scrollLeft=t[1],t[0].scrollTop=t[2]}),Bi||(L.forEach(function(x){x[0].scrollTo(x[1],x[2])}),s.forEach(function(v){v[0].scrollLeft=v[1],v[0].scrollTop=v[2]}))}},Mh=function(s){return s&&s.getView?s.getView():s},gb=function(H,F,l,E,I){if(2===arguments.length&&(l=F.y,E=F.width,I=F.height,F=F.x),H.isSelfViewEvent)H.setX(F),H.setY(l),H.setWidth(E),H.setHeight(I);else{var Y=Mh(H),s=Y.style;if((U.fullscreenElement||U.mozFullScreenElement||U.webkitFullscreenElement||U.msFullscreenElement)!==Y)F!==m&&(s.left=F+Lq),l!==m&&(s.top=l+Lq),E!==m&&(s.width=E+Lq),I!==m&&(s.height=I+Lq);else{var X=t.getWindowInfo();s.left=(F=X.left)+Lq,s.top=(l=X.top)+Lq,s.width=(E=X.width)+Lq,s.height=(I=X.height)+Lq}H.endEditing&&!pr&&H.endEditing(),H.redraw&&H.redraw(),H.invalidate&&H.invalidate(),H.onLayouted&&H.onLayouted(F,l,E,I),H.fireViewEvent&&H.fireViewEvent("layout")}},Xi=function(P){if(!P.touches)return P;var v=P.touches[0];return v?v:P.changedTouches[0]},Lf=function(w){return nf(w)?Xi(w).target:w.target},nf=function(P){return P&&"object"==typeof P&&"touches"in P},Sq=function(Y){t.popup&&t.popup.close(),t.popup=Y},gk=P,In=function(D){gk.handleWindowTouchMove(D)},Qp=function(y){gk.handleWindowTouchEnd(y),j(q,Gb,In),j(q,Ef,Qp),j(q,"blur",Qp),gk=P},Bs=function(o){gk.handleWindowMouseMove(o)},wg=function(R){gk.handleWindowMouseUp(R),j(q,qo,Bs),j(q,$g,wg),j(q,"blur",wg),gk=P},_r=function(o){return 1===um(o)},sh=function(x,f){return f?f.keyCode===x:th[x]},vh=function(A){return Hn(A)&&sh(65,A)},vn=function(M){return sh(46,M)||sh(8,M)},Xe=function(u){return function(f){return f?f.keyCode===u:th[u]}},Te=573,yh=[65,83,68,87,37,38,39,40,32,13,27],mg=Xe(yh[0]),Nc=Xe(yh[1]),jp=Xe(yh[2]),Wk=Xe(yh[3]),ab=Xe(yh[4]),Rk=Xe(yh[5]),Uo=Xe(yh[6]),Dj=Xe(yh[7]),Tq=Xe(yh[8]),Hf=Xe(yh[9]),Bq=Xe(yh[10]),Xb={65:1,83:1,68:1,87:1,37:1,38:1,39:1,40:1},cl=[2,2,2,2,2,2,2,2,2,2,3,3,5,5,5,5,5,7,8171],uf=P,Vo=P,Fn=function(O,r){uf||(uf=Hj()),_j(uf,O,r,1);var F=Lh(uf);return F.clearRect(0,0,O,r),F},jq=function(q,i,E){if(i&&q){if("override"===E)return i;if("override_rgb"===E){var b=Jh(i);return q=Jp(q),"rgba("+W(255*b[0])+","+W(255*b[1])+","+W(255*b[2])+","+q[3]/255+")"}if("override_a"===E){var b=Jh(i);return q=Jp(q),"rgba("+q[0]+","+q[1]+","+q[2]+","+b[3]+")"}if("multiply_destinationAtop"===E){var A=Wl(Jh(q)),C=A[3],K=Wl(Jh(i)),V=K[3],w=Wl(A),S=w[3],a=A.map(function(R,u){return R*K[u]}),$=1-C,Y=1-V,X=Y*C+V;return A=A.map(function(h,U){return(V*$*K[U]+V*C*a[U]+Y*C*h)/X}),C=X,$=1-C,A=A.map(function(D,e){return(S*w[e]*$+C*D*S)/S}),C=S,"rgba("+W(255*A[0])+","+W(255*A[1])+","+W(255*A[2])+","+C+")"}var b=Jh(i);return q=Jp(q),"rgba("+W(q[0]*b[0])+","+W(q[1]*b[1])+","+W(q[2]*b[2])+","+q[3]/255*b[3]+")"}return q},Jp=function(){var C,g={};for(var d in q){var o=fr.length;if(d.length==o&&d[0]===fr[2]&&d[1]===Ho[1]&&d[4]===fr[3]&&d[5]===fr[4]&&d.substr(o-2)===Ho[1]+Ho[2]){var s=q[d];for(var Q in s)Q.length===o&&Q.substr(0,3)===ge[3]+xd[3]+em[0]&&Q.substr(o-2)===fr[0]+Op[3]&&(ii=s[Q])}}return function(J){var i,Z=g[J];return Z||(C||(C=Hj(),_j(C,1,1,1)),i=C.getContext("2d"),i.clearRect(0,0,1,1),_l(i,0,0,1,1,J),Z=i.getImageData(0,0,1,1).data,Z=g[J]=[Z[0],Z[1],Z[2],Z[3]]),Z}}(),Jh=function(C){if(!ib(C))return C;var l=Jp(C);return l.CA||(l.CA=[l[0]/255,l[1]/255,l[2]/255,l[3]/255]),l.CA},Ij=function(g,B,h,k,U){var W=Hj();W.width=h,W.height=k;var u=W.getContext("2d");u.drawImage(g,0,0,h,k);try{for(var V=u.getImageData(0,0,h,k),K=V.data,G=0,t=K.length;t>G;G+=4){var r=K[G+0],b=K[G+1],T=K[G+2],R=K[G+3];"override_a"===U?K[G+3]=255*B[3]:"override_rgb"===U?(K[G+0]=255*B[0],K[G+1]=255*B[1],K[G+2]=255*B[2]):"override"===U?(K[G+0]=255*B[0],K[G+1]=255*B[1],K[G+2]=255*B[2],K[G+3]=255*B[3]):(K[G+0]=B[0]*r,K[G+1]=B[1]*b,K[G+2]=B[2]*T,K[G+3]=B[3]*R)}u.putImageData(V,0,0)}catch(P){return g}return W},_i=function(E,N,m){return N&&(N="miter"===m?8*N+20:N+1,E&&Cl(E,N)),N},id=function(C,Q){if(Q){var D=new Hq(Q),M=C.width/2,y=C.height/2,F=es([D.tf(-M,-y),D.tf(M,-y),D.tf(M,y),D.tf(-M,y)]);return F.x+=C.x+M,F.y+=C.y+y,F}return C},Gn=function(m,T,f,t,L,Z,Y,V){t*=Math.PI/180;var H={x:Math.cos(t)*(m.x-Y.x)/2+Math.sin(t)*(m.y-Y.y)/2,y:-Math.sin(t)*(m.x-Y.x)/2+Math.cos(t)*(m.y-Y.y)/2},c=Math.pow(H.x,2)/Math.pow(T,2)+Math.pow(H.y,2)/Math.pow(f,2);c>1&&(T*=Math.sqrt(c),f*=Math.sqrt(c));var e=(L==Z?-1:1)*Math.sqrt((Math.pow(T,2)*Math.pow(f,2)-Math.pow(T,2)*Math.pow(H.y,2)-Math.pow(f,2)*Math.pow(H.x,2))/(Math.pow(T,2)*Math.pow(H.y,2)+Math.pow(f,2)*Math.pow(H.x,2)));isNaN(e)&&(e=0);var l={x:e*T*H.y/f,y:e*-f*H.x/T},X={x:(m.x+Y.x)/2+Math.cos(t)*l.x-Math.sin(t)*l.y,y:(m.y+Y.y)/2+Math.sin(t)*l.x+Math.cos(t)*l.y},p=function(s){return Math.sqrt(Math.pow(s[0],2)+Math.pow(s[1],2))},s=function(R,u){return(R[0]*u[0]+R[1]*u[1])/(p(R)*p(u))},d=function(A,y){return(A[0]*y[1]=1&&(u=0);var s=T>f?T:f,W=T>f?1:T/f,o=T>f?f/T:1;if(null==V){var z={x:0,y:0,width:0,height:0};Cl(z,s),z.x*=W,z.width*=W,z.y*=o,z.height*=o;var B=new Hq(t);return z=es([B.tf(z.x,z.y),B.tf(z.x+z.width,z.y),B.tf(z.x+z.width,z.y+z.height),B.tf(z.x,z.y+z.height)]),z.x+=X.x,z.y+=X.y,[{x:z.x,y:z.y},{x:z.x+z.width,y:z.y},{x:z.x+z.width,y:z.y+z.height},{x:z.x,y:z.y+z.height}]}V.translate(X.x,X.y),V.rotate(t),V.scale(W,o),V.arc(0,0,s,U,U+u,1-Z),V.scale(1/W,1/o),V.rotate(-t),V.translate(-X.x,-X.y)},Rg=function(t,n){t&&t.beginPath();for(var A,l,f,q=[],D=function(o){for(var O,m=/(\-{0,1}[\d\.]+)/gi,X=[];O=m.exec(o);)X.push(parseFloat(O[0]));return X},p=/([MmLlHhVvCcSsQqTtAa]{1}[\d\.,\s\-Zz]*)/gi,P={x:0,y:0};A=p.exec(n);){var Q=A[0],M=Q.substr(0,1);if("M"===M||"m"===M){for(var F=D(Q),B=0;BN;){var b=u[N+1];b=X(b),F.addColorStop(u[N],S?t.toGrayColor(b):b),N+=2}}else{var N,W="linear"===J,w=c.x,R=c.y,M=c.width,I=c.height,Q=u.length,S=$.compGray;if(W)F=$.createLinearGradient(w+M*u[1],R+I*u[2],w+M*u[3],R+I*u[4]),N=5;else{var m=Math.min(M,I),s=u[1]*M+w,K=u[2]*I+R,y=u[3]*m;if(ib(u[5]))F=$.createRadialGradient(s,K,0,s,K,y),N=4;else{$.transform(u[7],u[8],u[9],u[10],u[11]+s,u[12]+K);var E=u[4]*M+w-s,i=u[5]*I+R-K,U=u[6]*m;F=$.createRadialGradient(0,0,y,E,i,U),N=13}}for(;Q>N;){var b=u[N+1];b=X(b),F.addColorStop(u[N],S?t.toGrayColor(b):b),N+=2}}else F=u;return T?$.strokeStyle=F:$.fillStyle=F,F},Gi=function(){function D(H,V){var U=H.length,n=H[0];if(ib(H)||n&&1!==n.length)return H;for(var d=new Array(U),q=0;U>q;q++)d[q]=H[q];var Q,Y,l,W,I,x,g,P,N,A,e,u,t,a="L"===d[0];return Q=a?5:7,Y=d[Q],l=d[Q+1],W=d[Q+2],I=d[Q+3],x=d[Q+4],g=d[Q+5],P=V[0],N=V[1],A=V[2],e=V[3],u=V[4],t=V[5],d[Q]=P*Y+A*l,d[Q+1]=N*Y+e*l,d[Q+2]=P*W+A*I,d[Q+3]=N*W+e*I,d[Q+4]=P*x+A*g+u,d[Q+5]=N*x+e*g+t,d}return function(L,T){var I;(I=L.s("shape.gradient.pack"))&&L.s("shape.gradient.pack",D(I,T)),(I=L.s("shape.border.gradient.pack"))&&L.s("shape.border.gradient.pack",D(I,T))}}(),hq=function(L,q,C,v){var l=!1;if(L.beginPath?L.beginPath():l=!0,Xn(q)&&(q=q._as),Xn(C)&&(C=C._as),C&&C.length){for(var T,M,Z,e,R=0,W=0,Q=C.length;Q>W;W++)T=C[W],1===T?(M=q[R++],L.moveTo(M.x,l?-M.y:M.y)):2===T?(M=q[R++],L.lineTo(M.x,l?-M.y:M.y)):3===T?(M=q[R++],Z=q[R++],L.quadraticCurveTo(M.x,l?-M.y:M.y,Z.x,l?-Z.y:Z.y)):4===T?(M=q[R++],Z=q[R++],e=q[R++],L.bezierCurveTo(M.x,l?-M.y:M.y,Z.x,l?-Z.y:Z.y,e.x,l?-e.y:e.y)):5===T&&L.closePath();v&&5!==T&&L.closePath()}else{var N,K,I,j=q.length;if(j>0){for(N=q[0],L.moveTo(N.x,l?-N.y:N.y),K=1;j>K;K++)I=q[K],L.lineTo(I.x,l?-I.y:I.y);v&&L.closePath()}}},xb=function(Z,J,h,z){if(Xn(Z)&&(Z=Z._as),Xn(J)&&(J=J._as),J&&J.length){h=h||ul;for(var K,B,A,s,G,I,i,l,O=[],X=P,L=0,Y=0,y=J.length;y>Y;Y++)if(K=J[Y],1===K)O.push(X=[]),X.push(Z[L++]);else if(2===K)X.push(Z[L++]);else if(3===K){for(B=X[X.length-1],A=Z[L++],s=Z[L++],I=1;h>I;I++)i=so(I/h,B.x,A.x,s.x),l=so(I/h,B.y,A.y,s.y),X.push({x:i,y:l,b:!0});X.push(s)}else if(4===K){for(B=X[X.length-1],A=Z[L++],s=Z[L++],G=Z[L++],I=1;h>I;I++)i=Cd(I/h,B.x,A.x,s.x,G.x),l=Cd(I/h,B.y,A.y,s.y,G.y),X.push({x:i,y:l,b:!0}); X.push(G)}else 5===K&&X.push(X[0]);return z&&5!==K&&X&&X.length>2&&X.push(X[0]),O}return z&&Z.length>2&&(Z=Z.slice(),Z.push(Z[0])),Z?[Z]:[]},wb=function(M,Z,y,l,H,X){var s,o,_,e=Jp(Z),O=l,B=e[0],h=e[1],u=e[2];if(y){var I=Jp(y);s=I[0]-B,o=I[1]-h,_=I[2]-u}else s=255-B,o=255-h,_=255-u;for(X||(X=l>10?1:.5,X=1>H?v(X/H,2):X),M.save(),M.shadowOffsetX=0,M.shadowOffsetY=0,M.shadowBlur=0,M.shadowColor=0;(l-=X)>0;){var L=1-l/O,x=B+s*L,k=h+o*L,w=u+_*L;x=v(Y(x),255),k=v(Y(k),255),w=v(Y(w),255),M.strokeStyle="rgb("+x+","+k+","+w+")",M.lineWidth=l,M.stroke()}M.restore()},Bd=function(){if(io&&w){var K=w+""||Ji;Dq=K.indexOf(gn.substr(0,2))>0&&K.indexOf(lh+lh.substr(1,1))>1?!0:!1}var u={};return function(r,N){var j=r+"-"+N,t=u[j];if(t)return t;var $,n,k,V=Jp(r);return 0>N?(N=(100+N)/100,$=Y(V[0]*N),n=Y(V[1]*N),k=Y(V[2]*N)):(N/=100,$=V[0],n=V[1],k=V[2],$+=(255-$)*N,n+=(255-n)*N,k+=(255-k)*N,$=v(Y($),255),n=v(Y(n),255),k=v(Y(k),255)),u[j]="rgb("+$+","+n+","+k+")"}}(),_l=function(J,h,e,n,d,k){k&&(J.fillStyle=k),J.beginPath(),J.rect(h,e,n,d),J.fill()},He=function(i,N,A,B,j,n,J){i.beginPath(),ko[N](i,A.x,A.y,A.width,A.height,B,j,n,J)},Xm=function(C,H,t,z,w){var b=ko[t];C.fillStyle=b?b(C,H,z?z:eb,w.x,w.y,w.width,w.height):H},Yl=function(E,h,d,J,a,m){E.fillStyle=al(E,h,d,J,a,m)},Nh=function(l,$,w,G,h,Q){l.strokeStyle=al(l,$,w,G,h,Q)},al=function(v,d,W,I,r,q){var O;try{if(!d.tagName&&d.comps){d._cacheImage_||(d._cacheImage_={});var N;N="override"===I?"colors_override":"override_rgb"===I?"colors_override_rgb":"override_a"===I?"colors_override_a":"colors",d._cacheImage_[N]||(d._cacheImage_[N]={__count__:0});var S=d._cacheImage_[N][W];S||(d._cacheImage_[N].__count__>t.imageCacheThreshold&&(d._cacheImage_[N]={__count__:0}),S=F.Default.toCanvas(d,zs(d),Mc(d),null,r,q,W,null,I),d._cacheImage_[N][W]=S,d._cacheImage_[N].__count__++),d=S}O=v.createPattern(d,"repeat")}catch(c){O="black"}return O},vd=function(c){var s,$,x=[],n=0,Q=c.length;for(s=0;65>s;s++)x[s]=s;for(s=0;65>s;s++)n=(n+x[s]+c.charCodeAt(s%Q))%65,$=x[s],x[s]=x[n],x[n]=$;for(s=0;65>s;s++)x[s]=Mm[x[s]];return x.join("")},Dc=function(q){for(var J=8+vj.randomInt(8),B=Mm[8*vj.randomInt(8)+(J-8)],o="",V=0;J>V;V++)o+=Mm[vj.randomInt(64)];var t=vd(o+Z+gm+lb);return B+o+zc.encode(q,t)},Sk=function(o){var i=o[0],A=Mm.indexOf(i);if(0>A)return"";A=8+(7&A);var _=o.slice(1,1+A),n=vd(_+Z+gm+lb);return zc.decode(o,n,1+A)},Qc=function(r,O,c,w,L,A,g){r.save(),r.translate(O,c),r.scale(1,g/A),r.arc(0,0,A,w,L),r.restore()},Bb=function(v,L,M,l,G,I,T,Q){var K,U,C,F,h,S,g,Z,X,c,p;if(_(G)>2*d&&(G=2*d),h=Y(_(G)/(d/4)),K=G/h,U=-K,C=-l,h>0){S=L+n(l)*I,g=M+r(-l)*T,Q?v.lineTo(S,g):v.moveTo(S,g);for(var k=0;h>k;k++)C+=U,F=C-U/2,Z=L+n(C)*I,X=M+r(C)*T,c=L+n(F)*(I/n(U/2)),p=M+r(F)*(T/n(U/2)),v.quadraticCurveTo(c,p,Z,X)}},Kc=function(r,H,b,n,f,l,A,h,X){6===arguments.length&&(ks(l)?(h=l[1],X=l[2],A=l[3],l=l[0]):(A=l,h=l,X=l));var E=H+n,i=b+f,g=f>n?2*n:2*f;l=g>l?l:g,A=g>A?A:g,h=g>h?h:g,X=g>X?X:g,r.moveTo(H+n/2,b),r.arcTo(E,b,E,i,A),r.arcTo(E,i,H,i,X),r.arcTo(H,i,H,b,h),r.arcTo(H,b,E,b,l),r.lineTo(H+n/2,b)},qc=function(F,h,K,X,O,u,m){h&&(K=W(K),X=W(X),m||(m=1),F.fillStyle=h,F.beginPath(),F.rect(K,X,m,u),F.rect(K,X,O,m),u-m>0&&F.rect(K,X+u-m,O,m),O-m>0&&F.rect(K+O-m,X,m,u),F.fill())},Uq=function(E,o,y,N){var g=N.x,s=N.y,T=N.width,w=N.height;if(!(!o||!y||0>=T||0>=w)){var B,W=pp(o),J=We(o),V=y>0;1===y||-1===y?(E.fillStyle=V?W:J,E.beginPath(),E.rect(g,s,1,w),E.rect(g,s,T,1),E.fill(),E.fillStyle=V?J:W,E.beginPath(),E.rect(g,s+w-1,T,1),E.rect(g+T-1,s,1,w),E.fill()):(y=v(_(y),v(T/2,w/2)),B=E.createLinearGradient(g,s,g+y,s),B.addColorStop(0,V?W:J),B.addColorStop(1,o),E.fillStyle=B,E.beginPath(),E.moveTo(g,s),E.lineTo(g+y,s+y),E.lineTo(g+y,s+w-y),E.lineTo(g,s+w),E.lineTo(g,s),E.fill(),B=E.createLinearGradient(g,s,g,s+y),B.addColorStop(0,V?W:J),B.addColorStop(1,o),E.fillStyle=B,E.beginPath(),E.moveTo(g,s),E.lineTo(g+y,s+y),E.lineTo(g+T-y,s+y),E.lineTo(g+T,s),E.lineTo(g,s),E.fill(),B=E.createLinearGradient(g,s+w,g,s+w-y),B.addColorStop(0,V?J:W),B.addColorStop(1,o),E.fillStyle=B,E.beginPath(),E.moveTo(g,s+w),E.lineTo(g+y,s+w-y),E.lineTo(g+T-y,s+w-y),E.lineTo(g+T,s+w),E.lineTo(g,s+w),E.fill(),B=E.createLinearGradient(g+T,s,g+T-y,s),B.addColorStop(0,V?J:W),B.addColorStop(1,o),E.fillStyle=B,E.beginPath(),E.moveTo(g+T,s),E.lineTo(g+T-y,s+y),E.lineTo(g+T-y,s+w-y),E.lineTo(g+T,s+w),E.lineTo(g+T,s),E.fill())}},Zc=function(S,O,l,M,N,o,n){var v=S.createLinearGradient(M,N,o,n);return v.addColorStop(0,l),v.addColorStop(1,O),v},Db=function(n,G,p,C,Q,d,D){var w=n.createLinearGradient(C,Q,d,D);return w.addColorStop(0,G),w.addColorStop(.5,p),w.addColorStop(1,G),w},bj=function(I,W,x,y,z,K,n){var o=I.createLinearGradient(y,z,K,n);return o.addColorStop(0,W),o.addColorStop(1/3,x),o.addColorStop(2/3,W),o.addColorStop(1,x),o},ts=function(G,o,W,u,k,N,j,i,w){var l=G.createRadialGradient(u+N*i,k+j*w,v(N,j)/24,u+N/2,k+j/2,B(N,j)/2);return l.addColorStop(0,W),l.addColorStop(1,o),l},nc=[0,-1,.22451398828979272,-.30901699437494734,.9510565162951535,-.30901699437494745,.3632712640026804,.11803398874989468,.5877852522924731,.8090169943749473,-1.1102230246251565e-16,.38196601125010515,-.587785252292473,.8090169943749475,-.3632712640026805,.1180339887498949,-.9510565162951536,-.3090169943749473,-.22451398828979285,-.30901699437494734],ko={polygon:function(K,q,Z,p,t,N,x,h){(N==P||3>N)&&(N=6),x==P&&(x=0),h==P&&(h=!0);var W,L=v(p,t),s=L/2,g=new ag(q+p/2,Z+t/2),V=new ag,b=0,T=2*d/N,E=new ag(s,s);if(h===!1&&E.multiply({x:p/L,y:t/L}),0===x)for(W=0;N>W;W++)V.set(n(b),r(b)).multiply(E).add(g),0===W?K.moveTo(V.x,V.y):K.lineTo(V.x,V.y),b+=T;else{var A=[];for(W=0;2>W;W++)A.push(new ag(n(b),r(b)).multiply(E).add(g)),b+=T;var I=A.shift(),c=A[0],$=new ag(n(b),r(b)).multiply(E).add(g),J=I.clone().sub(c),j=$.clone().sub(c),o=J.clone().normalize().dot(j.clone().normalize()),D=Math.sqrt((1-o)/(1+o)),e=x/D;for(J.setLength(e).add(c),K.moveTo(J.x,J.y),W=0;N>W;W++)A.push(new ag(n(b),r(b)).multiply(E).add(g)),b+=T,I=A.shift(),c=A[0],K.arcTo(I.x,I.y,c.x,c.y,x)}K.closePath()},arc:function(o,K,m,S,A,O,b,l,e){O==P&&(O=d),b==P&&(b=M),l==P&&(l=!0);var i=K+S/2,c=m+A/2;l&&o.moveTo(i,c),e?Qc(o,i,c,O,b,S/2,A/2):o.arc(i,c,v(S,A)/2,O,b),l&&o.closePath()},rect:function(I,U,m,t,D){I.rect(U,m,t,D)},circle:function(E,g,q,B,L){E.arc(g+B/2,q+L/2,v(B,L)/2,0,M,!0)},oval:function(r,g,i,x,I){Qc(r,g+x/2,i+I/2,0,M,x/2,I/2)},roundRect:function(c,F,t,r,h,y){y==P&&(y=v(v(r,h)/4,8)),Kc(c,F,t,r,h,y),c.closePath()},star:function(T,m,Z,y,W){var H=2*y,V=2*W,P=m+y/2,r=Z+W/2;T.moveTo(P-H/4,r-V/12),T.lineTo(m+.306*y,Z+.579*W),T.lineTo(P-H/6,r+V/4),T.lineTo(m+y/2,Z+.733*W),T.lineTo(P+H/6,r+V/4),T.lineTo(m+.693*y,Z+.579*W),T.lineTo(P+H/4,r-V/12),T.lineTo(m+.611*y,Z+.332*W),T.lineTo(P+0,r-V/4),T.lineTo(m+.388*y,Z+.332*W),T.closePath()},pentagram:function(T,e,J,D,g){var X=.5*g,L=e+.5*D,s=J+X,V=.5257311121191336*D;V>X&&(V=X);var K=nc,Y=0;for(T.moveTo(L+V*K[Y++],s+V*K[Y++]);20>Y;)T.lineTo(L+V*K[Y++],s+V*K[Y++]);T.closePath()},triangle:function(D,a,O,I,k){D.moveTo(a+I/2,O),D.lineTo(a+I,O+k),D.lineTo(a,O+k),D.closePath()},hexagon:function(g,D,d,x,W){g.moveTo(D,d+W/2),g.lineTo(D+x/4,d+W),g.lineTo(D+3*x/4,+d+W),g.lineTo(D+x,d+W/2),g.lineTo(D+3*x/4,d),g.lineTo(D+x/4,d),g.closePath()},pentagon:function(e,T,P,K,j){var I=2*K,s=2*j,O=T+K/2,v=P+j/2;e.moveTo(O-I/4,v-s/12),e.lineTo(O-I/6,v+s/4),e.lineTo(O+I/6,v+s/4),e.lineTo(O+I/4,v-s/12),e.lineTo(O+0,v-s/4),e.closePath()},diamond:function(p,a,s,D,k){p.moveTo(a+D/2,s),p.lineTo(a,s+k/2),p.lineTo(a+D/2,s+k),p.lineTo(a+D,s+k/2),p.closePath()},rightTriangle:function(C,M,l,w,I){C.moveTo(M,l),C.lineTo(M+w,l+I),C.lineTo(M,l+I),C.closePath()},parallelogram:function(L,G,e,S,k){var c=S/4;L.moveTo(G+c,e),L.lineTo(G+S,e),L.lineTo(G+S-c,e+k),L.lineTo(G,e+k),L.closePath()},trapezoid:function(v,a,Z,m,c){var e=m/4;v.moveTo(a+e,Z),v.lineTo(a+m-e,Z),v.lineTo(a+m,Z+c),v.lineTo(a,Z+c),v.closePath()},"linear.southwest":function(W,c,M,o,D,Z,J){return Zc(W,c,M,o,D+J,o+Z,D)},"linear.southeast":function(T,F,$,v,U,C,R){return Zc(T,F,$,v+C,U+R,v,U)},"linear.northwest":function(f,e,L,G,X,K,s){return Zc(f,e,L,G,X,G+K,X+s)},"linear.northeast":function(H,D,z,E,n,S,R){return Zc(H,D,z,E+S,n,E,n+R)},"linear.north":function(g,l,U,e,B,N,Q){return Zc(g,l,U,e,B,e,B+Q)},"linear.south":function(J,Z,T,W,A,H,r){return Zc(J,Z,T,W,A+r,W,A)},"linear.west":function(R,B,F,h,K,P){return Zc(R,B,F,h,K,h+P,K)},"linear.east":function(R,Y,V,I,H,L){return Zc(R,Y,V,I+L,H,I,H)},"radial.center":function(q,K,R,v,O,p,f){return ts(q,K,R,v,O,p,f,.5,.5)},"radial.southwest":function(e,R,W,f,k,c,d){return ts(e,R,W,f,k,c,d,.25,.75)},"radial.southeast":function(f,k,I,X,R,$,L){return ts(f,k,I,X,R,$,L,.75,.75)},"radial.northwest":function(q,W,Y,j,Q,t,h){return ts(q,W,Y,j,Q,t,h,.25,.25)},"radial.northeast":function(b,Y,S,F,y,M,t){return ts(b,Y,S,F,y,M,t,.75,.25)},"radial.north":function(D,t,O,L,a,B,R){return ts(D,t,O,L,a,B,R,.5,.25)},"radial.south":function(K,z,l,G,b,V,N){return ts(K,z,l,G,b,V,N,.5,.75)},"radial.west":function(o,z,Q,U,x,m,g){return ts(o,z,Q,U,x,m,g,.25,.5)},"radial.east":function(v,q,m,N,u,w,E){return ts(v,q,m,N,u,w,E,.75,.5)},"spread.horizontal":function(h,k,b,w,a,K){return Db(h,k,b,w,a,w+K,a)},"spread.vertical":function(B,f,c,F,d,Y,O){return Db(B,f,c,F,d,F,d+O)},"spread.diagonal":function(L,d,b,S,Y,I,V){return Db(L,d,b,S+I,Y,S,Y+V)},"spread.antidiagonal":function(e,r,$,G,x,R,z){return Db(e,r,$,G,x,G+R,x+z)},"spread.north":function(Q,n,q,l,$,i,O){return bj(Q,n,q,l,$-O/4,l,$+O+O/4)},"spread.south":function(e,s,U,w,b,Z,m){return bj(e,U,s,w,b-m/4,w,b+m+m/4)},"spread.west":function(l,N,Q,P,F,B){return bj(l,N,Q,P-B/4,F,P+B+B/4,F)},"spread.east":function(Z,t,h,o,J,f){return bj(Z,h,t,o-f/4,J,o+f+f/4,J)}},ve=function(O,X,s){return new Hq(O).tf(X,s)},Qk=function(s){var _=s.touches[0],g=s.touches[1],F=_.clientX,$=_.clientY,r=g.clientX,J=g.clientY;return L((F-r)*(F-r)+($-J)*($-J))},Kj=function(Z){var f=Z.touches[0],D=Z.touches[1],i=f.clientX,Q=f.clientY,r=D.clientX,C=D.clientY;return{x:(i+r)/2,y:(Q+C)/2}},pb=(function(){for(var Y=0,k=gd.split(""),S=0;SRb&&1728e6>Ih-Rb){var Yq=(Ih-Rb)/864e5;Hg&&Hg[jo]!=Yq&&(Hg[jo]=Yq,q.htWillExpire?Vn(q.htWillExpire.replace("{{day}}",Yq)):Vn("HT for Web free trial license will expire in "+Yq+" days, please apply for a new license!"))}else Rb>=Ih&&(q.htExpired?Vn(q.htExpired):Vn("Your free trial of HT for Web has expired!")),Hg&&delete Hg[jo]}catch(Ah){}}Math.sign===m&&(Math.sign=function(e){return 0>e?-1:e>0?1:+e});var Mm="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",zc={encode:function($,b){var Y,R,G,r,q,U,_,D="",A=0;for($=unescape(encodeURIComponent($));A<$.length;)Y=$.charCodeAt(A++),R=$.charCodeAt(A++),G=$.charCodeAt(A++),r=Y>>2,q=(3&Y)<<4|R>>4,U=(15&R)<<2|G>>6,_=63&G,isNaN(R)?U=_=64:isNaN(G)&&(_=64),D=D+b.charAt(r)+b.charAt(q)+b.charAt(U)+b.charAt(_);return D},decode:function(W,j,S){for(var $,U,H,k,R,e,n,b="",c=S||0;c>4,U=(15&R)<<4|e>>2,H=(3&e)<<6|n,b+=String.fromCharCode($),64!=e&&(b+=String.fromCharCode(U)),64!=n&&(b+=String.fromCharCode(H));return b=decodeURIComponent(escape(b))},_utf8_encode:function(H){H=H.replace(/\r\n/g,"\n");for(var W="",m=0;mM?W+=String.fromCharCode(M):M>127&&2048>M?(W+=String.fromCharCode(192|M>>6),W+=String.fromCharCode(128|63&M)):(W+=String.fromCharCode(224|M>>12),W+=String.fromCharCode(128|63&M>>6),W+=String.fromCharCode(128|63&M))}return W},_utf8_decode:function(r){for(var s="",d=0,m=0,L=0,q=0;dm?(s+=String.fromCharCode(m),d++):m>191&&224>m?(L=r.charCodeAt(d+1),s+=String.fromCharCode((31&m)<<6|63&L),d+=2):(L=r.charCodeAt(d+1),q=r.charCodeAt(d+2),s+=String.fromCharCode((15&m)<<12|(63&L)<<6|63&q),d+=3);return s}},Xj=[],pj=[],vj=F.Math={generateUUID:function(){for(var P=[],j=0;256>j;j++)P[j]=(16>j?"0":"")+j.toString(16).toUpperCase();return function(){var Y=0|4294967295*Math.random(),v=0|4294967295*Math.random(),O=0|4294967295*Math.random(),i=0|4294967295*Math.random();return P[255&Y]+P[255&Y>>8]+P[255&Y>>16]+P[255&Y>>24]+"-"+P[255&v]+P[255&v>>8]+"-"+P[64|15&v>>16]+P[255&v>>24]+"-"+P[128|63&O]+P[255&O>>8]+"-"+P[255&O>>16]+P[255&O>>24]+P[255&i]+P[255&i>>8]+P[255&i>>16]+P[255&i>>24]}}(),clamp:function($,U,u){return Math.max(U,Math.min(u,$))},fequal:function(M,V,f){return null==f&&(f=1e-8),Math.abs(M-V)0;E--){var C=Math.floor(Math.random()*(E+1)),x=B[E];B[E]=B[C],B[C]=x}return B},randomInt:function(y,A){return A===m&&(A=y,y=0),y+Math.floor(Math.random()*(A-y))},randomFloat:function(A,c){return c===m&&(c=A,A=0),A+Math.random()*(c-A)},isPOT:function(m){return m>0&&0===(m-1&m)},nearestPOT:function(S){if(!S)return 1;var g=S;g--,g|=g>>1,g|=g>>2,g|=g>>4,g|=g>>8,g|=g>>16,g++;var f=g>>1;return S-f>g-S?g:f},requestMatrix4:function(){return Xj.length>0?Xj.pop():new vj.Matrix4},releaseMatrix4:function(K){Xj.push(K)},requestVector3:function(){return pj.length>0?pj.pop():new vj.Vector3},releaseVector3:function(p){pj.push(p)}},Ld=F.Matrix=F.Math.Matrix2d=function(b,B,R,r,K){this.setFromTransform(b,B,R,r,K)},Hq=Ld;Ld.prototype={},Ld.prototype.constructor=Ld,Ld.prototype.set=function(V,P,O,f,l,U){return this.a=V,this.b=P,this.c=O,this.d=f,this.tx=l,this.ty=U,this},Ld.prototype.setFromTransform=function(i,J,P,O,$){var u=this;if(i===m)return u.a=1,u.b=0,u.c=0,u.d=1,u.tx=0,u.ty=0,void 0;var s,B;return i?(s=r(i),B=n(i)):(s=0,B=1),O=O||1,$=$||1,u.a=B*O,u.b=s*O,u.c=-s*$,u.d=B*$,u.tx=J||0,u.ty=P||0,u},Ld.prototype.apply=function(X,V){V=V||new ag;var C=X.x,m=X.y;return V.x=this.a*C+this.c*m+this.tx,V.y=this.b*C+this.d*m+this.ty,V},Ld.prototype.applyInverse=function(I,n){n=n||new ag;var v=1/(this.a*this.d+this.c*-this.b),w=I.x,G=I.y;return n.x=this.d*v*w+-this.c*v*G+(this.ty*this.c-this.tx*this.d)*v,n.y=this.a*v*G+-this.b*v*w+(-this.ty*this.a+this.tx*this.b)*v,n},Ld.prototype.translate=function(j,e){return this.tx+=j,this.ty+=e,this},Ld.prototype.scale=function(b,K){return this.a*=b,this.d*=K,this.c*=b,this.b*=K,this.tx*=b,this.ty*=K,this},Ld.prototype.rotate=function(o){var y=Math.cos(o),A=Math.sin(o),I=this.a,F=this.c,W=this.tx;return this.a=I*y-this.b*A,this.b=I*A+this.b*y,this.c=F*y-this.d*A,this.d=F*A+this.d*y,this.tx=W*y-this.ty*A,this.ty=W*A+this.ty*y,this},Ld.prototype.appendTranslate=function(f,y){return this.tx+=this.a*f+this.c*y,this.ty+=this.b*f+this.d*y,this},Ld.prototype.appendScale=function(J,d){return this.a*=J,this.d*=d,this.c*=d,this.b*=J,this},Ld.prototype.appendRotate=function(u){if(!u)return this;var X=Math.cos(u),J=Math.sin(u),f=this.a,A=this.b;return this.a=f*X+this.c*J,this.b=A*X+this.d*J,this.c=-f*J+this.c*X,this.d=-A*J+this.d*X,this},Ld.prototype.append=function(N){var e=this.a,j=this.b,A=this.c,v=this.d;return this.a=N.a*e+N.b*A,this.b=N.a*j+N.b*v,this.c=N.c*e+N.d*A,this.d=N.c*j+N.d*v,this.tx=N.tx*e+N.ty*A+this.tx,this.ty=N.tx*j+N.ty*v+this.ty,this},Ld.prototype.setTransform=function(T,L,j,Z,w,C,V,N,E){var c,i,G,q,g,r,v,A,e,b;return g=Math.sin(V),r=Math.cos(V),v=Math.cos(E),A=Math.sin(E),e=-Math.sin(N),b=Math.cos(N),c=r*w,i=g*w,G=-g*C,q=r*C,this.a=v*c+A*G,this.b=v*i+A*q,this.c=e*c+b*G,this.d=e*i+b*q,this.tx=T+(j*c+Z*G),this.ty=L+(j*i+Z*q),this},Ld.prototype.prepend=function(i){var l=this.tx;if(1!==i.a||0!==i.b||0!==i.c||1!==i.d){var U=this.a,M=this.c;this.a=U*i.a+this.b*i.c,this.b=U*i.b+this.b*i.d,this.c=M*i.a+this.d*i.c,this.d=M*i.b+this.d*i.d}return this.tx=l*i.a+this.ty*i.c+i.tx,this.ty=l*i.b+this.ty*i.d+i.ty,this},Ld.prototype.transform=Ld.prototype.prepend,Ld.prototype.invert=function(){var e=this.a,k=this.b,Y=this.c,i=this.d,A=this.tx,w=e*i-k*Y;return this.a=i/w,this.b=-k/w,this.c=-Y/w,this.d=e/w,this.tx=(Y*this.ty-i*A)/w,this.ty=-(e*this.ty-k*A)/w,this},Ld.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},Ld.prototype.clone=function(){var I=new Ld;return I.a=this.a,I.b=this.b,I.c=this.c,I.d=this.d,I.tx=this.tx,I.ty=this.ty,I},Ld.prototype.copy=function(D){return D.a=this.a,D.b=this.b,D.c=this.c,D.d=this.d,D.tx=this.tx,D.ty=this.ty,D},Ld.prototype.tf=function(G,M){1===arguments.length&&(M=G.y,G=G.x);var s=this;return{x:s.a*G+s.c*M+s.tx,y:s.b*G+s.d*M+s.ty}},Ld.prototype.toArray=function(){return[this.a,this.b,this.c,this.d,this.tx,this.ty]},Ld.prototype.fromArray=function(W){return this.a=W[0],this.b=W[1],this.c=W[2],this.d=W[3],this.tx=W[4],this.ty=W[5],this},Ld.prototype.toArray9=function(){return[this.a,this.b,0,this.c,this.d,0,this.tx,this.ty,1]},Ld.prototype.tfi=function(X,F){1===arguments.length&&(F=X.y,X=X.x);var U=this,V=1/(U.a*U.d+U.c*-U.b);return{x:U.d*V*X+-U.c*V*F+(U.ty*U.c-U.tx*U.d)*V,y:U.a*V*F+-U.b*V*X+(-U.ty*U.a+U.tx*U.b)*V}},Ld.IDENTITY=new Ld,Ld.TEMP_MATRIX=new Ld;var af=F.Math.Quaternion=function(n,J,R,U){this.set(n,J,R,U)};$.assign(af.prototype,{set:function(k,Y,V,W){var E=this;return E._x=k||0,E._y=Y||0,E._z=V||0,E._w=W!==m?W:1,E},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(C){var z=this;return z._x=C._x,z._y=C._y,z._z=C._z,z._w=C._w,z},inverse:function(){return this.conjugate()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this},dot:function(x){return this._x*x._x+this._y*x._y+this._z*x._z+this._w*x._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var c=this.length();return 0===c?(this._x=0,this._y=0,this._z=0,this._w=1):(c=1/c,this._x=this._x*c,this._y=this._y*c,this._z=this._z*c,this._w=this._w*c),this},fromArray:function(f,p){p===m&&(p=0);var B=this;return B._x=f[p],B._y=f[p+1],B._z=f[p+2],B._w=f[p+3],this},slerp:function(c,Z){if(0===Z)return this;if(1===Z)return this.copy(c);var K=this._x,W=this._y,N=this._z,A=this._w,D=A*c._w+K*c._x+W*c._y+N*c._z;if(0>D?(this._w=-c._w,this._x=-c._x,this._y=-c._y,this._z=-c._z,D=-D):this.copy(c),D>=1)return this._w=A,this._x=K,this._y=W,this._z=N,this;var J=Math.sqrt(1-D*D);if(Math.abs(J)<.001)return this._w=.5*(A+this._w),this._x=.5*(K+this._x),this._y=.5*(W+this._y),this._z=.5*(N+this._z),this;var U=Math.atan2(J,D),w=Math.sin((1-Z)*U)/J,$=Math.sin(Z*U)/J;return this._w=A*w+this._w*$,this._x=K*w+this._x*$,this._y=W*w+this._y*$,this._z=N*w+this._z*$,this},setFromAxisAngle:function(b,s){var M=s/2,Q=Math.sin(M);return this._x=b.x*Q,this._y=b.y*Q,this._z=b.z*Q,this._w=Math.cos(M),this},setFromEuler:function(E){var i=E._x,O=E._y,s=E._z,H=E._order,n=Math.cos,X=Math.sin,B=n(i/2),W=n(O/2),C=n(s/2),_=X(i/2),R=X(O/2),M=X(s/2);return"XYZ"===H?(this._x=_*W*C+B*R*M,this._y=B*R*C-_*W*M,this._z=B*W*M+_*R*C,this._w=B*W*C-_*R*M):"YXZ"===H?(this._x=_*W*C+B*R*M,this._y=B*R*C-_*W*M,this._z=B*W*M-_*R*C,this._w=B*W*C+_*R*M):"ZXY"===H?(this._x=_*W*C-B*R*M,this._y=B*R*C+_*W*M,this._z=B*W*M+_*R*C,this._w=B*W*C-_*R*M):"ZYX"===H?(this._x=_*W*C-B*R*M,this._y=B*R*C+_*W*M,this._z=B*W*M-_*R*C,this._w=B*W*C+_*R*M):"YZX"===H?(this._x=_*W*C+B*R*M,this._y=B*R*C+_*W*M,this._z=B*W*M-_*R*C,this._w=B*W*C-_*R*M):"XZY"===H&&(this._x=_*W*C-B*R*M,this._y=B*R*C-_*W*M,this._z=B*W*M+_*R*C,this._w=B*W*C+_*R*M),this},setFromRotationMatrix:function(f){var R,u=f.el,K=u[0],o=u[4],i=u[8],$=u[1],t=u[5],E=u[9],G=u[2],v=u[6],g=u[10],X=K+t+g;return X>0?(R=.5/Math.sqrt(X+1),this._w=.25/R,this._x=(v-E)*R,this._y=(i-G)*R,this._z=($-o)*R):K>t&&K>g?(R=2*Math.sqrt(1+K-t-g),this._w=(v-E)/R,this._x=.25*R,this._y=(o+$)/R,this._z=(i+G)/R):t>g?(R=2*Math.sqrt(1+t-K-g),this._w=(i-G)/R,this._x=(o+$)/R,this._y=.25*R,this._z=(E+v)/R):(R=2*Math.sqrt(1+g-K-t),this._w=($-o)/R,this._x=(i+G)/R,this._y=(E+v)/R,this._z=.25*R),this},setFromToVectors:function(){var y,s;return function(Z,i){return y===m&&(y=new lp),s=Z.dot(i)+1,1e-7>s?(s=0,Math.abs(Z.x)>Math.abs(Z.z)?y.set(-Z.y,Z.x,0):y.set(0,-Z.z,Z.y)):y.crossVectors(Z,i),this._x=y.x,this._y=y.y,this._z=y.z,this._w=s,this.normalize()}}(),setFromUnitVectors:function(){var S,z,u=1e-6;return function(p,w){return S===m&&(S=new lp),z=p.dot(w)+1,u>z?(z=0,Math.abs(p.x)>Math.abs(p.z)?S.set(-p.y,p.x,0):S.set(0,-p.z,p.y)):S.crossVectors(p,w),this._x=S.x,this._y=S.y,this._z=S.z,this._w=z,this.normalize()}}(),multiply:function(q){return this.multiplyQuaternions(this,q)},premultiply:function(Y){return this.multiplyQuaternions(Y,this)},multiplyQuaternions:function(b,F){var L=b._x,e=b._y,N=b._z,H=b._w,D=F._x,R=F._y,M=F._z,g=F._w;return this._x=L*g+H*D+e*M-N*R,this._y=e*g+H*R+N*D-L*M,this._z=N*g+H*M+L*R-e*D,this._w=H*g-L*D-e*R-N*M,this},toArray:function(P,p){return P||(P=[]),p=p||0,P[p]=this._x,P[p+1]=this._y,P[p+2]=this._z,P[p+3]=this._w,P}});var lg=F.Math.Vector4=function(p,K,i,A){this.x=p||0,this.y=K||0,this.z=i||0,this.w=A!==m?A:1};$.assign(lg.prototype,{isVector4:!0,set:function(p,A,Y,e){return this.x=p,this.y=A,this.z=Y,this.w=e,this},setScalar:function(Z){return this.x=Z,this.y=Z,this.z=Z,this.w=Z,this},setX:function(U){return this.x=U,this},setY:function(B){return this.y=B,this},setZ:function(U){return this.z=U,this},setW:function(W){return this.w=W,this},setComponent:function(r,K){switch(r){case 0:this.x=K;break;case 1:this.y=K;break;case 2:this.z=K;break;case 3:this.w=K;break;default:throw new Error("index is out of range: "+r)}return this},getComponent:function(N){switch(N){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+N)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(f){return this.x=f.x,this.y=f.y,this.z=f.z,this.w=f.w!==m?f.w:1,this},add:function(d,G){return G!==m?this.addVectors(d,G):(this.x+=d.x,this.y+=d.y,this.z+=d.z,this.w+=d.w,this)},addScalar:function(y){return this.x+=y,this.y+=y,this.z+=y,this.w+=y,this},addVectors:function(Y,E){return this.x=Y.x+E.x,this.y=Y.y+E.y,this.z=Y.z+E.z,this.w=Y.w+E.w,this},addScaledVector:function(x,C){return this.x+=x.x*C,this.y+=x.y*C,this.z+=x.z*C,this.w+=x.w*C,this},sub:function(k,c){return c!==m?this.subVectors(k,c):(this.x-=k.x,this.y-=k.y,this.z-=k.z,this.w-=k.w,this)},subScalar:function(k){return this.x-=k,this.y-=k,this.z-=k,this.w-=k,this},subVectors:function(P,w){return this.x=P.x-w.x,this.y=P.y-w.y,this.z=P.z-w.z,this.w=P.w-w.w,this},multiplyScalar:function(P){return this.x*=P,this.y*=P,this.z*=P,this.w*=P,this},applyMatrix4:function(d){var b=this.x,J=this.y,m=this.z,S=this.w,f=d.el;return this.x=f[0]*b+f[4]*J+f[8]*m+f[12]*S,this.y=f[1]*b+f[5]*J+f[9]*m+f[13]*S,this.z=f[2]*b+f[6]*J+f[10]*m+f[14]*S,this.w=f[3]*b+f[7]*J+f[11]*m+f[15]*S,this},divideScalar:function(L){return this.multiplyScalar(1/L)},setAxisAngleFromQuaternion:function(T){this.w=2*Math.acos(T.w);var Q=Math.sqrt(1-T.w*T.w);return 1e-4>Q?(this.x=1,this.y=0,this.z=0):(this.x=T.x/Q,this.y=T.y/Q,this.z=T.z/Q),this},setAxisAngleFromRotationMatrix:function(J){var j,S,o,F,G=.01,B=.1,y=J.el,K=y[0],m=y[4],l=y[8],g=y[1],A=y[5],Z=y[9],z=y[2],b=y[6],T=y[10]; if(Math.abs(m-g)L&&V>I?G>V?(S=0,o=.707106781,F=.707106781):(S=Math.sqrt(V),o=e/S,F=U/S):L>I?G>L?(S=.707106781,o=0,F=.707106781):(o=Math.sqrt(L),S=e/o,F=r/o):G>I?(S=.707106781,o=.707106781,F=0):(F=Math.sqrt(I),S=U/F,o=r/F),this.set(S,o,F,j),this}var R=Math.sqrt((b-Z)*(b-Z)+(l-z)*(l-z)+(g-m)*(g-m));return Math.abs(R)<.001&&(R=1),this.x=(b-Z)/R,this.y=(l-z)/R,this.z=(g-m)/R,this.w=Math.acos((K+A+T-1)/2),this},min:function(W){return this.x=Math.min(this.x,W.x),this.y=Math.min(this.y,W.y),this.z=Math.min(this.z,W.z),this.w=Math.min(this.w,W.w),this},max:function(z){return this.x=Math.max(this.x,z.x),this.y=Math.max(this.y,z.y),this.z=Math.max(this.z,z.z),this.w=Math.max(this.w,z.w),this},clamp:function(m,X){return this.x=Math.max(m.x,Math.min(X.x,this.x)),this.y=Math.max(m.y,Math.min(X.y,this.y)),this.z=Math.max(m.z,Math.min(X.z,this.z)),this.w=Math.max(m.w,Math.min(X.w,this.w)),this},clampScalar:function(){var k,E;return function($,n){return k===m&&(k=new lg,E=new lg),k.set($,$,$,$),E.set(n,n,n,n),this.clamp(k,E)}}(),clampLength:function(N,u){var L=this.length();return this.divideScalar(L||1).multiplyScalar(Math.max(N,Math.min(u,L)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(o){return this.x*o.x+this.y*o.y+this.z*o.z+this.w*o.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(R){return this.normalize().multiplyScalar(R)},lerp:function(s,i){return this.x+=(s.x-this.x)*i,this.y+=(s.y-this.y)*i,this.z+=(s.z-this.z)*i,this.w+=(s.w-this.w)*i,this},lerpVectors:function(n,L,K){return this.subVectors(L,n).multiplyScalar(K).add(n)},equals:function(D){return D.x===this.x&&D.y===this.y&&D.z===this.z&&D.w===this.w},fromArray:function(K,Q){return Q===m&&(Q=0),this.x=K[Q],this.y=K[Q+1],this.z=K[Q+2],this.w=K[Q+3],this},toArray:function(g,e){return g===m&&(g=[]),e===m&&(e=0),g[e]=this.x,g[e+1]=this.y,g[e+2]=this.z,g[e+3]=this.w,g},fromBufferAttribute:function(y,R){return this.x=y.getX(R),this.y=y.getY(R),this.z=y.getZ(R),this.w=y.getW(R),this}});var lp=F.Math.Vector3=function(a,U,w){a===m?(this.x=0,this.y=0,this.z=0):"object"==typeof a?this.copy(a):this.set(a,U==m?a:U,w==m?a:w)},Vp=F.Math.Vector3;$.assign(lp.prototype,{isNaN:function(){return isNaN(this.x)||isNaN(this.y)||isNaN(this.z)},set:function(P,W,v){return this.x=P,this.y=W,this.z=v,this},equals:function(O){return O&&this.x===O.x&&this.y===O.y&&this.z===O.z},setScalar:function(W){return this.x=W,this.y=W,this.z=W,this},setX:function(J){return this.x=J,this},setY:function(o){return this.y=o,this},setZ:function(A){return this.z=A,this},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(S){return S.x===m?(this.x=S[0],this.y=S[1],this.z=S[2]):(this.x=S.x,this.y=S.y,this.z=S.z||0),this},add:function($){return this.x+=$.x,this.y+=$.y,this.z+=$.z,this},addScalar:function(B){return this.x+=B,this.y+=B,this.z+=B,this},addVectors:function(Q,C){return this.x=Q.x+C.x,this.y=Q.y+C.y,this.z=Q.z+C.z,this},addScaledVector:function(F,x){return this.x+=F.x*x,this.y+=F.y*x,this.z+=F.z*x,this},sub:function(Q){return this.x-=Q.x,this.y-=Q.y,this.z-=Q.z,this},subScalar:function(p){return this.x-=p,this.y-=p,this.z-=p,this},subVectors:function(f,Y){return this.x=f.x-Y.x,this.y=f.y-Y.y,this.z=f.z-Y.z,this},divide:function(E){return this.x/=E.x,this.y/=E.y,this.z/=E.z,this},multiply:function(u){return this.x*=u.x,this.y*=u.y,this.z*=u.z,this},multiplyScalar:function(v){return this.x*=v,this.y*=v,this.z*=v,this},divideScalar:function(y){if(0!==y){var E=1/y;this.x*=E,this.y*=E,this.z*=E}else this.x=0,this.y=0,this.z=0;return this},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(N){var u=this.x-N.x,o=this.y-N.y,w=this.z-N.z;return u*u+o*o+w*w},distanceToSquared2:function(Q){var V=this.x-Q[0],L=this.y-Q[1],b=this.z-Q[2];return V*V+L*L+b*b},divideVectors:function(m,Q){return this.x=m.x/Q.x,this.y=m.y/Q.y,this.z=m.z/Q.z,this},multiplyVectors:function(H,r){return this.x=H.x*r.x,this.y=H.y*r.y,this.z=H.z*r.z,this},transformDirection:function(X){var T=this.x,q=this.y,h=this.z,r=X.el;return this.x=r[0]*T+r[4]*q+r[8]*h,this.y=r[1]*T+r[5]*q+r[9]*h,this.z=r[2]*T+r[6]*q+r[10]*h,this.normalize()},applyAxisAngle:function(){var t=new af;return function(c,j){return this.applyQuaternion(t.setFromAxisAngle(c,j))}}(),applyEuler:function(){var B=new af;return function(n){return this.applyQuaternion(B.setFromEuler(n))}}(),applyQuaternion:function(n){var o=this.x,f=this.y,k=this.z,u=n._x,A=n._y,R=n._z,s=n._w,h=s*o+A*k-R*f,P=s*f+R*o-u*k,e=s*k+u*f-A*o,x=-u*o-A*f-R*k;return this.x=h*s+x*-u+P*-R-e*-A,this.y=P*s+x*-A+e*-u-h*-R,this.z=e*s+x*-R+h*-A-P*-u,this},applyMatrix4:function(K){var k=this.x,d=this.y,W=this.z,D=K.el,N=1/(D[3]*k+D[7]*d+D[11]*W+D[15]);return this.x=(D[0]*k+D[4]*d+D[8]*W+D[12])*N,this.y=(D[1]*k+D[5]*d+D[9]*W+D[13])*N,this.z=(D[2]*k+D[6]*d+D[10]*W+D[14])*N,this},applyMatrix3:function(R){var s=this.x,L=this.y,J=this.z,g=R.el;return this.x=g[0]*s+g[3]*L+g[6]*J,this.y=g[1]*s+g[4]*L+g[7]*J,this.z=g[2]*s+g[5]*L+g[8]*J,this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},reflect:function(){var I=new lp;return function(g){return this.sub(I.copy(g).multiplyScalar(2*this.dot(g)))}}(),dot:function(z){return this.x*z.x+this.y*z.y+this.z*z.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){var d=this.length();return d?this.multiplyScalar(1/d):this},setLength:function(N){return this.normalize().multiplyScalar(N)},fromArray:function(G,J){return J===m&&(J=0),this.x=G[J],this.y=G[J+1],this.z=G[J+2],this},toArray:function(q,e){return q===m&&(q=[0,0,0]),e===m&&(e=0),q[e]=this.x,q[e+1]=this.y,q[e+2]=this.z,q},cross:function(g){return this.crossVectors(this,g)},angleTo:function(f){var $=this.dot(f)/Math.sqrt(this.lengthSq()*f.lengthSq());return $>1||-1>$?0:Math.acos($)},lerp:function(g,H){return this.x+=(g.x-this.x)*H,this.y+=(g.y-this.y)*H,this.z+=(g.z-this.z)*H,this},lerpVectors:function(v,d,M){return this.subVectors(d,v).multiplyScalar(M).add(v)},crossVectors:function(i,e){var O=i.x,P=i.y,X=i.z,C=e.x,v=e.y,o=e.z;return this.x=P*o-X*v,this.y=X*C-O*o,this.z=O*v-P*C,this},min:function(R){return this.x=Math.min(this.x,R.x),this.y=Math.min(this.y,R.y),this.z=Math.min(this.z,R.z),this},max:function(P){return this.x=Math.max(this.x,P.x),this.y=Math.max(this.y,P.y),this.z=Math.max(this.z,P.z),this},setFromMatrixPosition:function(Z){return this.setFromMatrixColumn(Z,3)},setFromMatrixScale:function(v){var R=this.setFromMatrixColumn(v,0).length(),i=this.setFromMatrixColumn(v,1).length(),G=this.setFromMatrixColumn(v,2).length();return this.x=R,this.y=i,this.z=G,this},setFromMatrixColumn:function(j,P){return this.fromArray(j.el,4*P)}}),lp.UP=new lp(0,1,0),lp.AxisX=new lp(1,0,0),lp.AxisY=new lp(0,1,0),lp.AxisZ=new lp(0,0,1);var ag=F.Math.Vector2=function(h,b,W){"object"==typeof h&&(h.x!=m?(b=h.y,W=h.e,h=h.x):(W=h[2],b=h[1],h=h[0])),this.set(h||0,b||0,W)};ag.prototype={},ag.prototype.constructor=ag;var vl=ag;$.defineProperties(ag.prototype,{width:{get:function(){return this.x},set:function(B){this.x=B}},height:{get:function(){return this.y},set:function(S){this.y=S}}}),ag.prototype.clone=function(){return new ag(this.x,this.y,this.e)},ag.prototype.copy=function(W){return this.set(W.x,W.y,W.e),this},ag.prototype.equals=function(E){return E.x===this.x&&E.y===this.y&&E.e===this.e},ag.prototype.set=function(Q,f,s){return this.x=Q||0,this.y=f||(0!==f?this.x:0),s!=m&&(this.e=s),this},ag.prototype.setScalar=function(c){return this.x=c,this.y=c,this.e=c,this},ag.prototype.setX=function(G){return this.x=G||0,this},ag.prototype.setY=function(p){return this.y=p||0,this},ag.prototype.setE=function(x){return this.e=x||0,this},ag.prototype.add=function(i){return this.x+=i.x,this.y+=i.y,this},ag.prototype.addVectors=function(U,I){return this.x=U.x+I.x,this.y=U.y+I.y,this},ag.prototype.addScalar=function(t){return this.x+=t,this.y+=t,this},ag.prototype.addScaledVector=function(x,v){return this.x+=x.x*v,this.y+=x.y*v,this},ag.prototype.sub=function(k){return this.x-=k.x,this.y-=k.y,this},ag.prototype.subScalar=function(i){return this.x-=i,this.y-=i,this},ag.prototype.subVectors=function(Q,R){return this.x=Q.x-R.x,this.y=Q.y-R.y,this},ag.prototype.multiply=function(N){return this.x*=N.x,this.y*=N.y,this},ag.prototype.multiplyScalar=function(m){return this.x*=m,this.y*=m,this},ag.prototype.divide=function(Z){return this.x/=Z.x,this.y/=Z.y,this},ag.prototype.divideScalar=function(G){return this.multiplyScalar(1/G)},ag.prototype.min=function(u){return this.x=Math.min(this.x,u.x),this.y=Math.min(this.y,u.y),this},ag.prototype.max=function(W){return this.x=Math.max(this.x,W.x),this.y=Math.max(this.y,W.y),this},ag.prototype.fromArray=function(F,S){return S===m&&(S=0),this.x=F[S],this.y=F[S+1],this},ag.prototype.clamp=function(m,e){return this.x=Math.max(m.x,Math.min(e.x,this.x)),this.y=Math.max(m.y,Math.min(e.y,this.y)),this},ag.prototype.clampScalar=function(){var k,B;return function(I,M){return k===m&&(k=new ag,B=new ag),k.set(I,I),B.set(M,M),this.clamp(k,B)}}(),ag.prototype.clampLength=function(r,J){var Z=this.length();return this.multiplyScalar(Math.max(r,Math.min(J,Z))/Z)},ag.prototype.dot=function(_){return this.x*_.x+this.y*_.y},ag.prototype.cross=function(j){return this.x*j.y-this.y*j.x},ag.prototype.lengthSq=function(){return this.x*this.x+this.y*this.y},ag.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},ag.prototype.normalize=function(){return this.divideScalar(this.length())},ag.prototype.angle=function(){var M=Math.atan2(this.y,this.x);return 0>M&&(M+=2*Math.PI),M},ag.prototype.distanceTo=function(c){return Math.sqrt(this.distanceToSquared(c))},ag.prototype.distanceToSquared=function(s){var B=this.x-s.x,W=this.y-s.y;return B*B+W*W},ag.prototype.isNearEnough=function(B){return this.distanceToSquared(B)<1e-8},ag.prototype.setLength=function(u){var K=this.length();return K?this.multiplyScalar(u/K):this},ag.prototype.lerp=function($,e){return this.x+=($.x-this.x)*e,this.y+=($.y-this.y)*e,"number"==typeof $.e&&"number"==typeof this.e&&(this.e+=($.e-this.e)*e),this},ag.prototype.lerpVectors=function(k,O,J){return this.subVectors(O,k).multiplyScalar(J).add(k)},ag.prototype.rotateAround=function(Q,L){var c=Q?Q.x:0,D=Q?Q.y:0,U=Math.cos(L),s=Math.sin(L),G=this.x-c,h=this.y-D;return this.x=G*U-h*s+c,this.y=G*s+h*U+D,this};var Jn=F.Math.Matrix3=function(){this.el=[1,0,0,0,1,0,0,0,1]};$.assign(Jn.prototype,{isMatrix3:!0,set:function(C,x,J,P,h,U,s,B,v){var l=this.el;return l[0]=C,l[1]=P,l[2]=s,l[3]=x,l[4]=h,l[5]=B,l[6]=J,l[7]=U,l[8]=v,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.el)},copy:function(s){var t=this.el,J=s.el;return t[0]=J[0],t[1]=J[1],t[2]=J[2],t[3]=J[3],t[4]=J[4],t[5]=J[5],t[6]=J[6],t[7]=J[7],t[8]=J[8],this},setFromMatrix4:function(L){var V=L.el;return this.set(V[0],V[4],V[8],V[1],V[5],V[9],V[2],V[6],V[10]),this},applyToBufferAttribute:function(){var n=new lp;return function(S){for(var W=0,r=S.count;r>W;W++)n.x=S.getX(W),n.y=S.getY(W),n.z=S.getZ(W),n.applyMatrix3(this),S.setXYZ(W,n.x,n.y,n.z);return S}}(),multiply:function(r){return this.multiplyMatrices(this,r)},premultiply:function(e){return this.multiplyMatrices(e,this)},multiplyMatrices:function(e,W){var Y=e.el,t=W.el,V=this.el,w=Y[0],d=Y[3],r=Y[6],X=Y[1],l=Y[4],Q=Y[7],p=Y[2],z=Y[5],G=Y[8],S=t[0],H=t[3],B=t[6],F=t[1],u=t[4],$=t[7],c=t[2],n=t[5],Z=t[8];return V[0]=w*S+d*F+r*c,V[3]=w*H+d*u+r*n,V[6]=w*B+d*$+r*Z,V[1]=X*S+l*F+Q*c,V[4]=X*H+l*u+Q*n,V[7]=X*B+l*$+Q*Z,V[2]=p*S+z*F+G*c,V[5]=p*H+z*u+G*n,V[8]=p*B+z*$+G*Z,this},multiplyScalar:function(q){var n=this.el;return n[0]*=q,n[3]*=q,n[6]*=q,n[1]*=q,n[4]*=q,n[7]*=q,n[2]*=q,n[5]*=q,n[8]*=q,this},determinant:function(){var i=this.el,H=i[0],G=i[1],L=i[2],B=i[3],M=i[4],S=i[5],D=i[6],l=i[7],e=i[8];return H*M*e-H*S*l-G*B*e+G*S*D+L*B*l-L*M*D},getInverse:function(v){var h=v.el,G=this.el,N=h[0],a=h[1],E=h[2],u=h[3],o=h[4],w=h[5],M=h[6],p=h[7],V=h[8],Z=V*o-w*p,F=w*M-V*u,L=p*u-o*M,f=N*Z+a*F+E*L;if(0===f)return this.identity();var S=1/f;return G[0]=Z*S,G[1]=(E*p-V*a)*S,G[2]=(w*a-E*o)*S,G[3]=F*S,G[4]=(V*N-E*M)*S,G[5]=(E*u-w*N)*S,G[6]=L*S,G[7]=(a*M-p*N)*S,G[8]=(o*N-a*u)*S,this},transpose:function(){var h,U=this.el;return h=U[1],U[1]=U[3],U[3]=h,h=U[2],U[2]=U[6],U[6]=h,h=U[5],U[5]=U[7],U[7]=h,this},getNormalMatrix:function(l){return this.setFromMatrix4(l).getInverse(this).transpose()},transposeIntoArray:function(O){var Z=this.el;return O[0]=Z[0],O[1]=Z[3],O[2]=Z[6],O[3]=Z[1],O[4]=Z[4],O[5]=Z[7],O[6]=Z[2],O[7]=Z[5],O[8]=Z[8],this},setUvTransform:function($,B,u,j,G,O,W){var M=Math.cos(G),S=Math.sin(G);this.set(u*M,u*S,-u*(M*O+S*W)+O+$,-j*S,j*M,-j*(-S*O+M*W)+W+B,0,0,1)},scale:function(p,k){var N=this.el;return N[0]*=p,N[3]*=p,N[6]*=p,N[1]*=k,N[4]*=k,N[7]*=k,this},rotate:function(G){var o=Math.cos(G),R=Math.sin(G),L=this.el,b=L[0],S=L[3],Z=L[6],d=L[1],i=L[4],q=L[7];return L[0]=o*b+R*d,L[3]=o*S+R*i,L[6]=o*Z+R*q,L[1]=-R*b+o*d,L[4]=-R*S+o*i,L[7]=-R*Z+o*q,this},translate:function(v,U){var Y=this.el;return Y[0]+=v*Y[2],Y[3]+=v*Y[5],Y[6]+=v*Y[8],Y[1]+=U*Y[2],Y[4]+=U*Y[5],Y[7]+=U*Y[8],this},equals:function(I){for(var e=this.el,U=I.el,i=0;9>i;i++)if(e[i]!==U[i])return!1;return!0},fromArray:function(B,M){M===m&&(M=0);for(var H=0;9>H;H++)this.el[H]=B[H+M];return this},toArray:function(H,S){H===m&&(H=[]),S===m&&(S=0);var K=this.el;return H[S]=K[0],H[S+1]=K[1],H[S+2]=K[2],H[S+3]=K[3],H[S+4]=K[4],H[S+5]=K[5],H[S+6]=K[6],H[S+7]=K[7],H[S+8]=K[8],H}});var ol=F.Math.Plane=function(w,C){this.normal=w!==m?w:new lp(1,0,0),this.constant=C!==m?C:0};$.assign(ol.prototype,{set:function(d,m){return this.normal.copy(d),this.constant=m,this},setComponents:function(f,e,T,E){return this.normal.set(f,e,T),this.constant=E,this},setFromNormalAndCoplanarPoint:function(k,B){return this.normal.copy(k),this.constant=-B.dot(this.normal),this},setFromCoplanarPoints:function(){var D=new lp,U=new lp;return function(i,Q,Y){var X=D.subVectors(Y,Q).cross(U.subVectors(i,Q)).normalize();return this.setFromNormalAndCoplanarPoint(X,i),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function($){return this.normal.copy($.normal),this.constant=$.constant,this},normalize:function(){var H=1/this.normal.length();return this.normal.multiplyScalar(H),this.constant*=H,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(s){return this.normal.dot(s)+this.constant},distanceToSphere:function(E){return this.distanceToPoint(E.center)-E.radius},projectPoint:function(u,t){return t===m&&(t=new lp),t.copy(this.normal).multiplyScalar(-this.distanceToPoint(u)).add(u)},intersectLine:function(){var l=new lp;return function(Y,X){X===m&&(X=new lp);var T=Y.delta(l),Z=this.normal.dot(T);if(0===Z)return 0===this.distanceToPoint(Y.start)?X.copy(Y.start):m;var y=-(Y.start.dot(this.normal)+this.constant)/Z;return 0>y||y>1?m:X.copy(T).multiplyScalar(y).add(Y.start)}}(),intersectsLine:function(Z){var a=this.distanceToPoint(Z.start),f=this.distanceToPoint(Z.end);return 0>a&&f>0||0>f&&a>0},intersectsBox:function(c){return c.intersectsPlane(this)},intersectsSphere:function(y){return y.intersectsPlane(this)},coplanarPoint:function(t){return t===m&&(t=new lp),t.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var o=new lp,h=new Jn;return function(f,J){var Q=J||h.getNormalMatrix(f),Y=this.coplanarPoint(o).applyMatrix4(f),v=this.normal.applyMatrix3(Q).normalize();return this.constant=-Y.dot(v),this}}(),translate:function(b){return this.constant-=b.dot(this.normal),this},equals:function(F){return F.normal.equals(this.normal)&&F.constant===this.constant}});var Co=F.Math.Ray=function(G,k){this.origin=G!==m?G.clone():new lp,this.direction=k!==m?k.clone():new lp};$.assign(Co.prototype,{set:function(W,P){return this.origin.copy(W),this.direction.copy(P),this},clone:function(){return(new this.constructor).copy(this)},copy:function(F){return this.origin.copy(F.origin),this.direction.copy(F.direction),this.maxHitLen=F.maxHitLen,this},at:function(U,i){var k=i||new lp;return k.copy(this.direction).multiplyScalar(U).add(this.origin)},setMaxHitLength:function(w){this.maxHitLen=w},lookAt:function(s){return this.direction.copy(s).sub(this.origin).normalize(),this},applyMatrix4:function(R){var b=this.maxHitLen;if(b){var f=this.direction.clone().multiplyScalar(b).add(this.origin);f.applyMatrix4(R)}return this.origin.applyMatrix4(R),this.direction.transformDirection(R),b&&(this.maxHitLen=this.origin.distanceTo(f)),this},distanceToPlane:function(u){var o=u.normal.dot(this.direction);if(0===o)return 0===u.distanceToPoint(this.origin)?0:null;var h=-(this.origin.dot(u.normal)+u.constant)/o;return h>=0?h:null},intersectPlane:function(Y,q){var F=this.distanceToPlane(Y);return null===F?null:this.at(F,q)},intersectSphere:function(){var p=new lp;return function(f,A){p.subVectors(f.center,this.origin);var x=p.dot(this.direction),r=p.dot(p)-x*x,D=f.radius*f.radius;if(r>D)return null;var n=Math.sqrt(D-r),e=x-n,L=x+n;return 0>e&&0>L?null:0>e?this.at(L,A):this.at(e,A)}}(),intersectEllipsoid:function(){var P=new lp,t=new lp;return function(D,b){P.subVectors(D.center,this.origin),P.divide(D.radius),t.divideVectors(this.direction,D.radius);var M=t.lengthSq(),Y=P.dot(t),m=P.dot(P)*M-Y*Y;if(m>M)return null;var G=Math.sqrt(M-m),W=(Y-G)/M,q=(Y+G)/M;return 0>W&&0>q?null:0>W?this.at(q,b):this.at(W,b)}}(),intersectBox:function(U,u){var R,K,a,G,J,S,T=1/this.direction.x,v=1/this.direction.y,D=1/this.direction.z,p=this.origin;if(T>=0?(R=(U.min.x-p.x)*T,K=(U.max.x-p.x)*T):(R=(U.max.x-p.x)*T,K=(U.min.x-p.x)*T),v>=0?(a=(U.min.y-p.y)*v,G=(U.max.y-p.y)*v):(a=(U.max.y-p.y)*v,G=(U.min.y-p.y)*v),R>G||a>K)return null;if((a>R||R!==R)&&(R=a),(K>G||K!==K)&&(K=G),D>=0?(J=(U.min.z-p.z)*D,S=(U.max.z-p.z)*D):(J=(U.max.z-p.z)*D,S=(U.min.z-p.z)*D),R>S||J>K)return null;if((J>R||R!==R)&&(R=J),(K>S||K!==K)&&(K=S),0>K)return null;var N=R>=0?R:K,C=this.maxHitLen;return C&&N>C?null:this.at(N,u)},intersectTriangle:function(){var S=new lp,j=new lp,h=new lp,Q=new lp;return function($,y,s,E,z){j.subVectors(y,$),h.subVectors(s,$),Q.crossVectors(j,h);var q,t=this.direction.dot(Q);if(t>0){if(E)return null;q=1}else{if(!(0>t))return null;q=-1,t=-t}S.subVectors(this.origin,$);var L=q*this.direction.dot(h.crossVectors(S,h));if(0>L)return null;var C=q*this.direction.dot(j.cross(S));if(0>C||L+C>t)return null;var Z=-q*S.dot(Q);if(0>Z)return null;var f=Z/t,l=this.maxHitLen;return l&&f>l?null:this.at(f,z)}}()});var Kl=F.Math.Box3=function(L,s){this.min=L!==m?L:new lp(1/0,1/0,1/0),this.max=s!==m?s:new lp(-1/0,-1/0,-1/0)};$.assign(Kl.prototype,{set:function(J,m){return this.min.copy(J),this.max.copy(m),this},setFromArray:function(X){for(var f=1/0,B=1/0,j=1/0,e=-1/0,c=-1/0,i=-1/0,D=0,x=X.length;x>D;D+=3){var Y=X[D],U=X[D+1],u=X[D+2];f>Y&&(f=Y),B>U&&(B=U),j>u&&(j=u),Y>e&&(e=Y),U>c&&(c=U),u>i&&(i=u)}return this.min.set(f,B,j),this.max.set(e,c,i),this},setFromPoints:function(r){this.makeEmpty();for(var S=0,G=r.length;G>S;S++)this.expandByPoint(r[S]);return this},clone:function(){return(new this.constructor).copy(this)},intersectsBox:function(I){return I.max.xthis.max.x||I.max.ythis.max.y||I.max.zthis.max.z?!1:!0},copy:function(H){return this.min.copy(H.min),this.max.copy(H.max),this},makeEmpty:function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},isEmpty:function(){return this.max.xq;q++)x=Math.max(x,k.distanceToSquared(I[q]));return this.radius=Math.sqrt(x),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(W){return this.center.copy(W.center),this.radius=W.radius,this},empty:function(){return this.radius<=0},containsPoint:function(B){return B.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(M){return M.distanceTo(this.center)-this.radius},intersectsSphere:function(H){var W=this.radius+H.radius;return H.center.distanceToSquared(this.center)<=W*W},intersectsBox:function(R){return R.intersectsSphere(this)},intersectsPlane:function(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius},clampPoint:function(p,t){var L=this.center.distanceToSquared(p);return t===m&&(t=new lp),t.copy(p),L>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t},getBoundingBox:function(r){return r===m&&(r=new Kl),r.set(this.center,this.center),r.expandByScalar(this.radius),r},applyMatrix4:function($){return this.center.applyMatrix4($),this.radius=this.radius*$.getMaxScaleOnAxis(),this},translate:function(J){return this.center.add(J),this},equals:function(e){return e.center.equals(this.center)&&e.radius===this.radius}});var bs=F.Math.Frustum=function(e,v,S,Z,N,L){this.planes=[e!==m?e:new ol,v!==m?v:new ol,S!==m?S:new ol,Z!==m?Z:new ol,N!==m?N:new ol,L!==m?L:new ol]};$.assign(bs.prototype,{set:function(Q,r,T,s,k,n){var H=this.planes;return H[0].copy(Q),H[1].copy(r),H[2].copy(T),H[3].copy(s),H[4].copy(k),H[5].copy(n),this},clone:function(){return(new this.constructor).copy(this)},copy:function(E){for(var p=this.planes,H=0;6>H;H++)p[H].copy(E.planes[H]);return this},setFromMatrix:function(r){var F=this.planes,T=r.el,J=T[0],W=T[1],L=T[2],H=T[3],P=T[4],U=T[5],m=T[6],w=T[7],R=T[8],q=T[9],D=T[10],M=T[11],O=T[12],I=T[13],E=T[14],h=T[15];return F[0].setComponents(H-J,w-P,M-R,h-O).normalize(),F[1].setComponents(H+J,w+P,M+R,h+O).normalize(),F[2].setComponents(H+W,w+U,M+q,h+I).normalize(),F[3].setComponents(H-W,w-U,M-q,h-I).normalize(),F[4].setComponents(H-L,w-m,M-D,h-E).normalize(),F[5].setComponents(H+L,w+m,M+D,h+E).normalize(),this},intersectsObject:function(){var Z=new Pr;return function(Y){var B=Y.geometry;return null===B.boundingSphere&&B.computeBoundingSphere(),Z.copy(B.boundingSphere).applyMatrix4(Y.matrixWorld),this.intersectsSphere(Z)}}(),intersectsSprite:function(){var g=new Pr;return function($){return g.center.set(0,0,0),g.radius=.7071067811865476,g.applyMatrix4($.matrixWorld),this.intersectsSphere(g)}}(),intersectsSphere:function(t){for(var y=this.planes,f=t.center,P=-t.radius,D=0;6>D;D++){var N=y[D].distanceToPoint(f);if(P>N)return!1}return!0},intersectsBox:function(){var p=new lp;return function(H){for(var r=this.planes,Y=0;6>Y;Y++){var j=r[Y];if(p.x=j.normal.x>0?H.max.x:H.min.x,p.y=j.normal.y>0?H.max.y:H.min.y,p.z=j.normal.z>0?H.max.z:H.min.z,j.distanceToPoint(p)<0)return!1}return!0}}(),containsPoint:function(u){for(var _=this.planes,N=0;6>N;N++)if(_[N].distanceToPoint(u)<0)return!1;return!0}});var hg=F.Math.Matrix4=function(){this.el=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]};$.assign(hg.prototype,{set:function(C,Y,q,u,s,U,c,i,Q,T,j,w,a,y,o,e){var H=this.el;return H[0]=C,H[4]=Y,H[8]=q,H[12]=u,H[1]=s,H[5]=U,H[9]=c,H[13]=i,H[2]=Q,H[6]=T,H[10]=j,H[14]=w,H[3]=a,H[7]=y,H[11]=o,H[15]=e,this},clone:function(){return(new hg).fromArray(this.el)},fromArray:function(Q,d){d===m&&(d=0);for(var X=this.el,q=0;16>q;q++)X[q]=Q[q+d];return this},getElements:function(){return this.el},scale:function(f){var $=this.el,Z=f.x,G=f.y,B=f.z;return $[0]*=Z,$[4]*=G,$[8]*=B,$[1]*=Z,$[5]*=G,$[9]*=B,$[2]*=Z,$[6]*=G,$[10]*=B,$[3]*=Z,$[7]*=G,$[11]*=B,this},makeRotationFromEuler:function(f){var T=this.el,$=f._x,n=f._y,g=f._z,a=f._order,J=Math.cos($),r=Math.sin($),o=Math.cos(n),X=Math.sin(n),E=Math.cos(g),H=Math.sin(g);if("XYZ"===a){var j=J*E,z=J*H,W=r*E,q=r*H;T[0]=o*E,T[4]=-o*H,T[8]=X,T[1]=z+W*X,T[5]=j-q*X,T[9]=-r*o,T[2]=q-j*X,T[6]=W+z*X,T[10]=J*o}else if("YXZ"===a){var N=o*E,L=o*H,G=X*E,Y=X*H;T[0]=N+Y*r,T[4]=G*r-L,T[8]=J*X,T[1]=J*H,T[5]=J*E,T[9]=-r,T[2]=L*r-G,T[6]=Y+N*r,T[10]=J*o}else if("ZXY"===a){var N=o*E,L=o*H,G=X*E,Y=X*H;T[0]=N-Y*r,T[4]=-J*H,T[8]=G+L*r,T[1]=L+G*r,T[5]=J*E,T[9]=Y-N*r,T[2]=-J*X,T[6]=r,T[10]=J*o}else if("ZYX"===a){var j=J*E,z=J*H,W=r*E,q=r*H;T[0]=o*E,T[4]=W*X-z,T[8]=j*X+q,T[1]=o*H,T[5]=q*X+j,T[9]=z*X-W,T[2]=-X,T[6]=r*o,T[10]=J*o}else if("YZX"===a){var A=J*o,M=J*X,c=r*o,t=r*X;T[0]=o*E,T[4]=t-A*H,T[8]=c*H+M,T[1]=H,T[5]=J*E,T[9]=-r*E,T[2]=-X*E,T[6]=M*H+c,T[10]=A-t*H}else if("XZY"===a){var A=J*o,M=J*X,c=r*o,t=r*X;T[0]=o*E,T[4]=-H,T[8]=X*E,T[1]=A*H+t,T[5]=J*E,T[9]=M*H-c,T[2]=c*H-M,T[6]=r*E,T[10]=t*H+A}return T[3]=0,T[7]=0,T[11]=0,T[12]=0,T[13]=0,T[14]=0,T[15]=1,this},makeRotationFromQuaternion:function(y){var C=this.el,i=y._x,A=y._y,z=y._z,o=y._w,c=i+i,U=A+A,X=z+z,R=i*c,$=i*U,l=i*X,b=A*U,M=A*X,u=z*X,L=o*c,B=o*U,w=o*X;return C[0]=1-(b+u),C[4]=$-w,C[8]=l+B,C[1]=$+w,C[5]=1-(R+u),C[9]=M-L,C[2]=l-B,C[6]=M+L,C[10]=1-(R+b),C[3]=0,C[7]=0,C[11]=0,C[12]=0,C[13]=0,C[14]=0,C[15]=1,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},getInverse:function(q){var W=this.el,O=q.el,f=O[0],T=O[1],v=O[2],P=O[3],D=O[4],M=O[5],x=O[6],l=O[7],b=O[8],I=O[9],_=O[10],U=O[11],j=O[12],K=O[13],k=O[14],Q=O[15],z=I*k*l-K*_*l+K*x*U-M*k*U-I*x*Q+M*_*Q,h=j*_*l-b*k*l-j*x*U+D*k*U+b*x*Q-D*_*Q,a=b*K*l-j*I*l+j*M*U-D*K*U-b*M*Q+D*I*Q,i=j*I*x-b*K*x-j*M*_+D*K*_+b*M*k-D*I*k,n=f*z+T*h+v*a+P*i;if(0===n)return this.identity();var B=1/n;return W[0]=z*B,W[1]=(K*_*P-I*k*P-K*v*U+T*k*U+I*v*Q-T*_*Q)*B,W[2]=(M*k*P-K*x*P+K*v*l-T*k*l-M*v*Q+T*x*Q)*B,W[3]=(I*x*P-M*_*P-I*v*l+T*_*l+M*v*U-T*x*U)*B,W[4]=h*B,W[5]=(b*k*P-j*_*P+j*v*U-f*k*U-b*v*Q+f*_*Q)*B,W[6]=(j*x*P-D*k*P-j*v*l+f*k*l+D*v*Q-f*x*Q)*B,W[7]=(D*_*P-b*x*P+b*v*l-f*_*l-D*v*U+f*x*U)*B,W[8]=a*B,W[9]=(j*I*P-b*K*P-j*T*U+f*K*U+b*T*Q-f*I*Q)*B,W[10]=(D*K*P-j*M*P+j*T*l-f*K*l-D*T*Q+f*M*Q)*B,W[11]=(b*M*P-D*I*P-b*T*l+f*I*l+D*T*U-f*M*U)*B,W[12]=i*B,W[13]=(b*K*v-j*I*v+j*T*_-f*K*_-b*T*k+f*I*k)*B,W[14]=(j*M*v-D*K*v-j*T*x+f*K*x+D*T*k-f*M*k)*B,W[15]=(D*I*v-b*M*v+b*T*x-f*I*x-D*T*_+f*M*_)*B,this},makeRotationAxis:function(w,l){var y=Math.cos(l),f=Math.sin(l),x=1-y,r=w.x,H=w.y,q=w.z,O=x*r,p=x*H;return this.set(O*r+y,O*H-f*q,O*q+f*H,0,O*H+f*q,p*H+y,p*q-f*r,0,O*q-f*H,p*q+f*r,x*q*q+y,0,0,0,0,1),this},multiply:function(j){return this.multiplyMatrices(this,j)},premultiply:function(l){return this.multiplyMatrices(l,this)},multiplyMatrices:function(d,P){var U=d.el,O=P.el,m=this.el,h=U[0],Z=U[4],J=U[8],S=U[12],k=U[1],H=U[5],$=U[9],l=U[13],n=U[2],p=U[6],E=U[10],b=U[14],B=U[3],e=U[7],V=U[11],g=U[15],Y=O[0],G=O[4],F=O[8],K=O[12],N=O[1],I=O[5],T=O[9],M=O[13],w=O[2],s=O[6],c=O[10],r=O[14],o=O[3],v=O[7],D=O[11],Q=O[15];return m[0]=h*Y+Z*N+J*w+S*o,m[4]=h*G+Z*I+J*s+S*v,m[8]=h*F+Z*T+J*c+S*D,m[12]=h*K+Z*M+J*r+S*Q,m[1]=k*Y+H*N+$*w+l*o,m[5]=k*G+H*I+$*s+l*v,m[9]=k*F+H*T+$*c+l*D,m[13]=k*K+H*M+$*r+l*Q,m[2]=n*Y+p*N+E*w+b*o,m[6]=n*G+p*I+E*s+b*v,m[10]=n*F+p*T+E*c+b*D,m[14]=n*K+p*M+E*r+b*Q,m[3]=B*Y+e*N+V*w+g*o,m[7]=B*G+e*I+V*s+g*v,m[11]=B*F+e*T+V*c+g*D,m[15]=B*K+e*M+V*r+g*Q,this},lookAt:function(){var N=new lp;return function(k,U,a){return N.subVectors(k,U),this.lookAtDirection(N,a)}}(),lookAtDirection:function(){var x=new lp,J=new lp,q=new lp;return function(l,I){I||(I=lp.UP);var f=this.el;return q.copy(l),0===q.lengthSq()&&(q.z=1),q.normalize(),x.crossVectors(I,q),0===x.lengthSq()&&(1===Math.abs(I.z)?q.x+=1e-4:q.z+=1e-4,q.normalize(),x.crossVectors(I,q)),x.normalize(),J.crossVectors(q,x),f[0]=x.x,f[4]=J.x,f[8]=q.x,f[1]=x.y,f[5]=J.y,f[9]=q.y,f[2]=x.z,f[6]=J.z,f[10]=q.z,this}}(),extractScale:function(){var b;return function(x){b===m&&(b=new lp),x===m&&(x=new lp);var r=b.setFromMatrixColumn(this,0).length(),g=b.setFromMatrixColumn(this,1).length(),S=b.setFromMatrixColumn(this,2).length();return x.set(r,g,S),x}}(),extractRotation:function(){var y;return function(Q){y===m&&(y=new lp),Q===m&&(Q=new hg);var W=this.el,o=Q.el,M=1/y.setFromMatrixColumn(Q,0).length(),x=1/y.setFromMatrixColumn(Q,1).length(),k=1/y.setFromMatrixColumn(Q,2).length();return W[0]=o[0]*M,W[1]=o[1]*M,W[2]=o[2]*M,W[4]=o[4]*x,W[5]=o[5]*x,W[6]=o[6]*x,W[8]=o[8]*k,W[9]=o[9]*k,W[10]=o[10]*k,this}}(),multiplyScalar:function(Z){var R=this.el;return R[0]*=Z,R[4]*=Z,R[8]*=Z,R[12]*=Z,R[1]*=Z,R[5]*=Z,R[9]*=Z,R[13]*=Z,R[2]*=Z,R[6]*=Z,R[10]*=Z,R[14]*=Z,R[3]*=Z,R[7]*=Z,R[11]*=Z,R[15]*=Z,this},getPosition:function(G){return G===m&&(G=new lp),G.setFromMatrixColumn(this,3)},setPosition:function(e){var b=this.el;return b[12]=e.x,b[13]=e.y,b[14]=e.z,this},toArray:function(c,a){c===m&&(c=[]),a===m&&(a=0);var R=this.el;return c[a]=R[0],c[a+1]=R[1],c[a+2]=R[2],c[a+3]=R[3],c[a+4]=R[4],c[a+5]=R[5],c[a+6]=R[6],c[a+7]=R[7],c[a+8]=R[8],c[a+9]=R[9],c[a+10]=R[10],c[a+11]=R[11],c[a+12]=R[12],c[a+13]=R[13],c[a+14]=R[14],c[a+15]=R[15],c},determinant:function(){var l=this.el,G=l[0],z=l[4],y=l[8],$=l[12],M=l[1],n=l[5],N=l[9],j=l[13],W=l[2],i=l[6],q=l[10],_=l[14],T=l[3],S=l[7],V=l[11],p=l[15];return T*(+$*N*i-y*j*i-$*n*q+z*j*q+y*n*_-z*N*_)+S*(+G*N*_-G*j*q+$*M*q-y*M*_+y*j*W-$*N*W)+V*(+G*j*i-G*n*_-$*M*i+z*M*_+$*n*W-z*j*W)+p*(-y*n*W-G*N*i+G*n*q+y*M*i-z*M*q+z*N*W)},copy:function(D){var O=this.el,Q=D.el;return O[0]=Q[0],O[1]=Q[1],O[2]=Q[2],O[3]=Q[3],O[4]=Q[4],O[5]=Q[5],O[6]=Q[6],O[7]=Q[7],O[8]=Q[8],O[9]=Q[9],O[10]=Q[10],O[11]=Q[11],O[12]=Q[12],O[13]=Q[13],O[14]=Q[14],O[15]=Q[15],this},compose:function(w,l,y){var T=this.el,K=l._x,a=l._y,o=l._z,g=l._w,j=K+K,W=a+a,L=o+o,m=K*j,U=K*W,h=K*L,J=a*W,P=a*L,v=o*L,C=g*j,r=g*W,s=g*L,k=y.x,I=y.y,B=y.z;return T[0]=(1-(J+v))*k,T[1]=(U+s)*k,T[2]=(h-r)*k,T[3]=0,T[4]=(U-s)*I,T[5]=(1-(m+v))*I,T[6]=(P+C)*I,T[7]=0,T[8]=(h+r)*B,T[9]=(P-C)*B,T[10]=(1-(m+J))*B,T[11]=0,T[12]=w.x,T[13]=w.y,T[14]=w.z,T[15]=1,this},decompose:function(){var C=new lp,Z=new hg;return function(S,h,G){var T=this.el,B=C.set(T[0],T[1],T[2]).length(),y=C.set(T[4],T[5],T[6]).length(),Q=C.set(T[8],T[9],T[10]).length(),f=this.determinant();0>f&&(B=-B),S.x=T[12],S.y=T[13],S.z=T[14],Z.copy(this); var H=1/B,p=1/y,i=1/Q;return Z.el[0]*=H,Z.el[1]*=H,Z.el[2]*=H,Z.el[4]*=p,Z.el[5]*=p,Z.el[6]*=p,Z.el[8]*=i,Z.el[9]*=i,Z.el[10]*=i,h.setFromRotationMatrix(Z),G.x=B,G.y=y,G.z=Q,this}}()});var db=F.Math.Triangle=function(X,g,k){this.a=X!==m?X:new lp,this.b=g!==m?g:new lp,this.c=k!==m?k:new lp};$.assign(db,{barycoordFromPoint:function(){var T=new lp,O=new lp,B=new lp;return function(g,k,c,f,R){T.subVectors(f,k),O.subVectors(c,k),B.subVectors(g,k);var i=T.dot(T),v=T.dot(O),h=T.dot(B),J=O.dot(O),F=O.dot(B),L=i*J-v*v,e=R||new lp;if(0===L)return e.set(-2,-1,-1);var y=1/L,W=(J*h-v*F)*y,x=(i*F-v*h)*y;return e.set(1-W-x,x,W)}}(),uvIntersection:function(){var c=new lp;return function(i,s,j,r,D,d,S){return db.barycoordFromPoint(i,s,j,r,c),D.multiplyScalar(c.x),d.multiplyScalar(c.y),S.multiplyScalar(c.z),D.add(d).add(S),D.clone()}}()});var Er=F.Math.Euler=function(W,s,$,I,j){this.set(W,s,$,I,j)};Er.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"],Er.DefaultOrder="XYZ",Er.ReverseOrder=function(){var U={xyz:"ZYX",xzy:"YZX",yxz:"ZXY",yzx:"XZY",zxy:"YXZ",zyx:"XYZ"};return function(Q){return U[Q]}}(),$.defineProperties(Er.prototype,{x:{get:function(){return this._x},set:function(p){this._x=p,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(v){this._y=v,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(M){this._z=M,this.onChangeCallback()}},order:{get:function(){return this._order},set:function(G){this._order=G,this.onChangeCallback()}}}),$.assign(Er.prototype,{set:function(k,$,z,G,w){return ks(k)&&(w=z,G=$,z=k[2],$=k[1],k=k[0]),G?w&&(G=Er.ReverseOrder(G)):G="ZYX",this._x=k||0,this._y=$||0,this._z=z||0,this._order=G||this._order,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(P){return this._x=P._x,this._y=P._y,this._z=P._z,this._order=P._order,this.onChangeCallback(),this},setFromRotationMatrix:function(E,o,X){var R=F.Math.clamp,O=E.el||E,H=O[0],f=O[4],w=O[8],y=O[1],b=O[5],P=O[9],p=O[2],k=O[6],N=O[10];return o=o||this._order,"XYZ"===o?(this._y=Math.asin(R(w,-1,1)),Math.abs(w)<.99999?(this._x=Math.atan2(-P,N),this._z=Math.atan2(-f,H)):(this._x=Math.atan2(k,b),this._z=0)):"YXZ"===o?(this._x=Math.asin(-R(P,-1,1)),Math.abs(P)<.99999?(this._y=Math.atan2(w,N),this._z=Math.atan2(y,b)):(this._y=Math.atan2(-p,H),this._z=0)):"ZXY"===o?(this._x=Math.asin(R(k,-1,1)),Math.abs(k)<.99999?(this._y=Math.atan2(-p,N),this._z=Math.atan2(-f,b)):(this._y=0,this._z=Math.atan2(y,H))):"ZYX"===o?(this._y=Math.asin(-R(p,-1,1)),Math.abs(p)<.99999?(this._x=Math.atan2(k,N),this._z=Math.atan2(y,H)):(this._x=0,this._z=Math.atan2(-f,b))):"YZX"===o?(this._z=Math.asin(R(y,-1,1)),Math.abs(y)<.99999?(this._x=Math.atan2(-P,b),this._y=Math.atan2(-p,H)):(this._x=0,this._y=Math.atan2(w,N))):"XZY"===o?(this._z=Math.asin(-R(f,-1,1)),Math.abs(f)<.99999?(this._x=Math.atan2(k,b),this._y=Math.atan2(w,H)):(this._x=Math.atan2(-P,N),this._y=0)):console.warn("unsupported order: "+o),this._order=o,X!==!1&&this.onChangeCallback(),this},setFromQuaternion:function(){var D=new hg;return function(K,n,M){return D.makeRotationFromQuaternion(K),this.setFromRotationMatrix(D,n,M)}}(),setFromVector3:function(K,x){return this.set(K.x,K.y,K.z,x||this._order)},reorder:function(){var N=new af;return function(W){return N.setFromEuler(this),this.setFromQuaternion(N,W)}}(),equals:function(u){return u._x===this._x&&u._y===this._y&&u._z===this._z&&u._order===this._order},fromArray:function(D){return this._x=D[0],this._y=D[1],this._z=D[2],D[3]!==m&&(this._order=D[3]),this.onChangeCallback(),this},toArray:function(z,h){return z===m&&(z=[]),h===m&&(h=0),z[h]=this._x,z[h+1]=this._y,z[h+2]=this._z,z[h+3]=this._order,z},toVector3:function(g){return g?g.set(this._x,this._y,this._z):new lp(this._x,this._y,this._z)},onChange:function(c){return this.onChangeCallback=c,this},onChangeCallback:function(){}});var Io={ms_ac:function(M,b){for(var B=b.ms_ac,o=0;om;m++){var r=I[m];"wheel"===r&&!Z.handle_wheel&&Z.handle_mousewheel&&(Z.handle_wheel=function(h){sm(Z,h)}),Z["handle_"+r]&&Br(r,Z.getView(),Z)}},c.removeListeners=function(){var d=this,V=d.__events__;if(V){d.__events__=m;for(var c=0,p=V.length;p>c;c++)d["handle_"+V[c]]&&$e(V[c],d.getView(),d)}}},ms_fire:function(Q){Q.mp=function(q,J,A){this.addPropertyChangeListener(q,J,A)},Q.ump=function(z,t){this.removePropertyChangeListener(z,t)},Q.fp=function(J,Y,G,g,a){return this.firePropertyChange(J,Y,G,g,a)},Q.addPropertyChangeListener=function(X,T,O){var Y=this;Y._62I||(Y._62I=new zf),Y._62I.add(X,T,O)},Q.removePropertyChangeListener=function(t,z){this._62I&&this._62I.remove(t,z)},Q.firePropertyChange=function(m,w,d,L,s){if(L){if(L(w,d))return!1}else if(w===d)return!1;var C=this,X=s||{};return X.property=m,X.oldValue=w,X.newValue=d,X.source=C,X.data=C,C._62I&&C._62I.fire(X),C.onPropertyChanged&&C.onPropertyChanged(X),!0}},ms_attr:function(Q){Q.a=function(z,F){var u=this;if(2===arguments.length)u.setAttr(z,F);else{if(!Pg(z))return u.getAttr(z);for(var Y in z)u.setAttr(Y,z[Y])}return u},Q.getAttr=function(U,d){if(d===m&&(d=1),this._attrObject&&U in this._attrObject)return this._attrObject[U];if(this.getImage){var M=this.getImage();if(ib(M)&&(M=Tr[M]),Pg(M)&&"dataBindings"in M)for(var t=M.dataBindings,u=t.length-1;u>=0;u--){var L=t[u];if(L.attr===U){if("defaultValue"in L)return L.defaultValue;break}}}return d?p[U]:m},Q.setAttr=function(M,E){var x=this;x._attrObject||(x._attrObject={});var k=x._attrObject[M];E===m?delete x._attrObject[M]:x._attrObject[M]=E,x.fp&&x.fp("a:"+M,k,E)&&x.onAttrChanged&&x.onAttrChanged(M,k,E)},Q.getSerializableAttrs=function(){var r,h={};for(r in this._attrObject)h[r]=1;return h}},ms_bnb:function(S){S.getBodyColor=function(e){return e.s("body.color")},S.getBorderColor=function(o){return o.s("border.color")}},_51o:function(Q){Q.mi=function(d,p,C){this.addInteractorListener(d,p,C)},Q.umi=function(E,Z){this.removeInteractorListener(E,Z)},Q.fi=function(t){this.fireInteractorEvent(t)},Q.addInteractorListener=function(H,W,T){var $=this;$._63I||($._63I=new zf),$._63I.add(H,W,T)},Q.removeInteractorListener=function(I,h){this._63I&&this._63I.remove(I,h)},Q.fireInteractorEvent=function(I){this._63I&&this._63I.fire(I)},Q.setInteractors=function(I){var A=this,X=A._interactors;X&&X.each(function(Y){Y.tearDown()}),ks(I)&&(I=new Po(I)),A._interactors=I,I&&I.each(function(S){S.setUp()}),A.fp("interactors",X,I),A.invalidateSelection()},Q.getInteractors=function(){return this._interactors}},_49o:function(M){M._44O=P,M._45O=P,M.getTopPainters=function(){return this._44O},M.getBottomPainters=function(){return this._45O},M.addTopPainter=function(g){var x=this;x._44O||(x._44O=new Po),x._44O.contains(g)||(x._44O.add(g),x.redraw&&x.redraw())},M.removeTopPainter=function(J){var g=this;g._44O&&(g._44O.remove(J),g.redraw&&g.redraw())},M.addBottomPainter=function(P){var C=this;C._45O||(C._45O=new Po),C._45O.contains(P)||(C._45O.add(P),C.redraw&&C.redraw())},M.removeBottomPainter=function(A){var l=this;l._45O&&(l._45O.remove(A),l.redraw&&l.redraw())},M._93db=function(X,y){var i=this;i._45O&&i._45O.each(function(l){l.draw?l.draw(X,y):l.call(i,X,y)})},M._92db=function(z,m){var q=this;q._44O&&q._44O.each(function(Y){Y.draw?Y.draw(z,m):Y.call(q,z,m)})}},ms_sm:function(O){O.sm=function(){return this.getSelectionModel()},O.setSelectableFunc=function(v){this.sm().setFilterFunc(v)},O.getSelectableFunc=function(){return this.sm().getFilterFunc()},O.getSelectionModel=function(){var D=this;return D._selectionModel?D._selectionModel:D.dm().sm()},O.isSelectionModelShared=function(){return!this._selectionModel},O.setSelectionModelShared=function(E){var t=this,B=t.sm(),h=!t._selectionModel,T=t.handleSelectionChange,n=t.dm();h!==E&&(t.invalidateSelection&&t.invalidateSelection(),E?(n.sm().ms(T,t),t._selectionModel.ums(T,t),t._selectionModel.dispose(),t._selectionModel=P):(n.sm().ums(T,t),t._selectionModel=new dr(n),t._selectionModel.ms(T,t)),t.onSelectionModelSharedChanged(),t.fp("selectionModelShared",h,E),t.fireViewEvent({kind:"selectionModelSharedChange",oldValue:h,newValue:E,oldSelectionModel:B,newSelectionModel:t.sm()}))},O.onSelectionModelSharedChanged=function(){var N=this;N.redraw(),N.invalidateSelection&&N.invalidateSelection()},O.removeSelection=function(){var D=this.dm();D.beginTransaction(),this.sm().toSelection().each(D.remove,D),D.endTransaction()},O.selectAll=function(){var a=this;a.sm().ss(a.dm().toDatas(function(T){return a.isVisible(T)&&a.isSelectable(T)}))},O.isSelected=function(e){return this.sm().co(e)},O.isSelectedById=function(B){var z=this.dm().getDataById(B);return z?this.isSelected(z):!1},O.isSelectable=function(J){return this.sm().isSelectable(J)}},ms_tx:function(g){g._64I=0,g._65O=0,g.isScrollable=function(){return this.getWidth()O&&(O=L),O>0&&(O=0),O=W(O);var E=v._65O;v._65O=O,v.fp(zn,E,O)}},ms_ty:function(f){f._23Q=0,f._66O=0,f._41o=function(){return this.getHeight()I&&(I=p),I>0&&(I=0),I=W(I);var w=t._66O;t._66O=I,t.fp(wc,w,I)}},ms_txy:function(i){i._65O=0,i._66O=0,i.tx=function(M){return M===m?this.getTranslateX():(this.setTranslateX(M),void 0)},i.ty=function(w){return w===m?this.getTranslateY():(this.setTranslateY(w),void 0)},i.onTranslateEnded=function(){},i.setTranslate=function(k,X,s){var Q=this;if(s=is(s)){Q._65I&&Q._65I.stop(!0);var o=Q.tx(),K=Q.ty();s.action=function(m){Q.setTranslate(o+(k-o)*m,K+(X-K)*m)},s._37o=function(){delete Q._66I,delete Q._65I,Q.onTranslateEnded()},Q._66I=1,Q._65I=df(s)}else Q.tx(k),Q.ty(X)},i.getTranslateX=function(){return this._65O},i.setTranslateX=function(q){var k=this;q=k.adjustTranslateX(q);var y=k._65O;k._65O=q,k.fp(zn,y,q)},i.getTranslateY=function(){return this._66O},i.setTranslateY=function(n){var M=this;n=M.adjustTranslateY(n);var Z=M._66O;M._66O=n,M.fp(wc,Z,n)},i.adjustTranslateX=function(Y){return W(Y)},i.adjustTranslateY=function(_){return W(_)},i.translate=function(k,m,U){this.setTranslate(this.tx()+k,this.ty()+m,U)},i.getLogicalPoint=function(Z){var N=this;return gg(Z,this._canvas||N._view,N.tx(),N.ty())}},ms_dm:function(J){J.dm=function(v){return v?(this.setDataModel(v),void 0):this.getDataModel()},J.getDataModel=function(){return this._dataModel}},ms_lp:function(O){O.lp=function(Z){return this.getLogicalPoint(Z)}},ms_v:function($){$._disabled=!1,$.setDisabled=function(n,T){var g=this,N=g._disabled;N!==n&&(N&&(_g(g._63O),delete g._63O),n&&(tg(g._view,g._63O=Uc(T)),g.iv()),g._disabled=n,g.fp("disabled",N,n))},$.isDisabled=function(){return this._disabled},$.getDisabledDiv=function(){return this._63O},$.getView=function(){return this._view},$.addToDOM=function(g){var E=this,P=E.getView(),Q=P.style;g=g||U.body,g.appendChild(P),Q.left="0",Q.right="0",Q.top="0",Q.bottom="0",N(q,"resize",function(){E.iv()}),E.iv()},$.setCursor=function(E){"default"===E&&(E=this._defaultCursor||E);var W=this.getView().style;W.cursor=E,W.cursor="-webkit-"+E,W.cursor="-moz-"+E},$.getWidth=function(){return this._view.clientWidth},$.getHeight=function(){return this._view.clientHeight},$.setWidth=function(q){var $=this;$._view.style.width=q+Lq,$.iv(),$.fp&&$.fp(Ng,P,q)},$.setHeight=function(_){var v=this;v._view.style.height=_+Lq,v.iv(),v.fp&&v.fp(pc,P,_)},$.setFocus=function(j){var I=this,K=I._currentEditor;return j&&K&&(K.getView&&(K=K.getView()),K.contains(j.target))?!1:(Fh(I._view),I.endEditing&&I.endEditing(),I.fireViewEvent("focus"),!0)},$.iv=function(P){this.invalidate(P)},$.invalidate=function(V){var T=this;T._68I||(T._68I=1,ne(T.validate,T,P,V),T.onInvalidated&&T.onInvalidated(),T.fireViewEvent("invalidate"))},$.validate=function(){var l=this,O=l._view;if(l._68I&&(delete l._68I,O.parentNode))if(0===O.offsetWidth&&0===O.offsetHeight&&l._67I!==P)l._67I===m&&(l._67I=t.reinvalidateCount),l._67I>0?l._67I--:l._67I=P,l.iv();else{l.fireViewEvent("beginValidate"),l.validateImpl(),l.onValidated&&l.onValidated(),l.fireViewEvent("validate");var w=l._63O;w&&(O.lastChild!==w&&(_g(w),tg(O,w)),gb(w,0,0,l.getWidth(),l.getHeight())),dn(l),Nd(l),mi(l)}},$.layout=function(e,w,x,h){1===arguments.length?gb(this,e):gb(this,e,w,x,h)},$.addViewListener=function(q,s,y){var H=this;H._67O||(H._67O=new zf),H._67O.add(q,s,y)},$.removeViewListener=function(l,e){this._67O.remove(l,e)},$.fireViewEvent=function(p){var $=this;$._67O&&(ib(p)&&(p={kind:p}),$._67O.fire(p)),t.viewListener&&t.viewListener($,p)}},ms_tip:function(x){x.setToolTipEnabled=function(N){var X=this;N?pr||X._13o||(X.enableToolTip(),X.fp("toolTipEnabled",!1,!0)):X._13o&&(X.disableToolTip(),X.fp("toolTipEnabled",!0,!1))},x.isToolTipEnabled=function(){return!!this._13o},x.enableToolTip=function(){var E=this;if(!pr&&!E._13o){E._13o=function(p){var Z=E.getToolTip(p);Z!=P?(t.toolTipContinual&&t.isToolTipShowing()?Fl(p,Z):(Re(),ih={timeout:Zr(dp,Sg),e:p,info:Z}),Nk={e:p,view:E}):Re()};var X=E.getView();N(X,qo,E._13o),N(X,"mouseleave",t.hideToolTip)}},x.disableToolTip=function(){var H=this;if(H._13o){var K=H.getView();j(K,qo,H._13o),j(K,"mouseleave",t.hideToolTip),delete H._13o}},x.getToolTip=function(Y){var J=this;if(J.getDataAt){var E=J.getDataAt(Y);return E?E.getToolTip():P}return J.getValue?J.getValue():void 0}},_52o:function(H){H._zoom=1,H._29I=Mk,H.zoomIn=function(j,k){this.setZoom(this._zoom*Ie,j,k)},H.zoomOut=function(n,M){this.setZoom(this._zoom/Ie,n,M)},H.zoomReset=function(b,a){this.setZoom(1,b,a)},H.scrollZoomIn=function(F){this.setZoom(this._zoom*Bj,P,F)},H.scrollZoomOut=function(U){this.setZoom(this._zoom/Bj,P,U)},H.pinchZoomIn=function(r){this.setZoom(this._zoom*Fk,P,r)},H.pinchZoomOut=function(S){this.setZoom(this._zoom/Fk,P,S)},H.adjustZoom=function(k){return uo>k?uo:k>Wj?Wj:k},H.getZoom=function(){return this._zoom},H.setZoom=function($,I,e){var Y=this;if(I=is(I)){Y._14o&&Y._14o.stop(!0);var j=Y._zoom;I.action=function(T){Y._96O(j+($-j)*T,e)},I._37o=function(){delete Y._zooming,delete Y._14o,Y.onZoomEnded()},Y._zooming=1,Y._14o=df(I)}else Y._96O($,e)},H._96O=function(y,j){var f=this;if(y=f.adjustZoom(y),y!==f._zoom){f.validate();var J=f._29I,m=f._zoom;0!==J.width&&0!==J.height&&(j=j?j:{x:J.x+J.width/2,y:J.y+J.height/2},f.tx((j.x-J.x)*m-j.x*y),f.ty((j.y-J.y)*m-j.y*y)),f._zoom=y,f.fp("zoom",m,y)}}},ms_edge:function(u){u._2I=function(e){var R=this;R._44I||(R._44I=new Po),R._42I||(R._42I=new Po),R._44I.add(e),R._42I.add(e),R._20I()},u._4I=function($){var a=this;a._44I||(a._44I=new Po),a._43I||(a._43I=new Po),a._44I.add($),a._43I.add($),a._20I()},u._16I=function(c){var F=this;F._44I.remove(c),F._42I.remove(c),F._44I.isEmpty()&&delete F._44I,F._42I.isEmpty()&&delete F._42I,F._20I()},u._18I=function(c){var I=this;I._44I.remove(c),I._43I.remove(c),I._44I.isEmpty()&&delete I._44I,I._43I.isEmpty()&&delete I._43I,I._20I()},u._20I=function(){var y=this;if(delete y._45I,!y._44I||y._44I.isEmpty())return delete y._70O,void 0;var U;y._44I.each(function(Y){Y.isLooped()&&(U||(U={}),U[Y._id]||(y._45I||(y._45I=new Po),y._45I.add(Y),U[Y._id]=Y))}),U?(y._70O=new Po,y._44I.each(function(X){U[X._id]?"A"===U[X._id]||(U[X._id]="A",y._70O.add(X)):y._70O.add(X)})):y._70O=y._44I},u.hasAgentEdges=function(){return!!this._49I&&!this._49I.isEmpty()},u.getSourceAgentEdges=function(){return this._46I},u.getTargetAgentEdges=function(){return this._47I},u._1I=function(T){var Q=this;Q._46I||(Q._46I=new Po),Q._48I||(Q._48I=new Po),Q._46I.add(T),Q._48I.add(T),Q._19I()},u._3I=function(L){var P=this;P._47I||(P._47I=new Po),P._48I||(P._48I=new Po),P._47I.add(L),P._48I.add(L),P._19I()},u._15I=function(Q){var q=this;q._46I.remove(Q),q._48I.remove(Q),q._46I.isEmpty()&&delete q._46I,q._48I.isEmpty()&&delete q._48I,q._19I()},u._17I=function(C){var _=this;_._47I.remove(C),_._48I.remove(C),_._47I.isEmpty()&&delete _._47I,_._48I.isEmpty()&&delete _._48I,_._19I()},u._19I=function(){var v=this;delete v._49I;var I=v._48I;if(I&&!I.isEmpty()){var K={};I.each(function(P){K[P._id]?v._49I||(v._49I=new Po):K[P._id]=P}),v._49I?I.each(function(g){K[g._id]&&(v._49I.add(g),delete K[g._id])}):v._49I=I}},u.getLoopedEdges=function(){return this._45I},u.getEdges=function(){return this._70O},u.getAgentEdges=function(){return this._49I},u.getSourceEdges=function(){return this._42I},u.getTargetEdges=function(){return this._43I},u._8I=function(){this._70O&&this._70O.each(function(L){L._7I()})}}};di(t,{getVersion:function(){return"7.2.7-dev12"}},!0);var cr=function(D){return D.devicePixelRatio?D.devicePixelRatio:D.screen&&D.screen.logicalXDPI?D.screen.deviceXDPI/D.screen.logicalXDPI:1};di(t,{numberDigits:5,crossOrigin:"",baseZIndex:m,isTouchable:pr,mockTouch:!0,devicePixelRatio:cr(q),reinvalidateCount:3,hitMaxArea:3e3,imageCacheThreshold:20,autoMakeVisible:!0,autoHideScrollBar:!0,disabledOpacity:.4,disabledBackground:O.disabledBackground,forceHierarchicalSerialization:!0,extractBatchTranslation:!1,extractShapeTranslation:!1,extractPolylineTranslation:!1,extractVerticesTranslation:!1,envmapProbeMinWaitTime:300,envmapProbeMaxWaitTime:25e3,EnvmapTextureSize:1024,hoverDelay:600,clickDelay:200,toolTipDelay:800,toolTipContinual:!1,getDragger:function(){return gk},lineCap:"butt",lineJoin:"round",imageGradient:"linear.northeast",dashPattern:[16,16],blockMinSize:1,textExtraWidth:4,encodeStringKey:null,doubleClickSpeed:500,doubleClickRange:1,doubleTouchRange:20,touchMoveThreshold:10,animDuration:200,animEasing:function(o){return o*o},labelColor:as,labelSelectColor:Ti,labelFont:"12px arial, sans-serif",widgetIndent:pr?30:20,widgetRowHeight:pr?30:20,widgetHeaderHeight:pr?32:22,widgetTitleHeight:pr?34:24,scrollBarColor:Pe,scrollBarSize:7,scrollBarTimeout:1e3,scrollBarMinLength:20,scrollBarInteractiveSize:pr?32:16,zoomIncrement:1.3,scrollZoomIncrement:1.05,pinchZoomIncrement:1.08,pinchZoomThreshold:1,zoomMax:20,zoomMin:.01,segmentResolution:12,shapeResolution:24,shapeSide:24,intersectionLineRect:Wo,intersectionLineLine:Wq,isEnter:Hf,isEsc:Bq,isDelete:vn,isSpace:Tq,isLeft:ab,isUp:Rk,isRight:Uo,isDown:Dj,isTouchEvent:nf,getTarget:Lf,isString:ib,isNumber:Ll,isBoolean:cg,isArray:ks,isSelectAll:vh,isFunction:ns,isObject:Pg,getPropertyValue:Xo,setPropertyValue:tf,addMethod:di,createGradient:function(J,e,f,K,s,C,x,j){var S=ko[e];return S(J,f,K,s,C,x,j)},appendToScreen:function($){$=$.getView?$.getView():$,(U.fullscreenElement||U.mozFullScreenElement||U.webkitFullscreenElement||U.msFullscreenElement||U.body).appendChild($)},encodeString:function(J){return F.Math.encodeBase64(J,t.encodeStringKey)},decodeString:function(I){return F.Math.decodeBase64(I,t.encodeStringKey)},findView:function(L){var d=function(m,J){var M=J._ht;M&&m.push(M);var h=J.children,O=h.length;if(O)for(var l=0;O>l;l++)d(m,h[l])},x=[];d(x,U.body);var j=function(w,A){for(var O="2d"===A?nq.GraphView:cs.Graph3dView,e=0,j=w.length;j>e;e++)if(w[e]instanceof O)return x[e];return null};return"all"===L?x:"2d"===L?j(x,"2d"):"3d"===L?j(x,"3d"):j(x,"3d")||j(x,"2d")},toggleFullscreen:function(P){var R=P.getView();if(U.fullscreenElement||U.mozFullScreenElement||U.webkitFullscreenElement||U.msFullscreenElement)U.exitFullscreen?U.exitFullscreen():U.msExitFullscreen?U.msExitFullscreen():U.mozCancelFullScreen?U.mozCancelFullScreen():U.webkitExitFullscreen&&U.webkitExitFullscreen();else{var g=!0;if(P.isSelfViewEvent){var x=P.getX(),v=P.getY(),h=P.getWidth(),S=P.getHeight(),W=R.style.background,D=R.style.backgroundColor;W||D||(R.style.backgroundColor="white"),R.requestFullscreen?R.requestFullscreen():R.msRequestFullscreen?R.msRequestFullscreen():R.mozRequestFullScreen?R.mozRequestFullScreen():R.webkitRequestFullscreen&&R.webkitRequestFullscreen();var $=setInterval(function(){if(R!==(U.fullscreenElement||U.mozFullScreenElement||U.webkitFullscreenElement||U.msFullscreenElement))clearInterval($),P.setX(x),P.setY(v),P.setWidth(h),P.setHeight(S),P._fullscreen=!1,R.style.oldBackgroundColor=D,P.iv();else{var s=F.Default.getWindowInfo();(g||s.width!==P.getWidth()||s.height!==P.getHeight())&&(P.setX(s.left),P.setY(s.top),P.setWidth(s.width),P.setHeight(s.height),P._fullscreen=!0,P.iv(),g=!1)}},500)}else{var j=R.style.left,p=R.style.top,h=R.style.width,S=R.style.height,W=R.style.background,D=R.style.backgroundColor;W||D||(R.style.backgroundColor="white"),R.requestFullscreen?R.requestFullscreen():R.msRequestFullscreen?R.msRequestFullscreen():R.mozRequestFullScreen?R.mozRequestFullScreen():R.webkitRequestFullscreen&&R.webkitRequestFullscreen();var $=setInterval(function(){if(R!==(U.fullscreenElement||U.mozFullScreenElement||U.webkitFullscreenElement||U.msFullscreenElement))clearInterval($),R.style.left=j,R.style.top=p,R.style.width=h,R.style.height=S,R.style.oldBackgroundColor=D,P.iv();else{var i=F.Default.getWindowInfo();(g||i.width!==P.getWidth()||i.height!==P.getHeight())&&(gb(P),g=!1)}},500)}}},appendTimeStamp:function(Q){return Q},setCompType:function(a,U){ib(U)&&U.substr(0,12)==Pl&&(U=t.parse(U)),ns(U)||Pg(U)?ue[a]=U:jh(a)},getCompType:function(q){var s=ue[q];return s===m&&cd.test(q)&&jh(q),s},getCompTypeMap:function(){return ue},drawCompType:function(u,B,t,N,Y,k){u(B,t,N,Y,k)},numberListener:function(){var N={46:1,8:1,9:1,27:1,13:1,109:1,110:1,189:1,190:1};return function(M){var L=M.keyCode;N[L]||65===L&&t.isCtrlDown(M)||86===L&&t.isCtrlDown(M)||67===L&&t.isCtrlDown(M)||88===L&&t.isCtrlDown(M)||L>=35&&40>=L||(M.shiftKey||48>L||L>57)&&(96>L||L>105)&&M.preventDefault()}}(),ignoreKeyCodes:[122,123],preventDefault:function(u){var Q=u.target.tagName;("DIV"===Q||"CANVAS"===Q)&&!(t.ignoreKeyCodes.indexOf(u.keyCode)>=0)&&("keydown"!==u.type||ab(u)||Uo(u)||Rk(u)||Dj(u)||vn(u)||65===u.keyCode&&(u.metaKey||u.ctrlKey))&&u.cancelable===!0&&(u.preventDefault(),u.preventManipulation&&u.preventManipulation())},getWindowInfo:function(){var e=U.documentElement,x=e&&(e.scrollLeft||e.scrollTop)?e:U.body;return{target:x,left:x.scrollLeft,top:x.scrollTop,width:q.innerWidth||x.clientWidth,height:q.innerHeight||x.clientHeight}},isDragging:function(){return!!gk},isLeftButton:function(n){return nf(n)?!0:0===n.button},isMiddleButton:function(d){return nf(d)?!1:d&&(1===d.button||4&(d.buttons||0))},isRightButton:function(s){return nf(s)?!1:s&&(2===s.button||2&(s.buttons||0))},isInput:function(L){if(!L)return!1;var X=L.tagName;return"INPUT"===X||"TEXTAREA"===X||"SELECT"===X},getTouchCount:function(l){return nf(l)?l.touches.length:1},isDoubleClick:function(){function f(Z){Z.details=0,Z.timeout=null,Z.lastPoint=null}var D={};return bi=new ep,Qd=bi.getTime(),function(v){if(um(v)>1)return!1;var V=v.button==P?"":v.button,g=v.type+V,A=g+"_isDoubleClick",n=D[g];if(n||(n=D[g]={details:0,timeout:null,lastPoint:null}),v[A]===m){v[A]=!0;var Z=Di(v);n.timeout&&(Nq(n.timeout),n.timeout=null);var r=nf(v)?t.doubleTouchRange:t.doubleClickRange;n.lastPoint&&Yh(n.lastPoint,Z)>r&&f(n),n.lastPoint=Z,n.details++,n.timeout=Zr(function(){f(this)}.bind(n),t.doubleClickSpeed)}return 2===n.details}}(),isShiftDown:function(v){return v?v.shiftKey:th["16"]},isCtrlDown:function(P){return P?Gm?P.metaKey:P.ctrlKey:Gm?th["91"]:th["17"]},getClientPoint:function(K){return nf(K)&&(K=Xi(K)),{x:K.clientX,y:K.clientY}},isMouseEvent:function(k){return k instanceof MouseEvent||0===k.type.indexOf("mouse")},getTargetElement:function(p){var k,d=Yr(p);if(k=t.isMouseEvent(p)||!U.elementFromPoint?p.target:U.elementFromPoint(d.x,d.y),jr&&U.elementFromPoint){for(var c=[],O=[];"none"===k.style.pointerEvents;)c.push(k),O.push(k.style.display||""),k.style.display="none",k=U.elementFromPoint(d.x,d.y);c.forEach(function(p,U){p.style.display=O[U]})}return k},getPagePoint:function(u){return nf(u)&&(u=Xi(u)),{x:u.pageX,y:u.pageY}},createObject:function(S,O){var G=new S;for(var p in O){var a=O[p];if(ns(a))G[p]=a;else if(0===p.indexOf("s:"))G.s(p.substr(2),O[p]);else if(0===p.indexOf("a:"))G.a(p.substr(2),O[p]);else{var V=dc(p),a=O[p];G[V]?(G[V](a),"setToolTip"===V&&G.enableToolTip&&G.enableToolTip()):G[p]=a}}return G},setImage:function(J,G,h,N){var Q=arguments.length;4===Q?Ed(J,N,G,h):2===Q?ib(G)?G.substr(0,12)==Pl?sf(J,t.parse(G)):Ed(J,G):sf(J,G):1===Q&&Ed(J,J)},getImage:function(B,M,A){var r;if(B==P)return P;if(Pg(B)?r=B:(r=Tr[B],B&&r===m&&(lq&&lq[B]||Ed(B,B))),M&&r&&r.tagName){var _;_="override"===A?"colors_override":"override_rgb"===A?"colors_override_rgb":"override_a"===A?"colors_override_a":"colors",r[_]||(r[_]={__count__:0});var G=r[_][M];return G||(r[_].__count__>t.imageCacheThreshold&&(r[_]={__count__:0}),G=Ij(r,Jh(M),r.width,r.height,A),r[_][M]=G,r[_].__count__++),G}return r},isImageComplete:function(R,c,g){var T=tc(R);if(!T)return!1;if(T.tagName)return T.complete;for(var A,R,D,s=T.comps,l=!0,V=0,p=s.length;p>V;V++)if(A=s[V],D=A.type,"image"===A.type){R=A.name,R&&R.func&&(R=Lk(R,c));var F=kj(R,c,g);if(!F){l=!1;break}}else if(cd.test(D)&&t.getCompType(D)===m){l=!1,jh(D);break}return l},getId:function(){var S=1;return function(){return++S}}(),callLater:function(Y,O,v,_){var G=function(){Y.apply(O,v)};return _?Zr(G,_):q.requestAnimationFrame(G)},cancelLater:function(V,$){$?Nq(V):q.cancelAnimationFrame(V)},clone:function(J){if(null==J||"object"!=typeof J)return J;if(J instanceof Date){var K=new Date;return K.setTime(J.getTime()),K}if(J instanceof Array){for(var K=[],u=0,k=J.length;k>u;u++)K[u]=Wl(J[u]);return K}if(J instanceof Po){for(var K=new Po,u=0,k=J.length;k>u;u++)K.set(u,Wl(J.get(u)));return K}if(J instanceof Pi)return J;if(J instanceof zk){var K=new zk;return K.deserialize(J.serialize()),K}if(J instanceof $){var K={};for(var _ in J)J.hasOwnProperty(_)&&(K[_]=Wl(J[_]));return K}return J},callWhenLoaded:function(U,N){N=N||100;var R=vg(U,N);qh||(qh={}),qh[R]={tick:R,cb:U,delay:N}},beforeLoadURL:function(R,W){if(qh){var X={};for(var W in qh){var $=qh[W];Nq($.tick);var d=vg($.cb,$.delay);X[d]={tick:d,delay:$.delay,cb:$.cb}}qh=X}return t.convertURL?t.convertURL(R,W):R},convertURL:function(g){return g},handleRefGraphLoaded:function(){},handleCompTypeLoaded:function(){},handleImageLoaded:function(){},handleUnfoundImage:function(){return t.getImage("default_blank")},resizeImage:function(s,p,l,Z){l||(l=p),Z||(Z=Hj());var X=Z.getContext("2d");return _j(Z,p,l,1),X.drawImage(s,0,0,p,l),Z},resizeImagePOT:function(x,w,E){if(!x||!x.tagName)return x;var S=x.width,C=x.height;if(!S||!C)return x;if(vj.isPOT(S)&&vj.isPOT(C)&&(!w||S===C))return x;var i,W;return w?W=i=vj.nearestPOT(Math.min(S,C)):(i=vj.nearestPOT(S),W=vj.nearestPOT(C)),t.resizeImage(x,i,W,E)},sortFunc:function(i,G){if(i===G)return 0;if(i==P&&G!=P)return 1;if(i!=P&&G==P)return-1;if(i==P&&G==P)return 0;var g,p=typeof i,d=typeof G;return p===rj&&d===rj?g=i.localeCompare(G):p===mc&&d===mc&&(g=i-G),g===m&&(g=(""+i).localeCompare(""+G)),g>0?1:0>g?-1:0},getClassMap:function(){return Kk},getClass:function(V){if(ib(V)){var R,k=Kk[V];if(!k){R=V.split("."),k=q;for(var d=0;d1&&(Q=1),Y.t=Q,Y.action(Y.easing(Q),Q),!Y.isRunning())return;1===Q?Y.stop():Y._isPaused||(Y.timeId=ne(Y.tick))}else{if(Y.frame++,Q=Y.t=Y.frame/Y.frames,Y.action(Y.easing(Q),Q),!Y.isRunning())return;Y.frameU&&(U=-U),Bd(G,U?U:40)},darker:function(g,w){return w>0&&(w=-w),Bd(g,w?w:-40)},unionPoint:function(i,x){if(!i)return P;if(2===arguments.length)return i&&x?{x:v(i.x,x.x),y:v(i.y,x.y),width:_(i.x-x.x),height:_(i.y-x.y)}:P;var R=i;if(R._as&&(R=R._as),R.length===m)return P;var o=R.length;if(0>=o)return P;for(var X=1,q=R[0],Q={x:q.x,y:q.y,width:0,height:0};o>X;X++){q=R[X];var S=v(Q.x,q.x),s=B(Q.x+Q.width,q.x),r=v(Q.y,q.y),V=B(Q.y+Q.height,q.y);Q.x=S,Q.y=r,Q.width=s-S,Q.height=V-r}return Q},unionRect:function(s,O){if(s&&!O)return Wl(s);if(!s&&O)return Wl(O);if(s&&O){var L={x:v(s.x,O.x),y:v(s.y,O.y)};return L.width=B(s.x+s.width,O.x+O.width)-L.x,L.height=B(s.y+s.height,O.y+O.height)-L.y,L}return P},containsPoint:function(R,N,v,G){if(G!=P&&1!==G){var z=R.x+R.width/2,X=R.y+R.height/2;R={x:z-R.width/2*G,y:X-R.height/2*G,width:R.width*G,height:R.height*G}}if(v){var o=R.width/2,i=R.height/2,y=r(-v),O=n(-v),p=N.x-R.x-o,L=N.y-R.y-i;return N={x:O*p-y*L,y:y*p+O*L},kf({x:-o,y:-i,width:R.width,height:R.height},N)}return!(!R||N.xR.x+R.width||N.y>R.y+R.height)},containsRect:function(k,e){if(!k||!e)return!1;var y=e.x,n=e.y,j=e.width,A=e.height,w=k.width,Z=k.height;if(0>(w|Z|j|A))return!1;var d=k.x,z=k.y;if(d>y||z>n)return!1;if(w+=d,j+=y,y>=j){if(w>=d||j>w)return!1}else if(w>=d&&j>w)return!1;if(Z+=z,A+=n,n>=A){if(Z>=z||A>Z)return!1}else if(Z>=z&&A>Z)return!1;return!0},intersectsRect:function(k,C){if(!k||!C)return!1;var m=C.width,U=C.height,u=k.width,V=k.height;if(0>=u||0>=V||0>=m||0>=U)return!1;var y=C.x,O=C.y,c=k.x,z=k.y;return u+=c,V+=z,m+=y,U+=O,u>y&&V>O&&m>c&&U>z},intersection:function(w,j){if(!w||!j)return P;var m=j.x,u=j.y,g=w.x,N=w.y,X=m,O=u,D=g,q=N;return X+=j.width,O+=j.height,D+=w.width,q+=w.height,g>m&&(m=g),N>u&&(u=N),X>D&&(X=D),O>q&&(O=q),X-=m,O-=u,0>=X||0>=O?P:{x:m,y:u,width:X,height:O}},grow:function(s,z,b){b===m&&(b=z),s.x-=z,s.y-=b,s.width=s.width+2*z,s.height=s.height+2*b},getScreenPoint:function(h,y,j,V,A,p,O){var H=j.getBoundingClientRect(),w=h*(p||1)-j.scrollLeft+(V||0),G=y*(O||1)-j.scrollTop+(A||0),x=Vd(j,!1);if(x){var $=new lp(w,G,0);return $.applyMatrix4(x),console.log($),{x:$.x,y:$.y}}return{x:w+H.left,y:G+H.top}},getLogicalPoint:function(H,T,t,C,N,q){var x,l,h=T.getBoundingClientRect(); H.target?(Hn(H)?Gm?th["91"]=!0:th["17"]=!0:Gm?th["91"]=!1:th["17"]=!1,th["16"]=Me(H)?!0:!1,H=nf(H)?Xi(H):H,x=H.clientX,l=H.clientY):(x=H.x,l=H.y);var X=Vd(T,!0);if(X){var n=new lp(x,l,0);n.applyMatrix4(X);do{if(Math.abs(n.z)<=1e-6)break;var O=new lp(x,l,1);if(O.applyMatrix4(matrix),Math.abs(O.z)<=1e-6){n=O;break}if(O.sub(n),Math.abs(O.z)<=1e-6)break;n.addScaledVector(O,-n.z/O.z)}while(!1);return{x:(n.x+T.scrollLeft-(t||0))/(N||1),y:(n.y+T.scrollTop-(C||0))/(q||1)}}return{x:(x-h.left+T.scrollLeft-(t||0))/(N||1),y:(l-h.top+T.scrollTop-(C||0))/(q||1)}},removeHTML:function(){var D;return function(i){return i&&i.getView&&(i=i.getView()),i&&i.parentNode?D===i?!0:(D=i,i.parentNode.removeChild(i),D=P,!0):!1}}(),getToolTipDiv:function(){if(!om){om=go(),ms=go();var l=om.style;t.baseZIndex!=P&&(l.zIndex=vr(t.baseZIndex)+3+""),l.whiteSpace="nowrap",l.color=t.toolTipLabelColor,l.background=t.toolTipBackground,l.font=t.toolTipLabelFont,l.padding="5px",l.boxShadow="0px 0px 3px "+t.toolTipShadowColor}return om},isToolTipShowing:function(){return om&&om.parentNode?!0:ms&&ms.parentNode?!0:!1},updateToolTipContent:function(T,n){if(t.isToolTipShowing()&&(n||(n=Nk&&Nk.view),T===m&&n&&Nk.e&&(T=n.getToolTip(Nk.e)),T!=P)){var U;T.html?(T=T.html,U=ms):U=om,U.innerHTML=T}},hideToolTip:function(){if(t.isToolTipShowing()){_g(om),_g(ms),iq();var B=Nk&&Nk.view;B&&B.onHideToolTip&&B.onHideToolTip(),Nk=P}},showToolTip:function(y,c,z){if(!y||c==P)return Re(),void 0;t.getToolTipDiv();var B,r;if(c.html?(c=c.html,B=ms,_g(om)):(B=om,_g(ms)),r=B.style,B.innerHTML=c,B.parentNode||F.Default.appendToScreen(B),y.target){y=Yr(y);var i=re(),x=y.x,w=y.y,Z=pr?60:12;if(pr){var V=B.getBoundingClientRect();r.left=x-V.width/2+Lq,r.top=w-V.height-Zi.width&&(r.left=x-Z-V.width+Lq),V.top+V.height>i.height&&(r.top=w-Z-V.height+Lq),V.left<0&&(r.left=x+Z+Lq),V.top<0&&(r.top=w+Z+Lq)}}else r.left=y.x+Lq,r.top=y.y+Lq;iq(),z===m?z=Nk&&Nk.view:Nk={e:y,view:z},z&&z.onShowToolTip&&z.onShowToolTip()},startDragging:function(p,y,V){V==m&&(V=!0),p!==gk&&(gk?V&&(nf(y)?gk.handleWindowTouchEnd(y):gk.handleWindowMouseUp(y)):nf(y)?(N(q,Gb,In),N(q,Ef,Qp),N(q,"blur",Qp)):(N(q,qo,Bs),N(q,$g,wg),N(q,"blur",wg)),gk=p)},getImageMap:function(){return Tr},toBoundaries:function(X,e,U,N){var f=[];return xb(X,e,U,N).forEach(function(A){var n=[];A.forEach(function(A){n.push(A.x,A.y)}),f.push(n)}),f},getCurrentKeyCodeMap:function(){return th},drawCenterImage:function(x,A,t,b,w,k,L,n){!w&&k&&k.isSelfViewEvent&&(w=k);var h=zs(A,w,k),D=Mc(A,w,k);vb(x,A,W(t-h/2),W(b-D/2),h,D,w,k,L,n)},drawStretchImage:function(i,E,N,U,V,Q,C,e,x,j,n,f){!e&&x&&x.isSelfViewEvent&&(e=x);var T,g=zs(E,e,x,Q),o=Mc(E,e,x,C);"uniform"===N?(T=v(Q/g,C/o),g*=T,o*=T,U+=W((Q-g)/2),V+=W((C-o)/2),Q=g,C=o):"centerUniform"===N&&((g>Q||o>C)&&(T=v(Q/g,C/o),g*=T,o*=T),U+=W((Q-g)/2),V+=W((C-o)/2),Q=g,C=o);var L=i.interactiveInfo;if(L){var m;if(m="center"===N?{x:U+Q/2-g/2,y:V+C/2-o/2,width:g,height:o}:{x:U,y:V,width:Q,height:C},L.rect){var Y=L.compInfos,a=Y.length;a&&(Y[a-1].rect.image=E)}else L.rect=m}if("center"===N){var p=n!==!1&&(g>Q||o>C);p&&(i.save(),i.beginPath(),i.rect(U,V,Q,C),i.clip()),vb(i,E,U+Q/2-g/2,V+C/2-o/2,g,o,e,x,j,f),p&&i.restore()}else vb(i,E,U,V,Q,C,e,x,j,f)},toCanvas:function(X,z,h,y,E,Y,t,n,l){X=tc(X,t),z=z||zs(X,E),h=h||Mc(X,E);var x=Hj(),f=Lh(x);return n?(_j(x,z,h,n),f.scale(n,n)):_j(x,z,h,1),Ql(f,X,y,0,0,z,h,E,Y,t,l),X&&X.clampToEdge&&(x.clampToEdge=X.clampToEdge),f.restore(),x},toGrayColor:function(x){if(!x)return x;var o=Jp(x),q=W(.299*o[0]+.587*o[1]+.114*o[2]);return"rgba("+q+","+q+","+q+","+o[3]/255+")"},createGradientImage:function(K,w,B,L){for(var X=["L",0,0,K,0,1,0,0,1,0,0],G=0,f=Math.min(w.length,B.length);f>G;G++)X.push(B[G],w[G]);var y=F.Default.toCanvas({width:K,height:K,clampToEdge:!0,comps:[{type:"shape",rotation:L||0,points:[0,0,K,0,K,K,0,K],background:"#ffffff",gradientPack:X}]});return y},createElement:function(f,m,M,X){var Z=U.createElement(f);return wm(Z,m||O.widgetBorder,2),Z.style.font=M?M:lk,X!=P&&(Z.value=X),t.onElementCreated&&t.onElementCreated(Z),Z},containedInView:function(v,H){var Y=Mh(H).getBoundingClientRect();return kf({x:Y.left,y:Y.top,width:Y.width,height:Y.height},Di(v))},isIsolating:function(){return ig>0},setIsolating:function(o){o?ig++:ig--},getMSMap:function(){return Io},stringify:function(U,N,A){var $=Date.prototype.toJSON;Date.prototype.toJSON=function(){return"__ht__date"+this.getTime()};var s=zk.prototype.toJSON;zk.prototype.toJSON=function(){return"__ht__dataModel"+this.serialize(0)},N=A?0:N==P?2:N;var d=JSON.stringify(U,function(D,x){return"function"==typeof x?"__ht__"+(x.__ht__||x.toString()):Ll(x)?ae(x):x instanceof F.List?"__ht__list"+(x.__ht__list||t.stringify(x._as)):x},N);return Date.prototype.toJSON=$,zk.prototype.toJSON=s,A&&(d=Pl+Dc(d)),d},parse:function(S,G){return ib(S)?S.substr(0,12)!=Pl||(S=Sk(S.substr(12)),ib(S))?(G=G||{},JSON.parse(S,function(j,q){if(ib(q))if(G.ignoreFunction||"__ht__function"!=q.substr(0,14)){if(!G.ignoreDate&&"__ht__date"==q.substr(0,10))return new Date(vr(q.substr(10)));if("__ht__list"===q.substr(0,10))return new Po(t.parse(q.substr(10)));if(!G.ignoreDataModel&&"__ht__dataModel"===q.substr(0,15)){var I=new zk;return I.deserialize(t.parse(q.substr(15))),I}}else{var F=q.indexOf("{")+1,C=q.lastIndexOf("}"),Z=q.indexOf("(")+1,B=q.indexOf(")");if(F&&C&&Z&&B)try{var U=new Function(q.substring(Z,B),q.substring(F,C));return U.__ht__=q.substr(6),U}catch(S){throw console.info("=== SyntaxError ===\n",q),S}}return q})):S:S},loadJS:function(o,Z){Z&&o.push(Z);var v=o.shift();if(ks(v))o=v.contact(o),t.loadJS(o);else if(ns(v))v(),t.loadJS(o);else if(ib(v)){var G=U.createElement("script");G.onload=function(){t.loadJS(o)},G.setAttribute("src",v),U.getElementsByTagName("head")[0].appendChild(G)}else o.length&&t.loadJS(o)},extendClass:function(h,l){var u=h.prototype;for(var w in l)Io[w]&&Io.hasOwnProperty(w)?Io[w](u,l):u[w]=l[w]},toRoundedCorner:function(){function Y(M,j,V){M.x=j.x,M.y=j.e||V,M.z=j.y}var G=new lp,l=new lp,f=new lp,Q=new lp;return function(x,u){var F,C=0;x.getPoints&&(C=x.getElevation(),x=x.getPoints()),F=x instanceof Po?x:new Po(x);var O=F.size();if(0>=u)return{points:F};var r=new Po,E=new Po,w=F.get(0);Y(G,w,C),r.add(w),E.add(1);for(var $=1;O>$;$++)if(O>$+1){var o=F.get($),i=F.get($+1);Y(l,o,C),Y(f,i,C),Q.subVectors(G,l).setLength(Math.min(.99*Q.length(),u)).add(l),o.e!==m||w.e!==m?r.add({x:Q.x,y:Q.z,e:Q.y}):r.add({x:Q.x,y:Q.z}),r.add(o),Q.subVectors(f,l).setLength(Math.min(.99*Q.length(),u)).add(l),o.e!==m||i.e!==m?r.add(w={x:Q.x,y:Q.z,e:Q.y}):r.add(w={x:Q.x,y:Q.z}),G.copy(Q),E.addAll([2,3])}else r.add(F.get($)),E.add(2);return{points:r,segments:E}}}(),toColorData:Jp,setCanvas:_j,createDiv:go,createDisabledDiv:Uc,createView:Bg,createCanvas:Hj,appendChild:tg,initContext:Lh,checkLoadingImage:dn,translateAndScale:Ag,layout:gb,getPosition:jl,drawPoints:hq,drawRoundRect:Kc,drawBorder:qc,setFocus:Fh,getter:Qo,setter:dc,isEmptyObject:Dp,cameraPriority:function(){var G={skybox:0,main:1e4,top:1e7,infinity:1/0};return $.seal($.defineProperties({},{skybox:{configurable:!1,enumerable:!1,get:function(){return G.skybox},set:function(r){if(r>=G.main)throw new RangeError("Skybox camera must have lower priority than the main camera.");G.skybox=Number(r)}},main:{configurable:!1,enumerable:!1,get:function(){return G.main},set:function(s){if(s<=G.skybox)throw new RangeError("Main camera must have higher priority than the skybox camera.");if(s>=G.top)throw new RangeError("Main camera must have lower priority than the top camera.");G.main=Number(s)}},top:{configurable:!1,enumerable:!1,get:function(){return G.top},set:function(m){if(m<=G.main)throw new RangeError("Top camera must have higher priority than the main camera.");G.top=Number(m)}}}))}()},!0),di(i,{autoAdjustIndex:1,hierarchicalRendering:1,adjustChildrenToTop:1,autoHideScrollBar:1,autoUpdate:1,firstPersonMode:1,ortho:1,strict:1,stickToRight:1,instant:1,closePath:1,hierarchical:1,doubleClickToToggle:1,continuousLayout:1,syncSize:1},!0);var Yb=t.disabledOpacity,Sg=t.toolTipDelay,Jr=t.devicePixelRatio,Od=t.autoMakeVisible,Vf=t.autoHideScrollBar,Dh=t.imageGradient,Fl=t.showToolTip,Re=t.hideToolTip,un=t.dashPattern,Sm=t.lineCap,ug=t.lineJoin,Ak=t.labelColor,Nr=t.labelSelectColor,lk=t.labelFont,rc=t.widgetIndent,oi=t.widgetRowHeight,je=t.widgetHeaderHeight,Rr=t.widgetTitleHeight,Zm=t.scrollBarColor,Yi=t.scrollBarSize,xh=t.scrollBarTimeout,bn=t.scrollBarMinLength,ki=t.scrollBarInteractiveSize,Ie=t.zoomIncrement,Bj=t.scrollZoomIncrement,Fk=t.pinchZoomIncrement,Wj=t.zoomMax,uo=t.zoomMin,Cg=t.createObject,Nj=t.preventDefault,Yc=t.setImage,tc=t.getImage,kj=t.isImageComplete,yl=t.drawCenterImage,Ql=t.drawStretchImage,hi=t.getId,ne=t.callLater,ck=t.cancelLater,ub=t.sortFunc,Wl=t.clone,Wc=t.getClass,df=t.startAnim,pp=t.brighter,We=t.darker,hp=t.drawText,Dd=t.getTextSize,yn=t.isLeftButton,kq=t.isMiddleButton,Yk=t.isRightButton,um=t.getTouchCount,De=t.isDoubleClick,Me=t.isShiftDown,Hn=t.isCtrlDown,Di=t.getClientPoint,Yr=t.getPagePoint,Yh=t.getDistance,es=t.unionPoint,tn=t.unionRect,kf=t.containsPoint,cc=t.containsRect,vf=t.intersectsRect,Si=t.intersection,re=t.getWindowInfo,Cl=t.grow,gg=t.getLogicalPoint,pd=t.getScreenPoint,$k=t.startDragging,_g=t.removeHTML,Uf=t.createElement,ul=t.segmentResolution,Mq=t.shapeResolution,Ni=t.shapeSide,Ri=t.def,yr=function(m,u,U){Ri(Z+"."+m,u,U)},mh=function(O,Q){O.childNodes.forEach(function(B){Q(B),mh(B,Q)})};di(t,{toolTipLabelColor:Ak,toolTipLabelFont:lk,toolTipBackground:O.toolTipBackground,toolTipShadowColor:Pe,debugTipLabelFont:lk,debugTipLabelColor:Ak,debugTipBackground:O.toolTipBackground,drawBreakableText:hb,setDevicePixelRatio:function(D){Jr=t.devicePixelRatio="number"==typeof D?D:cr(q),mh(U.body,function(S){var b=S._ht;b&&b._canvas&&(_j(b._canvas,b.getWidth(),b.getHeight()),b.redraw?b.redraw():b.iv())})},getPosition3dGap:function(){return Pq()}},!0);var Id=1e-6,km="undefined"!=typeof Uint16Array?Uint16Array:Array,ip="undefined"!=typeof Float32Array?Float32Array:Array,se=function(F,X,K){var m=[F[0]-X[0],F[1]-X[1],F[2]-X[2]];if(K){var s=Yh(m);s>0&&(m[0]/=s,m[1]/=s,m[2]/=s)}return m},ld=function(){var M="charCodeAt",u=2*(2*tq.length+1);for(var O in q)if(O===Z+dk[0]+(Lq.length+2)){var V=q[O];if(!V)break;for(var L=V.length,U=0;L>U;U++)if(V[U][M](0)===u&&V[U+1]!=P&&V[U+1]===Lq[0]&&V[U+2]!=P&&V[U+2][M](0)===u){for(var Y=U+3;L>Y;Y++)if(V[Y][M](0)===u){if(0==V[Y+1])for(var N,C=Y+2;L>C;C++){if(V[C][M](0)===u){0==V[C-1]&&N&&(fl=N.substr(0,N.length-1));break}N==P?N=V[C]:N+=V[C]}break}break}break}return function(g){return[-g[0],-g[1],-g[2]]}}(),Ze=function(b,G){return 3===b.length?b[0]*G[0]+b[1]*G[1]+b[2]*G[2]:b[0]*G[0]+b[1]*G[1]},tk=function(){var X=new Array(16);return X[0]=1,X[1]=0,X[2]=0,X[3]=0,X[4]=0,X[5]=1,X[6]=0,X[7]=0,X[8]=0,X[9]=0,X[10]=1,X[11]=0,X[12]=0,X[13]=0,X[14]=0,X[15]=1,X},Zf=tk(),qk=function(F){var b=new Array(16);return b[0]=F[0],b[1]=F[1],b[2]=F[2],b[3]=F[3],b[4]=F[4],b[5]=F[5],b[6]=F[6],b[7]=F[7],b[8]=F[8],b[9]=F[9],b[10]=F[10],b[11]=F[11],b[12]=F[12],b[13]=F[13],b[14]=F[14],b[15]=F[15],b},Vb=function(_,B){return _[0]=B[0],_[1]=B[1],_[2]=B[2],_[3]=B[3],_[4]=B[4],_[5]=B[5],_[6]=B[6],_[7]=B[7],_[8]=B[8],_[9]=B[9],_[10]=B[10],_[11]=B[11],_[12]=B[12],_[13]=B[13],_[14]=B[14],_[15]=B[15],_},dl=function(j){return j[0]=1,j[1]=0,j[2]=0,j[3]=0,j[4]=0,j[5]=1,j[6]=0,j[7]=0,j[8]=0,j[9]=0,j[10]=1,j[11]=0,j[12]=0,j[13]=0,j[14]=0,j[15]=1,j},Ae=function(F,p){var A=F[0],o=F[1],O=F[2];return F[0]=p[0]*A+p[4]*o+p[8]*O+p[12],F[1]=p[1]*A+p[5]*o+p[9]*O+p[13],F[2]=p[2]*A+p[6]*o+p[10]*O+p[14],F},Nb=function(n,V){var q=n[0],v=n[1],S=n[2],J=n[3];return n[0]=V[0]*q+V[4]*v+V[8]*S+V[12]*J,n[1]=V[1]*q+V[5]*v+V[9]*S+V[13]*J,n[2]=V[2]*q+V[6]*v+V[10]*S+V[14]*J,n[3]=V[3]*q+V[7]*v+V[11]*S+V[15]*J,n},cb=function(){var T,p,$,l,Z=Ck(yh[1]+yh[7]),r=Ck(yh[0]+yh[3]-yh[10]),o=Ck(yh[8]+2),D=function(){return p=$.charAt(T),T+=1,p},d=function(){var X="";if(p===o)for(;D();){if(p===o)return D(),X;X+=p}else D()},y=function(){for(;p&&" ">=p;)D()},u=function(){var U,T={};if(p===Z){if(D(),y(),p===r)return D(),T;for(;p;){if(U=d(),y(),D(),T[U]=l(),y(),p===r)return D(),T;D(),y()}}};return l=function(){switch(y(),p){case Z:return u();default:return d()}},function(m){if(b={},m){var L;if($=m,T=0,p=" ",L=l(),y(),!p)return L}}}(),dg=function(P,U){if(U){var q=r(U),m=n(U),u=P[4],w=P[5],C=P[6],G=P[7],e=P[8],_=P[9],T=P[10],k=P[11];P[4]=u*m+e*q,P[5]=w*m+_*q,P[6]=C*m+T*q,P[7]=G*m+k*q,P[8]=e*m-u*q,P[9]=_*m-w*q,P[10]=T*m-C*q,P[11]=k*m-G*q}},Sc=function(e,A){if(A){var K=r(A),z=n(A),p=e[0],j=e[1],m=e[2],Z=e[3],D=e[8],S=e[9],W=e[10],R=e[11];e[0]=p*z-D*K,e[1]=j*z-S*K,e[2]=m*z-W*K,e[3]=Z*z-R*K,e[8]=p*K+D*z,e[9]=j*K+S*z,e[10]=m*K+W*z,e[11]=Z*K+R*z}},Il=function(E,l){if(l){var d=r(l),O=n(l),e=E[0],Y=E[1],I=E[2],X=E[3],L=E[4],S=E[5],F=E[6],o=E[7];E[0]=e*O+L*d,E[1]=Y*O+S*d,E[2]=I*O+F*d,E[3]=X*O+o*d,E[4]=L*O-e*d,E[5]=S*O-Y*d,E[6]=F*O-I*d,E[7]=o*O-X*d}},On=function(R,d,h){return wf(P,h===!1?P:R.getFinalScale3d(),R.getFinalRotation3d(),R.getRotationMode(),R.p3(),P,d)},wf=function(m,T,_,f,t,M,H){return M||(M=tk()),t&&Xc(M,t),Xr(M,_,f),H&&kl(M,M,H),T&&Qf(M,T),m&&kl(M,M,m),M},gp=function(U,p,T){p=vr(p),T=vr(T);var f=this;f.g=U,f._84O=p,f._85O=T,f._70I=!0,f.F=0,f._83O=p+T,f.pen={x:0,y:0}},wk="lineDashOffset",Td="setLineDash",Bk=function(i){for(var U in i)1===U.length&&(wk=i[U]);return U?1:0},mn=function(M,L,x){return ys(L)?M:M[Td]?(M[Td](L),x&&(M.lineDashOffset=x),M):new gp(M,L[0],L.length>1?L[1]:L[0])},si=function(Q,F){!ys(F)&&Q[Td]&&(Q[Td](up),Q.lineDashOffset=0)};Ri(gp,$,{_69I:6,moveTo:function(i,w){var S=this,o=S.pen;o.x=i,o.y=w,S.g.moveTo(i,w),S.start||(S.start={x:i,y:w})},lineTo:function(M,P){var K=this,s=K.pen,$=M-s.x,N=P-s.y,y=Of(N,$),w=n(y),d=r(y),Z=K._23O(s.x,s.y,M,P),p=K._85O,S=K._84O,e=K._83O;if(K.F){if(K.F>Z)return K._70I?K._72I(M,P):K.moveTo(M,P),K.F-=Z,void 0;if(K._70I?K._72I(s.x+w*K.F,s.y+d*K.F):K.moveTo(s.x+w*K.F,s.y+d*K.F),Z-=K.F,K.F=0,K._70I=!K._70I,!Z)return}var q=x(Z/e);if(q){for(var f=w*S,U=d*S,F=w*p,t=d*p,k=0;q>k;k++)K._70I?(K._72I(s.x+f,s.y+U),K.moveTo(s.x+F,s.y+t)):(K.moveTo(s.x+F,s.y+t),K._72I(s.x+f,s.y+U));Z-=e*q}K._70I?Z>S?(K._72I(s.x+w*S,s.y+d*S),K.moveTo(M,P),K.F=p-(Z-S),K._70I=!1):(K._72I(M,P),Z===S?(K.F=0,K._70I=!K._70I):(K.F=S-Z,K.moveTo(M,P))):Z>p?(K.moveTo(s.x+w*p,s.y+d*p),K._72I(M,P),K.F=S-(Z-p),K._70I=!0):(K.moveTo(M,P),Z===p?(K.F=0,K._70I=!K._70I):K.F=p-Z)},quadraticCurveTo:function(R,K,Z,e){var c,L=this,t=L.pen,J=t.x,I=t.y,F=L._22O(J,I,R,K,Z,e),M=0,W=0,S=L._85O,l=L._84O;if(L.F){if(L.F>F)return L._70I?L._71I(R,K,Z,e):L.moveTo(Z,e),L.F-=F,void 0;if(M=L.F/F,c=L._20O(J,I,R,K,Z,e,M),L._70I?L._71I(c[2],c[3],c[4],c[5]):L.moveTo(c[4],c[5]),L.F=0,L._70I=!L._70I,!F)return}var v=F-F*M,B=x(v/L._83O),y=l/F,T=S/F;if(B)for(var A=0;B>A;A++)L._70I?(W=M+y,c=L._21O(J,I,R,K,Z,e,M,W),L._71I(c[2],c[3],c[4],c[5]),M=W,W=M+T,c=L._21O(J,I,R,K,Z,e,M,W),L.moveTo(c[4],c[5])):(W=M+T,c=L._21O(J,I,R,K,Z,e,M,W),L.moveTo(c[4],c[5]),M=W,W=M+y,c=L._21O(J,I,R,K,Z,e,M,W),L._71I(c[2],c[3],c[4],c[5])),M=W;v=F-F*M,L._70I?v>l?(W=M+y,c=L._21O(J,I,R,K,Z,e,M,W),L._71I(c[2],c[3],c[4],c[5]),L.moveTo(Z,e),L.F=S-(v-l),L._70I=!1):(c=L._19O(J,I,R,K,Z,e,M),L._71I(c[2],c[3],c[4],c[5]),F===l?(L.F=0,L._70I=!L._70I):(L.F=l-v,L.moveTo(Z,e))):v>S?(W=M+T,c=L._21O(J,I,R,K,Z,e,M,W),L.moveTo(c[4],c[5]),c=L._19O(J,I,R,K,Z,e,W),L._71I(c[2],c[3],c[4],c[5]),L.F=l-(v-S),L._70I=!0):(L.moveTo(Z,e),v===S?(L.F=0,L._70I=!L._70I):L.F=S-v)},bezierCurveTo:function(){var V=arguments;this.pen={x:V[4],y:V[5]},this.g.bezierCurveTo(V[0],V[1],V[2],V[3],V[4],V[5])},arc:function(R,A,_,u,g,W){W||(u=-u,g=-g),Bb(this,R,A,u,g-u,_,_,!1)},rect:function(i,Y,y,v){var I=this;I.pen={x:i,y:Y},I.moveTo(i,Y),I.lineTo(i,Y+v),I.lineTo(i+y,Y+v),I.lineTo(i+y,Y),I.lineTo(i,Y)},beginPath:function(){this.g.beginPath()},closePath:function(){this.lineTo(this.start.x,this.start.y)},_23O:function(R,y,C,G){var f=C-R,t=G-y;return L(f*f+t*t)},_22O:function(h,Z,V,i,R,U,S){for(var e,N,c,x,u,Y,$,C=0,M=h,F=Z,b=S>0?S:this._69I,B=1;b>=B;B++)c=B/b,x=1-c,u=x*x,Y=2*c*x,$=c*c,e=u*h+Y*V+$*R,N=u*Z+Y*i+$*U,C+=this._23O(M,F,e,N),M=e,F=N;return C},_21O:function(v,j,O,S,C,H,W,D){var a=this;if(0===W)return a._20O(v,j,O,S,C,H,D);if(1===D)return a._19O(v,j,O,S,C,H,W);var s=a._20O(v,j,O,S,C,H,D);return s.push(W/D),a._19O.apply(a,s)},_20O:function(i,j,W,R,O,r,T){if(1!==T){var X=W+(O-W)*T,q=R+(r-R)*T;W=i+(W-i)*T,R=j+(R-j)*T,O=W+(X-W)*T,r=R+(q-R)*T}return[i,j,W,R,O,r]},_19O:function(V,f,Y,u,N,O,e){if(1!==e){var $=V+(Y-V)*e,_=f+(u-f)*e;Y+=(N-Y)*e,u+=(O-u)*e,V=$+(Y-$)*e,f=_+(u-_)*e}return[V,f,Y,u,N,O]},_72I:function(d,y){var b=this.pen;(d!==b.x||y!==b.y)&&(b.x=d,b.y=y,this.g.lineTo(d,y))},_71I:function(e,U,P,B){var u=this.pen;(e!==P||U!==B||P!==u.x||B!==u.y)&&(u.x=P,u.y=B,this.g.quadraticCurveTo(e,U,P,B))}}),Io.ms_quickVisible=function(R){R._4BQ=!1,R._4CQ=function(M){var n=M._4EQ;return n!==m?n:n=M._4EQ=this._4FQ(M)},R._4DQ=function(A){if(!A)return this.dm().each(function(d){d._4EQ=m}),void 0;A._4EQ=m;var n=this;if(A instanceof hf||hc(A)||A instanceof Pc||A.ISubGraph)A.eachChild(function(k){n.invalidateQuickVisible(k)});else if(A.getEdges){var y=A.getEdges();y&&y.each(function(m){n.invalidateQuickVisible(m)})}},R.enableQuickVisibleMode=function(){this._4BQ||(this._4BQ=!0,this._4FQ=this.isVisible,this.isVisible=this._4CQ,this.invalidateQuickVisible=this._4DQ)},R.disableQuickVisibleMode=function(){this._4BQ&&(this._4BQ=!1,this.isVisible=this._4FQ,this.invalidateQuickVisible=nn)},R.isQuickVisibleMode=function(){return this._4BQ},R.invalidateQuickVisible=nn},xj=ek()+1,Yo&&q.console&&xj&&!0&&(q.navigator&&q.navigator.userAgent.toLowerCase().indexOf("chrome")>-1?q.console.log.apply(console,["Hightopo - Version:"+F.Default.getVersion()+" - %cTrial:http://hightopo.com/request.html","color: #f00;"]):q.console.log("Hightopo - Version:"+F.Default.getVersion()+" - Trial:http://hightopo.com/request.html"));var fj=P,vp=P,Nd=t.checkLoadingCompType=function(u){fj&&!u._72O_&&(vp||(vp={}),vp[u._72O_=hi()]=u)},jh=function(b,j){if(j||(j=b),j&&(fj||(fj={}),!fj[b])){var f=new Ke;if(fj[j]={request:f,url:j},j=t.beforeLoadURL(j,b),j.data){var G=t.parse(j.data);Dr(b,G),t.handleCompTypeLoaded(b,G)}else{f.onload=function(){if(200===this.status||0===this.status){var s=t.parse(f.getResponseText());Dr(b,s),t.handleCompTypeLoaded(b,s)}else Dr(b,P)},f.onerror=function(){Dr(b,P)};var s={};s.url=encodeURI(j),s.sync=!1,f.send(s)}}},Dr=function(E,H){if(ue[E]=H,delete fj[E],Dp(fj)&&(fj=P,vp)){for(var f in vp){var I=vp[f];I.invalidateAll&&I.invalidateAll(m,"compTypeLoaded",E),I.redraw&&I.redraw(),I.iv(),delete I._72O_}vp=P}if(H&&vp)for(var f in vp){var I=vp[f];I.invalidateAll&&I.invalidateAll(m,"compTypeLoading",E),I.redraw&&I.redraw(),I.iv()}},Kf=O.chart,el="",Bn=!0,yj=t.compStack=[],Ki=/^style@/,gc=/^attr@/,Ib=/^field@/,Gl={x:.5,y:.5},li=function(){Bn=!0},Hi=function(){return Bn},zs=function(j,i,V,d){if(!j)return 0;if(Lk(j.fitSize,i,V)&&d)return d;var T=Lk(j.width,i,V);return null==T?20:T},Mc=function(w,J,b,M){if(!w)return 0;if(Lk(w.fitSize,J,b)&&M)return M;var D=Lk(w.height,J,b);return null==D?20:D},Lk=function(I,s,R){if(!I||!I.func)return I;var G,i=I.func,B=I.value;return G=ns(i)?R&&R.vectorDataBindingDisabled&&!I.isSafeFunc?B:i(s,R):s instanceof Pi||(F.ui?s instanceof F.ui.View:0)?gc.test(i)?s.a(el+i.slice(5)):Ki.test(i)?s.s(el+i.slice(6)):Ib.test(i)?s[i.slice(6)]:s[i]?s[i](R):B:B,B!==m&&G==P?B:G},vb=t.drawImage=function(){var W,y,X,L,o,z,k=3,K=6,a=function(R,x){R.getValue&&R.getValue.compType===x||(R.getValue=function(I){var H=U(R,I);if(H===m&&x.properties){var k=x.properties[I];k&&(H=k.defaultValue)}return H},R.getColor=function(C,H){return H===!0?V(C):V(R.getValue(C))},R.getValue.compType=x)},U=function(o,A,E){var w,s=!1;if(o.prefix&&y instanceof Pi){var i=y.a(el+A);i!==m&&(s=!0,w=i)}return w===m&&(w=o[A]),w&&w.func&&(s=!0,w=Lk(w,y,X)),E&&(w=E(w),s||(o[A]=w)),w},V=function(I,q){var e;return e=q?U(I,q):I,W&&W.compGray&&e?t.toGrayColor(e):o&&e?jq(e,o,z):e},C=function(R){if(ks(R)){for(var f=new Po,V=R.length,A=0;V>A;A+=2)f.add({x:R[A],y:R[A+1]});R=f}return R},H=function(f){var y=U(f,"anchorX"),i=U(f,"anchorY");if(y!==m||i!==m)return{x:y===m?Gl.x:y,y:i===m?Gl.y:i};var V=U(f,"type"),F=U(f,"name");if("image"!==V||!F)return Gl;var R=tc(F);return R&&R.anchorX!==m&&R.anchorY!==m?{x:R.anchorX,y:R.anchorY}:Gl},l=function(a,g){var u=U(a,Pj),k=H(a);if(ks(u)){var E=u.length,B=U(a,"relative"),f=g.width,e=g.height;if(4===E)u={x:u[0],y:u[1],width:u[2],height:u[3]},B&&(u.x*=f,u.y*=e,u.width*=f,u.height*=e);else if(3===E){var n=u[0];u={width:u[1],height:u[2]},B&&(u.width*=f,u.height*=e),"object"==typeof n?n.length&&(n={x:n[0],y:n[1]}):n=jl(n,g,u),u.x=n.x-u.width*k.x,u.y=n.y-u.height*k.y}u.x+=U(a,"offsetX")||0,u.y+=U(a,"offsetY")||0,!B&&g.fitSize&&(u=c(a,u,g))}return u},c=function(R,t,i){if(t){var q,v,y,l={x:t.x,y:t.y,width:t.width,height:t.height},I=H(R),o=U(R,"layoutH"),b=U(R,"layoutV"),u=1,B=1,Z=0,r=0,W=1,_=1;switch(o){case"left":break;case"right":l.x+=i.width-i.rw;break;case"center":l.x+=.5*(i.width-i.rw);break;case"scale":case"leftright":default:q=U(R,$f)||0,q&&(Z=Math.abs(r=Math.sin(q)),W=Math.abs(_=Math.cos(q))),"leftright"!==o?(u+=W*(i.widthScale-1),B+=Z*(i.widthScale-1)):(u+=l.width?W*(i.width-i.rw)/l.width:0,B+=l.height?Z*(i.width-i.rw)/l.height:0,v=-Math.min(-I.x*_+I.y*r,-I.x*_-(1-I.y)*r,(1-I.x)*_+I.y*r,(1-I.x)*_-(1-I.y)*r))}switch(b){case"top":break;case"bottom":l.y+=i.height-i.rh;break;case"center":l.y+=.5*(i.height-i.rh);break;case"scale":case"topbottom":default:q==P&&(q=U(R,$f),q&&(Z=Math.abs(r=Math.sin(q)),W=Math.abs(_=Math.cos(q)))),"topbottom"!==b?(u+=Z*(i.heightScale-1),B+=W*(i.heightScale-1)):(u+=l.width?Z*(i.height-i.rh)/l.width:0,B+=l.height?W*(i.height-i.rh)/l.height:0,y=-Math.min(-I.x*r-I.y*_,-I.x*r+(1-I.y)*_,(1-I.x)*r-I.y*_,(1-I.x)*r+(1-I.y)*_))}return(1!==u||1!==B)&&("scale"!==o&&o?"leftright"===o&&(l.x+=l.width*(1-u)*I.x+v*(i.width-i.rw)):l.x+=l.x*(i.widthScale-1)+I.x*l.width*(i.widthScale-u),"scale"!==b&&b?"topbottom"===b&&(l.y+=l.height*(1-B)*I.y+y*(i.height-i.rh)):l.y+=l.y*(i.heightScale-1)+I.y*l.height*(i.heightScale-B),l.width*=u,l.height*=B),l.width<0&&(l.width=0),l.height<0&&(l.height=0),l}},G=function(k){return ks(k)?new Po(k):k},D=function(f,i,z,N,x,A,G){var V=W.interactiveInfo,d=f.transform;if(d)return W.save(),W.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),V&&V.compInfos.push({comp:f,rect:i,matrix:d.clone(),prefix:el,refRect:V.refRect}),!0;x===m&&(x=1),A===m&&(A=1);var J=U(f,"clipPercentage"),Q=Ui(z,i);if(Q&&!N&&1===x&&1===A&&J==m)return V&&V.compInfos.push({comp:f,rect:i,matrix:V.matrix.clone(),prefix:el,refRect:V.refRect}),!1;G=G||Gl;var $=i.x+i.width*G.x,y=i.y+i.height*G.y,T=z.x+z.width*G.x,C=z.y+z.height*G.y,h=z.width?x*(i.width/z.width):1,c=z.height?A*(i.height/z.height):1;if(W.save(),V&&(V.matrix.appendTranslate($,y).appendRotate(N).appendScale(h,c).appendTranslate(-T,-C),V.compInfos.push({comp:f,rect:i,matrix:V.matrix.clone(),prefix:el,refRect:V.refRect})),Oc(W,$,y),tb(W,N||0),Qb(W,h,c),Oc(W,-T,-C),J!=m){var n=qs(z,U(f,"clipDirection"),J);W.beginPath(),W.rect(n.x,n.y,n.width,n.height),W.clip()}return!0},u=function(){W.restore()},w=function(I,w,c){var R=U(I,"path"),K=U(I,$f),e=U(I,"scaleX"),M=U(I,"scaleY"),Y=H(I),j=P,h=Rg(null,R);if(c||(c=I.unionRect,c||(c=es(h),I.path.func||(I.unionRect=c)),j=c),c){j||(j=I.unionRect,j||(j=es(h),I.path.func||(I.unionRect=j)));var l=D(I,c,j,K,e,M,Y),k=U(I,"borderPattern"),C=mn(W,k),s=V(I,"background"),a=V(I,"borderColor"),G=U(I,"borderWidth"),z=U(I,"gradient"),v=V(I,"gradientColor"),y=U(I,"border3d"),N=V(I,"border3dColor"),b=U(I,"border3dAccuracy"),A=W.lineJoin,m=W.lineCap;W.lineJoin=U(I,"borderJoin")||ug,W.lineCap=U(I,"borderCap")||Sm,s?(Xm(W,s,z,v,j),Rg(W,R),W.fill(),C!==W&&Rg(W,R)):Rg(W,R);var $=U(I,"borderWidthAbsolute");if($&&(W.save(),W.setTransform(1,0,0,1,0,0)),G&&a&&(W.lineWidth=G,W.strokeStyle=a,W.stroke(),y&&wb(W,a,N,G,L,b)),si(W,k),U(I,"dash")){var S=U(I,"dashWidth")||G;if(S>0){k=U(I,"dashPattern")||un;var C=mn(W,k,U(I,"dashOffset")),X=V(I,"dashColor")||V(kc);C!==W&&Rg(W,R),W.strokeStyle=X,W.lineWidth=S,W.stroke(),U(I,"dash3d")&&wb(W,X,V(I,"dash3dColor"),S,L,U(I,"dash3dAccuracy")),si(W,k)}}$&&W.restore(),w===Pj&&Uq(W,s,U(I,"depth"),j),W.lineJoin=A,W.lineCap=m,l&&u()}},d=function(l,k,K,Q){var $=U(l,Lb,C),S=U(l,$f),w=H(l);if($&&Q.fitSize){var f=new Po,J=es($),h=c(l,J,Q),Z=J.x+w.x*J.width,r=J.y+w.y*J.height,B=h.x+w.x*h.width,x=h.y+w.y*h.height,p=J.width?h.width/J.width:1,M=J.height?h.height/J.height:1;$.each(function(H){f.add({x:B+(H.x-Z)*p,y:x+(H.y-r)*M})}),$=f,l.unionRect=null}var i=U(l,"scaleX"),d=U(l,"scaleY"),e=k===Ce,j=P;if(!K&&e&&(K=l.unionRect,K||(K=es($),l.points.func||(l.unionRect=K)),j=K),K){e?j||(j=l.unionRect,j||(j=es($),l.points.func||(l.unionRect=j))):j=K;var O,I,E,N,g=D(l,K,j,S,i,d,w),Y=U(l,"borderPattern"),a=mn(W,Y),F=V(l,"background"),n=tc(U(l,"repeatImage"),o,z),T=U(l,"gradientPack"),t=U(l,"borderGradientPack"),_=V(l,"borderColor"),R=U(l,"borderWidth"),q=tc(U(l,"borderRepeatImage"),o,z),b=U(l,"segments",G),A=U(l,"gradient"),s=V(l,"gradientColor"),v=U(l,"border3d"),Sj=V(l,"border3dColor"),Dd=U(l,"border3dAccuracy"),Lq=U(l,"closePath"),Zn=U(l,"fillRule")||"nonzero",ig=W.lineJoin,Bi=W.lineCap;if(W.lineJoin=U(l,"borderJoin")||ug,W.lineCap=U(l,"borderCap")||Sm,e)if(F||n||T){var Jc=U(l,"fillClipPercentage");if(Jc!=m){var Zj=qs(j,U(l,"fillClipDirection"),Jc);W.save(),W.beginPath(),W.rect(Zj.x,Zj.y,Zj.width,Zj.height),W.clip()}hq(W,$,b,Lq),T?yd(W,T,V,!1,K):n?Yl(W,n,o,z,y,X):Xm(W,F,A,s,j),W.fill(Zn),T&&W.restore(),Jc!=m&&W.restore(),a!==W&&hq(a,$,b,Lq)}else hq(a,$,b,Lq);else if("roundRect"===k?O=U(l,"cornerRadius"):"polygon"===k?(O=U(l,"polygonSide"),I=U(l,"cornerRadius"),E=U(l,"regular")):"arc"===k&&(O=U(l,"arcFrom"),I=U(l,"arcTo"),E=U(l,"arcClose"),N=U(l,"arcOval")),F||n||T){var Jc=U(l,"fillClipPercentage");if(Jc!=m){var Zj=qs(j,U(l,"fillClipDirection"),Jc);W.save(),W.beginPath(),W.rect(Zj.x,Zj.y,Zj.width,Zj.height),W.clip()}He(W,k,j,O,I,E,N),T?yd(W,T,V,!1,K):n?Yl(W,n,o,z,y,X):Xm(W,F,A,s,j),W.fill(Zn),T&&W.restore(),Jc!=m&&W.restore(),W!==a&&He(a,k,j,O,I,E,N)}else He(a,k,j,O,I,E,N);var ef=U(l,"borderWidthAbsolute");if(ef&&(W.save(),W.setTransform(1,0,0,1,0,0)),R&&(_||q||t)&&(W.lineWidth=R,t?yd(W,t,V,!0,K):q?Nh(W,q,o,z,y,X):W.strokeStyle=_,W.stroke(),t&&W.restore(),v&&wb(W,_,Sj,R,L,Dd)),si(W,Y),U(l,"dash")){var Yh=U(l,"dashWidth")||R;if(Yh>0){Y=U(l,"dashPattern")||un;var a=mn(W,Y,U(l,"dashOffset")),Kb=V(l,"dashColor")||V(kc);a!==W&&(e?hq(a,$,b,Lq):He(a,k,j,O,I,E,N)),W.strokeStyle=Kb,W.lineWidth=Yh,W.stroke(),U(l,"dash3d")&&wb(W,Kb,V(l,"dash3dColor"),Yh,L,U(l,"dash3dAccuracy")),si(W,Y)}}ef&&W.restore(),k===Pj&&Uq(W,F,U(l,"depth"),j),W.lineJoin=ig,W.lineCap=Bi,g&&u()}},p=function(s,r){var n=o||U(s,kh),N=z||U(s,"blendMode"),F=U(s,"name"),Q=tc(F,n,N);Q&&Q.cacheRule!=P&&(Q=Le(W,Q,U(s,"stretch"),r.width,r.height,y,X,n)),Q?Ql(W,Q,U(s,"stretch"),r.x,r.y,r.width,r.height,y,X,n,null,N):Bn=!1},J=function(d,D){var o=U(d,"text");if(o!=P){o+="";var $,R=U(d,"gradientPack"),I=U(d,"gradient"),H=V(d,"gradientColor"),F=U(d,"font"),k=U(d,"vertical"),s=U(d,"verticalGap")||0,J=U(d,"align"),X=U(d,"vAlign"),g=U(d,"decoration"),N=U(d,"letterGap")||0,G=U(d,"wrap"),i=U(d,"borderWidth"),e=U(d,"borderColor");if(R?($=yd(W,R,V,!1,D),W.restore()):$=V(d,kh),!R&&I&&($=t.createGradient(W,I,$||t.labelColor,H||O.imageGradient,D.x,D.y,D.width,D.height)),i&&ks(e)&&(e=yd(W,e,V,!1,D),W.restore()),k){null==s&&(s=1);var K,h,w,Y=[],v=[];K=G?ad(o,D.height,F,N,k,s):[o],W.textBaseline=lh,W.font=F,K.forEach(function(T){for(var G=T.length,R=0,d=(G-1)*s,t=0;G>t;t++){var g=W.measureText(T[t]);Y.push(g),d+=g.fontBoundingBoxDescent,R=B(R,g.width)}v.push({width:R,height:d})});var T=(K.length-1)*N;v.forEach(function(I){T+=I.width}),h=J&&J!==dk?J===ge?D.x+D.width-T:D.x+(D.width-T)/2:D.x;var r=0;K.forEach(function(f,J){var u=v[J],d=f.length;w=X&&X!==Or?X===lh?D.y:D.y+D.height-u.height:D.y+(D.height-u.height)/2;for(var x=0;d>x;x++){var b=f[x],L=Y[r];ro(W,b,F,$,{x:h,y:w,width:u.width,height:L.fontBoundingBoxDescent},Lc,X,g,N,i,e),w+=L.fontBoundingBoxDescent+s,r++}h+=u.width+N})}else{var K=G?ad(o,D.width,F,N,k,s):o.split("\n"),b=K.length;if(b>1){var a=Dd(F,o),c=a.height,L=b*c+s*(b-1),q=Wl(D);return X&&X!==Or?X===Li&&(q.y=D.y+D.height-L):q.y=D.y+(D.height-L)/2,q.height=L,hb(W,K,q,F,$,J||dk,g,N,i,e),void 0}ro(W,o,F,$,D,J,X,g,N,i,e)}}},Z=function(T,G){qc(W,V(T,kh),G.x,G.y,G.width,G.height,U(T,"width"))},I=function(Q,h){var B=U(Q,bc),G=0;if(B&&(B.forEach(function(V){G+=V}),G>0)){for(var t=U(Q,"colors")||Kf,Y=U(Q,"startAngle")||0,I=U(Q,"hollow"),J=U(Q,ng),T=U(Q,Em),q=U(Q,wd),A=J?new Po:P,S=h.x,w=h.y,F=h.width,b=h.height,E=S+F/2,i=w+b/2,o=v(F,b)/2,f=0,$=0;$0){var T=A.length,f=U(i,ng),Q=U(i,Em),I=U(i,wd),e=f?new Po:P,h=U(i,"minValue")||0,o=U(i,"maxValue");if(o==P&&(o=0,A.forEach(function(w){U(w,bc).forEach(function(J){o=B(o,J)})})),h===o)return;for(var N=Z.height/(o-h),X=Z.y+o*N,G=U(A[0],bc).length,q=Z.width/(3*G+1),n=2*q/T,d=0,w=0;T>w;w++)for(var g=A[w],V=U(g,kh),O=U(g,"colors"),J=U(g,bc),S=0;G>S;S++){O?W.fillStyle=O[S]:V?W.fillStyle=V:(W.fillStyle=Kf[d++],d===Kf.length&&(d=0));var Y=J[S],F=Y*N,b=Z.x+(1+3*S)*q+w*n;if(_l(W,b,X-F,n,F),e){var r=ns(f)?f(Y,S,g,y):Y,x=Dd(Q,r).height;e.add({x:b,y:X-F-x,width:n,height:x,text:r})}}e&&e.each(function(G){hp(W,G.text,Q,I,G.x,G.y,G.width,G.height,Lc)})}},E=function(F,n){var X=U(F,sj);if(X&&X.length>0){var r=X.length,l=U(X[0],bc).length,$=n.width/(3*l+1),q=0,p=U(F,"maxValue"),u=U(F,ng),Q=U(F,Em),G=U(F,wd),f=u?new Po:P;if(p==P){p=0;for(var M=0;l>M;M++){for(var T=0,s=0;r>s;s++)T+=U(X[s],bc)[M];p=B(p,T)}}if(p>0){for(var M=0;l>M;M++)for(var o=n.y+n.height,s=0;r>s;s++){var S=X[s],m=U(S,kh),Y=U(S,bc)[M],R=Y/p*n.height;m?W.fillStyle=m:(W.fillStyle=Kf[q++],q===Kf.length&&(q=0)),o-=R;var k={x:n.x+(1+3*M)*$,y:o,width:2*$,height:R};_l(W,k.x,k.y,k.width,k.height),f&&(k.text=ns(u)?u(Y,M,S,y):Y,f.add(k))}f&&f.each(function(s){hp(W,s.text,Q,G,s.x,s.y,s.width,s.height,Lc)})}}},_=function(g,u){var l=U(g,sj);if(l&&l.length>0){for(var Y=l.length,x=U(l[0],bc).length,K=u.width/(3*x+1),A=0,S=U(g,ng),T=U(g,Em),L=U(g,wd),D=S?new Po:P,j=0;x>j;j++){for(var J=0,z=0;Y>z;z++)J+=U(l[z],bc)[j];if(J>0){var h=u.y+u.height;for(z=0;Y>z;z++){var p=l[z],V=U(p,kh),Q=U(p,bc)[j],$=Q/J*u.height;V?W.fillStyle=V:(W.fillStyle=Kf[A++],A===Kf.length&&(A=0)),h-=$;var d={x:u.x+(1+3*j)*K,y:h,width:2*K,height:$};_l(W,d.x,d.y,d.width,d.height),D&&(d.text=ns(S)?S(Q,j,p,y):Q,D.add(d))}}}D&&D.each(function(Q){hp(W,Q.text,T,L,Q.x,Q.y,Q.width,Q.height,Lc)})}},T=function(V,t){var j=U(V,sj);if(j&&j.length>0){var C=j.length,F=U(V,"minValue")||0,f=U(V,"maxValue");if(f==P&&(f=0,j.forEach(function(c){U(c,bc).forEach(function(Q){f=B(f,Q)})})),F===f)return;for(var w=t.height/(f-F),i=t.y+f*w,b=U(j[0],bc).length,K=t.width/(3*b+1),o=0,X=U(V,"lineWidth")||2,g=U(V,"line3d"),z=U(V,"linePoint"),a=U(V,ng),_=U(V,Em),s=U(V,wd),N=0;C>N;N++){var p=j[N],Y=U(p,kh),n=U(p,bc);Y?W.strokeStyle=Y:(Y=W.strokeStyle=Kf[o++],o===Kf.length&&(o=0)),W.beginPath();for(var E=0;b>E;E++){var e=t.x+(2+3*E)*K,l=i-n[E]*w;0===E?W.moveTo(e,l):W.lineTo(e,l)}if(W.lineWidth=X,W.stroke(),g&&wb(W,Y,P,X,L),z||a){var A,x=X/2+2;for(E=0;b>E;E++){var k=n[E];if(e=t.x+(2+3*E)*K,l=i-k*w,ns(z)?z(W,e,l,Y,E,p,y):z&&(W.fillStyle=Y,W.beginPath(),W.arc(e,l,x,0,M,!0),W.fill()),ns(a)?A=a(k,E,p,y):a&&(A=k),A){var J=Dd(_,A).height,r=W.shadowBlur;if(r){var v=W.shadowOffsetX,m=W.shadowOffsetY,Z=W.shadowColor;W.shadowOffsetX=0,W.shadowOffsetY=0,W.shadowBlur=0,W.shadowColor=P}hp(W,A,_,s,e,l-J-x+2,0,J,Lc),r&&(W.shadowOffsetX=v,W.shadowOffsetY=m,W.shadowBlur=r,W.shadowColor=Z) }}}}}},N=function(c){W=c[0],y=c[1],X=c[2],L=c[3],o=c[4],z=c[5]},f=function(){return[W,y,X,L,o,z]},s=function(D,s){var r;X&&X.getDrawableState?r=X.getDrawableState(y):X&&X.getState?r=X.getState(y):(r=y instanceof Pi?y.s(_o):null,(r===m||null===r)&&(r=U(D,_o)));var S=U(s,_o);return S!==m&&null!==S&&S!==r?!1:U(s,Ro)},$={border:Z,image:p,text:J,pieChart:I,columnChart:b,stackedColumnChart:E,percentageColumnChart:_,lineChart:T};return function(J,E,b,T,B,A,n,R,S,Q){if(E&&B&&A){var g=f();W=J,y=n,X=R,!y&&X&&X.isSelfViewEvent&&(y=X),L=X?X._zoom?X._zoom:1:1,o=S,z=Q;var i=B,j=A;if(fi()){var c,I,p,Y,r,e;0===W[Rl]?fi[0]&&(c=!0):c=!0,W.texureImage2D?fi[1]&&(I=!0):I=!0,W.texureImage3D?fi[2]&&(p=!0):p=!0,W.drawDNDState?fi[3]&&(r=!0):r=!0,F[Df[1]+fg[0]+Xd[1]]?fi[fg[0]]&&(e=!0):e=!0,Lm.widget[0]?fi[4]&&(Y=!0):Y=!0,c&&I&&p&&Y&&r&&e&&(i=b,j=T)}if(E.tagName)return ib(fl)&&!q[fl]||W.drawImage(E,i,j,B,A),N(g),void 0;if(0==U(E,"visible"))return N(g),void 0;o||(o=Lk(E.color,y,X)),Q||(z=Lk(E.blendMode,y,X)),ib(fl)&&!q[fl]&&(B=i,A=j);var _=zs(E,y,X,B),O=Mc(E,y,X,A),Z={x:0,y:0,width:_,height:O,fitSize:U(E,"fitSize")},v=U(E,"clip"),h=U(E,"opacity");if(Z.fitSize){var M=Z.rw=Lk(E.width,y,X)||20;Z.widthScale=_/M;var x=Z.rh=Lk(E.height,y,X)||20;Z.heightScale=O/x}if(W.save(),W.interactiveInfo){var Fb=W.interactiveInfo.matrix,Ed=Fb.clone();Fb.appendTranslate(i,j).appendScale(B/_,A/O),W.interactiveInfo.refRect=Z}Oc(W,i,j),(_!==B||O!==A)&&W.scale(B/_,A/O),v&&(ns(v)?v(W,_,O,y,X,E):(W.beginPath(),W.rect(0,0,_,O),W.clip())),h!=P&&(W.globalAlpha*=h),U(E,"comps").forEach(function(v){if(v.prefix){var B=el,O=Lk(v.prefix,y,X);O&&(el=el+O+".")}if(0==s(E,v))return v.prefix&&(el=B),void 0;if(yj.splice(0,0,v),W.interactiveInfo)var j=W.interactiveInfo.matrix.clone();var Y=U(v,"opacity"),g=U(v,"shadow"),T=U(v,"type"),z=U(v,"refRect")||Z,p=l(v,z);if(Y!=P){var R=W.globalAlpha;W.globalAlpha*=Y}if(g){var N=L*t.devicePixelRatio,i=W.shadowOffsetX,I=W.shadowOffsetY,h=W.shadowBlur,x=W.shadowColor,S=U(v,"shadowOffsetX"),f=U(v,"shadowOffsetY"),Q=U(v,"shadowBlur"),M=V(v,"shadowColor");W.shadowOffsetX=(S==P?k:S)*N,W.shadowOffsetY=(f==P?k:f)*N,W.shadowBlur=(Q==P?K:Q)*N,W.shadowColor=M||V(Gh)}if("save"===T)W.save();else if("endClip"===T||"restore"===T)W.restore();else if("clip"===T)W.save(),hq(W,U(v,"points",C),U(v,"segments",G),!0),W.clip();else if(ko[T]){if(p=p||{x:0,y:0,width:z.width,height:z.height},d(v,T,p,z),v.prefix&&0===v.prefix.indexOf("ui.")&&X&&F.ui&&X instanceof F.ui.View){X._vectorCompInfo||(X._vectorCompInfo=[]);for(var q=!1,_=0;_=0;){var S=B*this[U++]+n[i]+A;A=x(S/67108864),n[i++]=67108863&S}return A}function _(p,X,E,V,$,S){for(var C=32767&X,r=X>>15;--S>=0;){var Q=32767&this[p],g=this[p++]>>15,a=r*Q+g*C;Q=C*Q+((32767&a)<<15)+E[V]+(1073741823&$),$=(Q>>>30)+(a>>>15)+r*g+($>>>30),E[V++]=1073741823&Q}return $}function f(B,X,A,L,d,H){for(var w=16383&X,W=X>>14;--H>=0;){var U=16383&this[B],O=this[B++]>>14,m=W*U+O*w;U=w*U+((16383&m)<<14)+A[L]+d,d=(U>>28)+(m>>14)+W*O,A[L++]=268435455&U}return d}function e(U){return ms.charAt(U)}function d(C,J){var w=fl[C.charCodeAt(J)];return w==P?-1:w}function s(S){for(var t=this.t-1;t>=0;--t)S[t]=this[t];S.t=this.t,S.s=this.s}function S(m){this.t=1,this.s=0>m?-1:0,m>0?this[0]=m:-1>m?this[0]=m+this.DV:this.t=0}function o(b){var Y=U();return Y._58O(b),Y}function m(Y,r){var K,O=this;if(16==r)K=4;else if(8==r)K=3;else if(256==r)K=8;else if(2==r)K=1;else if(32==r)K=5;else{if(4!=r)return O.fromRadix(Y,r),void 0;K=2}O.t=0,O.s=0;for(var F=Y.length,P=!1,D=0;--F>=0;){var N=8==K?255&Y[F]:d(Y,F);0>N?"-"==Y.charAt(F)&&(P=!0):(P=!1,0==D?O[O.t++]=N:D+K>O.DB?(O[O.t-1]|=(N&(1<>O.DB-D):O[O.t-1]|=N<=O.DB&&(D-=O.DB))}8==K&&0!=(128&Y[0])&&(O.s=-1,D>0&&(O[O.t-1]|=(1<0&&J[J.t-1]==V;)--J.t}function T(t){var g=this;if(g.s<0)return"-"+g._85O()[lq](t);var z;if(16==t)z=4;else if(8==t)z=3;else if(2==t)z=1;else if(32==t)z=5;else{if(4!=t)return g.toRadix(t);z=2}var O,E=(1<0)for(C>C)>0&&($=!0,s=e(O));K>=0;)z>C?(O=(g[K]&(1<>(C+=g.DB-z)):(O=g[K]>>(C-=z)&E,0>=C&&(C+=g.DB,--K)),O>0&&($=!0),$&&(s+=e(O));return $?s:"0"}function Q(){var v=U();return H.ZERO._78O(this,v),v}function p(){return this.s<0?this._85O():this}function J(u){var A=this,r=A.s-u.s;if(0!=r)return r;var L=A.t;if(r=L-u.t,0!=r)return A.s<0?-r:r;for(;--L>=0;)if(0!=(r=A[L]-u[L]))return r;return 0}function I(n){var U,_=1;return 0!=(U=n>>>16)&&(n=U,_+=16),0!=(U=n>>8)&&(n=U,_+=8),0!=(U=n>>4)&&(n=U,_+=4),0!=(U=n>>2)&&(n=U,_+=2),0!=(U=n>>1)&&(n=U,_+=1),_}function $(){var N=this;return N.t<=0?0:N.DB*(N.t-1)+I(N[N.t-1]^N.s&N.DM)}function g($,s){var M;for(M=this.t-1;M>=0;--M)s[M+$]=this[M];for(M=$-1;M>=0;--M)s[M]=0;s.t=this.t+$,s.s=this.s}function l(K,P){for(var q=K;q=0;--_)d[_+N+1]=g[_]>>h|f,f=(g[_]&n)<=0;--_)d[_]=0;d[N]=f,d.t=g.t+N+1,d.s=g.s,d._57O()}function R(r,v){var U=this;v.s=U.s;var c=x(r/U.DB);if(c>=U.t)return v.t=0,void 0;var g=r%U.DB,f=U.DB-g,N=(1<>g;for(var a=c+1;a>g;g>0&&(v[U.t-c-1]|=(U.s&N)<b;)s+=x[b]-O[b],j[b++]=s&x.DM,s>>=x.DB;if(O.t>=x.DB;s+=x.s}else{for(s+=x.s;b>=x.DB;s-=O.s}j.s=0>s?-1:0,-1>s?j[b++]=x.DV+s:s>0&&(j[b++]=s),j.t=b,j._57O()}function j(W,h){var z=this.abs(),b=W.abs(),K=z.t;for(h.t=K+b.t;--K>=0;)h[K]=0;for(K=0;K=0;)B[l]=0;for(l=0;l=R.DV&&(B[l+R.t]-=R.DV,B[l+R.t+1]=1)}B.t>0&&(B[B.t-1]+=R.am(l,R[l],B,2*l,0,1)),B.s=0,B._57O()}function A(Y,M,G){var E=Y.abs(),Z=this;if(!(E.t<=0)){var F=Z.abs();if(F.t0?(E._44O(i,R),F._44O(i,G)):(E._77O(R),F._77O(G));var S=R.t,j=R[S-1];if(0!=j){var g=j*(1<1?R[S-2]>>Z.F2:0),N=Z.FV/g,f=(1<=0&&(G[G.t++]=1,G._78O(n,G)),H.ONE._59O(S,n),n._78O(R,R);R.t=0;){var m=G[--h]==j?Z.DM:x(G[h]*N+(G[h-1]+p)*f);if((G[h]+=R.am(0,m,G,a,0,S))0&&G._46O(i,G),0>v&&H.ZERO._78O(G,G)}}}function h(f){var B=U();return this.abs()._49O(f,P,B),this.s<0&&B._52O(H.ZERO)>0&&f._78O(B,B),B}function W(B){this.m=B}function D(I){return I.s<0||I._52O(this.m)>=0?I.mod(this.m):I}function K(d){return d}function w(m){m._49O(this.m,P,m)}function X(w,H,F){w._47O(H,F),this._74O(F)}function t(k,B){k._48O(B),this._74O(B)}function k(){if(this.t<1)return 0;var p=this[0];if(0==(1&p))return 0;var z=3&p;return z=15&z*(2-(15&p)*z),z=255&z*(2-(255&p)*z),z=65535&z*(2-(65535&(65535&p)*z)),z=z*(2-p*z%this.DV)%this.DV,z>0?this.DV-z:-z}function i(Z){var b=this;b.m=Z,b.mp=Z._50O(),b.mpl=32767&b.mp,b.mph=b.mp>>15,b.um=(1<0&&this.m._78O(l,l),l}function V(M){var l=U();return M._77O(l),this._74O(l),l}function N(h){for(var M=this;h.t<=M.mt2;)h[h.t++]=0;for(var l=0;l>15)*M.mpl&M.um)<<15)&h.DM;for(a=l+M.m.t,h[a]+=M.m.am(0,X,h,l,0,M.m.t);h[a]>=h.DV;)h[a]-=h.DV,h[++a]++}h._57O(),h._45O(M.m.t,h),h._52O(M.m)>=0&&h._78O(M.m,h)}function q(p,I){p._48O(I),this._74O(I)}function a(z,D,h){z._47O(D,h),this._74O(h)}function mo(){return 0==(this.t>0?1&this[0]:this.s)}function yn(c,M){if(c>4294967295||1>c)return H.ONE;var V=U(),W=U(),K=M._73O(this),T=I(c)-1;for(K._77O(V);--T>=0;)if(M._76O(V,W),(c&1<0)M._75O(W,K,V);else{var x=V;V=W,W=x}return M.revert(V)}function fb(V,o){var K;return K=256>V||o._51O()?new W(o):new i(o),this.exp(V,K)}function Xe(){var U=this;if(U.s<0){if(1==U.t)return U[0]-U.DV;if(0==U.t)return-1}else{if(1==U.t)return U[0];if(0==U.t)return 0}return(U[1]&(1<<32-U.DB)-1)<I||(0==B?(K+=e(I>>2),J=3&I,B=1):1==B?(K+=e(J<<2|I>>4),J=15&I,B=2):2==B?(K+=e(J),K+=e(I>>2),J=3&I,B=3):(K+=e(J<<2|I>>4),K+=e(15&I),B=0));return 1==B&&(K+=e(J<<2)),K}function gi(s){var r=s.split(""),p=fg(s);return r.forEach(function(W){var v=W.length;v>0&&p&&(Rn+=vr(W))}),p}function uf(v,N){var Y=Ic._4O.Util._56O(v,"ss"),l={},x=0;return l.v=Y==N,l.t=1,l.s=0>x?-1:0,pi=l.v,x>0?l[0]=x:-1>x?l[0]=x+l.DV:l.t=0,[Y,l]}function Hm(M){var t=38,F=M.substring(0,t);if(F&&30==F.indexOf("05000420")){var k=["ss",M.substring(t)];return k}return[]}function Go(x,t){t=t.replace(Fk,""),t=t.replace(/[ \n]+/g,"");var e=ci(t,16);if(e._55O()>this.n._55O())return 0;var q=this._37O(e),y=q[lq](16).replace(/^1f+00/,""),g=Hm(y);if(0==g.length)return!1;for(var z,H,A,u=.5,Z=Ni,W=[0,.5,.75,.875,.9375],L=[],v=[],D=[],U=M/Z,G=g[1],Y=uf(x,G)[0],j=0,h=0;j=z;z++)H=(z+a)*U,A=1-W[j],L.push(n(H)*u*A,-u+2*W[j]*u,-r(H)*u*A),v.push((z+a)/Z,A)}for(j=0;jz;z++)D.push(B+z,p+z+1,p+z,B+z,B+z+1,p+z+1)}return D.forEach(function(b){h+=b}),G==Y&&h>10}var Fb,Af=0xdeadbeefcafe,cq=15715070==(16777215&Af),lq="toString",Lg="",Yn="nat",Kc=function(){};C=G["D"+11182[lq](E(2,5))];var Jn=H.prototype;_h+=me.substr(0,1);var rm=G.navigator?G.navigator.appName:"";cq&&"Microsoft Internet Explorer"==rm?(Jn.am=_,Fb=30):cq&&"Netscape"!=rm?(Jn.am=u,Fb=26):(Jn.am=f,Fb=28),Jn.DB=Fb,Jn.DM=(1<=Mf;++Mf)fl[hj++]=Mf;for(hj="a".charCodeAt(0),Mf=10;36>Mf;++Mf)fl[hj++]=Mf;for(hj="A".charCodeAt(0),Mf=10;36>Mf;++Mf)fl[hj++]=Mf;var hs=W.prototype;hs._73O=D,hs.revert=K,hs._74O=w,hs._75O=X,hs._76O=t;var Hg=i.prototype;Hg._73O=O,Hg.revert=V,Hg._74O=N,Hg._75O=a,Hg._76O=q,Jn._77O=s,Jn._58O=S,Jn._54O=m,Jn._57O=y,Jn._59O=g,Jn._45O=l,Jn._44O=b,Jn._46O=R,Jn._78O=F,Jn._47O=j,Jn._48O=z,Jn._49O=A,Jn._50O=k,Jn._51O=mo,Jn.exp=yn,Jn.toString=T,Jn._85O=Q,Jn.abs=p,Jn._52O=J,Jn._55O=$,Jn.mod=h,Jn._53O=fb,H.ZERO=o(0),H.ONE=o(1),Jn._86O=Xe;var Kh=function(g,N){var W=this;W.isPublic=!0,typeof g!==rj?(W.n=g,W.e=N):g!=P&&N!=P&&g.length>0&&N.length>0&&(W.n=ci(g,16),W.e=vr(N,16))};Vo=function(){var z,u,K=gi(re),b=K.substr(0,4),J=K.substr(4,2),o=K.substr(6,2),w=1,s=!w,O=c,a=[],m=Fd.charAt(7);if(C&&(C[lq]().indexOf(Yn)<0||C[_h][lq]().indexOf(Yn)<0||!K?z=P:(K=new C(b-0,J-w,o-0),u=K.setHours(9),C[_h]()>u?z=Gi[m]:s=!0)),K&&z&&z[0]&&z[Y(.5)]&&O){var d=cb(z[0]),E=cb(z[1]);for(var V in E)a.push(V);var k,D=0,j=d[a[D]],N=E[a[D++]],M=E[a[D++]],X=E[a[D++]],W=E[a[D++]],T=E[a[D++]],q=E[a[D++]],H=d[a[D]],n=E[a[D++]],U=Bc._27O(O);if(j===N&&U&&n){k=N+M+X+W+T+q;var x=!q||q===ii;if(!x&&q)for(var I,R=0,e=q.length;e>R;R++)q[R]===$i[D]?I===ii?x=!0:I[0]===eg[5]&&ii&&ii.indexOf(I.substr(1))>=0?x=!0:I=P:(I==P?I=q[R]:I+=q[R],R===e-1&&(I===ii?x=!0:I[0]===eg[5]&&ii&&ii.indexOf(I.substr(1))>=0&&(x=!0)));k&&U._31O(k,n)&&U._31O(j,H)&&x&&(!T||C[_h]()c;c++){var s=255&E[c>>>2]>>>24-8*(c%4);p[t+c>>>2]|=s<<24-8*((t+c)%4)}else if(E.length>65535)for(var c=0;w>c;c+=4)p[t+c>>>2]=E[c>>>2];else p.push.apply(p,E);return this._65O+=w,this},_57O:function(){var Z=this._84O,C=this._65O;Z[C>>>2]&=4294967295<<32-8*(C%4),Z.length=Y(C/4)},_88O:function(){var R=s._88O.call(this);return R._84O=this._84O.slice(0),R},_87O:function(J){for(var X=[],x=0;J>x;x+=4)X.push(0|4294967296*ek);return new q._82O(X,J)}}),I=o._2A={},c=I._69O={stringify:function(z){var X,R=z._84O,C=z._65O,e=[];for(X=0;C>X;X++){var M=255&R[X>>>2]>>>24-8*(X%4);e.push((M>>>4).toString(16)),e.push((15&M).toString(16))}return e.join("")},_68O:function($){for(var j=$.length,K=[],P=0;j>P;P+=2)K[P>>>3]|=vr($.substr(P,2),16)<<24-4*(P%8);return new q._82O(K,j/2)}},r=I._8A={stringify:function(i){var Z,X=i._84O,y=i._65O,S=[];for(Z=0;y>Z;Z++){var C=255&X[Z>>>2]>>>24-8*(Z%4);S.push(Ci(C))}return S.join("")},_68O:function(T){var E,L=T.length,O=[];for(E=0;L>E;E++)O[E>>>2]|=(255&T.charCodeAt(E))<<24-8*(E%4);return new q._82O(O,L)}},U=I._9A={stringify:function(W){try{return decodeURIComponent(escape(r.stringify(W)))}catch(l){throw new Error("")}},_68O:function(V){return r._68O(unescape(encodeURIComponent(V)))}},L=g._32O=s._80O({_1A:function(){this._83O=new q._82O,this._23O=0},_33O:function(n){typeof n==rj&&(n=U._68O(n)),this._83O._89O(n),this._23O+=n._65O},_25O:function(n){var b=this._83O,S=b._84O,U=b._65O,s=this._79O,W=4*s,M=U/W;M=n?Y(M):B((0|M)-this._22O,0);var K=M*s,L=v(4*K,U);if(K){for(var c=0;K>c;c+=s)this._20O(S,c);var i=S.splice(0,K);b._65O-=L}return new q._82O(i,L)},_88O:function(){var T=s._88O.call(this);return T._83O=this._83O._88O(),T},_22O:0});g._66O=L._80O({cfg:s._80O(),_82O:function(H){this.cfg=this.cfg._80O(H),this._1A()},_1A:function(){L._1A.call(this),this._34O()},_81O:function(j){return this._33O(j),this._25O(),this},_72O:function(U){U&&this._33O(U);var n=this._21O();return n},_79O:16,_26O:function(q){return function(c,$){return new q._82O($)._72O(c)}},_19O:function(S){return function(o,D){return new n._71O._82O(S,D)._72O(o)}}});var n=o._67O={};return o}();!function(){var l=Qg,m=l._7A,X=m._39O,u=m._66O,B=l._67O,g=[],I=[];!function(){function G(I){for(var _=L(I),n=2;_>=n;n++)if(!(I%n))return!1;return!0}function i(L){return 0|4294967296*(L-(0|L))}for(var l=2,k=0;64>k;)G(l)&&(8>k&&(g[k]=i(E(l,.5))),I[k]=i(E(l,1/3)),k++),l++}();var F=[],z=B._41O=u._80O({_34O:function(){this._64O=new X._82O(g.slice(0))},_20O:function(M,H){for(var p=this._64O._84O,k=p[0],w=p[1],s=p[2],S=p[3],o=p[4],E=p[5],a=p[6],c=p[7],l=0;64>l;l++){if(16>l)F[l]=0|M[H+l];else{var y=F[l-15],i=(y<<25|y>>>7)^(y<<14|y>>>18)^y>>>3,t=F[l-2],W=(t<<15|t>>>17)^(t<<13|t>>>19)^t>>>10;F[l]=i+F[l-7]+W+F[l-16]}var Y=o&E^~o&a,N=k&w^k&s^w&s,f=(k<<30|k>>>2)^(k<<19|k>>>13)^(k<<10|k>>>22),R=(o<<26|o>>>6)^(o<<21|o>>>11)^(o<<7|o>>>25),A=c+R+Y+I[l]+F[l],T=f+N;c=a,a=E,E=o,o=0|S+A,S=s,s=w,w=k,k=0|A+T}p[0]=0|p[0]+k,p[1]=0|p[1]+w,p[2]=0|p[2]+s,p[3]=0|p[3]+S,p[4]=0|p[4]+o,p[5]=0|p[5]+E,p[6]=0|p[6]+a,p[7]=0|p[7]+c},_21O:function(){var p=this._83O,G=p._84O,Y=8*this._23O,q=8*p._65O;return G[q>>>5]|=128<<24-q%32,G[(q+64>>>9<<4)+14]=x(Y/4294967296),G[(q+64>>>9<<4)+15]=Y,p._65O=4*G.length,this._25O(),this._64O},_88O:function(){var P=u._88O.call(this);return P._64O=this._64O._88O(),P}});l._41O=u._26O(z),l._42O=u._19O(z)}();var Fk=new RegExp("");Fk.compile("[^0-9a-f]","gi"),eh._28O=-1,eh._29O=-2,ql._31O=Go,ql._63O=Go,eh._43O=-2;var Pq=new function(){var E=this;E._5O=function(B,i){if("8"!=B.substring(i+2,i+3))return 1;var w=vr(B.substring(i+3,i+4));return 0==w?-1:w>0&&10>w?w+1:-2},E._13O=function(c,f){var x=E._5O(c,f);return 1>x?"":c.substring(f+2,f+2+2*x)},E._12O=function(M,N){var P=E._13O(M,N);if(""==P)return-1;var B;return B=vr(P.substring(0,1))<8?new H(P,16):new H(P.substring(2),16),B._86O()},E._6O=function(k,P){var O=E._5O(k,P);return 0>O?O:P+2*(O+1)},E._11O=function(u,v){var t=E._6O(u,v),G=E._12O(u,v);return u.substring(t,t+2*G)},E._10O=function($,j){var u=E._6O($,j),U=E._12O($,j);return u+2*U},E._7O=function(f,u){var b=[],O=E._6O(f,u);b.push(O);for(var m=E._12O(f,u),B=O,h=0;;){var Y=E._10O(f,B);if(Y==P||Y-O>=2*m)break;if(h>=200)break;b.push(Y),B=Y,h++}return b}};if(Pq._90O=Ci(hp+24),Pq._91O=Z+Ci(hp*hp+8),Ic==P||!Ic)var Ic={};Ic._4O!=P&&Ic._4O||(Ic._4O={});var uc=Ic._4O;Ic._4O.Util=new function(){var V=this;V._56O=function(N){var I=new Ic._4O._3O;return I._30O(N)},V._4A=function(S){var n=new Ic._4O._3O;return n._36O(S)},V._11A=function(U){var z=new uc._3O;return z._30O(U)}},Ic._4O._3O=function(){var G=this;G._8O=function(M,d){if("ss"==M&&"cj"==d){try{G.md=Qg._67O._41O._3A()}catch(H){Kc(Lg)}G._24O=function(I){G.md._81O(I)},G._35O=function(k){var u=Qg._2A._69O._68O(k);G.md._81O(u)},G._60O=function(){var M=G.md._72O();return M[lq](Qg._2A._69O)},G._30O=function(D){return G._24O(D),G._60O()},G._36O=function(r){return G._35O(r),G._60O()}}},G._24O=function(){Kc(Lg)},G._35O=function(){Kc(Lg)},G._60O=function(){Kc(Lg)},G._30O=function(){Kc(Lg)},G._36O=function(){Kc(Lg)},G._8O("ss","cj")},Ad=function(Q){var o=Cd[qn[7]],n=1,T=!1;if(cl.a!=Cd[mc])return cl.a;if(cl.forEach(function(A){n*=A}),Q>n){if(o&&o[1]&&o[0]){var L=o[0],H=o[1];H=H.split(Pq._90O),L=L.split(Pq._90O);var k=H[3],x=L[3],C=H[7],I=H[11],E=H[15],M=H[19],D=H[23],e=H[27],q=L[7],u=k+C+I+E+M+D,J=D?!1:!0,X=x===k;if(D){var N=D&&D.split(dc("firefox")[3]);if(N)for(var R=0;R=0){J=!0;break}}}T=X&&yg()(x,q)&&yg()(u,e)&&J&&(!M||M>Q),T&&I.indexOf(bq.length)>=0&&(Ad[bq.length]=bq),T&&I.indexOf(bq.length+1)>=0&&(Ad[bq.length+1]=bq),T&&I.indexOf(bq.length+3)>=0&&(Ad[bq.length+3]=bq),T&&I.indexOf(Hd.length)>=0&&(Ad[Hd.length]=Hd)}T||(qf.prototype._42=dp)}else T=!0,Ad[bq.length]=Ad[bq.length+1]=Ad[bq.length+3]=Ad[Hd.length]=bq;return cl.a=T,T},Mm=String.fromCharCode(Mm+20);var zg=function(Q){return Q=Q.replace(Fk,Lg),Q=Q.replace(/[ \n]+/g,Lg)},Rk="30",$f="06",zd="02",Ld="03",yq=ci,gk=/^1f+00/,Bc=function(){var b;return b={_18O:function(Y){var w=Y,I=w.replace(/\s+/g,""),G=fg(I);return G},_14O:function(c){var p=this._18O(c),g=this._15O(p);return g},_15O:function(i){var w=this._17O(i);if("2a864886f70d010101"==w._61O){var s=this._16O(w.key),m=new eh;return m._38O(s.n,s.e),m}Kc(Lg)},_16O:function(y){var W={};y.substr(0,2)!=Rk&&Kc(Lg);var A=Pq._7O(y,0);return 2!=A.length&&Kc(Lg),y.substr(A[0],2)!=zd&&Kc(Lg),W.n=Pq._11O(y,A[0]),y.substr(A[1],2)!=zd&&Kc(Lg),W.e=Pq._11O(y,A[1]),W},_17O:function(l){var R={};R._40O=P;var g=Pq._7O(l,0);2!=g.length&&Kc(Lg);var w=g[0];l.substr(w,2)!=Rk&&Kc(Lg);var v=Pq._7O(l,w);return 2!=v.length&&Kc(Lg),l.substr(v[0],2)!=$f&&Kc(Lg),R._61O=Pq._11O(l,v[0]),l.substr(v[1],2)==$f?R._40O=Pq._11O(l,v[1]):l.substr(v[1],2)==Rk&&(R._40O={},R._40O.p=Pq._70O(l,v[1],[0],zd),R._40O.q=Pq._70O(l,v[1],[1],zd),R._40O.g=Pq._70O(l,v[1],[2],zd)),l.substr(g[1],2)!=Ld&&Kc(Lg),R.key=Pq._11O(l,g[1]).substr(2),R}},b._17O?b:P}(),Jb=Bc._27O=function(Z){return Bc._14O(Z)};yg=function(){return function(T,b){if(T&&b){b=zg(b);var l=yq(b,E(2,4)),A=this;if(!A||!A.n||l._55O()>A.n._55O())return 0;var g=A._37O(l),$=g[lq](E(2,4)).replace(gk,""),e=Hm($);if(0==e.length)return!1;var t=e[0],h=e[1],U=function(G){return Ic._4O.Util._56O(G,t)},d=U(T);return h==d}}.bind(Jb(c))};var li,bo;return function(){var b=Rp.length-Jl.length;if(b>0)for(var B=0;b>B;B++)li=uc.Util,bo=zg}(),pl=function(A,M){M=bo(M);var X=Jb(wk),w=Lq.length,T=2*w,l=yq(M,E(w,T)),v=X,f=!0;if(v){var h=v[Ho[0]];h&&l._55O()<=h._55O()&&(f=!1)}if(f)return 0;var j=v._37O(l),z=j[lq](E(w,T)).replace(gk,""),d=Hm(z);if(0==d.length)return!1;var K=d[0],G=d[1],D=li._11A(A,K);return G==D},Bc}(q,$),di(t,{load:function(){var h={},Y=function(c){return c?"c_"+(c.sync?"1":"0")+"_"+(c.post?"1":"0")+"_"+(c.responseType||"H")+"_"+(c.mimeType||"H")+"_"+(c.data?JSON.stringify(c.data):"H"):""};return function(f,S,d){var c,q=h[f],e=Y(d);return q&&(c=q[e])?(c.push(S),void 0):(h[f]||(q=h[f]={count:0}),c=q[e]=[S],q.count++,t.xhrLoad(f,function(_){delete q[e],q.count--,q.count||delete h[f],c.forEach(function(C){C(_)})},d),void 0)}}(),asyncEach:function(V,p,E){"function"!=typeof E&&(E=Function.prototype);var z=new Array(V.length),r=0,a=!1;V.forEach(function(C,I){p(C,function(N,q){return a?void 0:N?(a=!0,E(null)):(z[I]=q,r++,r===V.length?E(z):void 0)})})},xhrLoad:function(s,I,c){var U=!1;ks(s)||(U=!0,s=[s]),c=c||{};var l=c.sync,W=null,x=c.method||"GET";return c.post&&(x="POST"),c.method=x,t.asyncEach(s,function(T,A){var I=new Ke;T=t.beforeLoadURL(T),T.data?A(null,T.data):(c.url=encodeURI(T),c.responseType?I.setResponseType(c.responseType):I.setOverrideMimeType(c.mimeType||"text/plain"),I.onload=function(){200===this.status||0===this.status?A(null,I.getResponseText()):A(!0)},I.onerror=function(){A(!0)},I.send(c))},function(d){var r="function"==typeof I;(r||l)&&(W=U&&d?d[0]:d,r&&I(W))}),l?W:void 0}});var Zl=$.setPrototypeOf||function(Y,i){return Y.__proto__=i,Y},mf=$.getPrototypeOf||function(c){return c.__proto__},Sh=$.freeze;$.isFrozen;var tr=function(){var H=function(O){return O};return function(h){return h&&h.length?new Function("o",["return o['",h.join("']['"),"'];"].join("")):H}}(),ur=function(){var $=function(e,p){return e=p};return function(M){return M&&M.length?new Function("o","v",["return o['",M.join("']['"),"'] = v;"].join("")):$}}();!function(){function I(H){var P=[];if(H)for(var z;(z=n.exec(H))!=m;)P.push(z[1]);return P}function R(r,s){var B=q.exec(s);this._cell=r,this._key=B[1],this._format=B[2],this._style=I(B[3])}function s(p){for(var q=this._cellList=[],o=this._paramList=[],s=p.split(t),J=0,u=s.length;u>J;++J){var X=s[J];if("{{"!==X)for(var z=X.split(P),l=0,e=z.length;e>l;++l){var K=z[l];P.test(K)?(o.push(new R(q.length,K)),q.push(m)):K.length>0&&q.push(K)}else q.push("{")}this._formatList=this._cellList.slice(0)}var h={},f={},t=/(\{\{)/,P=/(\{\w+(?:\:\w+(?:\&[\w\.])*)?\})/,q=/\{(\w+)(?:\:(\w+)((?:\&[\w\.])*))?\}/,n=/\&([\w\.]*)/g;s.prototype._73O=function(F){for(var u=this._paramList.length;u--;){var c=this._paramList[u],w=F[vr(c._key)+1],o=f[c._format];o&&(w=o(w,c._style)),this._formatList[c._cell]=w}return this._formatList.join("")},s.prototype._map=function(r){for(var l=this._paramList.length;l--;){var b=this._paramList[l],m=r[b._key],u=f[b._format];u&&(m=u(m,b._style)),this._formatList[b._cell]=m}return this._formatList.join("")};var d=function(b){var N=h[b];return N||(h[b]=N=new s(b)),N._73O(arguments)};return d.map=function(i,X){var E=h[i];return E||(h[i]=E=new s(i)),E._map(X)},d.setValueFormat=function(V,B){f[V]=B},d.gc=function(){h.length=0},d.__parsed=h,d}();var sn=function(){function w(F,c,u,B){var d=F?F.path.slice(0):[];c&&d.push(c),this.desc=u,this.name=c,this.path=Sh(d),this.getter=tr(d),this.setter=ur(d),this.isLeaf=B,this.parent=F,this.children=[],this.childMap={}}return w.create=function(){function j(R,d,P,k){var B=k(P),x=new w(R,d,P,B);if(!B){for(var p=x.children,v=x.childMap,G=$.keys(P),W=0,q=G.length;q>W;++W){var h=G[W],u=j(x,h,P[h],k);p.push(u),v[u.name]=u}x.children=Sh(p),x.childMap=Sh(v)}return Sh(x),x}return function(i,O){return j(m,m,i,O)}}(),w.prototype.forEach=function(j,S){for(var D=this.children,d=0,Z=D.length;Z>d;++d){var r=D[d];j(r,S)}},w}(),Sh=$.freeze,ed={main:{mask:1,priority:t.cameraPriority.main,clearDepth:!1,ignore:!1},top:{mask:2,priority:t.cameraPriority.top,ignore:!1}},xk="main",Hm=ed[xk].mask,Tf=function(I,R){I=I||0;var z;if(R in ed)z=ed[R].mask;else{if(!(32>Wh))throw new Error("Only 31 render layer can be defined.");ed[R]={mask:1<b;++b)X=Tf(X,u[b]);return X},Tj=function(i,B){return i&&B&&i&B},Nn=function(F){return F.sort(function(L,d){return ed[L].priority-ed[d].priority})},qp=Nn($.keys(ed)),Wh=qp.length;di(t,{setRenderLayerInfo:function(s,q){if(Tf(0,s),q){for(var n in q)ed[s][n]=q[n];q.priority&&(qp=Nn($.keys(ed)))}},getRenderLayerInfo:function(j){return ed[j]}},!0);var Po=F.List=function(){this._as=[];var r,l,L=arguments.length;if(1===L){var M=arguments[0];if(Xn(M)&&(M=M._as),ks(M))for(l=M.length,r=0;l>r;r++)this._as.push(M[r]);else M!=P&&this._as.push(M)}else if(L>1)for(r=0;L>r;r++)this._as.push(arguments[r])};yr("List",$,{forEach:function(B,D){this.each(B,D)},push:function(){for(var J=0;J=0&&g=0},indexOf:function(D){return this._as.indexOf(D)},each:function(z,y){for(var Y=0,G=this._as.length;G>Y;Y++){var q=this._as[Y];y?z.call(y,q,Y,this):z(q,Y,this)}},reverseEach:function(I,Y){for(var q=this._as.length-1;q>=0;q--){var d=this._as[q];Y?I.call(Y,d):I(d)}},getArray:function(){return this._as},toArray:function(I,A){if(I){for(var D,J=[],W=0,U=this._as.length;U>W;W++)D=this._as[W],A?I.call(A,D)&&J.push(D):I(D)&&J.push(D);return J}return this._as.concat()},toList:function(r,O){if(r){for(var D,n=new Po,F=0,z=this._as.length;z>F;F++)D=this._as[F],O?r.call(O,D)&&n.add(D):r(D)&&n.add(D);return n}return new Po(this)},reverse:function(){this._as.reverse()},sort:function(n){return this._as.sort(n?n:ub),this},toString:function(){return this._as.toString()}}),$.defineProperties(Po.prototype,{length:{get:function(){return this._as.length},set:function(h){this._as.length=h}}});var rh=new Po;di(rh,{size:function(){return 0},indexOf:function(){return-1},contains:function(){return!1},isEmpty:function(){return!0},sort:nn,each:nn,reverseEach:nn,toArray:function(){return[]},toList:function(){return new Po},add:Ik,addAll:Ik,set:Ik,remove:Ik,removeAt:Ik,clear:Ik});var zf=F.Notifier=function(){this._f=0};yr("Notifier",$,{contains:function(H,s){if(this._ls)for(var l,i=0,t=this._ls.size();t>i;i++)if(l=this._ls.get(i),H===l.l&&s===l.s)return!0;return!1},add:function(m,w,V){var K=this,p={l:m,s:w,a:V};K._ls||(K._ls=new Po),K._f?(K._as||(K._as=new Po),K._as.add(p)):p.a?K._ls.add(p,0):K._ls.add(p)},remove:function(Z,l){var t=this;t._ls&&(t._f?(t._rs||(t._rs=new Po),t._rs.add({l:Z,s:l})):t._remove(Z,l))},_remove:function(c,i){for(var P,k=this._ls,M=0,T=k.size();T>M;M++)if(P=k.get(M),P.l===c&&P.s===i)return k.removeAt(M),void 0},fire:function($){var X=this,c=X._ls;if(X._b=1e4,c){++X._f;try{for(var I,o=0,P=c.size();P>o;o++)I=c.get(o),I.s?I.l.call(I.s,$):I.l($)}catch($){Zr(function(){throw $})}finally{if(--X._f)return;if(X._rs){for(P=X._rs.size(),o=0;P>o;o++)I=X._rs.get(o),X._remove(I.l,I.s);delete X._rs}if(X._as){for(P=X._as.size(),o=0;P>o;o++)I=X._as.get(o),I.a?c.add(I,0):c.add(I);delete X._as}}}}});var Pi=F.Data=function(){this._id=hi()};yr("Data",$,{ms_ac:["tag","name","displayName","icon","toolTip","attrObject","styleMap","layer","adjustChildrenToTop","dataBindings"],ms_dm:1,ms_attr:1,_icon:P,_parent:P,_children:rh,_childMap:P,_styleMap:P,_layer:"0",_renderLayer:xk,_renderLayerMask:Hm,_adjustChildrenToTop:!1,getRenderLayerMask:function(){return this._renderLayerMask||Hm},getRenderLayer:function(){return this._renderLayer||xk},setRenderLayer:function(F){var c=this,X=Tf(0,F);c._renderLayerMask=X;var g=c._renderLayer;c._renderLayer=F,c.fp("renderLayer",g,c._renderLayer)},testRenderLayer:function(b){var n=ed[b];return n&&Tj(this._renderLayerMask,ed[b].mask)},getUIClass:function(){return P},_22Q:function(){return P},beginTransaction:function(){this._dataModel&&this._dataModel.beginTransaction()},endTransaction:function(){this._dataModel&&this._dataModel.endTransaction()},s:function(o,w){var O=this;if(2===arguments.length)O.setStyle(o,w);else{if(!Pg(o))return O.getStyle(o);for(var M in o)O.setStyle(M,o[M])}return O},fp:function(d,p,x,H,T){return this.firePropertyChange(d,p,x,H,T)},firePropertyChange:function(M,W,C,U,l){if(U){if(U(W,C))return!1}else if(W===C)return!1;var P=this,Q=l||{};return Q.property=M,Q.oldValue=W,Q.newValue=C,Q.data=P,P._dataModel&&P._dataModel.handleDataPropertyChange(Q),P.onPropertyChanged(Q),!0},onPropertyChanged:function(U){var P=this,c=P._parent,p=U.property; if(hc(c)){var F=P.s($b),S="s:ingroup"===p;(F&&Cj[p]||p===S)&&c._81I(),(F||S)&&c.fp("childChange",!0,!1)}Ul(c)&&(Cj[p]||"elevation"===p||eo[p]||"scaleTall"===p||"tall"===p)&&c.updateFromChildren(),("s:alwaysOnTop"===p||"s:shape3d.alwaysOnTop"===p)&&(U.newValue?this.setRenderLayer("top"):this.setRenderLayer(m))},_21I:function(Z){var R=this;if(Z&&R._dataModel)throw"Remove data from dataModel before adding";R._dataModel=Z},removeFromDataModel:function(){this._dataModel?this._dataModel.remove(this):this.setParent(null)},clearChildrenFromDataModel:function(){for(var c=0,i=this._children.toArray(),F=i.length;F>c;c++)i[c].removeFromDataModel()},getId:function(){return this._id},setId:function(S){this._id=S},getChildren:function(){return this._children},size:function(){return this._children.size()},toChildren:function(o,z){return this._children.toList(o,z)},eachChild:function(I,N){this._children.each(I,N)},addChild:function(k,V){var c=this;k!==c&&(c._children===rh&&(c._children=new Po,c._childMap={}),V>=0||(V=c._children.size()),c._childMap[k._id]||c.isDescendantOf(k)||(k._parent&&k._parent.removeChild(k),(0>V||V>c._children.size())&&(V=c._children.size()),c._children.add(k,V),c._childMap[k._id]=k,k.setParent(c),c.onChildAdded(k,V),c.fp(ff,P,k)))},onChildAdded:function(){},removeChild:function(v){var f=this;if(f._childMap&&f._childMap[v._id]){var C=f._children.remove(v);delete f._childMap[v._id],f.fp(ff,v,P),v.setParent(P,C),f.onChildRemoved(v,C)}},onChildRemoved:function(){},getChildAt:function(D){return this._children.get(D)},clearChildren:function(){var H=this;if(!H._children.isEmpty())for(var x=0,P=H._children.toArray(),c=P.length;c>x;x++)H.removeChild(P[x])},getParent:function(){return this._parent},setParent:function(h,t){var A=this;if(!(A._73I||A._parent===h||A===h||h&&h.isDescendantOf(A))){var V,K=A._parent;A._parent=h,A._73I=1,K?(t==P&&(t=K.getChildren().indexOf(A)),K.removeChild(A)):A._dataModel&&t==P&&(t=A._dataModel.getRoots().indexOf(A)),h&&(h.addChild(A),V=h.getChildren().indexOf(A)),delete A._73I,A.fp("parent",K,h,m,{oldIndex:t,newIndex:V}),A.onParentChanged(K,h)}},onParentChanged:function(){},hasChildren:function(){return this._children.size()>0},isEmpty:function(){return this._children.isEmpty()},isRelatedTo:function(S){return S?this.isDescendantOf(S)||S.isDescendantOf(this):!1},isParentOf:function(z){return z&&this._childMap?!!this._childMap[z._id]:!1},isDescendantOf:function(u){if(!u||u.isEmpty())return!1;for(var R=this._parent;R;){if(u===R)return!0;R=R._parent}return!1},getStyle:function(J,V){V===m&&(V=1);var g=this._styleMap?this._styleMap[J]:m;return g===m&&V?l[J]:g},setStyle:function(M,x){var L=this;L._styleMap||(L._styleMap={});var U=L._styleMap[M];x===m?delete L._styleMap[M]:L._styleMap[M]=x,L.fp("s:"+M,U,x)&&L.onStyleChanged(M,U,x)},onStyleChanged:function(){},iv:function(j){this.invalidate(j)},invalidate:function(C){this.fp(C||"*",!1,!0)},toString:function(){var L=this;return L._displayName||L._name||L._tag||L._id},toLabel:function(){return this._displayName||this._name},addStyleIcon:function(p,B){var d=this,I=d.s(Sj);d.beginTransaction(),I||d.s(Sj,I={}),B?I[p]=B:delete I[p],d.fp(Sj,P,I),d.endTransaction()},removeStyleIcon:function(c){var X=this.s(Sj);if(X){var V=X[c];delete X[c],this.fp(Sj,P,X)}return V},_calcAnchorMatrix3d:function(){},appendAnchorMatrix3d:function(c){var $=this;if($.hasOwnProperty("_anchor")||$.hasOwnProperty("_anchorElevation")){var W=$.getAnchor3d(),L={x:W.x-.5,y:W.y-.5,z:W.z-.5};Xc(c,[-L.x,-L.y,-L.z])}},getSerializableProperties:function(){return{name:1,displayName:1,icon:1,toolTip:1,parent:1,layer:1,renderLayer:1,tag:1,adjustChildrenToTop:1,dataBindings:1}},getSerializableStyles:function(){var $,i={};for($ in this._styleMap)i[$]=1;return i},getCurrentPrefix:function(){return this._interactPrefix||el},ca:function(J,c){var o=this.getCurrentPrefix();return J=o+J,2===arguments.length?this.a(J,c):this.a(J)}});var zk=F.DataModel=function(){var b=this;b._isDeserializing=0,b._datas=new Po,b._dataMap={},b._roots=new Po,b._rootMap={},b._fsDataMap={},b._78O={},b._reflectorMap={},b._36I=new zf,b._35I=new zf,b._serializeNotifier=new zf,b._selectionModel=new dr(b);var g=b._29Q=[],n=b._scheduleCallback=function(){for(var M=Date.now(),I=0;Is.interval&&(s.beforeAction&&s.beforeAction(),s.action&&b.each(function(Z){s.action(Z)}),s.afterAction&&s.afterAction(),s.lastTime=M)}g.length&&(b._30Q=q.requestAnimationFrame(n))}};yr("DataModel",$,{ms_fire:1,ms_attr:1,ms_ac:["layers","name","autoAdjustIndex","hierarchicalRendering","background","envmapType","envmap","postProcessingData","init"],_name:m,_autoAdjustIndex:!0,_hierarchicalRendering:!1,_background:m,_init:m,_envmap:m,_envmapType:m,_postProcessingData:m,sm:function(){return this.getSelectionModel()},mm:function(f,S,w){this.addDataModelChangeListener(f,S,w)},umm:function(e,U){this.removeDataModelChangeListener(e,U)},md:function(v,N,L){this.addDataPropertyChangeListener(v,N,L)},umd:function(L,e){this.removeDataPropertyChangeListener(L,e)},mh:function(N,y,g){this.addHierarchyChangeListener(N,y,g)},umh:function(h,Z){this.removeHierarchyChangeListener(h,Z)},getAttrObject:function(){return this._attrObject},setAttrObject:function(m){return this._attrObject=m},getSelectionModel:function(){return this._selectionModel},size:function(){return this._datas.size()},isEmpty:function(){return this._datas.isEmpty()},getRoots:function(){return this._roots},getDatas:function(){return this._datas},getFullscreenDatas:function(){return this._fsDataMap},getReflectors:function(){return this._reflectorMap},getDataById:function(R){return this._dataMap[R]},removeDataById:function(M){this.remove(this.getDataById(M))},toDatas:function(P,x){return this._datas.toList(P,x)},each:function($,B){this._datas.each($,B)},getDataByTag:function(l){return this._78O[l]},getTagMap:function(){return this._78O},removeDataByTag:function(S){this.remove(this.getDataByTag(S))},add:function(Y,N,l){var n=this,r=Y._id,V=Y._tag,j=n._roots;if(n._dataMap[r])throw"'"+r+"' already exists";V!=P&&(n._78O[V]=Y),n._dataMap[r]=Y,l>=0?n._datas.add(Y,l):n._datas.add(Y),Y._parent||(n._rootMap[r]=Y,N>=0?j.add(Y,N):j.add(Y)),Y.s("fullscreen")!==m&&(n._fsDataMap[r]=Y),Y.s("shape3d.reflector")&&(n._reflectorMap[r]=Y),Y._21I(n),n.onAdded(Y),n._36I.fire({kind:"add",data:Y,rootsIndex:N,datasIndex:l})},onAdded:function(){},remove:function(K,e){if(K){var y=this,M=K._id,I=e&&e.keepStructure,z=e&&e.keepChildren,s=K.getTag();if(K._dataModel===y){var E=K instanceof hf;E&&t.setIsolating(!0),this.beginTransaction(),I?y._removingData||(y._removingData=K):y.prepareRemove(K),z||K.toChildren().each(function(n){y.remove(n,e)},y),I?y._removingData===K&&(K._parent&&K._parent.removeChild(K),delete y._removingData):K._parent&&K._parent.removeChild(K);var V=y._datas.remove(K);delete y._dataMap[M],s!=P&&delete y._78O[s];var H;y._rootMap[M]&&(delete y._rootMap[M],H=y._roots.remove(K)),y._fsDataMap[M]&&delete y._fsDataMap[M],y._reflectorMap[M]&&delete y._reflectorMap[M],K._21I(P),y.onRemoved(K),y._36I.fire({kind:xd,data:K,rootsIndex:H,datasIndex:V}),this.endTransaction(),E&&t.setIsolating(!1)}}},onRemoved:function(){},prepareRemove:function(){},clear:function(){var G=this;if(G._datas.size()){var s=G._historyManager?this.toJSON():m;G._datas.toArray().forEach(function(k){k._21I(P)}),G._datas.clear(),G._dataMap={},G._roots.clear(),G._rootMap={},G._fsDataMap={},G._reflectorMap={},G._78O={},G._36I.fire({kind:Bh,json:s})}},contains:function(x){return x&&x._dataModel===this},handleDataPropertyChange:function(a){var U=this,S=a.data,D=a.property;if("parent"===D){var V=S._id,I=U._rootMap,u=U._roots;S._parent?I[V]&&(delete I[V],u.remove(S)):I[V]||(I[V]=S,u.add(S))}else if("tag"===D){var x=a.oldValue,i=a.newValue,X=U._78O;x!=P&&delete X[x],i!=P&&(X[i]=S)}else if("s:fullscreen"===D){var V=S._id,B=U._fsDataMap;a.oldValue!=P&&delete B[V],a.newValue!=P&&(B[V]=S)}else if("s:shape3d.reflector"===D){var V=S._id,G=U._reflectorMap;a.oldValue&&delete G[V],a.newValue&&(G[V]=S)}this.onDataPropertyChanged(S,a),this._35I.fire(a)},onDataPropertyChanged:function(){},addDataModelChangeListener:function(o,S,s){this._36I.add(o,S,s)},removeDataModelChangeListener:function(u,P){this._36I.remove(u,P)},addSerializeListener:function(x,$,i){this._serializeNotifier.add(x,$,i)},removeSerializeListener:function(L,V){this._serializeNotifier.remove(L,V)},fireSerializeEvent:function(J){this._serializeNotifier.fire(J)},addDataPropertyChangeListener:function(r,p,c){this._35I.add(r,p,c)},removeDataPropertyChangeListener:function(p,f){this._35I.remove(p,f)},_38I:function(x,w,o){this._37I&&this._37I.fire({data:x,oldIndex:w,newIndex:o})},addHierarchyChangeListener:function(G,o,T){this._37I||(this._37I=new zf),this._37I.add(G,o,T)},removeHierarchyChangeListener:function(h,M){this._37I.remove(h,M)},getSiblings:function(d){var F=d._parent;return F?F._children:this._roots},eachByHierarchical:function($,s,C){if(s)return this._eachByHierarchical($,s,C);for(var f=0,l=this._roots,H=l.size();H>f;f++)if(this._eachByHierarchical($,l.get(f),C)===!1)return!1;return!0},_eachByHierarchical:function(F,s,q){if(q){if(F.call(q,s)===!1)return!1}else if(F(s)===!1)return!1;for(var e=s.size(),i=0;e>i;i++)if(this._eachByHierarchical(F,s.getChildAt(i),q)===!1)return!1;return!0},reverseEachByHierarchical:function(x,N,w){if(N)return this._reverseEachByHierarchical(x,N,w);for(var b=this._roots,S=b.size(),_=S-1;_>=0;_--)if(this._reverseEachByHierarchical(x,b.get(_),w)===!1)return!1;return!0},_reverseEachByHierarchical:function(_,Z,w){for(var g=Z.size(),b=g-1;b>=0;b--)if(this._reverseEachByHierarchical(_,Z.getChildAt(b),w)===!1)return!1;if(w){if(_.call(w,Z)===!1)return!1}else if(_(Z)===!1)return!1;return!0},eachByDepthFirst:function(W,F,B){if(F)return this._11I(W,F,B);for(var E=0,y=this._roots,K=y.size();K>E;E++)if(this._11I(W,y.get(E),B)===!1)return!1;return!0},_11I:function(q,V,z){for(var I=V.size(),u=0;I>u;u++)if(this._11I(q,V.getChildAt(u),z)===!1)return!1;if(z){if(q.call(z,V)===!1)return!1}else if(q(V)===!1)return!1;return!0},eachByBreadthFirst:function(B,U,v){var G=new Po;for(U?G.add(U):this._roots.each(G.add,G);G.size()>0;)if(U=G.removeAt(0),U.eachChild(G.add,G),v){if(B.call(v,U)===!1)return!1}else if(B(U)===!1)return!1;return!0},moveTo:function(a,z){var t=this.getSiblings(a),o=t.indexOf(a);o===z||0>o||z>=0&&z<=t.size()&&(t.remove(a),z>t.size()&&z--,t.add(a,z),this._38I(a,o,z))},moveUp:function(H){this.moveTo(H,this.getSiblings(H).indexOf(H)-1)},moveDown:function(S){this.moveTo(S,this.getSiblings(S).indexOf(S)+1)},moveToTop:function(r){this.moveTo(r,0)},moveToBottom:function(g){this.moveTo(g,this.getSiblings(g).size())},moveSelectionUp:function(J){this.beginTransaction(),J||(J=this.sm());var M=new Po;Fr(J,M,this._roots),M.each(this.moveUp,this),this.endTransaction()},moveSelectionDown:function(q){this.beginTransaction(),q||(q=this.sm());var z=new Po;Wp(q,z,this._roots),z.each(this.moveDown,this),this.endTransaction()},moveSelectionToTop:function(d){this.beginTransaction(),d||(d=this.sm());var a=new Po;Fj(d,a,this._roots),a.each(this.moveToTop,this),this.endTransaction()},moveSelectionToBottom:function(o){this.beginTransaction(),o||(o=this.sm());var h=new Po;pb(o,h,this._roots),h.each(this.moveToBottom,this),this.endTransaction()},moveToIndex:function(g,V,r){var U=this.getDatas();null==r&&(r=U.indexOf(g)),r===V||0>r||V>=0&&V<=U.size()&&(U.remove(g),V>U.size()&&V--,U.add(g,V),this._76I(g,r,V))},bringForward:function(q){this.moveToIndex(q,this.getDatas().indexOf(q)+1)},bringToFront:function(v){this.moveToIndex(v,this.size())},sendBackward:function(m){this.moveToIndex(m,this.getDatas().indexOf(m)-1)},sendToBack:function(i){this.moveToIndex(i,0)},bringSelectionForward:function(O){this.beginTransaction(),O||(O=this.sm());for(var E=new Po,X=this.getDatas(),q=!1,w=0;w=0&&N.splice(b,1),N.length||w._30Q==P||(q.cancelAnimationFrame(w._30Q),delete w._30Q)},getHistoryManager:function(){return this._historyManager},enableHistoryManager:function(B){this._historyManager||new F.HistoryManager(this),null!=B&&this._historyManager.setMaxHistoryCount(B),this._historyManager.setDisabled(!1)},disableHistoryManager:function(){this._historyManager&&this._historyManager.setDisabled(!0)},clearHistoryManager:function(){this._historyManager&&this._historyManager.clear()},undo:function(i){this._historyManager&&this._historyManager.undo(i)},redo:function(p){this._historyManager&&this._historyManager.redo(p)},beginTransaction:function(){this._historyManager&&this._historyManager.beginTransaction()},endTransaction:function(){this._historyManager&&this._historyManager.endTransaction()},addHistory:function(b){this._historyManager&&this._historyManager.addHistory(b)},onHistoryManagerChanged:function(){},isDeserializing:function(){return this._isDeserializing>0},setDeserializing:function(W){W?this._isDeserializing++:this._isDeserializing--},updateLayoutAttach:function(r){this.each(function(K){K instanceof ij&&K.getImage()===r&&K.updateLayoutAttaches()})},isCubicEnvmap:function(){return!1},setCubicEnvmap:function(){}});var dr=F.SelectionModel=function(X){var _=this;_._68O=fr,_._map={},_._73O=new Po,_._74I=new zf,_._21I(X)};yr("SelectionModel",$,{ms_fire:1,ms_dm:1,ms:function(B,x,n){this.addSelectionChangeListener(B,x,n)},ums:function(B,d){this.removeSelectionChangeListener(B,d)},fd:function(){return this.getFirstData()},ld:function(){return this.getLastData()},sg:function(){return this._68O===Ei},co:function(H){return this._map[H._id]!=P},ss:function(p){this.setSelection(p)},as:function(f){this.appendSelection(f)},rs:function(d){this.removeSelection(d)},cs:function(){this.clearSelection()},sa:function(){this.selectAll()},getSelectionMode:function(){return this._68O},setSelectionMode:function(G){var j=this;if(j._68O!==G&&(G===Ho||G===Ei||G===fr)){j.cs();var b=j._68O;j._68O=G,j.fp("selectionMode",b,G)}},_21I:function(g){var W=this,T=W._dataModel;T!==g&&(T&&(W.cs(),T.umm(W.handleDataModelChange,W)),W._dataModel=g,g.mm(W.handleDataModelChange,W,!0),W.fp(Zb,T,g))},dispose:function(){var i=this;i.cs(),i._dataModel.umm(i.handleDataModelChange,i)},handleDataModelChange:function(h){var G=this;if(h.kind===xd){var U=h.data;G.co(U)&&(G._73O.remove(U),delete G._map[U._id],G._75I(xd,new Po(U)))}else h.kind===Bh&&G.cs()},getFilterFunc:function(){return this._filterFunc},setFilterFunc:function(K){var r=this;if(r._filterFunc!==K){r.cs();var k=r._filterFunc;r._filterFunc=K,r.fp("filterFunc",k,r._filterFunc)}},_75I:function(n,G,y,k){y&&(this._73O.each(function(M){k[M._id]?y.remove(M):y.add(M)}),G=y.toList()),this._74I.fire({kind:n,datas:new Po(G)})},addSelectionChangeListener:function(Z,A,h){this._74I.add(Z,A,h)},removeSelectionChangeListener:function(H,f){this._74I.remove(H,f)},_97O:function(I,c){for(var z,y=this,$=0,K=new Po(I);$w;w++){var x=S.get(w);M._73O.remove(x),delete M._map[x._id]}M._75I(xd,S)}},toSelection:function(t,K){return this._73O.toList(t,K)},getSelection:function(){return this._73O},each:function(s,d){this._73O.each(s,d)},setSelection:function(i){var z=this,D=z._73O;if(z._68O!==Ho&&!(D.isEmpty()&&!i||1===D.size()&&z.ld()===i)){var w=new Po(D),Y=z._map;D.clear(),z._map={};var t=z._97O(i,!0);z.sg()&&t.size()>1&&(t=new Po(t.get(t.size()-1))),t.each(function(c){D.add(c),z._map[c._id]=c}),z._75I("set",P,w,Y)}},clearSelection:function(){var u=this,l=u._73O;if(l.size()>0){var m=l.toList();l.clear(),u._map={},u._75I(Bh,m)}},selectAll:function(){var u=this;if(u._68O!==Ho){var v,Q,b=u._dataModel.toDatas();if(u._filterFunc)for(v=0;v1&&(b=new Po(b.get(b.size()-1)));var A=b.size();for(v=0;A>v;v++)Q=b.get(v),E.add(Q),u._map[Q._id]=Q;u._75I("all",P,n,F)}},size:function(){return this._73O.size()},isEmpty:function(){return this._73O.isEmpty()},contains:function(L){return this._map[L._id]!=P},getLastData:function(){var N=this._73O;return N.size()>0?N.get(N.size()-1):P},getFirstData:function(){var d=this._73O;return d.size()>0?d.get(0):P},isSelectable:function(Q){var T=this;return Q&&T._68O!==Ho?T._filterFunc?T._filterFunc(Q):!0:!1},getTopSelection:function(){var I=this,M=new Po;return I._73O.each(function(o){for(var E=o.getParent();E;){if(I.contains(E)){o=P;break}E=E.parent}o&&M.add(o)}),M}});var tj=function(){return Pm(0),function(p,l){var f;if(Zn(l)){var q=p.getDataUI(l);q&&q._88I&&(f=q._88I.rect)}return f?f:l.getRect()}}();di(t,{edgeGroupAgentFunc:P,graphViewAutoScrollZone:16,graphViewZoomable:!0,graphViewResettable:!1,graphViewPannable:!0,graphViewRectSelectable:!0,graphViewScrollBarVisible:!0,graphViewRectSelectBorderColor:O.rectSelectBorder,graphViewRectSelectBackground:Fc,graphViewEditPointSize:pr?17:7,graphViewEditPointBorderColor:O.editPointBorder,graphViewEditPointBackground:O.editPointBackground,setEdgeType:function(i,D,x){xm[i]=D,Hp[i]=x},getEdgeType:function(s){return xm[s]},getEdgeTypeMap:function(){return xm},getNodeRect:tj},!0);var Hl={"layout.h":m,"layout.v":m,"2d.selectable":!0,"2d.visible":!0,"2d.movable":!0,"2d.editable":!0,"2d.move.mode":m,"2d.attachable":!1,"2d.hostable":!1,interactive:!1,preventDefaultWhenInteractive:!0,"image.stretch":"fill",icons:m,ingroup:!0,"body.color":m,"2d.gray":!1,fullscreen:m,"fullscreen.gap":2,"fullscreen.lock":!1,opacity:m,pixelPerfect:!0,keepAspectRatio:!1,"attach.points":null,"attach.style":null,"attach.close.threshold":16,"vector.layoutable":!1,"clip.direction":"top","clip.percentage":m,"select.color":Gh,"select.width":1,"select.padding":2,"select.type":Pj,"shadow.interactable":!0,shadow:!1,"shadow.blur":6,"shadow.offset.x":3,"shadow.offset.y":3,shadow2:!1,"shadow2.color":Gh,"shadow2.blur":6,"shadow2.offset.x":3,"shadow2.offset.y":3,"border.color":m,"border.width":2,"border.padding":2,"border.type":Pj,label:m,"label.font":m,"label.color":Ak,"label.background":m,"label.position":31,"label.position.fixed":!1,"label.offset.x":0,"label.offset.y":2,"label.rotation":m,"label.max":m,"label.opacity":m,"label.scale":1,"label.align":m,"label.selectable":!0,"label.decoration":m,label2:m,"label2.font":m,"label2.color":Ak,"label2.background":m,"label2.position":34,"label2.position.fixed":!1,"label2.offset.x":0,"label2.offset.y":-2,"label2.rotation":m,"label2.max":m,"label2.opacity":m,"label2.scale":1,"label2.align":m,"label2.selectable":!0,"label2.decoration":m,note:m,"note.expanded":!0,"note.font":m,"note.color":Nr,"note.background":Gh,"note.position":8,"note.offset.x":-3,"note.offset.y":3,"note.max":m,"note.toggleable":!0,"note.border.width":1,"note.border.color":m,"note.opacity":m,"note.scale":1,"note.align":m,note2:m,"note2.expanded":!0,"note2.font":m,"note2.color":Nr,"note2.background":Gh,"note2.position":3,"note2.offset.x":3,"note2.offset.y":-3,"note2.max":m,"note2.toggleable":!0,"note2.border.width":1,"note2.border.color":m,"note2.opacity":m,"note2.scale":1,"note2.align":m,"group.type":m,"group.image":m,"group.image.stretch":"fill","group.repeat.image":m,"group.border.repeat.image":m,"group.padding":8,"group.padding.left":0,"group.padding.right":0,"group.padding.top":0,"group.padding.bottom":0,"group.position":17,"group.toggleable":!0,"group.title.font":m,"group.title.color":Nr,"group.title.background":O.groupTitleBackground,"group.title.align":dk,"group.title.orientation":lh,"group.background":O.groupBackground,"group.depth":1,"group.border.width":1,"group.border.pattern":m,"group.border.color":kd,"group.border.radius":m,"group.border.cap":Sm,"group.border.join":ug,"group.border.width.absolute":!1,"group.splitLine":!1,"group.gradient":P,"group.gradient.color":"#FFF",shape:m,"shape.background":kd,"shape.repeat.image":m,"shape.border.repeat.image":m,"shape.border.width":0,"shape.border.width.absolute":!1,"shape.border.color":kd,"shape.border.3d":!1,"shape.border.3d.color":m,"shape.border.3d.accuracy":m,"shape.border.cap":Sm,"shape.border.join":ug,"shape.border.pattern":m,"shape.gradient":P,"shape.gradient.color":"#FFF","shape.depth":0,"shape.dash":!1,"shape.dash.pattern":un,"shape.dash.offset":0,"shape.dash.color":kc,"shape.dash.width":m,"shape.dash.3d":!1,"shape.dash.3d.color":m,"shape.dash.3d.accuracy":m,"shape.polygon.side":6,"shape.arc.from":d,"shape.arc.to":M,"shape.arc.close":!0,"shape.arc.oval":!1,"shape.corner.radius":m,"shape.gradient.pack":m,"shape.border.gradient.pack":m,"shape.fill.rule":"nonzero","shape.fill.clip.direction":"top","shape.fill.clip.percentage":m,"shape.foreground":m,"shape.foreground.gradient":P,"shape.foreground.gradient.color":"#FFF","shape.foreground.clip.direction":"top","shape.foreground.clip.percentage":m,"shape.regular":!0,"autolayout.gap":m,"autolayout.hgap":m,"autolayout.vgap":m,"edge.type":m,"edge.points":m,"edge.segments":m,"edge.color":kd,"edge.width":2,"edge.width.absolute":!1,"edge.repeat.image":null,"edge.offset":0,"edge.group":0,"edge.expanded":!0,"edge.gap":12,"edge.toggleable":!0,"edge.center":!1,"edge.3d":!1,"edge.3d.color":m,"edge.3d.accuracy":m,"edge.cap":Sm,"edge.join":ug,"edge.source.position":17,"edge.source.anchor.x":m,"edge.source.anchor.y":m,"edge.source.offset.x":0,"edge.source.offset.y":0,"edge.source.index":-1,"edge.source.percent":0,"edge.target.position":17,"edge.target.anchor.x":m,"edge.target.anchor.y":m,"edge.target.offset.x":0,"edge.target.offset.y":0,"edge.target.index":-1,"edge.target.percent":0,"edge.pattern":m,"edge.dash":!1,"edge.dash.pattern":un,"edge.dash.offset":0,"edge.dash.color":kc,"edge.dash.width":m,"edge.dash.3d":!1,"edge.dash.3d.color":m,"edge.dash.3d.accuracy":m,"edge.independent":!1,"attach.row.index":0,"attach.column.index":0,"attach.row.span":1,"attach.column.span":1,"attach.padding":0,"attach.padding.left":0,"attach.padding.right":0,"attach.padding.top":0,"attach.padding.bottom":0,"attach.index":-1,"attach.offset":0,"attach.offset.relative":!1,"attach.offset.opposite":!1,"attach.thickness":m,"attach.gap":0,"attach.gap.relative":!1,"grid.row.count":1,"grid.column.count":1,"grid.row.percents":m,"grid.column.percents":m,"grid.border":1,"grid.border.left":0,"grid.border.right":0,"grid.border.top":0,"grid.border.bottom":0,"grid.gap":1,"grid.background":O.gridBackground,"grid.depth":1,"grid.cell.depth":-1,"grid.cell.border.color":O.gridCellBorderColor,"grid.block":m,"grid.block.padding":3,"grid.block.width":1,"grid.block.color":O.gridBlockColor,text:"","text.align":"left","text.vAlign":"middle","text.color":Ak,"text.gradient.pack":m,"text.font":lk,"text.shadow":!1,"text.shadow.color":Gh,"text.shadow.blur":6,"text.shadow.offset.x":3,"text.shadow.offset.y":3,"text.scale.x":1,"text.scale.y":1,"text.gradient":m,"text.gradient.color":"#FFF","text.decoration":m,"text.vertical":!1,"text.vertical.gap":1,"text.wrap":!1,"text.letter.gap":null,"text.border.color":Gh,"text.border.width":0,keepPosition:!0};Hl[_o]=m,di(l,Hl,!0),di(zk,{_76I:function(u,p,v){this._39I&&this._39I.fire({data:u,oldIndex:p,newIndex:v})},addIndexChangeListener:function(Y,b,k){var W=this;W._39I||(W._39I=new zf),W._39I.add(Y,b,k)},removeIndexChangeListener:function(V,r){this._39I.remove(V,r)},prepareRemove:function(t){lc(t)&&(t.setSource(P),t.setTarget(P)),t._70O&&t._70O.toList().each(this.remove,this),t._69O&&t._69O.toList().each(function(i){i.setHost(P)}),t._host&&t.setHost(P)},onAdded:function(n){this.isAutoAdjustIndex()&&this.adjustIndex(n)},onDataPropertyChanged:function(C,x){Kb[x.property]&&this.isAutoAdjustIndex()&&this.adjustIndex(C)},isAdjustable:function(R){return $n(R)||lc(R)},isAdjustedToBottom:function(A){return hc(A)?A.isExpanded()&&Tc(A):!1},adjustIndex:function(z){var P=this;this.isHierarchicalRendering()||(P.isAdjustedToBottom(z)?(P.sendToBottom(z),z.eachChild(P.adjustIndex,P)):P.sendToTop(z))},sendToTop:function(Y){var V=this;if(V.contains(Y)&&V.isAdjustable(Y)){var g=V._datas;if(Y!==g.get(V.size()-1)){var m=g.indexOf(Y);g.removeAt(m),g.add(Y),V._76I(Y,m,V.size()-1)}if(lc(Y)){var K=Y._40I;K&&!V.isAdjustedToBottom(K)&&V.sendToTop(K),K=Y._41I,K&&!V.isAdjustedToBottom(K)&&V.sendToTop(K)}Y._69O&&Y._69O.each(function(u){u.isRelatedTo(Y)||$n(Y)&&u.isLoopedHostOn(Y)||V.sendToTop(u)}),Y.ISubGraph||(!hc(Y)||Y.isExpanded())&&Y._adjustChildrenToTop&&Y.eachChild(function(u){lc(u)||V.sendToTop(u)})}},sendToBottom:function(L,H){var j=this;if(L!==H&&j.contains(L)&&j.isAdjustable(L)&&(!H||j.contains(H))){var F=j._datas,Q=F.remove(L),c=H?j._datas.indexOf(H):0;if(F.add(L,c),Q!==c){j._76I(L,Q,c);var B=L._parent;!B||B.ISubGraph||lc(B)||j.sendToBottom(L._parent,L)}}}}),di(Io,{ms_edit:function(K){K._46O=function(q){var f=this,p=f.gv.dm(),X=f._index,L=f._89I,g=f._node,d=f._shape,V=f._edge,h=f._77I;g&&L?(this.fi({kind:"endEditRect",event:q,data:g,direction:L}),p.endTransaction()):d&&X>=0?(f.fi({kind:"endEditPoint",event:q,data:d,index:X}),p.endTransaction()):V&&X>=0?(f.fi({kind:"endEditPoint",event:q,data:V,index:X}),p.endTransaction()):h&&(f.fi({kind:"endEditRotation",event:q,data:h}),p.endTransaction())},K._78I=function(k){var W=this;W.autoScroll(k);var e=W.gv.lp(k),F=W._index,D=W._89I,Z=W._node,r=W._shape,j=W._edge,f=W._77I;if(Z&&D)W._80O(e),W.fi({kind:"betweenEditRect",event:k,data:Z,direction:D});else if(r&&F>=0)e.e=r.getPoints().get(F).e,r.setPoint(F,e),W.fi({kind:"betweenEditPoint",event:k,data:r,index:F});else if(j&&F>=0){var g=j.s(ke);e.e=g.get(F).e,g.set(F,e),j.fp(ke,P,g),W.fi({kind:"betweenEditPoint",event:k,data:j,index:F})}else if(f){var H=f.p(),h=f.getScale(),Y=pn+Of(e.y-H.y,e.x-H.x);h.y<0&&(Y+=d),_(Y)<.04&&(Y=0),f.setRotation(Y),W.fi({kind:"betweenEditRotation",event:k,data:f})}},K._80O=function(G){var B=this,E=B._node,m=B._rect,C=m.x,c=m.y,W=m.width,L=m.height,F=B._89I,b=B._anchor,H=B._matrix,G=H.tfi(G);"northwest"===F?m=es(G,{x:C+W,y:c+L}):F===bq?m=es({x:C,y:G.y},{x:C+W,y:c+L}):"northeast"===F?m=es({x:C,y:G.y},{x:G.x,y:c+L}):F===me?m=es({x:G.x,y:c},{x:C+W,y:c+L}):F===Dg?m=es({x:C,y:c},{x:G.x,y:c+L}):"southwest"===F?m=es({x:G.x,y:c},{x:C+W,y:G.y}):"south"===F?m=es({x:C,y:c},{x:C+W,y:G.y}):"southeast"===F&&(m=es({x:C,y:c},G)),E.setPosition(H.tf(m.x+m.width*b.x,m.y+m.height*b.y)),E.setWidth(m.width),E.setHeight(m.height)},K._80I=function(k,n,Z,f){var o=this,i=o.gv._zoom,z=(o.gv.getEditPointSize()+2)/i;return kf({x:n-z/2,y:Z-z/2,width:z,height:z},k)?(o._89I!==f&&(o._89I=f),!0):!1},K._79I=function(B,Z,G){var c=this,J=c.gv,L=Z?J.getDataUI(Z):P,Y=L?L._55O:P;if(Y){var d,q,X,W,K=J._zoom,o=(J.getEditPointSize()+2)/K,t=J.lp(B);if($n(Z)){if(Y._56O&&$n(Z)&&(q=Y._98o,kf({x:q.x-o/2,y:q.y-o/2,width:o,height:o},t)))return c._77I=Z,G&&c.fi({kind:"beginEditRotation",event:B,data:Z}),c.setCursor("crosshair"),!0;if(Y._43O&&Z instanceof op)for(X=Z.getPoints(),d=X.size()-1;d>=0;d--)if(q=X.get(d),kf({x:q.x-o/2,y:q.y-o/2,width:o,height:o},t))return c._index=d,c._shape=Z,G&&c.fi({kind:"beginEditPoint",event:B,data:Z,index:d}),c.setCursor("crosshair"),!0;if(Y._42O)for(var y=Z.getEditControlPoints(),H=["northwest",-1,-1,me,-1,0,"southwest",-1,1,"south",0,1,"southeast",1,1,Dg,1,0,"northeast",1,-1,bq,0,-1],d=0,W=y.length;W>d;d++){var u=H[3*d],w=y[d];if(c._80I(t,w.x,w.y,u)){c._node=Z;var m=Z.getWidth(),F=Z.getHeight(),a=Z.getAnchor();c._rect={x:-m*a.x,y:-F*a.y,width:m,height:F},c._anchor=a,c._matrix=Z.getMatrix();var k=Z.getRotation(),D=n(k),e=r(k),A=H[3*d+1]*Wr(Z.getScale().x),R=H[3*d+2]*Wr(Z.getScale().y),E=Math.atan2(-e*A-D*R,D*A-e*R),$=(Math.round(E/(Math.PI/4))+8)%8,C=[cp,"nesw-resize",Fd,"nwse-resize",cp,"nesw-resize",Fd,"nwse-resize"][$];return c.setCursor(C),G&&c.fi({kind:"beginEditRect",event:B,data:Z,direction:c._89I}),!0}}}if(Y._43O&&lc(Z)&&Z.s(Xd)===Lb&&(X=Z.s(ke)))for(d=X.size()-1;d>=0;d--)if(q=X.get(d),kf({x:q.x-o/2,y:q.y-o/2,width:o,height:o},t))return c._index=d,c._edge=Z,G&&c.fi({kind:"beginEditPoint",event:B,data:Z,index:d}),c.setCursor("crosshair"),!0}return!1}},ms_gv:function(r){r._currentSubGraph=P,r._initView=function(){this._fpsInfo={time:0,fps:0,frames:0}},r.upSubGraph=function(){this.setCurrentSubGraph(zm(this._currentSubGraph))},r.isVisible=function(x){var N=this;if(zm(x)!==N._currentSubGraph)return!1;if(lc(x)){var k=x._40I,c=x._41I;if(!k||!c)return!1;if(!(x.s("edge.independent")||N.isVisible(k)&&N.isVisible(c)))return!1;if(x.isEdgeGroupHidden())return!1}else for(var a=x._parent;a&&!a.ISubGraph;){if(hc(a)&&(!a.isExpanded()||!N.isVisible(a)))return!1;a=a._parent}if(x._parent instanceof hf&&!N.isVisible(x._parent))return!1;if(x._refGraph instanceof Pc&&!N.isVisible(x._refGraph))return!1;if(N instanceof Ds){if(!x.s("3d.visible"))return!1}else{var S=N.getLayersInfo();if(S){var P=S[x._layer];if(P&&P.visible===!1)return!1}if(!x.s("2d.visible"))return!1}return N._visibleFunc?N._visibleFunc(x):!0},r.handleSelectionChange=function(C){var _=this;C.datas.each(function(X){_.invalidateData(X);var j=X._parent;hc(j)&&$n(X)&&X.s($b)&&(_.invalidateData(j),j._49I&&j._49I.each(function(Y){_.invalidateData(Y)}))}),_.onSelectionChanged(C)},r.onSelectionChanged=function(O){var e=this,h=e.sm();if(1===h.size()&&("set"===O.kind||"append"===O.kind)){var G=h.ld();e.isAutoMakeVisible()&&e.makeVisible(G),e.adjustIndex&&e._dataModel.isAutoAdjustIndex()&&e.adjustIndex(G)}},r.makeVisible=function(g){if(g){var Q=this,L=Q.getDataUI?Q.getDataUI(g):Q.getData3dUI(g);if(L){var W=g,H=zm(g);for(H!==Q._currentSubGraph&&Q.setCurrentSubGraph(H);(W=W._parent)&&W!==H;)hc(W)&&W.setExpanded(!0);Q._23I=g,Q.iv()}}},r.getLabel=function(O){var r=O.getStyle(ng);return r===m?O.getName():r},r.getLabelBackground=function(s){return s.getStyle("label.background")},r.getLabelColor=function(n){return n.getStyle("label.color")},r.getLabel2=function(E){return E.getStyle("label2")},r.getLabel2Background=function(s){return s.getStyle("label2.background")},r.getLabel2Color=function(i){return i.getStyle("label2.color")},r.getNote=function(N){return N.getStyle(Op)},r.getNoteBackground=function(_){return _.getStyle("note.background")},r.getNote2=function(g){return g.getStyle(Mi)},r.getNote2Background=function(t){return t.getStyle("note2.background")},r.handleClick=function(X,j,k){var U=this;j?(U.fi({kind:"clickData",event:X,data:j,part:k}),U.onDataClicked(j,X)):(U.fi({kind:"clickBackground",event:X}),U.onBackgroundClicked(X))},r.handleDoubleClick=function(l,h,S){var B=this;yn(l)&&(h?(B.fi({kind:"doubleClickData",event:l,data:h,part:S}),B.onDataDoubleClicked(h,l,S),B.checkDoubleClickOnNote(l,h,S)||B.checkDoubleClickOnRotation&&B.checkDoubleClickOnRotation(l,h,S)||(lc(h)?B.onEdgeDoubleClicked(h,l,S):h.ISubGraph?B.onSubGraphDoubleClicked(h,l,S):hc(h)?B.onGroupDoubleClicked(h,l,S):h.IDoorWindow?B.onDoorWindowDoubleClicked(h,l,S):h.ICSGBox&&B.onCSGBoxDoubleClicked(h,l,S))):(B.fi({kind:"doubleClickBackground",event:l}),B.onBackgroundDoubleClicked(l))) },r.onSubGraphDoubleClicked=function(D){this.setCurrentSubGraph(D)},r.onEdgeDoubleClicked=function(b,s){this.isEditable(b)||(b.ISubGraph&&!Hn(s)?this.setCurrentSubGraph(b):b.s("edge.toggleable")&&b.toggle())},r._39Q=function(p){return this.isInteractive(p)?this.preventDefaultWhenInteractive(p):!1},r.preventDefaultWhenInteractive=function(k){return k.s("preventDefaultWhenInteractive")},r.onGroupDoubleClicked=function(m){m.s("group.toggleable")&&m.toggle()},r.onDoorWindowDoubleClicked=function(Y){Y.s("dw.toggleable")&&Y.toggle(!0)},r.onCSGBoxDoubleClicked=function(u,v){var L=this;if(L instanceof Ds){var r=L.intersectObject(v,u);r&&u.s(r.part+".toggleable")&&u.toggleFace(r.part,!0)}},r.onBackgroundClicked=function(){},r.onBackgroundDoubleClicked=function(){this.upSubGraph()},r.onDataClicked=function(){},r.onDataDoubleClicked=function(){},r.onAutoLayoutEnded=function(){},r.onMoveEnded=function(){},r.onPanEnded=function(){},r.onPinchEnded=function(){},r.onRectSelectEnded=function(){},r.onZoomEnded=function(){},r.serialize=function(h){return this.dm().serialize(h)},r.toJSON=function(){return this.dm().toJSON()},r.deserialize=function(z,A){var u=this;A=A instanceof Pi?{rootParent:A}:cg(A)?{setId:A}:ns(A)?{finishFunc:A}:A||{},A.view=u;var h=u.dm();return A.reset&&(h.setAttrObject({}),h.setLayers(m),h.setName(m),h.setAutoAdjustIndex(!0),h.setHierarchicalRendering(!1),h.setBackground(m),h.setInit(m),h.setPostProcessingData(m),h.setEnvmap(m),h.setEnvmapType(m),u.disableToolTip(),u instanceof F.graph.GraphView?(u.setZoomable(t.graphViewZoomable),u.setPannable(t.graphViewPannable),u.setRectSelectable(t.graphViewRectSelectable)):u instanceof F.graph3d.Graph3dView&&(u.shadowMap.resetProperties(),u.setDashDisabled(t.graph3dViewDashDisabled),u.getHighlightHelper().resetProperties(),u.resetHeadlightProperties(),u.resetFogProperties(),u.setBatchInfoMap({}),u.setBatchColorDisabled(t.graph3dViewBatchColorDisabled),u.setBatchInstancedDisabled(t.graph3dViewBatchInstancedDisabled),u.setBatchBlendDisabled(t.graph3dViewBatchBlendDisabled),u.setBatchBrightnessDisabled(t.graph3dViewBatchBrightnessDisabled),u.setMoveStep(t.graph3dViewMoveStep),u.setRotateStep(t.graph3dViewRotateStep),u.setSortable(t.graph3dViewSortable),u.setSortFunc(m),u.setSkybox(m),kn(u))),A.__innerHandler__=function(p){if(cg(h.a("toolTipEnable"))&&(h.a("toolTipEnable")?u.enableToolTip():u.disableToolTip()),u instanceof F.graph.GraphView&&(cg(h.a("zoomable"))&&u.setZoomable&&u.setZoomable(h.a("zoomable")),cg(h.a("pannable"))&&u.setPannable&&u.setPannable(h.a("pannable")),cg(h.a("rectSelectable"))&&u.setRectSelectable&&u.setRectSelectable(h.a("rectSelectable")),h.a("fitContent")===!0&&u.fitContent&&u.fitContent(!0,0)),u instanceof F.graph3d.Graph3dView){var N=p.scene;N&&N.shadow!=P&&u.shadowMap.setShadow(N.shadow,N.shadowParams);var f=h.a("sceneContext");f?(f.eye&&u.setEye(f.eye),f.center&&u.setCenter(f.center),Ll(f.far)&&u.setFar(f.far),Ll(f.near)&&u.setNear(f.near)):(Ll(h.a("sceneNear"))&&u.setNear(h.a("sceneNear")),Ll(h.a("sceneFar"))&&u.setFar(h.a("sceneFar")),N&&(N.eye&&u.setEye(N.eye),N.center&&u.setCenter(N.center))),cg(h.a("sceneShadowEnabled"))&&(h.a("sceneShadowEnabled")?u.enableShadow():u.disableShadow()),Ll(h.a("sceneShadowDegreeX"))&&u.setShadowDegreeX(h.a("sceneShadowDegreeX")),Ll(h.a("sceneShadowDegreeZ"))&&u.setShadowDegreeZ(h.a("sceneShadowDegreeZ")),Ll(h.a("sceneShadowIntensity"))&&u.setShadowIntensity(h.a("sceneShadowIntensity")),h.a("sceneShadowQuality")!=P&&u.setShadowQuality(h.a("sceneShadowQuality")),h.a("sceneShadowType")&&u.setShadowType(h.a("sceneShadowType")),Ll(h.a("sceneShadowRadius"))&&u.setShadowRadius(h.a("sceneShadowRadius")),Ll(h.a("sceneShadowBias"))&&u.setShadowBias(h.a("sceneShadowBias")),cg(h.a("sceneDashEnable"))&&u.setDashDisabled(!h.a("sceneDashEnable")),ib(h.a("sceneHighlightMode"))&&u.setHighlightMode(h.a("sceneHighlightMode")),Ll(h.a("sceneHighlightWidth"))&&u.setHighlightWidth(h.a("sceneHighlightWidth")),h.a("sceneHighlightColor")&&u.setHighlightColor(h.a("sceneHighlightColor")),h.a("sceneHighlightType")&&u.setHighlightType(h.a("sceneHighlightType")),h.a("sceneHighlightGlow")&&u.setHighlightGlow(h.a("sceneHighlightGlow")),h.a("sceneHighlightStrength")&&u.setHighlightStrength(h.a("sceneHighlightStrength")),cg(h.a("sceneHeadlightEnable"))&&u.setHeadlightDisabled(!h.a("sceneHeadlightEnable")),Ll(h.a("sceneHeadlightRange"))&&u.setHeadlightRange(h.a("sceneHeadlightRange")),h.a("sceneHeadlightColor")&&u.setHeadlightColor(h.a("sceneHeadlightColor")),Ll(h.a("sceneHeadlightIntensity"))&&u.setHeadlightIntensity(h.a("sceneHeadlightIntensity")),Ll(h.a("sceneHeadlightAmbientIntensity"))&&u.setHeadlightAmbientIntensity(h.a("sceneHeadlightAmbientIntensity")),Ll(h.a("sceneHeadlightGroup"))&&u.setHeadlightGroup(h.a("sceneHeadlightGroup")),cg(h.a("sceneFogEnable"))&&u.setFogDisabled(!h.a("sceneFogEnable")),h.a("sceneFogMode")&&u.setFogMode(h.a("sceneFogMode")),Ll(h.a("sceneFogDensity"))&&u.setFogDensity(h.a("sceneFogDensity")),h.a("sceneFogColor")&&u.setFogColor(h.a("sceneFogColor")),Ll(h.a("sceneFogNear"))&&u.setFogNear(h.a("sceneFogNear")),Ll(h.a("sceneFogFar"))&&u.setFogFar(h.a("sceneFogFar")),cg(h.a("sceneBatchBrightnessDisabled"))&&u.setBatchBrightnessDisabled(h.a("sceneBatchBrightnessDisabled")),cg(h.a("sceneBatchBlendDisabled"))&&u.setBatchBlendDisabled(h.a("sceneBatchBlendDisabled")),cg(h.a("sceneBatchColorDisabled"))&&u.setBatchColorDisabled(h.a("sceneBatchColorDisabled")),cg(h.a("sceneBatchInstancedDisabled"))&&u.setBatchInstancedDisabled(h.a("sceneBatchInstancedDisabled")),h.a("sceneBatchInfoMap")&&u.setBatchInfoMap(h.a("sceneBatchInfoMap")),Ll(h.a("sceneMoveStep"))&&u.setMoveStep(h.a("sceneMoveStep")),Ll(h.a("sceneRotateStep"))&&u.setRotateStep(h.a("sceneRotateStep")),cg(h.a("sceneSortable"))&&u.setSortable(h.a("sceneSortable")),ns(h.a("sceneSortFunc"))&&u.setSortFunc(h.a("sceneSortFunc"));var O=h.a("sceneSkyboxType")||"sphere";if(O!=P){var A={},Q=!1;if("sphere"===O){A.shape3d=O;var D=h.a("sceneSkyboxImage");D&&(A["shape3d.image"]=D,Q=!0)}else A.shape3d=m,["front","back","left","right","top","bottom"].forEach(function(p){var b=p+".image",c=p.charAt(0).toUpperCase()+p.slice(1),o=h.a("sceneSkybox"+c+"Image");o&&(A[b]=o,Q=!0)});if(Q){var z=new ij,G=h.a("sceneSkyboxDiameter");Ll(G)?z.s3(G,G,G):z.s3(20,20,20),A["body.color"]=h.a("sceneSkyboxBodyColor"),A.envmap=h.a("sceneSkyboxEnvmap"),A["envmap.probe"]=h.a("sceneSkyboxEnvmapProbe"),A.roughness=h.a("sceneSkyboxRoughness"),A["shape3d.light"]=A["all.light"]=h.a("sceneSkyboxLight"),A["light.mask"]=h.a("sceneSkyboxLightMask"),A["headlight.ambientIntensity"]=h.a("sceneSkyboxHeadLightAmbientIntensity"),A["texture.wrap"]="clampToEdge",A["3d.clipbox.mask"]=ce,A["effect.flow.mask"]=ce,z.s(A),["X","Y","Z"].forEach(function(F){var f=h.a("sceneSkyboxRotation"+F);Ll(f)&&z["setRotation"+F](f)}),u.setSkybox(z)}}}},h.deserialize(z,A.rootParent,A)},r.isDebugTipShowing=function(){return!!this._debugDiv},r.showDebugTip=function(){var F=this,L=F._debugDiv;if(!L){L=F._debugDiv=U.createElement("div"),L.style.position="absolute",L.style.overflow="hidden",L.style.font=t.debugTipLabelFont,L.style.padding="6px",L.style.backgroundColor=t.debugTipBackground,L.style.color=t.debugTipLabelColor;var K=F.getView();F._79O?K.insertBefore(L,F._79O):K.appendChild(L);var y=function(){F.redraw();var s=F._canvas,g="FPS: "+F._fpsInfo.fps+"
"+"Datas: "+F.dm().getDatas().length+(s?"
Size: "+s.width+" * "+s.height:""),R=F.dm()._historyManager;R&&(g+="
Undoes: "+R.getHistories().length+" index: "+R.getHistoryIndex());var K=F.getDebugTip();K&&(g+="
"+K),L.innerHTML=g,F._isDebugging&&requestAnimationFrame(y)};requestAnimationFrame(y),F._isDebugging=!0}},r.hideDebugTip=function(){var c=this,y=c._debugDiv;y&&(delete c._debugDiv,c.getView().removeChild(y),c._isDebugging=!1)},r.updateDOMAppendMatrix=function(){var U=this.getView();U&&(U.updateAppendMatrix=!0)},r.countFrame=function(){if(this._isDebugging){var v=Date.now(),B=this._fpsInfo;v-B.time>1e3?(B.fps=Math.round(1e5*(B.frames+1)/(v-B.time))/100,B.time=v,B.frames=0):B.frames++}}},ms_icons:function(T){T.getRotation=function(M){return M==P?0:M},T._15O=function(){var M=this,U=M.s(Sj);if(U){var _=M,D=M.data||M._data,E=M._38o={icons:U,rects:{}};for(var s in U){var d=U[s],T=Lk(d.shape3d,D,_);if(!(Lk(d.visible,D,_)===!1||Lk(d.for3d,D,_)&&!M.I3d||T&&!M.I3d)){var m=T?[T]:Lk(d.names,D,_),g=m?m.length:0,C=Lk(d.position,D,_)||3,u=Lk(d.offsetX,D,_)||0,I=Lk(d.offsetY,D,_)||0,k=Lk(d.direction,D,_)||Dg,S=Lk(d.gap,D,_),O=S!=P?S:1,b=Lk(d.rotation,D,_),z=Lk(d.keepOrien,D,_),J=Lk(d.rotationFixed,D,_)?b:M.getRotation(b,z,C),y=P,X=E.rects[s]=new Array(g);X.rotation=J;for(var r=0;g>r;r++){var l,W,j,Z,V=m[r];if(T)j=0,Z=0;else{var N=tc(V);j=Lk(d.width,D,_),Z=Lk(d.height,D,_),j==P&&(j=zs(N,D)),Z==P&&(Z=Mc(N,D))}if(y?k===Dg?u+=j/2:k===me?u-=j/2:k===bq?I-=Z/2:I+=Z/2:y={width:j,height:Z},M.I3d){var L=-j/2,i=-Z/2;W={width:j,height:Z,mat:M._16O(Lk(d.autorotate,D,_),C,y,Lk(d.face,D,_)||Nl,Lk(d.t3,D,_),Lk(d.r3,D,_),Lk(d.rotationMode,D,_),u,I),vs:new ip([L,-i,0,L,-i-Z,0,L+j,-i-Z,0,L+j,-i,0])}}else l=M.getPosition(C,u,I,y,Lk(d.positionFixed,D,_)),W={x:l.x-j/2,y:l.y-Z/2,width:j,height:Z},M._68o(W,J);X[r]=W,k===Dg?u+=j/2+O:k===me?u-=j/2+O:k===bq?I-=Z/2+O:I+=Z/2+O}}}}}}});var Ug={1:1,2:1,6:1,9:1,10:1,14:1,15:1,16:1,21:1,22:1,26:1,29:1,30:1,34:1,36:1,38:1,40:1,42:1,45:1,50:1,52:1,54:1},ti={3:1,7:1,11:1,17:1,23:1,27:1,31:1,44:1,46:1,47:1,49:1},jc={translateX:1,translateY:1,zoom:1,scrollBarVisible:1},Kb={sourceAgent:1,targetAgent:1,expanded:1,parent:1,host:1},Cj={position:1,width:1,height:1,expanded:1,rotation:1,anchor:1,scale:1,"s:edge.points":1},pf={"edge.type":1,"edge.group":1},eo={rotation:1,rotationX:1,rotationZ:1,rotation3d:1},So={rotation:1,position:1,width:1,height:1,anchor:1,scale:1,host:1},El={position:1,width:1,height:1,anchor:1,scale:1,"s:grid.row.count":1,"s:grid.column.count":1,"s:grid.row.percents":1,"s:grid.column.percents":1,"s:grid.border":1,"s:grid.border.left":1,"s:grid.border.right":1,"s:grid.border.top":1,"s:grid.border.bottom":1,"s:grid.gap":1},rs={"attach.row.index":1,"attach.column.index":1,"attach.row.span":1,"attach.column.span":1,"attach.padding":1,"attach.padding.left":1,"attach.padding.right":1,"attach.padding.top":1,"attach.padding.bottom":1,"attach.index":1,"attach.offset":1,"attach.offset.relative":1,"attach.offset.opposite":1,"attach.gap":1,"attach.gap.relative":1,"attach.thickness":1},Lr={shape:1,thickness:1,position:1,anchor:1,scale:1},zm=function(U){if(!U)return P;if(lc(U)){var I=U._40I,D=U._41I;if(!I||!D)return P;var p=zm(I),A=zm(D);return p===A?p:P}for(var v=U._parent;lc(v)&&!v.ISubGraph;)v=v._parent;return v?v.ISubGraph?v:zm(v):P},Qr=function(q,S,H,k){var c=S.getStyle(H)*k;c&&Cl(q,c),c=S.getStyle(H+".left")*k,c&&(q.x-=c,q.width+=c),c=S.getStyle(H+".right")*k,c&&(q.width+=c),c=S.getStyle(H+".top")*k,c&&(q.y-=c,q.height+=c),c=S.getStyle(H+".bottom")*k,c&&(q.height+=c),q.width<0&&(q.width=-q.width,q.x-=q.width),q.height<0&&(q.height=-q.height,q.y-=q.height)},Tc=function(r){for(var z,E=0,J=r.size();J>E;E++)if(z=r.getChildAt(E),$n(z)&&Tc(z))return!0;return r.hasAgentEdges()},Ml=function(Y){if(!Y)return P;for(var E=Y._parent;hc(E);){if(!hc(E._parent))return E.isExpanded()?Y:E;E.isExpanded()||(Y=E),E=E._parent}return Y},To=function(h,O){if(!h||!O)return P;var f,A,j,X=zm(h),x=zm(O);if(X!==x){for(;x&&X!==x;)x=zm(x);if(X===x)return h;f=new Po,f.add(h,0);for(var S=h._parent;$n(S)&&!O.isDescendantOf(S);)f.add(S,0),S=S._parent;for(j=f.size(),A=0;j>A;A++){var i=f.get(A);if(hc(i)&&!i.isExpanded())return i;if(i.ISubGraph)return i}return h}return h},Uj=function(g){if(g.isLooped())return g._source;var J=Ml(g._source),m=Ml(g._target);return J===m?g._source:To(J,m)},gi=function(V){if(V.isLooped())return V._target;var C=Ml(V._source),q=Ml(V._target);return C===q?V._target:To(q,C)},yp=function(e,n,N){"target"!==N&&(N="source");var X="target"===N?n.getTargetAgent():n.getSourceAgent(),b="edge."+N+".";if(lc(X)){var v=e.getDataUI(X);v._79o();var y=n.s(b+"index");if(y>=0){var j=Cq(v);return j[Math.max(0,Math.min(y,j.length-1))]}var J=n.s(b+"percent")||0;J=Math.max(0,Math.min(J,1));var $=kr(v);return ym($,100*J)}return Ub(e,X,n.s(b+"position"),n.s(b+"offset.x"),n.s(b+"offset.y"),n.s(b+"anchor.x"),n.s(b+"anchor.y"))},Ub=function(k,$,q,j,J,g,h){if(!$)return P;var x,D=$.getRotation?$.getRotation():0;if(g!==m||h!==m){g=g===m?.5:g,h=h===m?.5:h;var _=$.getScale();if(D&&!Zn($,k)||_.x<0||_.y<0){var U=$.getPosition(),L=$.getWidth(),H=$.getHeight(),d=$.getAnchor(),Y=new Hq(D,U.x,U.y,_.x,_.y);q=Y.tf((g-d.x)*L,(h-d.y)*H)}else x=tj(k,$),q={x:x.x+g*x.width,y:x.y+h*x.height}}else q=jl(q,tj(k,$));if(D){var f=n(D),u=r(D),B=j*f-J*u;J=j*u+J*f,j=B}return q.x+=j,q.y+=J,q},Km=function(p,n){if(!p||!n)return P;var k,F,H,V,K,c;if(p===n){if(V=p.getLoopedEdges(),!V)return P;V=new Po(V)}else{if(K=p.getAgentEdges(),c=n.getAgentEdges(),!K||!c)return P;for(F=K.size(),k=0;F>k;k++)H=K.get(k),c.contains(H)&&(V||(V=new Po),V.add(H))}if(V)for(k=0;k2*d?d:k/2},Bo=function(o,J,M,k){if(!o||!J)return 0;var Y=Of(J.y-o.y,J.x-o.x);return M||(Y=J.xR.x||$.x===R.x&&$.y>R.y)&&(k=Sp[k],U=-U);var N=jl(k,{x:0,y:0,width:Yh($,R),height:0},K);return N.x+=V,N.y+=U,N=new Hq(Of(R.y-$.y,R.x-$.x)).tf(N),N.x+=$.x,N.y+=$.y,N},Aj=function(d,M,R,S,W){if(d._19Q=!0,!R.getEdgeGroup())return S?R.s("edge.gap"):0;if(lc(R.getSourceAgent())||lc(R.getTargetAgent()))return 0;var _,J=0,n=0,L=0;if(R.getEdgeGroup().getSiblings().each(function(u){u.each(function(Q){if(M.isVisible(Q)&&Q.s(Xd)==W){var j=Q.s("edge.gap");_?(n+=L/2+j/2,L=j):(_=Q,L=j),Q===R&&(J=n)}})}),S)return n-J+L;var O=J-n/2;return _&&R._40I!==_._40I&&(d._19Q=!1),O},Ud=function($){var E=$._getValidSelection();if(1===E.length){var H=E[0],U=H instanceof F.Edge;if(H instanceof F.Shape||U){if(U){var M=H.s("edge.type");if(M&&"points"!==M)return}var C=$.gv;if((!C.isPointEditable||C.isPointEditable(H))&&C.isEditable(H))return H}}},$o=function(){var a=function(y){var G=[];return y.forEach(function(N){G.push({x:N.x,y:N.y}),G.push({x:N.x+N.width,y:N.y+N.height}),G.push({x:N.x+N.width,y:N.y}),G.push({x:N.x,y:N.y+N.height})}),G};return function(s,u,X){if("oval"===s){var y=0,Z=X.height/X.width,R=Z*Z,r=X.x+X.width/2,U=X.y+X.height/2,Q=a(u);Q.forEach(function(I){var k=I.x-r,e=I.y-U,m=k*k+e*e/R;m>y&&(y=m)}),y=L(y);var C=Z*y;return{x:r-y,y:U-C,width:2*y,height:2*C}}if("circle"===s){var J=0,r=X.x+X.width/2,U=X.y+X.height/2,Q=a(u);return Q.forEach(function(k){var T=k.x-r,c=k.y-U,j=T*T+c*c;j>J&&(J=j)}),J=L(J),{x:r-J,y:U-J,width:2*J,height:2*J}}return"roundRect"===s?(Cl(X,v(X.width,X.height)/16),X):X}}(),nq=F.graph={},Rq=function(I,$,B){Ri(Z+".graph."+I,$,B)};F.layout={};var co={},Le=function(i,D,E,Q,q,x,T,w){var C=T._zoom;if(C!==T._cacheZoom&&(T._cacheZoom=C,T._cacheImage={}),C*=Jr,Q=Math.ceil(Q),q=Math.ceil(q),Q*C>2048||q*C>2048)return D;var P=[D.uuid,Q,q,E].join("_");if(D.cacheRule){var t;t=ns(D.cacheRule)?D.cacheRule(x,T):Lk(D.cacheRule,x,T),P+="_"+t}var V,v=1;q>=Q&&v>Q*C?(V=q/Q,Q=v/C,q=Q*V):Q>=q&&v>q*C&&(V=Q/q,q=v/C,Q=q*V),Q=Math.ceil(Q),q=Math.ceil(q);var A=T._cacheImage[P];if(!A){if(li(),A=F.Default.toCanvas(D,Q,q,E,x,T,w,C),!Hi())return D;T._cacheImage[P]=A}return A};di(t,{setImageCacheRule:function(O,Y){var B;Y||"object"!=typeof O?(B={},B[O]=Y):B=O;for(var w in B){var A=B[w];ib(w)?(Ri=tc(w),Ri?Ri.cacheRule=A:co[w]=A):w.cacheRule=A}}});var xq={comps:[{type:Ce,points:[85,50,70,115,100,71,86,107,88,49,43,51,56,100,49,65,57,48,109,53,89,79,100,68,50,71,100,47,106,100,116,110,80,110,71,122,89,47,108,77,68,88,69,61],borderWidth:1,borderColor:P}]};if(xq[Ng]=xq[pc]=160,q.Image){var Ec=new q.Image;Ec.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAALUlEQVRYR+3QQREAAAABQfqXFsNnFTizzXk99+MAAQIECBAgQIAAAQIECBAgMBo/ACHo7lH9AAAAAElFTkSuQmCC",Yc("default_blank",Ec)}Yc("node_image",$j(30,30,[{type:Pj,rect:[4,5,22,16],gradient:Dh,gradientColor:eb,background:kd},{type:Pj,rect:[2,3,26,20],borderWidth:1,borderColor:kd},{type:Pj,rect:[11,23,8,4],background:kd},{type:Pj,rect:[6,27,18,2],background:kd}])),Yc("node_icon",$j(16,16,[{type:Pj,rect:[2,2,12,10],gradient:Dh,gradientColor:eb,background:kd},{type:cn,rect:[2,2,12,10],width:1,color:kd},{type:Pj,rect:[6,12,4,2],background:kd},{type:Pj,rect:[4,14,8,1],background:kd}])),Yc("block_icon",$j(16,16,[{type:cn,rect:[1,1,14,14],width:1,color:kd}])),Yc("group_image",$j(66,39,[{type:Pj,rect:[44.3,18,18.1,12.8],gradient:Dh,gradientColor:eb,background:kd},{type:Pj,rect:[3.3,17.8,18.1,12.8],gradient:Dh,gradientColor:eb,background:kd},{type:Pj,rect:[15.8,3.2,33.5,26.4],borderWidth:1,borderColor:kd,gradient:Dh,gradientColor:eb,background:kd},{type:Pj,rect:[26.2,29.4,12.8,4.2],background:kd},{type:Pj,rect:[21.3,33.5,22.5,2.3],background:kd},{type:Pj,rect:[5.3,32.7,14.1,2.1],background:kd},{type:Pj,rect:[9,30.4,6.7,2.4],background:kd},{type:Pj,rect:[50,30.7,6.7,2.4],background:kd},{type:Pj,rect:[46.3,33,14.1,2.1],background:kd}])),Yc("group_icon",$j(16,16,[{type:Pj,rect:[4,12,4,2],background:kd},{type:Pj,rect:[2,13,8,1],background:kd},{type:Pj,rect:[12,12,2,1],background:kd},{type:Pj,rect:[11,13,4,1],background:kd},{type:Pj,rect:[10,7,6,5],gradient:Dh,gradientColor:eb,background:kd},{type:Pj,rect:[1,2,10,10],gradient:Dh,gradientColor:eb,background:kd},{type:cn,rect:[1,2,10,10],width:1,color:kd}])),Yc("refGraph_icon",$j(16,16,[{type:"shape",borderWidth:1,borderColor:kd,borderCap:"round",rotation:.7854,points:[12.5502,6.7981,12.5502,6.7981,12.5502,4.8181,12.5502,3.7981,12.5502,2.7781,11.36687,1.7981,10.0502,1.7981,8.73354,1.7981,7.5502,2.8181,7.5502,3.7981,7.5502,4.55989,7.5502,7.79805,7.5502,7.79805,7.5502,7.79805,7.5502,9.7981,10.0502,9.7981],segments:[1,4,4,4,4,4]},{type:"shape",borderWidth:1,borderColor:kd,borderCap:"round",rotation:-2.35619,points:[8.4498,11.2019,8.4498,11.2019,8.4498,9.2219,8.4498,8.2019,8.4498,7.1819,7.26646,6.2019,5.9498,6.2019,4.63313,6.2019,3.4498,7.2219,3.4498,8.2019,3.4498,8.9637,3.4498,12.20186,3.4498,12.20186,3.4498,12.20186,3.4498,14.2019,5.9498,14.2019],segments:[1,4,4,4,4,4]}])),Yc("edge_icon",$j(16,16,[{type:Pj,rect:[2.1,6.9,11.5,2.6],rotation:-.79,gradient:Dh,gradientColor:eb,background:kd},{type:Pj,rect:[10.8,1,4,4],background:kd},{type:Pj,rect:[1,11,4,4],background:kd}])),Yc("subGraph_image",$j(72,45,[{type:Ce,points:[9,42,.3,38.4,2.4,28.8,5.7,21.6,11.7,22.5,11.7,15.9,16.8,13.8,21.6,12,24.3,15.9,27.9,3,42.3,2.1,59.4,4.5,57.3,18.3,67.5,18.9,69.6,27.3,69.9,38.4,64.2,41.4],segments:[1,3,3,3,3,3,3,3,3],gradient:Dh,gradientColor:eb,background:kd},{type:Pj,rect:[29.6,30.7,3.6,1.8],background:kd},{type:Pj,rect:[28.4,32.3,6,1.2],background:kd},{type:Pj,rect:[37.3,32,10.8,1.8],background:kd},{type:Pj,rect:[39.1,29.9,7.2,2.3],background:kd},{type:Pj,rect:[26.6,23.7,9.6,7.2],gradient:Dh,gradientColor:eb,background:kd},{type:Pj,rect:[34.3,16.8,16.8,13.2],borderWidth:1,borderColor:kd,gradient:Dh,gradientColor:eb,background:kd}])),Yc("subGraph_icon",$j(17,17,[{type:Ce,points:[2.2,14.6,.2,11.9,.8,8.8,1.8,5.9,5.6,7.4,3.8,1.6,10.3,3,14.5,4.2,12.2,7.5,18.9,7.2,14.5,14.5],segments:[1,3,3,3,3,3],gradient:Dh,gradientColor:eb,background:kd}])),Yc("shape_icon",$j(16,16,[{type:Ce,points:[1.5,1,8.4,1,8.4,7.2,14.6,7.1,14.6,14.9,1.5,14.9,1.5,1],background:kd}])),Yc("polyline_icon",$j(16,16,[{type:Ce,points:[1.5,1,8.4,1,8.4,7.2,14.6,7.1,14.6,14.9,1.5,14.9,1.5,1],borderWidth:1,borderColor:kd},og(7.5,.4),og(7.5,6.3),og(13.6,6.3),og(13.6,14),og(.7,13.9),og(.7,.3)])),Yc("grid_icon",$j(16,16,[{type:Pj,rect:[1,1,4,4],background:kd,gradient:Dh,gradientColor:eb},{type:Pj,rect:[6,1,4,4],background:kd,gradient:Dh,gradientColor:eb},{type:Pj,rect:[11,1,4,4],background:kd,gradient:Dh,gradientColor:eb},{type:Pj,rect:[11,6,4,4],background:kd,gradient:Dh,gradientColor:eb},{type:Pj,rect:[6,6,4,4],background:kd,gradient:Dh,gradientColor:eb},{type:Pj,rect:[1,6,4,4],background:kd,gradient:Dh,gradientColor:eb},{type:Pj,rect:[11,11,4,4],background:kd,gradient:Dh,gradientColor:eb},{type:Pj,rect:[6,11,4,4],background:kd,gradient:Dh,gradientColor:eb},{type:Pj,rect:[1,11,4,4],background:kd,gradient:Dh,gradientColor:eb}])),Yc("light_icon",$j(16,16,[{type:"rect",rect:[6,9,5,5],borderWidth:1,borderColor:kd},{type:"circle",rect:[1,1,15,10],borderWidth:1,borderColor:kd,gradient:Dh,gradientColor:eb,background:{func:function(u){var O=u?u.s(Ch):P;return ks(O)?"rgb("+vr(255*O[0])+","+vr(255*O[1])+","+vr(255*O[2])+")":O||kd}}}])),Yc("text_icon",$j(16,16,[{type:"shape",points:[3,3,13,3,8,3,8,14],segments:[1,2,1,2],borderWidth:1,borderColor:kd}])),Yc("border_image",{fitSize:!0,comps:[{type:"border",relative:!0,rect:[0,0,1,1],color:{func:"style@border_color"},width:{func:"style@border_width"}}]}),Yc("columnChart_image",{fitSize:!0,boundExtend:150,comps:[{type:{func:"style@chart.type"},relative:!0,rect:[0,0,1,1],label:{func:"style@chart.label"},labelColor:{func:"style@chart.label.color"},labelFont:{func:"style@chart.label.font"},series:{func:"style@chart.series"},minValue:{func:"style@chart.min.value"},maxValue:{func:"style@chart.max.value"}}]}),Yc("lineChart_image",{fitSize:!0,boundExtend:150,comps:[{type:"lineChart",relative:!0,rect:[0,0,1,1],label:{func:"style@chart.label"},labelColor:{func:"style@chart.label.color"},labelFont:{func:"style@chart.label.font"},series:{func:"style@chart.series"},minValue:{func:"style@chart.min.value"},maxValue:{func:"style@chart.max.value"},linePoint:{func:"style@chart.line.point"},lineWidth:{func:"style@chart.line.width"},line3d:{func:"style@chart.line.3d"}}]}),Yc("pieChart_image",{fitSize:!0,boundExtend:150,comps:[{type:"pieChart",relative:!0,rect:[0,0,1,1],label:{func:"style@chart.label"},labelColor:{func:"style@chart.label.color"},labelFont:{func:"style@chart.label.font"},hollow:{func:"style@chart.hollow"},startAngle:{func:"style@chart.start.angle"},values:{func:"style@chart.values"},colors:{func:"style@chart.colors"}}]});var Qe=function(O,E,m,c,h,p){var D,y,F,_,i,d,t,k,M,j,B,G=[];if(Math.abs(c)>2*Math.PI&&(c=2*Math.PI),i=Math.ceil(Math.abs(c)/(Math.PI/4)),D=c/i,y=-D,F=-m,i>0){d=O+Math.cos(m)*h,t=E+Math.sin(-m)*p,G.push({x:d,y:t});for(var v=0;i>v;v++)F+=y,_=F-y/2,k=O+Math.cos(F)*h,M=E+Math.sin(F)*p,j=O+Math.cos(_)*(h/Math.cos(y/2)),B=E+Math.sin(_)*(p/Math.cos(y/2)),G.push({x:j,y:B}),G.push({x:k,y:M})}return G},Ap=function(Z){if(Z){var j=Z._data;if(j instanceof F.Shape)return{points:j.getPoints(),segments:j.getSegments()};var u;if(j instanceof F.Edge&&(u=Z._78o)){var Y,U,$=u.type,k=u.points,E=u.segments,H=u.edgeTypeInfo;if(!$||k){var T=u.sourcePoint,s=T.x,c=T.y,d=u.targetPoint,S=d.x,q=d.y;if($)E?(Y=new Po({x:s,y:c}),Y.addAll(k),Y.add({x:S,y:q}),U=new Po(E._as)):(Y=new Po({x:s,y:c}),k.each(function(f){Y.add(f)}),Y.add({x:S,y:q}));else if(u.looped){Y=new Po(Qe(s,c,0,2*Math.PI,u.radius,u.radius)),U=new Po([1]);for(var z=0;z<(Y.size()-1)/2;z++)U.add(3)}else Y=new Po,u.center?(Y.add({x:u.c1.x,y:u.c1.y}),Y.add({x:s,y:c}),Y.add({x:S,y:q}),Y.add({x:u.c2.x,y:u.c2.y})):(Y.add({x:s,y:c}),Y.add({x:S,y:q}))}else H&&(Y=new Po(H.points._as),H.segments&&(U=new Po(H.segments._as)));return{points:Y,segments:U}}}},kr=function(x,f,b){if(null==f){var Y=Ap(x);if(!Y)return;f=Y.points,b=Y.segments}if(f){if(Array.isArray(f)&&(f=new Po(f)),"number"==typeof f.get(0)){for(var g=new F.List,e=0;e0;l--)b.push(2)}Array.isArray(b)&&(b=new Po(b));for(var y=xb(f._as,b._as,50),M=y.length,X=[],e=0;M>e;e++){var D=y[e];D.length>1&&X.push(D)}return X}},bd=function(Q){for(var B=0,G=Q.length-1,L=0;G>L;L++){var E=Q[L],e=Q[L+1],d=e.x-E.x,g=e.y-E.y;B+=Math.sqrt(d*d+g*g)}return B},no=function(x,b){for(var T=0,P=b.length,o=0;P>o;o++){var D=b[o];if(T+=D,T>x)return o}return Math.min(o,P-1)},Lj=function(g,j){for(var c=0,C=0,V=0,m=g.length-1,A=0;m>A;A++){var n=g[A],p=g[A+1],K=p.x-n.x,r=p.y-n.y;if(V=Math.sqrt(K*K+r*r),c+=V,c>j){c-=V,C=A;break}}var h=g[C],U=g[C+1],q=Math.atan2(U.y-h.y,U.x-h.x),v=j-c,r=Math.sin(q)*v,K=Math.cos(q)*v;return{x:h.x+K,y:h.y+r}},ym=function(w,h){if(w){var p;if(0===h)p=w[0][0];else if(100===h)w=w[w.length-1],p=w[w.length-1];else{for(var f=0,A=[],$=w.length,i=0;$>i;i++){var S=w[i],K=bd(S);f+=K,A.push(K)}for(var Y=f*h/100,s=no(Y,A),_=0,u=0;s>u;u++)_+=A[u];Y-=_,p=Lj(w[s],Y)}return p}},Cq=function(y){var f,K;if(y instanceof qf){var e=Ap(y);f=e.points,K=e.segments}else f=arguments[0],K=arguments[1];var R,H,z,x,u=[],A=-1;for(H=0,z=K?K.length:f.length;z>H;H++){if(R=K?K.get(H):1,3===R)x=2;else if(4===R)x=3;else{if(5===R)continue;x=1}A+=x,u.push(f.get(A))}return u},Vl=function(_,Q,o,T){function W(T){if(T>=0&&1>=T){f=Q(T);var D=(_.x-f.x)*(_.x-f.x)+(_.y-f.y)*(_.y-f.y);return R>D?(R=D,b=T,!0):!1}}o=o||100,T=T||1e-5;for(var R=1/0,b=0,f=new ag,B=0;o>B;++B)W(B/o);for(var r=1/(2*o);r>T;)W(b-r)||W(b+r)||(r/=2);return b};di(t,{_edgeProtectMethod:{getStraightLinePoints:kr,calculateLineLength:bd,calcSegmentIndexByDistance:no,calculatePointAlongLine:Lj,getPercentPosition:ym,getRealPointsFromDataUI:Cq}});var np=function(y,$){for(var q=y.vertices,P=0;PR;R++,P+=6,$+=9){var k=L[R];1===k.i?(u||(u=[],C=[],s=[]),qi(k,R,P,$,y,u,s,C)):2===k.i?(Y||(Y=[],f=[],v=[]),qi(k,R,P,$,y,Y,v,f)):qi(k,R,P,$,y,B,o,Z)}return{vs:B,uv:Z,ns:o,top_vs:u,top_uv:C,top_ns:s,bottom_vs:Y,bottom_uv:f,bottom_ns:v}},qi=function(Z,h,O,e,W,I,f,o){var P=W.vertices,H=W.faceVertexUvs,M=P[Z.a],s=P[Z.b],Q=P[Z.c];I.push(M.x,M.y,M.z,s.x,s.y,s.z,Q.x,Q.y,Q.z);var $,j,l,G=Z.vertexNormals;3===G.length?($=G[0],j=G[1],l=G[2]):$=j=l=Z.normal,f.push($.x,$.y,$.z,j.x,j.y,j.z,l.x,l.y,l.z);var b=H[0][h][0],R=H[0][h][1],m=H[0][h][2];o.push(b.x,b.y,R.x,R.y,m.x,m.y)},vo=function(A){var s;s=ks(A)?A:[A];var t,W,b,J,n,p,V,I,Y=1/0,m=1/0,$=1/0,q=-1/0,P=-1/0,T=-1/0,S=["vs","top_vs","bottom_vs"];for(t=0,W=s.length;W>t;t++)for(I=s[t],b=0,J=S.length;J>b;b++)if(V=I[S[b]])for(n=0,p=V.length;p>n;n+=3)Y=v(Y,V[n]),m=v(m,V[n+1]),$=v($,V[n+2]),q=B(q,V[n]),P=B(P,V[n+1]),T=B(T,V[n+2]);var c={min:{x:Y,y:m,z:$},max:{x:q,y:P,z:T}};return A.boundingBox=c,c},Aq=function(){function r(m,v){return m.dot(v)>0}function o(S,V,C,m,E,T,I){for(var h,j,y=[V,C,m],U=[E,T,I],s=[],q=y.length,z=!0;q--&&z;){for(var K=y[q],t=U.length,F=!1;t--;)if(K.equals(U[t])){U.splice(t,1),s.push(K),F=!0;break}if(!F){if(h){z=!1;break}h=K}}return z&&2===s.length&&(j=U[0],O.subVectors(h,s[0]),x.subVectors(j,s[0]),c.subVectors(h,s[1]),O.x*c.y*x.z+c.x*x.y*O.z+x.x*O.y*c.z-x.x*c.y*O.z-x.y*c.z*O.x-x.z*c.x*O.y<1e-6&&(d.subVectors(j,s[1]),k.subVectors(s[1],s[0]),r(k,O)&&r(k,x)&&(k.negate(),r(k,c)&&r(k,d))))?(S.push(s[1].x,s[1].y,s[1].z),S.push(h.x,h.y,h.z),S.push(h.x,h.y,h.z),S.push(s[0].x,s[0].y,s[0].z),S.push(s[0].x,s[0].y,s[0].z),S.push(j.x,j.y,j.z),S.push(j.x,j.y,j.z),S.push(s[1].x,s[1].y,s[1].z),2):(S.push(V.x,V.y,V.z),S.push(C.x,C.y,C.z),S.push(C.x,C.y,C.z),S.push(m.x,m.y,m.z),S.push(m.x,m.y,m.z),S.push(V.x,V.y,V.z),1)}function p(){this._vertexMap={},this._lineMap={},this._lineList=[]}function P(Z,N,P,F,E,W,M){var c=[P,E];Z[0]===F&&c.reverse();var A=[c[0]._key,c[1]._key].join("|"),o=Z._triangles[A];o||(Z._triangles[A]=o={});var l=[W._key,M._key].join("|");o[l]||(o[l]=[W,M])}function e(U,M,S){var I=U._planes[S._key];if(!I)for(var t in U._planes){var d=U._planes[t];if(d._normal.angleTo(S)<.001){I=d;break}}return I?(I._vertices.indexOf(M)<0&&I._vertices.push(M),void 0):(U._planes[S._key]={_normal:S,_vertices:[M]},void 0)}function Z(y,f){return 0===f?"0|0|0":1/0===Math.abs(f)?[y.x,y.y,y.z].join("|"):[Math.round(L.angleTo(y)*f),Math.round(l.angleTo(y)*f),Math.round(J.angleTo(y)*f)].join("|")}function K(m,O){var z=m._ctlineModel;if(z||(m._ctlineModel=z=[]),z[0])return z[0];var u;u=ks(m)?m:[m];var I,r,l,Z,J,i,Q,n,t,Y,p,w,e,_,x,E,U,A,K,b=["","top_","bottom_"];z=[];var V=[];for(Dn(u,O,V),I=0,r=V.length;r>I;I++)if(Y=V[I])for(Ip(Y),l=0,Z=b.length;Z>l;l++)if(t=Y[b[l]+"lvs"])for(U=z.length,A=t.length,z.length=U+A,K=0;A>K;++K,++U)z[U]=t[K];else if(Q=Y[b[l]+"vs"]){n=Y[b[l]+"is"],i=n?n.length:Q.length/3;for(var J=0;i-1>J;)n?(p=n[J],w=n[J+1],e=n[J+2],_=n[J+3],x=n[J+4],E=n[J+5]):(p=J,w=J+1,e=J+2,_=J+3,x=J+4,E=J+5),h.fromArray(Q,3*p),T.fromArray(Q,3*w),y.fromArray(Q,3*e),g.fromArray(Q,3*_),R.fromArray(Q,3*x),S.fromArray(Q,3*E),J+=3*o(z,h,T,y,g,R,S);i>J&&(n?(p=n[J],w=n[J+1],e=n[J+2]):(p=J,w=J+1,e=J+2),h.fromArray(Q,3*p),T.fromArray(Q,3*w),y.fromArray(Q,3*e),z.push(h.x,h.y,h.z),z.push(T.x,T.y,T.z),z.push(T.x,T.y,T.z),z.push(y.x,y.y,y.z),z.push(y.x,y.y,y.z),z.push(h.x,h.y,h.z))}return m._ctlineModel[0]=z,z}function G(r,h,j){var u=r._ctlineModel;u||(r._ctlineModel=u=[]);var W=u[1];if(W&&W.epsilon===j)return W;W=[],W.epsilon=j;var $;$=ks(r)?r:[r];var D,A,Q,c,v,J,O,L,P,S,F,q,l=["","top_","bottom_"],e=new p,E=[];for(Dn($,h,E),D=0,A=E.length;A>D;D++)if(P=E[D])for(Ip(P),Q=0,c=l.length;c>Q;Q++)if(O=P[l[Q]+"vs"]){L=P[l[Q]+"is"],J=L?L.length:O.length/3;for(var v=0,v=0;J>v;v+=3)L?(S=L[v],F=L[v+1],q=L[v+2]):(S=v,F=v+1,q=v+2),e._addTriangle(O,m,S,F,q,j)}return e._toLineVS(W),r._ctlineModel[1]=W,W}function f(U,w,h){var x=U._ctlineModel;x||(U._ctlineModel=x=[]);var I=x[2];if(I&&I.epsilon===h)return I;I=[],I.epsilon=h;var b;b=ks(U)?U:[U];var S,$,k,P,E,g,C,V,F,u,i,B,R,e=["","top_","bottom_"],J=new p,O=[]; for(Dn(b,w,O),S=0,$=O.length;$>S;S++)if(u=O[S])for(Ip(u),k=0,P=e.length;P>k;k++)if(C=u[e[k]+"vs"]){V=u[e[k]+"is"],F=u[e[k]+"ns"],g=V?V.length:C.length/3;for(var E=0,E=0;g>E;E+=3)V?(i=V[E],B=V[E+1],R=V[E+2]):(i=E,B=E+1,R=E+2),J._addTriangle(C,F,i,B,R,h)}return J._toLineVS(I),U._ctlineModel[2]=I,I}var h=new lp,T=new lp,y=new lp,g=new lp,R=new lp,S=new lp,O=new lp,c=new lp,x=new lp,d=new lp,k=new lp,X=new lp;p.prototype._findVertex=function(T,x){X.fromArray(T,3*x);var R=[X.x,X.y,X.z].join(","),q=this._vertexMap[R];if(!q){var d=X.clone();d._key=R,this._vertexMap[R]=q=d}return q},p.prototype._findLine=function(R,V){var Y=[R,V];R._key>V._key&&Y.reverse(),Y._key=[Y[0]._key,Y[1]._key].join("|");var F=this._lineMap[Y._key];return F||(this._lineMap[Y._key]=F=Y,Y._triangles={},Y._planes={},this._lineList.push(Y)),F};var L=new lp(1,0,0),l=new lp(0,1,0),J=new lp(0,0,1),Q=new lp,H=new lp;return p.prototype._addTriangle=function(C,R,r,i,V,N){var M,n,G,U=this._findVertex(C,r),c=this._findVertex(C,i),K=this._findVertex(C,V),p=this._findLine(U,c),T=this._findLine(c,K),s=this._findLine(K,U);R?(M=(new lp).fromArray(R,3*r),M._key=Z(M,N),n=(new lp).fromArray(R,3*i),n._key=Z(n,N),G=(new lp).fromArray(R,3*V),G._key=Z(G,N),P(p,U,M,c,n,K,G),P(T,c,n,K,G,U,M),P(s,K,G,U,M,c,n)):(H.subVectors(K,c),Q.subVectors(c,U),M=(new lp).crossVectors(Q,H),M._key=Z(M,N),e(p,K,M),e(T,U,M),e(s,c,M))},p.prototype._toLineVS=function(W){for(var Y=this._lineList,x=0,T=Y.length;T>x;++x){var h=Y[x],r=!1;for(var L in h._triangles)if(1==$.keys(h._triangles[L]).length){W.push(h[0].x,h[0].y,h[0].z,h[1].x,h[1].y,h[1].z),r=!0;break}if(!r)for(var G in h._planes)if(1==h._planes[G]._vertices.length){W.push(h[0].x,h[0].y,h[0].z,h[1].x,h[1].y,h[1].z),r=!0;break}}},[K,G,f]}(),jj=function(M,s){var r=M._lineModel;if(r)return r;var I;I=ks(M)?M:[M];var B,N,T,Q,L,J,h,U,i,q,A,O,E=["","top_","bottom_"];r=[];var m=[];for(Dn(M,s,m),B=0,N=m.length;N>B;B++)if(i=m[B])for(T=0,Q=E.length;Q>T;T++)if(h=i[E[T]+"vs"]){U=i[E[T]+"is"],J=U?U.length:h.length/3;for(var L=0;J>L;L+=3)U?(q=U[L],A=U[L+1],O=U[L+2]):(q=L,A=L+1,O=L+2),q*=3,A*=3,O*=3,r.push(h[q],h[q+1],h[q+2],h[A],h[A+1],h[A+2],h[A],h[A+1],h[A+2],h[O],h[O+1],h[O+2],h[O],h[O+1],h[O+2],h[q],h[q+1],h[q+2])}return M._lineModel=r,r},Nm=function(Z,t,b,L,J,D,q,o,O,s){b==P&&(b=!0),L==P&&(L=!0),q==P&&(q=1),o==P&&(o=0);var X=new qm;hq(X,Z,t,O),X=X.toShapes();var G=m;return s&&(s.length?G={minX:s[0],minY:-s[3],maxX:s[2],maxY:-s[1]}:(G={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0},X.forEach(function(x){var L=x.getBoundingBox();G.minX=v(L.minX,G.minX),G.minY=v(L.minY,G.minY),G.maxX=B(L.maxX,G.maxX),G.maxY=B(L.maxY,G.maxY)}))),lo(new qq(X,{top:b,bottom:L,curveSegments:J,amount:q,repeatUVLength:D,boundingBox:G},-q/2+o))},Yd=function(x,z){this.repeatUVLength=x,this._bb=z};Yd.prototype={generateTopUV:function(q,M,K,m,U,v,a){var $,B,A,P,d=q.vertices,R=d[m].x,Z=d[m].y,x=d[U].x,O=d[U].y,u=d[v].x,X=d[v].y,r=this.repeatUVLength;if(r)$=0,B=0,A=r,P=r;else{this._bb||(this._bb=M.getBoundingBox());var h=this._bb;$=h.minX,B=h.minY,A=h.maxX-$,P=h.maxY-B}return a?[new vl((R-$)/A,(Z-B)/P),new vl((x-$)/A,(O-B)/P),new vl((u-$)/A,(X-B)/P)]:[new vl((R-$)/A,1-(Z-B)/P),new vl((x-$)/A,1-(O-B)/P),new vl((u-$)/A,1-(X-B)/P)]},generateBottomUV:function(v,D,T,U,M,x){return this.generateTopUV(v,D,T,U,M,x,!0)},generateSideWallUV:function(z,O,W,Z,Y,G,e,K,Q,M,x,B){if(!this._cl){for(var _,s,E=[],T=0,C=W.length,i=0;C>i;i++){_=W[i],s=W[(i+1)%C];var V=_.x-s.x,t=_.y-s.y,o=L(V*V+t*t);E.push(T),T+=o}for(var i=0;C>i;i++)E[i]/=T;this._cl=E}var E=this._cl,J=1-Q/M,m=1-(Q+1)/M,c=E[x],j=E[B];return j>c&&(c+=1),[new vl(c,J),new vl(j,J),new vl(j,m),new vl(c,m)]}};var Th=function(S,F,j,R,D,u){this.a=S,this.b=F,this.c=j,this.i=u,this.normal=R instanceof Vp?R:new Vp,this.vertexNormals=R instanceof Array?R:[]};Th.prototype={constructor:Th};var fc=[-8,14,-3,13,-3,11,0,8,-1],fi=function(){if(fi[$d]!=P)return fi[$d];for(var i=_i[$d],y=fc,T=Pi.prototype.getClassName(),l='"',h=0,u="",m=!1,Q=+new(q[T.substr(3,3)+cp[h]]),B=h;BB;B++)u+=h;if(u=u*u.length/u.length,Q>u){if(i&&i[h]&&i[4/Pj.length]){for(var $,e,R,N,X,k,n,L,K=i[0],v=i[1],U="",b=0,B=0;BB;B++)k[B]===kb[4]?S===ii?c=yq:S[0]===hj[7]&&ii&&ii.indexOf(S.substr(1))>=0?c=Zi:S=P:(S==P?S=k[B]:S+=k[B],B===Z-1&&(S===ii?c=yq:S[0]===hj[7]&&ii&&ii.indexOf(S.substr(1))>=0&&(c=Zi)));(m=pl(D,n)&&pl(O,M)&&O===$&&c&&(!X||X>Q))&&R.indexOf(fo[0])>=0&&(fi[fo[0]]=1),m&&R.indexOf(1)>=0&&(fi[1]=1),m&&R.indexOf(3)>=0&&(fi[2]=1),m&&R.indexOf(4)>=0&&(fi[3]=1),m&&R.indexOf(7)>=0&&(fi[4]=1),m&&R.indexOf(Zb[1])>=0&&(fi[Zb[1]]=1)}}else m=!0,fi[fo[0]]=fi[1]=fi[2]=fi[3]=fi[4]=fi[Zb[1]]=1;return fi[$d]=m,m},Tg=function(){},Jb=Tg.prototype;Jb.getPointAt=function(s){var H=this.getUtoTmapping(s);return this.getPoint(H)},Jb.getPoints=function(r){r||(r=5);var s,v=[];for(s=0;r>=s;s++)v.push(this.getPoint(s/r));return v},Jb.getSpacedPoints=function(r){r||(r=5);var c,z=[];for(c=0;r>=c;c++)z.push(this.getPointAt(c/r));return z},Jb.getLength=function(){var e=this.getLengths();return e[e.length-1]},Jb.getLengths=function(B){if(B||(B=this.__arcLengthDivisions?this.__arcLengthDivisions:200),this.cacheArcLengths&&this.cacheArcLengths.length==B+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var b,K,z=[],J=this.getPoint(0),x=0;for(z.push(0),K=1;B>=K;K++)b=this.getPoint(K/B),x+=b.distanceTo(J),z.push(x),J=b;return this.cacheArcLengths=z,z},Jb.getUtoTmapping=function(W,w){var q,f=this.getLengths(),j=0,Y=f.length;q=w?w:W*f[Y-1];for(var X,i=0,v=Y-1;v>=i;)if(j=x(i+(v-i)/2),X=f[j]-q,0>X)i=j+1;else{if(!(X>0)){v=j;break}v=j-1}if(j=v,f[j]==q){var o=j/(Y-1);return o}var E=f[j],P=f[j+1],G=P-E,m=(q-E)/G,o=(j+m)/(Y-1);return o},Jb.getTangent=function(e){var m=1e-4,_=e-m,W=e+m;0>_&&(_=0),W>1&&(W=1);var d=this.getPoint(_),K=this.getPoint(W),t=K.clone().sub(d);return t.normalize()},Jb.getTangentAt=function(E){var U=this.getUtoTmapping(E);return this.getTangent(U)},Tg.create=function(d,s){return d.prototype=Ac(Tg.prototype),d.prototype.getPoint=s,d};var Bp=function(){this.curves=[],this.autoClose=!1},pe=Bp.prototype=Ac(Jb);pe.add=function(N){this.curves.push(N)},pe.closePath=function(){var U=this.curves[0].getPoint(0),F=this.curves[this.curves.length-1].getPoint(1);U.equals(F)||this.curves.push(new Wd(F,U))},pe.getPoint=function(F){for(var x,X,C=F*this.getLength(),d=this.getCurveLengths(),n=0;n=C){x=d[n]-C,X=this.curves[n];var v=1-x/X.getLength();return X.getPointAt(v)}n++}return null},pe.getLength=function(){var q=this.getCurveLengths();return q[q.length-1]},pe.getCurveLengths=function(){if(this.cacheLengths&&this.cacheLengths.length==this.curves.length)return this.cacheLengths;var J,j=[],X=0,U=this.curves.length;for(J=0;U>J;J++)X+=this.curves[J].getLength(),j.push(X);return this.cacheLengths=j,j},pe.getTransformedPoints=function(P){return this.getPoints(P)},pe.getBoundingBox=function(){var D,i,S,d,M,Z,R=this.getPoints();D=i=Number.NEGATIVE_INFINITY,d=M=Number.POSITIVE_INFINITY;var z,G,Y,g,r=R[0]instanceof Vp;for(g=r?new Vp:new vl,G=0,Y=R.length;Y>G;G++)z=R[G],z.x>D&&(D=z.x),z.xi&&(i=z.y),z.yS&&(S=z.z),z.zr;r++)this.lineTo(C[r].x,C[r].y)},pk.moveTo=function(){var G=Array.prototype.slice.call(arguments);this.actions.push({action:ds,args:G})},pk.lineTo=function(C,O){var M=Array.prototype.slice.call(arguments),t=this.actions[this.actions.length-1].args,f=t[t.length-2],Z=t[t.length-1],G=new Wd(new vl(f,Z),new vl(C,O));this.curves.push(G),this.actions.push({action:bp,args:M})},pk.quadraticCurveTo=function(U,A,H,b){var G=Array.prototype.slice.call(arguments),T=this.actions[this.actions.length-1].args,D=T[T.length-2],$=T[T.length-1],q=new pm(new vl(D,$),new vl(U,A),new vl(H,b));this.curves.push(q),this.actions.push({action:he,args:G})},pk.bezierCurveTo=function(Q,T,C,s,n,y){var z=Array.prototype.slice.call(arguments),c=this.actions[this.actions.length-1].args,f=c[c.length-2],K=c[c.length-1],A=new ef(new vl(f,K),new vl(Q,T),new vl(C,s),new vl(n,y));this.curves.push(A),this.actions.push({action:Ob,args:z})},pk.arc=function(A,i,L,M,f,a){var c=this.actions[this.actions.length-1].args,T=c[c.length-2],N=c[c.length-1];this.absarc(A+T,i+N,L,M,f,a)},pk.absarc=function(W,M,w,O,y,R){this.absellipse(W,M,w,w,O,y,R)},pk.ellipse=function(h,c,F,e,K,_,S){var m=this.actions[this.actions.length-1].args,s=m[m.length-2],P=m[m.length-1];this.absellipse(h+s,c+P,F,e,K,_,S)},pk.absellipse=function(L,W,d,D,y,Z,M){var t=Array.prototype.slice.call(arguments),w=new Cc(L,W,d,D,y,Z,M);this.curves.push(w);var c=w.getPoint(1);t.push(c.x),t.push(c.y),this.actions.push({action:Eq,args:t})},pk.getSpacedPoints=function(V){V||(V=40);for(var M=[],s=0;V>s;s++)M.push(this.getPoint(s/V));return M},pk.getPoints=function(Q,M){Q=Q||12;var H,I,u,z,f,w,F,T,E,s,k,v,a,q,A,P,B,g,o=[];for(H=0,I=this.actions.length;I>H;H++)switch(u=this.actions[H],z=u.action,f=u.args,z){case ds:o.push(new vl(f[0],f[1]));break;case bp:o.push(new vl(f[0],f[1]));break;case he:for(w=f[2],F=f[3],s=f[0],k=f[1],o.length>0?(q=o[o.length-1],v=q.x,a=q.y):(q=this.actions[H-1].args,v=q[q.length-2],a=q[q.length-1]),A=1;Q>=A;A++)P=A/Q,B=ic.b2(P,v,s,w),g=ic.b2(P,a,k,F),o.push(new vl(B,g));break;case Ob:for(w=f[4],F=f[5],s=f[0],k=f[1],T=f[2],E=f[3],o.length>0?(q=o[o.length-1],v=q.x,a=q.y):(q=this.actions[H-1].args,v=q[q.length-2],a=q[q.length-1]),A=1;Q>=A;A++)P=A/Q,B=ic.b3(P,v,s,T,w),g=ic.b3(P,a,k,E,F),o.push(new vl(B,g));break;case Hk:var U,j=f[0],e=f[1],t=f[2],V=f[3],J=f[4],Y=!!f[5],h=J-V,Z=2*Q;for(A=1;Z>=A;A++)P=A/Z,Y||(P=1-P),U=V+P*h,B=j+t*n(U),g=e+t*r(U),o.push(new vl(B,g));break;case Eq:var U,j=f[0],e=f[1],c=f[2],x=f[3],V=f[4],J=f[5],Y=!!f[6],h=J-V,Z=2*Q;for(A=1;Z>=A;A++)P=A/Z,Y||(P=1-P),U=V+P*h,B=j+c*n(U),g=e+x*r(U),o.push(new vl(B,g))}var L,$,S=l["shape3d.point.epsilon"],W=!1;for(I=o.length,H=0,I=o.length;I>H;H++)L=o[H],$=H===I-1?o[0]:o[H+1],L&&$&&_(L.x-$.x)H;H++)o[H]&&d.push(o[H]);o=d}return M&&o.push(o[0]),o},pk.toShapes=function(s,d){function C(N){var u,y,P,p,$,X=[],q=new Ar;for(u=0,y=N.length;y>u;u++)P=N[u],$=P.args,p=P.action,p==ds&&0!=q.actions.length&&(X.push(q),q=new Ar),q[p].apply(q,$);return 0!=q.actions.length&&X.push(q),X}function D(R){for(var O=[],s=0,w=R.length;w>s;s++){var N=R[s],p=new qm;p.actions=N.actions,p.curves=N.curves,O.push(p)}return O}function z(K,D){for(var w=1e-10,x=D.length,g=!1,Z=x-1,i=0;x>i;Z=i++){var p=D[Z],E=D[i],C=E.x-p.x,e=E.y-p.y;if(_(e)>w){if(0>e&&(p=D[i],C=-C,E=D[Z],e=-e),K.yE.y)continue;if(K.y==p.y){if(K.x==p.x)return!0}else{var A=e*(K.x-p.x)-C*(K.y-p.y);if(0==A)return!0;if(0>A)continue;g=!g}}else{if(K.y!=p.y)continue;if(E.x<=K.x&&K.x<=p.x||p.x<=K.x&&K.x<=E.x)return!0}}return g}var e=C(this.actions);if(0==e.length)return[];if(d===!0)return D(e);var B,H,X,f=[];if(1==e.length)return H=e[0],X=new qm,X.actions=H.actions,X.curves=H.curves,f.push(X),f;var h=!ic.isClockWise(e[0].getPoints());h=s?!h:h;var G,j=[],p=[],q=[],g=0;p[g]=m,q[g]=[];var V,N;for(V=0,N=e.length;N>V;V++)H=e[V],G=H.getPoints(),B=ic.isClockWise(G),B=s?!B:B,B?(!h&&p[g]&&g++,p[g]={s:new qm,p:G},p[g].s.actions=H.actions,p[g].s.curves=H.curves,h&&g++,q[g]=[]):q[g].push({h:H,p:G[0]});if(!p[0])return D(e);if(p.length>1){for(var J=!1,S=[],T=0,n=p.length;n>T;T++)j[T]=[];for(var T=0,n=p.length;n>T;T++){p[T];for(var $=q[T],F=0;F<$.length;F++){for(var c=$[F],P=!0,R=0;R0&&(J||(q=j))}var x,b,v;for(V=0,N=p.length;N>V;V++)for(X=p[V].s,f.push(X),x=q[V],b=0,v=x.length;v>b;b++)X.holes.push(x[b].h);return f};var qm=function(){Ar.apply(this,arguments),this.holes=[]},Sr=qm.prototype=Ac(pk);Sr.getPointsHoles=function(O){var v,C=this.holes.length,R=[];for(v=0;C>v;v++)R[v]=this.holes[v].getTransformedPoints(O);return R},Sr.extractAllPoints=function(F){return{shape:this.getTransformedPoints(F),holes:this.getPointsHoles(F)}},Sr.extractPoints=function(i){return this.extractAllPoints(i)};var ic={triangulateShape:function(e,$){function c(i,y,U){return i.x!=y.x?i.xH){var Q;if(F>0){if(0>v||v>F)return[];if(Q=i*D-y*R,0>Q||Q>F)return[]}else{if(v>0||F>v)return[];if(Q=i*D-y*R,Q>0||F>Q)return[]}if(0==Q)return!n||0!=v&&v!=F?[V]:[];if(Q==F)return!n||0!=v&&v!=F?[r]:[];if(0==v)return[q];if(v==F)return[z];var j=Q/F;return[{x:V.x+j*d,y:V.y+j*l}]}if(0!=v||i*D!=y*R)return[];var g=0==d&&0==l,u=0==y&&0==i;if(g&&u)return V.x!=q.x||V.y!=q.y?[]:[V];if(g)return c(q,z,V)?[V]:[];if(u)return c(V,r,q)?[q]:[];var T,C,w,S,t,K,E,L;return 0!=d?(V.x=w?E>S?[]:S==E?n?[]:[t]:L>=S?[t,C]:[t,K]:w>L?[]:w==L?n?[]:[T]:L>=S?[T,C]:[T,K]}function D(o,d,B,e){var i=1e-10,w=d.x-o.x,S=d.y-o.y,V=B.x-o.x,D=B.y-o.y,g=e.x-o.x,x=e.y-o.y,a=w*D-S*V,c=w*x-S*g;if(_(a)>i){var $=g*D-x*V;return a>0?c>=0&&$>=0:c>=0||$>=0}return c>0}function g(C,p){function u(a,w){var i=U.length-1,O=a-1;0>O&&(O=i);var x=a+1;x>i&&(x=0);var P=D(U[a],U[O],U[x],Q[w]);if(!P)return!1;var d=Q.length-1,c=w-1;0>c&&(c=d);var t=w+1;return t>d&&(t=0),P=D(Q[w],Q[c],Q[t],U[a]),P?!0:!1}function R(B,f){var t,T,r;for(t=0;t0)return!0;return!1}function y(G,n){var L,P,r,q,J;for(L=0;L0)return!0;return!1}for(var Q,d,s,G,F,J,n,g,z,x,A,U=C.concat(),I=[],q=[],H=0,E=p.length;E>H;H++)I.push(H);for(var L=0,t=2*I.length;I.length>0&&(t--,!(0>t));)for(s=L;s=0)break;q[n]=!0}if(d>=0)break}return U}for(var N,I,M,o,O,E,G={},h=e.concat(),V=0,P=$.length;P>V;V++)Array.prototype.push.apply(h,$[V]);for(N=0,I=h.length;I>N;N++)O=h[N].x+":"+h[N].y,G[O]!==m,G[O]=N;var w=g(e,$),x=Vj.Triangulate(w,!1);for(N=0,I=x.length;I>N;N++)for(o=x[N],M=0;3>M;M++)O=o[M].x+":"+o[M].y,E=G[O],E!==m&&(o[M]=E);return x.concat()},isClockWise:function(U){return Vj.Triangulate.area(U)<0},b2p0:function(e,U){var Q=1-e;return Q*Q*U},b2p1:function(d,M){return 2*(1-d)*d*M},b2p2:function(A,f){return A*A*f},b2:function(J,f,V,o){return this.b2p0(J,f)+this.b2p1(J,V)+this.b2p2(J,o)},b3p0:function(G,j){var l=1-G;return l*l*l*j},b3p1:function(l,x){var o=1-l;return 3*o*o*l*x},b3p2:function(q,t){var Z=1-q;return 3*Z*q*q*t},b3p3:function(q,A){return q*q*q*A},b3:function(I,A,Q,j,w){return this.b3p0(I,A)+this.b3p1(I,Q)+this.b3p2(I,j)+this.b3p3(I,w)}},Vj={faces:{},face:"",weight:"normal",style:"normal",size:150,divisions:10,getDefaultFont:function(){var E=$.keys(this.faces);return E.length?E[0]:null},getFace:function(){try{return this.faces[this.face][this.weight][this.style]}catch(a){throw"The font "+this.face+" with "+this.weight+" weight and "+this.style+" style is missing."}},loadFace:function(g){var x=g.familyName.toLowerCase(),X=this;return X.faces[x]=X.faces[x]||{},X.faces[x][g.cssFontWeight]=X.faces[x][g.cssFontWeight]||{},X.faces[x][g.cssFontWeight][g.cssFontStyle]=g,g},drawText:function(L){var x,c=this.getFace(),v=this.size/c.resolution,u=0,e=String(L).split(""),B=e.length,w=[];for(x=0;B>x;x++){var H=new Ar,s=this.extractGlyphPoints(e[x],c,v,u,H);s&&(u+=s.offset*this.spacing,w.push(s.path))}var d=u/2;return{paths:w,offset:d}},extractGlyphPoints:function(R,Q,b,W,Y){var k,l,M,s,_,F,U,a,C,n,e,I,j,$,d,i,q,K,r,J=[],V=Q.glyphs[R]||Q.glyphs["?"];if(V){if(V.o)for(s=V._cachedOutline||(V._cachedOutline=V.o.split(" ")),F=s.length,U=b,a=b,k=0;F>k;)switch(_=s[k++]){case"m":C=s[k++]*U+W,n=s[k++]*a,Y.moveTo(C,n);break;case"l":C=s[k++]*U+W,n=s[k++]*a,Y.lineTo(C,n);break;case"q":if(e=s[k++]*U+W,I=s[k++]*a,d=s[k++]*U+W,i=s[k++]*a,Y.quadraticCurveTo(d,i,e,I),r=J[J.length-1])for(j=r.x,$=r.y,l=1,M=this.divisions;M>=l;l++){var P=l/M;ic.b2(P,j,d,e),ic.b2(P,$,i,I)}break;case"b":if(e=s[k++]*U+W,I=s[k++]*a,d=s[k++]*U+W,i=s[k++]*a,q=s[k++]*U+W,K=s[k++]*a,Y.bezierCurveTo(d,i,q,K,e,I),r=J[J.length-1])for(j=r.x,$=r.y,l=1,M=this.divisions;M>=l;l++){var P=l/M;ic.b3(P,j,d,q,e),ic.b3(P,$,i,K,I)}}return{offset:V.ha*b,path:Y}}}};Vj.generateShapes=function(Q,Y){Y=Y||{};var V=Y.font;if(V===m&&(V=Vj.getDefaultFont(),!V))return console.log("There's no valid font face, use ht.Default.loadFontFace to load font first."),[];var Z=Y.size!==m?Y.size:1,M=Y.curveSegments!==m?Y.curveSegments:4,g=Y.spacing!==m?Y.spacing:1,K=Y.weight!==m?Y.weight:"normal",r=Y.style!==m?Y.style:"normal";Vj.size=Z,Vj.divisions=M,Vj.face=V,Vj.weight=K,Vj.style=r,Vj.spacing=g;for(var o=Vj.drawText(Q),I=o.paths,p=[],U=0,T=I.length;T>U;U++)Array.prototype.push.apply(p,I[U].toShapes());return p},function(I){var k=1e-10,t=function(m,I){var n=m.length;if(3>n)return null;var V,S,y,P=[],D=[],U=[];if(N(m)>0)for(S=0;n>S;S++)D[S]=S;else for(S=0;n>S;S++)D[S]=n-1-S;var z=n,s=2*z;for(S=z-1;z>2;){if(s--<=0)return I?U:P;if(V=S,V>=z&&(V=0),S=V+1,S>=z&&(S=0),y=S+1,y>=z&&(y=0),w(m,V,S,y,z,D)){var O,k,p,r,e;for(O=D[V],k=D[S],p=D[y],P.push([m[O],m[k],m[p]]),U.push([D[V],D[S],D[y]]),r=S,e=S+1;z>e;r++,e++)D[r]=D[e];z--,s=2*z}}return I?U:P},N=function(n){for(var c=n.length,F=0,y=c-1,J=0;c>J;y=J++)F+=n[y].x*n[J].y-n[J].x*n[y].y;return.5*F},w=function(A,R,a,f,Z,X){var v,t,h,V,x,W,B,H,L;if(t=A[X[R]].x,h=A[X[R]].y,V=A[X[a]].x,x=A[X[a]].y,W=A[X[f]].x,B=A[X[f]].y,k>(V-t)*(B-h)-(x-h)*(W-t))return!1;var n,e,u,E,z,o,N,U,d,I,Q,p,i,$,s;for(n=W-V,e=B-x,u=t-W,E=h-B,z=V-t,o=x-h,v=0;Z>v;v++)if(H=A[X[v]].x,L=A[X[v]].y,!(H===t&&L===h||H===V&&L===x||H===W&&L===B)&&(N=H-t,U=L-h,d=H-V,I=L-x,Q=H-W,p=L-B,s=n*I-e*d,i=z*U-o*N,$=u*p-E*Q,s>=-k&&$>=-k&&i>=-k))return!1;return!0};return I.Triangulate=t,I.Triangulate.area=N,I}(Vj),q._typeface_js={faces:Vj.faces,loadFace:Vj.loadFace};var we=function(){this.vertices=[],this.faces=[],this.faceVertexUvs=[[]]},Pf=we.prototype={constructor:we,computeFaceNormals:function(){for(var D=new Vp,T=new Vp,Z=0,B=this.faces.length;B>Z;Z++){var o=this.faces[Z],b=this.vertices[o.a],q=this.vertices[o.b],L=this.vertices[o.c];D.subVectors(L,q),T.subVectors(b,q),D.cross(T),D.normalize(),o.normal.copy(D)}},computeVertexNormals:function(K){var V,B,J,x,a,v;for(v=new Array(this.vertices.length),V=0,B=this.vertices.length;B>V;V++)v[V]=new Vp;if(K){var W,M,Z,n=new Vp,f=new Vp;for(J=0,x=this.faces.length;x>J;J++)a=this.faces[J],W=this.vertices[a.a],M=this.vertices[a.b],Z=this.vertices[a.c],n.subVectors(Z,M),f.subVectors(W,M),n.cross(f),v[a.a].add(n),v[a.b].add(n),v[a.c].add(n)}else for(J=0,x=this.faces.length;x>J;J++)a=this.faces[J],v[a.a].add(a.normal),v[a.b].add(a.normal),v[a.c].add(a.normal);for(V=0,B=this.vertices.length;B>V;V++)v[V].normalize();for(J=0,x=this.faces.length;x>J;J++)a=this.faces[J],a.vertexNormals[0]=v[a.a].clone(),a.vertexNormals[1]=v[a.b].clone(),a.vertexNormals[2]=v[a.c].clone()},mergeVertices:function(){var f,J,R,V,y,b,l,T,r={},v=[],Z=[],O=4,I=E(10,O);for(R=0,V=this.vertices.length;V>R;R++)f=this.vertices[R],J=W(f.x*I)+"_"+W(f.y*I)+"_"+W(f.z*I),r[J]===m?(r[J]=R,v.push(this.vertices[R]),Z[R]=v.length-1):Z[R]=Z[r[J]];var p=[];for(R=0,V=this.faces.length;V>R;R++){y=this.faces[R],y.a=Z[y.a],y.b=Z[y.b],y.c=Z[y.c],b=[y.a,y.b,y.c];for(var U=0;3>U;U++)if(b[U]==b[(U+1)%3]){p.push(R);break}}for(R=p.length-1;R>=0;R--){var N=p[R];for(this.faces.splice(N,1),l=0,T=this.faceVertexUvs.length;T>l;l++)this.faceVertexUvs[l].splice(N,1)}var F=this.vertices.length-v.length;return this.vertices=v,F}},Cc=function(Y,I,k,g,O,_,K){this.aX=Y,this.aY=I,this.xRadius=k,this.yRadius=g,this.aStartAngle=O,this.aEndAngle=_,this.aClockwise=K};Cc.prototype=Ac(Jb),Cc.prototype.getPoint=function(s){var N,I=this.aEndAngle-this.aStartAngle;0>I&&(I+=M),I>M&&(I-=M),N=this.aClockwise===!0?this.aEndAngle+(1-s)*(M-I):this.aStartAngle+s*I;var A=this.aX+this.xRadius*n(N),m=this.aY+this.yRadius*r(N);return new vl(A,m)};var Wd=function(f,B){this.v1=f,this.v2=B},lm=Wd.prototype=Ac(Jb);lm.getPoint=function(D){var V=this.v2.clone().sub(this.v1);return V.multiplyScalar(D).add(this.v1),V},lm.getPointAt=function(h){return this.getPoint(h)},lm.getTangent=function(){var x=this.v2.clone().sub(this.v1);return x.normalize()};var pm=function(I,D,E){this.v0=I,this.v1=D,this.v2=E};pm.prototype=Ac(Jb),pm.prototype.getPoint=function(l){var i,v;return i=ic.b2(l,this.v0.x,this.v1.x,this.v2.x),v=ic.b2(l,this.v0.y,this.v1.y,this.v2.y),new vl(i,v)};var ef=function(w,l,T,z){this.v0=w,this.v1=l,this.v2=T,this.v3=z};ef.prototype=Ac(Jb),ef.prototype.getPoint=function(I){var _,e;return _=ic.b3(I,this.v0.x,this.v1.x,this.v2.x,this.v3.x),e=ic.b3(I,this.v0.y,this.v1.y,this.v2.y,this.v3.y),new vl(_,e)},Tg.create(function(E,F){this.v1=E,this.v2=F},function(D){var I=new Vp;return I.subVectors(this.v2,this.v1),I.multiplyScalar(D),I.add(this.v1),I});var If=Tg.create(function(m,f,S){this.v0=m,this.v1=f,this.v2=S},function(S){var z,$,u;return z=ic.b2(S,this.v0.x,this.v1.x,this.v2.x),$=ic.b2(S,this.v0.y,this.v1.y,this.v2.y),u=ic.b2(S,this.v0.z,this.v1.z,this.v2.z),new Vp(z,$,u)}),lr=Tg.create(function(j,H,u,V){this.v0=j,this.v1=H,this.v2=u,this.v3=V},function(Q){var O,u,Z;return O=ic.b3(Q,this.v0.x,this.v1.x,this.v2.x,this.v3.x),u=ic.b3(Q,this.v0.y,this.v1.y,this.v2.y,this.v3.y),Z=ic.b3(Q,this.v0.z,this.v1.z,this.v2.z,this.v3.z),new Vp(O,u,Z)}),Xq=function(k,S,v,c,P,s,h,o){we.call(this),c=c!==m?c:.5,P=P!==m?P:.5,o=o!==m?o:1,k=k||8,s=s||0,h=h||M;var q,Z,K=1,I=o/2,p=[],t=[],J=this.vertices,x=this.faces,d=this.faceVertexUvs;for(Z=0;K>=Z;Z++){var E=[],e=[],f=Z/K,N=f*(P-c)+c;for(q=0;k>=q;q++){var z=q/k,C=new Vp,g=-(z*h+s);C.z=N*r(g),C.y=-f*o+I,C.x=N*n(g),J.push(C),E.push(J.length-1),e.push(new vl(z,f))}p.push(E),t.push(e)}var G,T,D=(P-c)/o;for(q=0;k>q;q++)for(0!==c?(G=J[p[0][q]].clone(),T=J[p[0][q+1]].clone()):(G=J[p[1][q]].clone(),T=J[p[1][q+1]].clone()),G.setY(L(G.x*G.x+G.z*G.z)*D).normalize(),T.setY(L(T.x*T.x+T.z*T.z)*D).normalize(),Z=0;K>Z;Z++){var $=p[Z][q],Q=p[Z+1][q],W=p[Z+1][q+1],A=p[Z][q+1],F=G.clone(),b=G.clone(),Y=T.clone(),X=T.clone(),B=t[Z][q].clone(),O=t[Z+1][q].clone(),u=t[Z+1][q+1].clone(),j=t[Z][q+1].clone();x.push(new Th($,Q,A,[F,b,X])),d[0].push([B,O,j]),x.push(new Th(Q,W,A,[b.clone(),Y,X.clone()])),d[0].push([O.clone(),u,j.clone()])}if(S&&c>0)for(this.vertices.push(new Vp(0,I,0)),q=0;k>q;q++){var $=p[0][q],Q=p[0][q+1],W=this.vertices.length-1,F=new Vp(0,1,0),b=new Vp(0,1,0),Y=new Vp(0,1,0),B=t[0][q].clone(),O=t[0][q+1].clone(),u=new vl(O.x,0);x.push(new Th($,Q,W,[F,b,Y],null,1));var U=q/k*M,w=n(U),a=r(U),R=(q+1)/k*M,H=n(R),y=r(R);d[0].push([new vl(.5+.5*w,.5+.5*a),new vl(.5+.5*H,.5+.5*y),new vl(.5,.5)])}if(v&&P>0)for(this.vertices.push(new Vp(0,-I,0)),q=0;k>q;q++){var $=p[Z][q+1],Q=p[Z][q],W=J.length-1,F=new Vp(0,-1,0),b=new Vp(0,-1,0),Y=new Vp(0,-1,0),B=t[Z][q+1].clone(),O=t[Z][q].clone();x.push(new Th($,Q,W,[F,b,Y],null,2));var U=q/k*M,w=n(U),a=r(U),R=(q+1)/k*M,H=n(R),y=r(R);d[0].push([new vl(.5+.5*H,.5-.5*y),new vl(.5+.5*w,.5-.5*a),new vl(.5,.5)])}};Xq.prototype=Ac(Pf);var Qm=function(Z,Y,O,u,s,k,o){we.call(this),o=o||.5,Z=Z||16,Y=Y||16,O=(O!==m?O:0)-d,u=u!==m?u:M,s=s!==m?s:0,k=k!==m?k:d;var A,S,q=[],v=[],G=this.vertices,F=this.faces,N=this.faceVertexUvs;for(S=0;Y>=S;S++){var y=[],K=[];for(A=0;Z>=A;A++){var j=A/Z,b=S/Y,J=new Vp;J.x=-o*n(O+j*u)*r(s+b*k),J.y=o*n(s+b*k),J.z=o*r(O+j*u)*r(s+b*k),G.push(J),y.push(G.length-1),K.push(new vl(j,b))}q.push(y),v.push(K)}for(S=0;Y>S;S++)for(A=0;Z>A;A++){var t=q[S][A+1],L=q[S][A],P=q[S+1][A],g=q[S+1][A+1],x=G[t].clone().normalize(),I=G[L].clone().normalize(),$=G[P].clone().normalize(),W=G[g].clone().normalize(),C=v[S][A+1].clone(),l=v[S][A].clone(),e=v[S+1][A].clone(),f=v[S+1][A+1].clone();_(G[t].y)===o?(C.x=(C.x+l.x)/2,F.push(new Th(t,P,g,[x,$,W])),N[0].push([C,e,f])):_(G[P].y)===o?(e.x=(e.x+f.x)/2,F.push(new Th(t,L,P,[x,I,$])),N[0].push([C,l,e])):(F.push(new Th(t,L,g,[x,I,W])),N[0].push([C,l,f]),F.push(new Th(L,P,g,[I.clone(),$,W.clone()])),N[0].push([l.clone(),e,f.clone()]))}};Qm.prototype=Ac(Pf);var Ir=function(I,B,h,H,K,o){we.call(this),I=I||.33,B=B||.17,H=H||8,h=h||6,K=K||0,o=o||M;for(var t=new Vp,k=[],A=[],i=0;H>=i;i++)for(var T=i/H*M+d,f=0;h>=f;f++){var V=f/h*o+K;t.x=I*n(V),t.z=-I*r(V);var P=new Vp,C=I+B*n(T);P.x=C*n(V),P.z=-C*r(V),P.y=B*r(T),this.vertices.push(P),k.push(new vl(f/h,1-i/H)),A.push(P.clone().sub(t).normalize())}for(var i=1;H>=i;i++)for(var f=1;h>=f;f++){var s=(h+1)*i+f-1,O=(h+1)*(i-1)+f-1,q=(h+1)*(i-1)+f,X=(h+1)*i+f,z=new Th(s,O,X,[A[s].clone(),A[O].clone(),A[X].clone()]);this.faces.push(z),this.faceVertexUvs[0].push([k[s].clone(),k[O].clone(),k[X].clone()]),z=new Th(O,q,X,[A[O].clone(),A[q].clone(),A[X].clone()]),this.faces.push(z),this.faceVertexUvs[0].push([k[O].clone(),k[q].clone(),k[X].clone()])}this.computeFaceNormals()};Ir.prototype=Ac(Pf);var qq=function(B,E,U){return B?(we.call(this),B=B instanceof Array?B:[B],this.addShapeList(B,E),E.convertYZ!==!1&&np(this,U),this.computeFaceNormals(),void 0):(B=[],void 0)},Vg=qq.prototype=Ac(we.prototype);Vg.addShapeList=function(G,d){for(var i=G.length,p=0;i>p;p++){var Y=G[p];this.addShape(Y,d)}},Vg.addShape=function(V,B){function u(){if(B.bottom)for(var x=0;k>x;x++)D=_[x],T(D[2],D[1],D[0],!0);if(B.top)for(x=0;k>x;x++)D=_[x],T(D[0]+M*J,D[1]+M*J,D[2]+M*J,!1)}function x(){var b=0;for(L(X,b),b+=X.length,C=0,d=i.length;d>C;C++)W=i[C],L(W,b),b+=W.length}function L(d,o){for(var O,q,b=d.length;--b>=0;){O=b,q=b-1,0>q&&(q=d.length-1);var Z=0,H=J;for(Z=0;H>Z;Z++){var B=M*Z,V=M*(Z+1),g=o+O+B,n=o+q+B,E=o+q+V,S=o+O+V;j(g,n,E,S,d,Z,H,O,q)}}}function v(o,n,m){$.vertices.push(new Vp(o,n,m))}function T(l,e,D,I){l+=b,e+=b,D+=b,$.faces.push(new Th(l,e,D,null,null,I?2:1));var s=I?Z.generateBottomUV($,V,B,l,e,D):Z.generateTopUV($,V,B,l,e,D);$.faceVertexUvs[0].push(s)}function j(u,g,D,C,J,L,x,N,G){u+=b,g+=b,D+=b,C+=b,$.faces.push(new Th(u,g,C)),$.faces.push(new Th(g,D,C));var n=Z.generateSideWallUV($,V,J,B,u,g,D,C,L,x,N,G);$.faceVertexUvs[0].push([n[0],n[1],n[3]]),$.faceVertexUvs[0].push([n[1],n[2],n[3]])}var G,f,g,p,P,n=B.amount,Q=B.curveSegments||Mq,J=B.steps||1,H=B.extrudePath,E=!1,Z=new Yd(B.repeatUVLength,B.boundingBox);H&&(G=H.getSpacedPoints(J),E=!0,f=B.frames!==m?B.frames:new fm.FrenetFrames(H,J,!1),g=new Vp,p=new Vp,P=new Vp);var W,C,d,$=this,b=this.vertices.length,z=V.extractPoints(Q),w=z.shape,i=z.holes,A=!ic.isClockWise(w);if(A){for(w=w.reverse(),C=0,d=i.length;d>C;C++)W=i[C],ic.isClockWise(W)&&(i[C]=W.reverse());A=!1}var _=ic.triangulateShape(w,i),X=w;for(C=0,d=i.length;d>C;C++)W=i[C],w=w.concat(W);for(var K,D,M=w.length,k=_.length,o=0;M>o;o++)K=w[o],E?(p.copy(f.normals[0]).multiplyScalar(K.x),g.copy(f.binormals[0]).multiplyScalar(K.y),P.copy(G[0]).add(p).add(g),v(P.x,P.y,P.z)):v(K.x,K.y,0);var l;for(l=1;J>=l;l++)for(o=0;M>o;o++)K=w[o],E?(p.copy(f.normals[l]).multiplyScalar(K.x),g.copy(f.binormals[l]).multiplyScalar(K.y),P.copy(G[l]).add(p).add(g),v(P.x,P.y,P.z)):v(K.x,K.y,n/J*l);u(),x()};var fm=function(e,k,G,v,u){function h(o,I,N){return d.vertices.push(new Vp(o,I,N))-1}we.call(this),k=k||64,G=G||1,v=v||8,u=u||!1;var T,m,A,q,c,Z,D,t,j,K,S,Y,W,b,f,y,H,i,p,$,l=[],d=this,z=k+1,I=new Vp,V=new fm.FrenetFrames(e,k,u),X=V.tangents,U=V.normals,P=V.binormals;for(this.tangents=X,this.normals=U,this.binormals=P,j=0;z>j;j++)for(l[j]=[],q=j/(z-1),t=e.getPointAt(q),T=X[j],m=U[j],A=P[j],K=0;v>K;K++)c=K/v*M,Z=-G*n(c),D=G*r(c),I.copy(t),I.x+=Z*m.x+D*A.x,I.y+=Z*m.y+D*A.y,I.z+=Z*m.z+D*A.z,l[j][K]=h(I.x,I.y,I.z);for(j=0;k>j;j++)for(K=0;v>K;K++)S=u?(j+1)%k:j+1,Y=(K+1)%v,W=l[j][K],b=l[S][K],f=l[S][Y],y=l[j][Y],H=new vl(j/k,K/v),i=new vl((j+1)/k,K/v),p=new vl((j+1)/k,(K+1)/v),$=new vl(j/k,(K+1)/v),this.faces.push(new Th(W,b,y)),this.faceVertexUvs[0].push([H,i,$]),this.faces.push(new Th(b,f,y)),this.faceVertexUvs[0].push([i.clone(),p,$.clone()]);this.computeFaceNormals(),this.computeVertexNormals()};fm.prototype=Ac(Pf),fm.FrenetFrames=function(o,g,R){function E(){W[0]=new Vp,Q[0]=new Vp,i=Number.MAX_VALUE,b=_(h[0].x),M=_(h[0].y),A=_(h[0].z),i>=b&&(i=b,X.set(1,0,0)),i>=M&&(i=M,X.set(0,1,0)),i>=A&&X.set(0,0,1),s.crossVectors(h[0],X).normalize(),W[0].crossVectors(h[0],s),Q[0].crossVectors(h[0],W[0])}var t,i,b,M,A,C,z,X=new Vp,h=[],W=[],Q=[],s=new Vp,p=new hg,N=g+1,B=1e-4;for(this.tangents=h,this.normals=W,this.binormals=Q,C=0;N>C;C++)z=C/(N-1),h[C]=o.getTangentAt(z),h[C].normalize();for(E(),C=1;N>C;C++)W[C]=W[C-1].clone(),Q[C]=Q[C-1].clone(),s.crossVectors(h[C-1],h[C]),s.length()>B&&(s.normalize(),t=S(Yn(h[C-1].dot(h[C]),-1,1)),W[C].applyMatrix4(p.makeRotationAxis(s,t))),Q[C].crossVectors(h[C],W[C]);if(R)for(t=S(Yn(W[0].dot(W[N-1]),-1,1)),t/=N-1,h[0].dot(s.crossVectors(W[0],W[N-1]))>0&&(t=-t),C=1;N>C;C++)W[C].applyMatrix4(p.makeRotationAxis(h[C],t*C)),Q[C].crossVectors(h[C],W[C])};var Cb=function(l,c,V,T){we.call(this),c=c||18,V=V||0,T=T==P?M:T;for(var O=1/(l.length-1),Y=1/c,y=0,S=c;S>=y;y++)for(var d=V+y*Y*T,J=n(d),i=r(d),Z=0,K=l.length;K>Z;Z++){var f=l[Z],U=new Vp;U.x=J*f.x-i*f.y,U.y=i*f.x+J*f.y,U.z=f.z,this.vertices.push(U)}for(var H=l.length,y=0,S=c;S>y;y++)for(var Z=0,K=l.length-1;K>Z;Z++){var t=Z+H*y,L=t,R=t+H,J=t+1+H,o=t+1,X=y*Y,B=Z*O,A=X+Y,e=B+O;this.faces.push(new Th(L,o,R)),this.faceVertexUvs[0].push([new vl(X,B),new vl(X,e),new vl(A,B)]),this.faces.push(new Th(R,o,J)),this.faceVertexUvs[0].push([new vl(A,B),new vl(X,e),new vl(A,e)])}this.mergeVertices(),np(this),this.computeFaceNormals(),this.computeVertexNormals()};Cb.prototype=Ac(Pf);var ee=function(i,r){r=r||{};var _=Vj.generateShapes(i,r);r.amount=r.amount!==m?r.amount:.5,r.convertYZ=!1,r.fill!==!1&&(r.bottom=!0,r.top=!0),qq.call(this,_,r)};ee.prototype=Ac(Vg);var ij=F.Node=function(){bo(ij,this)},Fg={X:dg,Y:Sc,Z:Il},Qi={X:0,Y:1,Z:2},tm={xyz:"XYZ",xzy:"XZY",yxz:"YXZ",yzx:"YZX",zxy:"ZXY",zyx:"ZYX"},Un=new af,hk="xzy",Xr=function(P,e,f){if(e){var M=e[0],v=e[1],B=e[2];"xzy"===f?(Sc(P,v),Il(P,B),dg(P,M)):"xyz"===f?(Il(P,B),Sc(P,v),dg(P,M)):"yxz"===f?(Il(P,B),dg(P,M),Sc(P,v)):"yzx"===f?(dg(P,M),Il(P,B),Sc(P,v)):"zxy"===f?(Sc(P,v),dg(P,M),Il(P,B)):"zyx"===f?(dg(P,M),Sc(P,v),Il(P,B)):(Sc(P,v),Il(P,B),dg(P,M))}};yr("Node",Pi,{ms_ac:["rotationMode","anchorElevation"],ms_edge:!0,_adjustChildrenToTop:!0,_icon:"node_icon",_image:"node_image",_rotationMode:hk,_64O:0,_rotationX:0,_53O:0,_host:P,_position:{x:0,y:0},_anchor:{x:.5,y:.5},_anchorElevation:.5,_scale:{x:1,y:1},_scaleTall:1,_54O:0,getUIClass:function(){return dd},_22Q:function(){return ht},getX:function(){return this.p().x},setX:function(H){this.p(H,this.p().y)},getY:function(){return this.p().y},setY:function(U){this.p(this.p().x,U)},getAnchorX:function(){return this.getAnchor().x},setAnchorX:function(A){this.setAnchor(A,this.getAnchor().y)},getAnchorY:function(){return this.getAnchor().y},setAnchorY:function(I){this.setAnchor(this.getAnchor().x,I)},getScaleX:function(){return this.getScale().x},setScaleX:function(X){this.setScale(X,this.getScale().y)},getScaleY:function(){return this.getScale().y},setScaleY:function(D){this.setScale(this.getScale().x,D) },p:function(){return 0===arguments.length?this.getPosition():(this.setPosition.apply(this,arguments),this)},p3:function(){return 0===arguments.length?this.getPosition3d():(this.setPosition3d.apply(this,arguments),this)},s3:function(){return 0===arguments.length?this.getSize3d():(this.setSize3d.apply(this,arguments),this)},r3:function(){return 0===arguments.length?this.getRotation3d():(this.setRotation3d.apply(this,arguments),this)},setQuaternion:function(p){var H=(new Er).setFromQuaternion(p,Er.ReverseOrder(this.getRotationMode()));return this._applyClosestR3(H.x,H.y,H.z)},getQuaternion:function(){var b=new Er,C=new Er,n=new af;return function(a){return a||(a=new af),this.getEuler(b),b.equals(C)?a.copy(n):a.copy(n.setFromEuler(C.copy(b)))}}(),getEuler:function(r){var w=this.r3();return r||(r=new Er),r.set(w[0],w[1],w[2],Er.ReverseOrder(this.getRotationMode()))},setEuler:function(L){return L=L.clone().reorder(Er.ReverseOrder(this.getRotationMode())),this.r3(L.x,L.y,L.z)},t3:function(){return this.translate3d.apply(this,arguments),this},translate3dBy:function(F,c){Ae(F,wf(P,P,this.r3(),this.getRotationMode())),this.translate3d(F[0]*c,F[1]*c,F[2]*c)},translateFront:function(n){this.translate3dBy([0,0,1],n)},translateBack:function(Q){this.translate3dBy([0,0,-1],Q)},translateLeft:function(V){this.translate3dBy([-1,0,0],V)},translateRight:function(y){this.translate3dBy([1,0,0],y)},translateTop:function(c){this.translate3dBy([0,1,0],c)},translateBottom:function(b){this.translate3dBy([0,-1,0],b)},getPosition3d:function(){return[this._position.x,this._54O,this._position.y]},setPosition3d:function(u,C,c){1===arguments.length&&(C=u[1],c=u[2],u=u[0]),this.p(u,c),this.setElevation(C)},translate3d:function(V,P,N){1===arguments.length&&(P=V[1],N=V[2],V=V[0]),this.translate(V,N),this.setElevation(this._54O+P)},getSize3d:function(){return[this.getWidth(),this.getTall(),this.getHeight()]},setSize3d:function(j,g,n){1===arguments.length&&(g=j[1],n=j[2],j=j[0]),this.setSize(j,n),this.setTall(g)},getRotation3d:function(){return[this._rotationX,-this._64O,this._53O]},setRotation3d:function(p,t,W){var U=this;if(!U._updatingRotation3d){U._updatingRotation3d=1,1===arguments.length&&(t=p[1],W=p[2],p=p[0]);var s=[U._rotationX,-U._64O,U._53O];U._rotationX=p,U._64O=-t,U._53O=W,U.fp("rotation3d",s,[p,t,W]),delete U._updatingRotation3d}},_applyClosestR3:function(){function j(s){return s%=M,0>s&&(s+=M),s>d?M-s:s}function t(x,r){return j(x[0]-r[0])+j(x[1]-r[1])+j(x[2]-r[2])}return function(y,O,i){var S,l,T,g=this.r3(),C=this.getRotationMode();"xzy"===C||"yzx"===C?(S=y>0?y-d:y+d,l=O>0?O-d:O+d,T=i>0?d-i:-d-i):"xyz"===C||"zyx"===C?(S=y>0?y-d:y+d,T=i>0?i-d:i+d,l=O>0?d-O:-d-O):("yxz"===C||"zxy"===C)&&(T=i>0?i-d:i+d,l=O>0?O-d:O+d,S=y>0?d-y:-d-y),t([S,l,T],g)=0)return m._width;var Z=m.getStyle("shape3d");if(Z){var f=$c(Z);if(f&&f.rawS3)return f.rawS3[0];if("billboard"===Z||"plane"===Z){var q=tc(m.getStyle("shape3d.image"));return q?zs(q,m):20}}var q=tc(m._image);return q?zs(q,m):20},setWidth:function(V){var b=this,n=b._width;b._width=V,b.fp(Ng,n,V)},getHeight:function(){var H=this;if(H._height>=0)return H._height;var M=H.getStyle("shape3d");if(M){var k=$c(M);if(k&&k.rawS3)return k.rawS3[2];if("plane"===M){var h=tc(H.getStyle("shape3d.image"));return h?Mc(h,H):20}if("billboard"===M)return 2}var h=tc(H._image);return h?Mc(h,H):20},setHeight:function(P){var N=this,w=N._height;N._height=P,N.fp(pc,w,P)},getTall:function(){var u=this;if(u._tall>=0)return u._tall;var Y=u.getStyle("shape3d");if(Y){var m=$c(Y);if(m&&m.rawS3)return m.rawS3[1];if("billboard"===Y){var h=tc(u.getStyle("shape3d.image"));return h?Mc(h,u):20}if("plane"===Y)return 2}return 20},setTall:function(p){var B=this,C=B._tall;B._tall=p,B.fp("tall",C,p)},setSize:function(Z,_){var V=this;2===arguments.length?(V.setWidth(Z),V.setHeight(_)):(V.setWidth(Z.width),V.setHeight(Z.height))},getSize:function(){return{width:this.getWidth(),height:this.getHeight()}},setRect:function(o,_,G,P,r){var S=this,V=S.getAnchor(),j=S.getScale();arguments.length<=2&&(r=_,_=o.y,G=o.width,P=o.height,o=o.x);var c=r&&j.x<0?1-V.x:V.x,x=r&&j.y<0?1-V.y:V.y;S.p(o+G*c,_+P*x),r&&(G/=Math.abs(j.x),P/=Math.abs(j.y)),S.setWidth(G),S.setHeight(P)},getMatrix:function(){var q=this,l=q._64O,R=q._position,s=q.getScale();return new Hq(l,R.x,R.y,s.x,s.y)},getMatrix4:function(){var S=new lp,s=new af,Y=new lp;return function(J){return this.getQuaternion(s),S.copy(this.p3()),Y.copy(this.getFinalScale3d()),J||(J=new hg),J.compose(S,s,Y)}}(),getAnchorRect:function(){var N=this,z=N.getWidth(),g=N.getHeight(),Y=N.getAnchor();return{x:-z*Y.x,y:-g*Y.y,width:z,height:g}},toLocal:function(C){return this.getMatrix().tfi(C)},toGlobal:function(X){return this.getMatrix().tf(X)},getAttachPosition:function(){var B=new Hq;return function(U,k,a,F){a=a||0,F=F||0;var H=this,s=H.getAnchor(),Z=H._64O,v=H._position,G=H.getScale();return B.setFromTransform(Z,v.x,v.y).tf({x:a+G.x*H.getWidth()*(U-s.x),y:F+G.y*H.getHeight()*(k-s.y)})}}(),isInRect:function(Z){Z=this.toLocal(Z);var t=this.getWidth(),m=this.getHeight();return Z.x+=t*this.getAnchorX(),Z.y+=m*this.getAnchorY(),!(Z.x<0||Z.y<0||Z.x>t||Z.y>m)},getRect:function(){var j=this,y=j.getWidth(),Z=j.getHeight(),J=j.getAnchor(),b={x:-y*J.x,y:-Z*J.y,width:y,height:Z},o=j.getMatrix();return b=es([o.tf(b.x,b.y),o.tf(b.x+b.width,b.y),o.tf(b.x+b.width,b.y+b.height),o.tf(b.x,b.y+b.height)])},getAnchorElevation:function(){return this._anchorElevation},getAnchor3d:function(){var W=this,d=W.getAnchor(),t=W._anchorElevation;return{x:d.x,y:t,z:d.y}},setAnchorElevation:function(A){var L=this,c=L._anchorElevation;return c!==A?(L._anchorElevation=A,L.fp("anchorElevation",c,A),!0):!1},setAnchor3d:function(M,I,Z,s){var a,w=this;"number"==typeof M?a={x:M,y:I,z:Z}:(a=M.length?{x:M[0],y:M[1],z:M[2]}:M,s=I),w.beginTransaction();var E=w.getAnchor3d(),f=w.setAnchor(a.x,a.z);if(w.setAnchorElevation(a.y)&&(f=!0),f&&s&&!ig){w.getAnchor3d();var i=On(w),C=Ae([a.x-E.x,a.y-E.y,a.z-E.z],i);w.p3(C)}return w.endTransaction(),f},getAnchor:function(){var k=this;if(k.hasOwnProperty("_anchor"))return k._anchor;var n=tc(k._image);return n&&n.anchorX!==m?{x:n.anchorX,y:n.anchorY}:k._anchor},setAnchor:function(t,Y,R){var Z,L=this;"number"==typeof t?Z={x:t,y:Y}:(Z=t.length?{x:t[0],y:t[1]}:t,R=Y);var l=L.getAnchor();if(l.x!==Z.x||l.y!==Z.y){if(L.beginTransaction(),L._anchor=Z,L.fp("anchor",l,Z),R&&!ig){var b=L.getPosition(),v=L.getSize(),S=L.getRotation(),c=L.getScale(),X=-v.width*(l.x-Z.x)*c.x,w=-v.height*(l.y-Z.y)*c.y,B=r(S),j=n(S);L.setPosition(b.x+j*X-B*w,b.y+B*X+j*w)}return L.endTransaction(),!0}return!1},getLocalQuaternion:function(x){var n=this,V=n.getHost();if(!V)return n.getQuaternion(x);var h=V.getQuaternion(),Z=n.getQuaternion();return x||(x=new af),x.copy(h).inverse().multiply(Z)},setLocalQuaternion:function(c){var b=this,V=b.getHost();if(!V)return b.setQuaternion(c);var G=V.getQuaternion();b.setQuaternion(G.clone().multiply(c))},getLocalEuler:function(){var X=new af;return function(o){var Z=this,A=Z.getHost();return A?(Z.getLocalQuaternion(X),o||(o=new Er),o.setFromQuaternion(X,Er.ReverseOrder(this.getRotationMode()))):Z.getEuler(o)}}(),setLocalEuler:function(){var j=new af;return function(v){var c=this,o=c.getHost();return o?(j.setFromEuler(v),c.setLocalQuaternion(j)):c.setEuler(v)}}(),getLocalPosition3d:function(Z){var M=this;Z||(Z=new lp),Z.copy(M.p3());var o=M.getHost();if(!o)return Z;var z=o.getMatrix4();return Z.applyMatrix4(z.getInverse(z))},setLocalPosition3d:function(F){var y=this,c=y.getHost();if(!c)return F.x!==m?y.p3(F.x,F.y,F.z):y.p3(F),void 0;var K=c.getMatrix4(),v=new lp(F);v.applyMatrix4(K),y.p3(v.x,v.y,v.z)},getScale:function(){return this._scale},setScale:function(z,i){var r,v=this;r=2===arguments.length?{x:z,y:i}:z;var C=v.getScale();(C.x!==r.x||C.y!==r.y)&&(v._scale=r,v.fp("scale",C,r))},getScaleTall:function(){return this._scaleTall},getScale3d:function(){var p=this,e=p._scaleTall,g=p.getScale();return[g.x,e,g.y]},getFinalScale3d:function(){var l=this,n=l.s3(),O=l._dynamicScale3d,f=l.getScale3d();return n&&(f[0]*=n[0],f[1]*=n[1],f[2]*=n[2]),O&&(f[0]*=O[0],f[1]*=O[1],f[2]*=O[2]),f},getFinalRotation3d:function(){var X=this;return X._dynamicRotation||X.r3()},setScaleTall:function(F){var g=this,c=g._scaleTall;c!==F&&(g._scaleTall=F,g.fp("scaleTall",c,F))},setScale3d:function(D,j,t){var f,s=this;f="number"==typeof D?{x:D,y:j,z:t}:D.length?{x:D[0],y:D[1],z:D[2]}:D,s.setScaleTall(f.y),s.setScale(f.x,f.z)},getCorners:function(J,k){J==P&&(J=0),k==P&&(k=J);var O=this,z=O.getAnchor(),E=O.getWidth(),H=O.getHeight(),C=-E*z.x-J,V=-H*z.y-k,T=E+2*J,x=H+2*k,M=O.getMatrix();return[M.tf(C,V),M.tf(C,V+x),M.tf(C+T,V+x),M.tf(C+T,V)]},getEditControlPoints:function(r,q,D){q==P&&(q=0),D==P&&(D=q);var h=this,_=h.getAnchor(),o=h.getWidth(),l=h.getHeight(),H=-o*_.x-q,I=-l*_.y-D,S=o+2*q,k=l+2*D;if(r)return[{x:H,y:I},{x:H,y:0},{x:H,y:I+k},{x:0,y:I+k},{x:H+S,y:I+k},{x:H+S,y:0},{x:H+S,y:I},{x:0,y:I}];var a=h.getMatrix();return[a.tf(H,I),a.tf(H,0),a.tf(H,I+k),a.tf(0,I+k),a.tf(H+S,I+k),a.tf(H+S,0),a.tf(H+S,I),a.tf(0,I)]},rotateAt:function(V,q,z){var t=this,d=t._position,T=t._64O,e=new Hq(T,d.x,d.y).tf(V,q),C=L(V*V+q*q),P=Of(d.y-e.y,d.x-e.x)+z;t.setRotation(T+z),t.p(e.x+C*n(P),e.y+C*r(P))},rotateAroundAxis:function(p,b){this.setQuaternion(this.getQuaternion().multiply(Un.setFromAxisAngle(p,b)))},rotateAroundWorldAxis:function(v,K){this.setQuaternion(this.getQuaternion().premultiply(Un.setFromAxisAngle(v,K)))},rotateX:function(n){return this.rotateAroundAxis(lp.AxisX,n)},rotateY:function(I){return this.rotateAroundAxis(lp.AxisY,I)},rotateZ:function(M){return this.rotateAroundAxis(lp.AxisZ,M)},onParentChanged:function(){ij.superClass.onParentChanged.apply(this,arguments),this._8I()},onPropertyChanged:function(){var v={};return"width|height|position|anchor|rotation|scale|s:layout.h|s:layout.v".split("|").forEach(function(N){v[N]=!0}),function(K){var _=this;ij.superClass.onPropertyChanged.call(_,K);var j=K.property;if(v[j]&&!_._layoutUpdating&&_.updateLayoutParameters(null,j),_._69O&&_._69O.each(function(k){k.handleHostPropertyChange(K)}),_._49I&&_._49I.each(function(a){a.fp("agentChange",!0,!1)}),So[j]&&this.updateLayoutAttaches(),"a:layout"===j.substring(0,8)){this.updateLayoutAttaches();var k=_._host;k&&k.updateLayoutAttaches()}("s:shape3d.autorotate"===j||"s:autorotate"===j||"s:shape3d.fixSizeOnScreen"===j||"s:fixSizeOnScreen"===j||"s:hide.overlapping.group"===j)&&(_._47Q=_.s("autorotate")||_.s("shape3d.autorotate")||_.s("fixSizeOnScreen")||_.s("shape3d.fixSizeOnScreen")||_.s("hide.overlapping.group"))}}(),onHostChanged:function(){this.updateAttach(),this.updateLayoutParameters()},handleHostPropertyChange:function(N){this.updateAttach(N)},onStyleChanged:function(A){ij.superClass.onStyleChanged.apply(this,arguments),rs[A]&&this.updateAttach()},updateLayoutAttaches:function(){if(!ig&&this.s("vector.layoutable")){var S,j,X=this;return S=tc(X.getImage()),S&&S.layoutAttach&&(j=S.layoutAttach,j&&j(X))?!0:void 0}},updateAttach:function(i){var D=this;return ig?(D.updateLayoutParameters(),void 0):(D._51I||(D._51I=1,D._71O(i),delete D._51I),void 0)},_71O:function(z){var h,A,Q,q,M,G,E=this,U=E._host,L=z?z.property:P,D=z?z.oldValue:P,I=z?z.newValue:P;if(U instanceof ij&&(!z||So[L])){var s;if(s=tc(U.getImage()),s&&s.layoutAttach)return}if(U instanceof F.Grid){if(L===Hd)E.setElevation(E._54O+I-D);else if(!z||El[L]){if(h=E.s("attach.row.index"),A=E.s("attach.column.index"),Q=U.getCellRect(h,A),!Q)return;q=E.s("attach.row.span"),M=E.s("attach.column.span"),(1!==q||1!==M)&&(Q=tn(Q,U.getCellRect(h+q-1,A+M-1))),Qr(Q,E,"attach.padding",1),E.setRect(Q)}}else if(U instanceof op&&(G=E.s("attach.index"))>=0&&(!z||Lr[L])){var N=E.s("attach.thickness"),R=U.getScale(),y=Math.max(R.x,R.y);N>0&&E.setHeight(U.getThickness()*N*y);var m=E.s("attach.offset"),d=U.getPoints(),l=d.size();if(l>G){var T=U.getPointsMatrix2d(),Y=d.get(G),J=l===G+1?d.get(0):d.get(G+1);Y=T.apply(Y),J=T.apply(J);var S=[J.x-Y.x,J.y-Y.y],t=Yh(S);if(t){E.s("attach.offset.relative")&&(m*=t),E.s("attach.offset.opposite")&&(m=t-m);var x={x:Y.x+S[0]/t*m,y:Y.y+S[1]/t*m},c=E.s("attach.gap");c&&(E.s("attach.gap.relative")&&(c*=U.getThickness()*y),x=hd(P,x,J,c)),E.p(x),E.setRotation(Of(S[1],S[0]))}}}else z&&(L===od?E.translate(I.x-D.x,I.y-D.y):L===Hd?E.setElevation(E._54O+I-D):eo[L]?"rotation3d"===L?E.syncRotation3d(U,I,D):E._11Q(U,L,I-D):("anchor"===L||"width"===L||"height"===L||"scale"===L)&&E.layout(U))},_11Q:function(){var h=new F.Math.Euler,N=F.Math.Euler.ReverseOrder,M=new F.Math.Vector2,R=new F.Math.Vector2;return function(f,n,d){var x=this,F=f.p3(),u=f.r3(),i=x.p3(),L=x.r3();if(n===$f&&(n="rotationY",d=-d),(n===$f||"rotationY"===n)&&0===L[0]&&0===L[2]&&0===u[0]&&0===u[2]&&0===i[1]&&0===F[1])return x.setRotation(-L[1]-d),M.set(i[0],i[2]).rotateAround(R.set(F[0],F[2]),-d),x.p(M.x,M.y),void 0;var z=tm[f.getRotationMode()],Y=z[0],A=z[1],U=z[2],J=Fg[Y],Z=Fg[A],l=Fg[U],D=tk();n===$f+Y?(l(D,u[Qi[U]]),Z(D,u[Qi[A]]),J(D,d),Z(D,-u[Qi[A]]),l(D,-u[Qi[U]])):n===$f+A?(l(D,u[Qi[U]]),Z(D,d),l(D,-u[Qi[U]])):n===$f+U&&l(D,d);var m=se(i,F);Ae(m,D),x.p3(F[0]+m[0],F[1]+m[1],F[2]+m[2]);var W=x.getRotationMode();Xr(D,x.r3(),W),h.setFromRotationMatrix(D,N(W)),x.r3([h.x,h.y,h.z])}}(),syncRotation3d:function(){var y=new af,S=new Er,T=new lp;return function(a,U,L){var i=this;if(L[0]!==U[0]||L[1]!==U[1]||L[2]!==U[2]){var K=Er.ReverseOrder(a.getRotationMode());Un.setFromEuler(S.set(L[0],L[1],L[2],K)),y.setFromEuler(S.set(U[0],U[1],U[2],K)),y.multiply(Un.inverse());var D=a.p3(),Q=i.p3();T.set(Q[0]-D[0],Q[1]-D[1],Q[2]-D[2]).applyQuaternion(y),i.p3(D[0]+T.x,D[1]+T.y,D[2]+T.z),i.setQuaternion(i.getQuaternion(Un).premultiply(y))}}}(),isHostOn:function(W){var P=this;if(P._host&&W&&W._69O)for(var A={},Q=P._host;Q&&Q!==P&&!A[Q._id];){if(Q===W)return!0;A[Q._id]=Q,Q=Q._host}return!1},isLoopedHostOn:function(V){return this.isHostOn(V)&&V.isHostOn(this)},getScaledSize:function(){var h=this.getSize(),$=this.getScale();return h.width*=Math.abs($.x),h.height*=Math.abs($.y),h},layout:function(r){if(r=r||this.getHost()){var n=this,k=n.s("layout.h")||"center",p=n.s("layout.v")||"center";if("center"!==k||"center"!==p){var X=new F.Math.Vector2,R=r.getPosition(),z=r.getAnchor(),q=r.getScaledSize();n.getPosition();var E,b,j,l,f,o=1,W=1;switch(n._layoutUpdating=!0,k){case"left":X.setX(n._layoutHValue-z.x*q.width);break;case"right":X.setX((1-z.x)*q.width-n._layoutHValue);break;case"leftright":E=q.width-n._layoutHValue[2],j=n.getRotation()-r.getRotation(),l=Math.abs(Math.sin(j)),f=Math.abs(Math.cos(j)),o+=f*E/n._layoutHValue[3],W+=l*E/n._layoutHValue[4],X.setX(n._layoutHValue[1]+(n._layoutHValue[5]-z.x)*q.width);break;case"center":X.setX((.5-z.x)*q.width-n._layoutHValue);break;case"scale":j=n.getRotation()-r.getRotation(),l=Math.abs(Math.sin(j)),f=Math.abs(Math.cos(j)),X.setX((.5-z.x)*q.width-n._layoutHValue[1]*q.width/n._layoutHValue[0]),b=q.width/n._layoutHValue[2]-1,o+=f*b,W+=l*b}switch(p){case"top":X.setY(n._layoutVValue-z.y*q.height);break;case"bottom":X.setY((1-z.y)*q.height-n._layoutVValue);break;case"topbottom":j||(j=n.getRotation()-r.getRotation(),l=Math.abs(Math.sin(j)),f=Math.abs(Math.cos(j))),E=q.height-n._layoutVValue[2],o+=l*E/n._layoutVValue[3],W+=f*E/n._layoutVValue[4],X.setY(n._layoutVValue[1]+(n._layoutVValue[5]-z.y)*q.height);break;case"center":X.setY((.5-z.y)*q.height-n._layoutVValue);break;case"scale":j||(j=n.getRotation()-r.getRotation(),l=Math.abs(Math.sin(j)),f=Math.abs(Math.cos(j))),X.setY((.5-z.y)*q.height-n._layoutVValue[1]*q.height/n._layoutVValue[0]),b=q.height/n._layoutVValue[2]-1,o+=l*b,W+=f*b}if("leftright"===k||"scale"===k||"topbottom"===p||"scale"===p){var s=this.getScale(),C=Math.abs(s.x),x=Math.abs(s.y);"leftright"===k||"scale"===k?n.setSize(n._layoutHValue[3]*o/C,n._layoutHValue[4]*W/x):n.setSize(n._layoutVValue[3]*o/C,n._layoutVValue[4]*W/x)}X.rotateAround(null,r.getRotation()),this.setPosition(X.x+R.x,X.y+R.y),n._layoutUpdating=m}}},updateLayoutParameters:function(W,j){if(W=W||this.getHost()){var C=this,O=C.s("layout.h"),D=C.s("layout.v");if(O||D){var o,p,s,N,t,V,c=new F.Math.Vector2,g=W.getPosition(),$=W.getAnchor(),R=W.getScaledSize(),J=C.getPosition(),B=C.getScaledSize();switch(c.set(J.x-g.x,J.y-g.y),c.rotateAround(null,-W.getRotation()),O){case"left":C._layoutHValue=c.x+$.x*R.width;break;case"right":C._layoutHValue=-c.x+(1-$.x)*R.width;break;case"center":C._layoutHValue=-c.x+(.5-$.x)*R.width;break;case"leftright":case"scale":"scale"===O?o=-c.x+(.5-$.x)*R.width:(p=C.getAnchor(),s=C.getRotation()-W.getRotation(),N=Math.cos(s),t=Math.sin(s),V=-Math.min(-p.x*N+p.y*t,-p.x*N-(1-p.y)*t,(1-p.x)*N+p.y*t,(1-p.x)*N-(1-p.y)*t),o=c.x-(V-$.x)*R.width),"position"===j&&"object"==typeof C._layoutHValue?(C._layoutHValue[0]=R.width,C._layoutHValue[1]=o):C._layoutHValue=[R.width,o,R.width,B.width,B.height,V]}switch(D){case"top":C._layoutVValue=c.y+$.y*R.height;break;case"bottom":C._layoutVValue=-c.y+(1-$.y)*R.height;break;case"center":C._layoutVValue=-c.y+(.5-$.y)*R.height;break;case"topbottom":case"scale":"scale"===D?o=-c.y+(.5-$.y)*R.height:(s||(p=C.getAnchor(),s=C.getRotation()-W.getRotation(),N=Math.cos(s),t=Math.sin(s)),V=-Math.min(-p.x*t-p.y*N,-p.x*t+(1-p.y)*N,(1-p.x)*t-p.y*N,(1-p.x)*t+(1-p.y)*N),o=c.y-(V-$.y)*R.height),"position"===j&&"object"==typeof C._layoutVValue?(C._layoutVValue[0]=R.height,C._layoutVValue[1]=o):C._layoutVValue=[R.height,o,R.height,B.width,B.height,V]}}}},getSerializableProperties:function(){var A=ij.superClass.getSerializableProperties.call(this);return di(A,{image:1,host:1,rotation:1,rotationX:1,rotationZ:1,rotationMode:1,position:1,anchor:1,anchorElevation:1,scale:1,scaleTall:1,_width:1,_height:1,_tall:1,elevation:1}),A}});var Sb=F.Edge=function(N,n){var Y=this;bo(Sb,Y),Y.setSource(N),Y.setTarget(n)};yr("Edge",Pi,{ms_edge:!0,_icon:"edge_icon",getUIClass:function(){return wj},_22Q:function(){return jt},getSource:function(){return this._source},getTarget:function(){return this._target},getSourceAgent:function(){return this._40I},getTargetAgent:function(){return this._41I},canSetSourceTarget:function(d){if(d===this)return!1;if($n(d))return!0;for(var Y,v,g,U,x,k=[this],$=-1,r=0;r>$;)if($++,Y=k[$],v=Y._44I)for(v=v.getArray(),U=0,x=v.length;x>U;U++)if(g=v[U],lc(g)&&!(k.indexOf(g)>=0)){if(g===d)return!1;k.push(g),r++}return!0},setSource:function(J){var U=this;if(U._source!==J&&U.canSetSourceTarget(J)){var E=U._source;U._source=J,E&&E._16I(U),J&&J._2I(U),U._7I(),U.fp("source",E,J)}},setTarget:function(M){var P=this;if(P._target!==M&&P.canSetSourceTarget(M)){var d=P._target;P._target=M,d&&d._18I(P),M&&M._4I(P),P._7I(),P.fp("target",d,M)}},isLooped:function(){var A=this;return A._source===A._target&&$n(A._source)&&$n(A._target)},onPropertyChanged:function(d){var C=this;C._49I&&C._49I.each(function(x){x.fp("agentChange",!0,!1)}),("s:alwaysOnTop"===d.property||"s:shape3d.alwaysOnTop"===d.property)&&(d.newValue?this.setRenderLayer("top"):this.setRenderLayer(m))},_7I:function(){var O,z=this,L=Uj(z);z._40I!==L&&(O=this._40I,O&&O._15I(z),z._40I=L,L&&L._1I(z),z.fp("sourceAgent",O,L),yi(O,z._41I),yi(L,z._41I));var x=gi(z);z._41I!==x&&(O=z._41I,O&&O._17I(z),z._41I=x,x&&x._3I(z),z.fp("targetAgent",O,x),yi(O,z._40I),yi(x,z._40I))},_22I:function(i){this._52I=i,this.fp("edgeGroup",!0,!1)},getEdgeGroup:function(){return this._52I},isEdgeGroupHidden:function(){var V=this;return V._52I&&V._52I.get(0)!==V&&!V.getStyle(wq)},getEdgeGroupSize:function(){return this._52I?this._52I.size():1},getEdgeGroupIndex:function(){return this._52I?this._52I.indexOf(this):0},isEdgeGroupAgent:function(){var Q=this,k=Q._52I;return k&&!Q.getStyle(wq)&&k.size()>1&&Q===k.get(0)},toggle:function(){this.beginTransaction();var U=this._52I,q=!this.s(wq);U&&U.size()>1&&(U.each(function(B){B.s(wq,q)}),U.getSiblings().each(function(L){L!==U&&L.each(function(I){I.fp("edgeGroup",P,L)})})),this.endTransaction()},setStyle:function(h,w){(h===ke||"edge.segments"===h)&&(w=Tb(w)),Sb.superClass.setStyle.call(this,h,w)},onStyleChanged:function(o){Sb.superClass.onStyleChanged.apply(this,arguments),pf[o]&&yi(this._41I,this._40I)},getSerializableProperties:function(){var N=Sb.superClass.getSerializableProperties.call(this);return di(N,{source:1,target:1}),N}});var bh=F.Group=function(){bo(bh,this)};yr("Group",ij,{_image:"group_image",_icon:"group_icon",_57O:!1,getUIClass:function(){return hh},onChildAdded:function(){bh.superClass.onChildAdded.apply(this,arguments),this._81I()},onChildRemoved:function(){bh.superClass.onChildRemoved.apply(this,arguments),this._81I()},_81I:function(){var v=this;if(!v._54I&&!ig){var C=v.getChildrenRect();C&&(v._53I=1,v.p(jl(v.s("group.position"),C,v.getSize())),delete v._53I)}},getChildrenRect:function(){var D,d=this;return d.eachChild(function(K){$n(K)&&(D=tn(D,d.getChildRect(K)))}),D},getChildRect:function(k){var D;return $n(k)&&k.s($b)&&(hc(k)&&k.isExpanded()&&k.eachChild(function(C){D=tn(D,k.getChildRect(C))}),!D&&k.getRect&&(D=k.getRect())),D},setPosition:function(b,I){var W=this;if(!W._54I){var Z;Z=2===arguments.length?{x:b,y:I}:b,ig||W._53I||(W._54I=1,fp(W._children,Z.x-W._position.x,Z.y-W._position.y),delete W._54I),bh.superClass.setPosition.call(this,Z)}},toggle:function(){this.setExpanded(!this.isExpanded())},isExpanded:function(){return this._57O},setExpanded:function(y){var P=this;if(P._57O!==y){var m=P._57O;P._57O=y,P.fp("expanded",m,P._57O),P._fireInvalidateDeep(),P._8I()}},_fireInvalidateDeep:function(){this.eachChild(function(g){hc(g)?g._fireInvalidateDeep():g.iv()})},_8I:function(){bh.superClass._8I.call(this),this.eachChild(function(E){$n(E)&&E._8I()})},onStyleChanged:function(q){bh.superClass.onStyleChanged.apply(this,arguments),"group.position"===q&&this._81I()},getSerializableProperties:function(){var d=bh.superClass.getSerializableProperties.call(this);return d.expanded=1,d}});var dq=F.Camera=function(){bo(dq,this),this.s({"shadow.cast":!1,"shadow.receive":!1,shape3d:"billboard"}),this._viewMatrix=new vj.Matrix4,this._projectMatrix=new vj.Matrix4,this.setScale3d(1,1,-1),this.setCullingMask("main,top"),this._projectMatrixDirty=!0};dq.CubeDirectionParam=[1,0,0,0,-1,0,-1,0,0,0,-1,0,0,1,0,0,0,1,0,-1,0,0,0,-1,0,0,1,0,-1,0,0,0,-1,0,-1,0],yr("Camera",ij,{_22Q:function(){return Camera3dUI},attachRenderTarget:function(A){this._projectMatrixDirty=!0,this.renderTarget=A},detachRenderTarget:function(){this._projectMatrixDirty=!0,this.renderTarget=null},setCullingMask:function(O){var f=O.split(",");this._cullingMask=Mo(f)},isLayerVisible:function(U){var g=ed[U];return g&&Tj(this._cullingMask,g.mask)},isOrtho:function(){return"ortho"===this.s("camera.type")&&!this.isCube()},isCube:function(){return this.renderTarget&&this.renderTarget.isCube()},isPerspective:function(){return!this.isOrtho()},setViewMatrix:function(){var x=new F.Math.Matrix4,c=new F.Math.Euler;return function(y){var A=this;y.isMatrix4?A._viewMatrix.copy(y):A._viewMatrix.fromArray(y),x.getInverse(A._viewMatrix),A.p3(x.getPosition().toArray()),c.set(0,0,0,A.getRotationMode(),!0).setFromRotationMatrix(x),A.r3([c.x,c.y,c.z])}}(),getViewMatrix:function(e){var U=this,w=wf(null,null,U.r3(),U.getRotationMode(),U.p3()),Q=U._viewMatrix;return Q.fromArray(w).getInverse(Q),Q.toArray(e)},setProjectMatrix:function(o){var b=this;o.isMatrix4?b._projectMatrix.copy(o):b._projectMatrix.fromArray(o),o=b._projectMatrix.getElements(),b.isOrtho()?b.s({"camera.near":(o[14]+1)/o[10],"camera.far":(o[14]-1)/o[10],"camera.ortho.width":2/o[0]}):b.s({"camera.near":o[14]/(o[10]-1),"camera.far":o[14]/(o[10]+1),"camera.fovy":2*Math.atan(1/o[5]),"camera.aspect":o[5]/o[0]}),b._projectMatrixDirty=!1},onPropertyChanged:function(I){var D=this;dq.superClass.onPropertyChanged.call(D,I);var G=I.property;("s:camera.near"===G||"s:camera.far"===G||"s:camera.fovy"===G||"s:camera.aspect"===G||"s:camera.ortho.width"===G)&&(D._projectMatrixDirty=!0)},getProjectMatrix:function(){var j=this;if(j._projectMatrixDirty){var V=j.gv,X=j.isCube(),R=X?1:j.s("camera.aspect")||(V?V.getAspect():null)||t.graph3dViewAspect,p=j.s("camera.near")||(V?V.getNear():null)||t.graph3dViewNear,J=j.s("camera.far")||(V?V.getFar():null)||t.graph3dViewFar,q=tk();if(j.isOrtho()){var I=j.s("camera.ortho.width")||(V?V.getOrthoWidth():null)||t.graph3dViewOrthoWidth,l=I/2,E=l/R;Eg(q,-l,l,-E,E,p,J)}else{var _=X?Math.PI/2:j.s("camera.fovy")||(V?V.getFovy():null)||t.graph3dViewFovy;Zq(q,_,R,p,J)}j._projectMatrix.fromArray(q),j._projectMatrixDirty=!1}return j._projectMatrix.toArray()},lookAt:function(k,O){var y=this.p3();return k.x?this.lookAtDirection([k.x-y[0],k.y-y[1],k.z-y[2]],O):this.lookAtDirection([k[0]-y[0],k[1]-y[1],k[2]-y[2]],O)},lookAtDirection:function(){var C=new F.Math.Matrix4,I=new F.Math.Euler,u=new F.Math.Vector3,o=new F.Math.Vector3;return function(v,s){C.lookAtDirection(u.copy(v).multiplyScalar(-1),s?o.copy(s):o.set(0,1,0)),I.set(0,0,0,this.getRotationMode(),!0).setFromRotationMatrix(C),this.r3([I.x,I.y,I.z])}}(),render:function(Y){var H=this,o=Y.getGL();if(!o)return!1;var P,E,b=H.renderTarget;if(b)P=b.width,E=b.height;else{var d=Y.getDevicePixelRatio();P=Y.getWidth()*d,E=Y.getHeight()*d}H.gv=Y,Y._camera=H;var K=Y._frameState.renderState.glState,R=K.color.clear.slice(0);oe(o,H.s("camera.background"));var g=Y.getEye;if(Y.getEye=function(){return H.p3()},H.isCube())for(var A=dq.CubeDirectionParam,T=0;6>T;T++)b&&b.bind(o,T),H.lookAtDirection([A[6*T+0],A[6*T+1],A[6*T+2]],[A[6*T+3],A[6*T+4],A[6*T+5]]),o.clear(o.COLOR_BUFFER_BIT),Y.setViewport(o,0,0,P,E),H.s("camera.onlySky")?Y.renderSky():Y.renderScene({renderAxis:H.s("camera.renderAxis"),renderGrid:H.s("camera.renderGrid"),renderEdit:H.s("camera.renderEdit"),renderReflector:!1}),b&&b.unbind(o);else b&&b.bind(o),o.clear(o.COLOR_BUFFER_BIT),Y.overlappingBox.clear(),Y.setViewport(o,0,0,P,E),H.s("camera.onlySky")?Y.renderSky():Y.renderScene({renderAxis:H.s("camera.renderAxis"),renderGrid:H.s("camera.renderGrid"),renderEdit:H.s("camera.renderEdit")}),b&&b.unbind(o);return Y.getEye=g,oe(o,R),Y._camera=null,H.gv=null,!0}});var hf=F.Block=function(){bo(hf,this),this.s({"shadow.cast":!1,"shadow.receive":!1})};yr("Block",ij,{_icon:"block_icon",_clickThroughEnabled:!1,_syncSize:!0,ms_ac:["clickThroughEnabled","syncSize"],getUIClass:function(){return zj},_22Q:function(){return it},onChildAdded:function(){hf.superClass.onChildAdded.apply(this,arguments),this.updateFromChildren()},onChildRemoved:function(){hf.superClass.onChildRemoved.apply(this,arguments),this.updateFromChildren()},_getBoundingBox:function(){function A(d,u,F){E.fromArray(On(u));var x=u.getAnchor3d();d.push((new lp).set(0-x.x,0-x.y,0-x.z).applyMatrix4(E).applyMatrix4(F)),d.push((new lp).set(0-x.x,0-x.y,1-x.z).applyMatrix4(E).applyMatrix4(F)),d.push((new lp).set(0-x.x,1-x.y,0-x.z).applyMatrix4(E).applyMatrix4(F)),d.push((new lp).set(0-x.x,1-x.y,1-x.z).applyMatrix4(E).applyMatrix4(F)),d.push((new lp).set(1-x.x,0-x.y,0-x.z).applyMatrix4(E).applyMatrix4(F)),d.push((new lp).set(1-x.x,0-x.y,1-x.z).applyMatrix4(E).applyMatrix4(F)),d.push((new lp).set(1-x.x,1-x.y,0-x.z).applyMatrix4(E).applyMatrix4(F)),d.push((new lp).set(1-x.x,1-x.y,1-x.z).applyMatrix4(E).applyMatrix4(F))}function Q(q,K){var v=(new hg).makeRotationFromEuler(this.getEuler()).setPosition((new lp).fromArray(this.p3()));v.getInverse(v),q.forEach(function(a){$n(a)&&A(K,a,v)})}var E=new hg;return function(R,b){if(R instanceof ij&&(R=[R]),!R||0===R.length)return P;var b=[];Q.call(this,R,b);var E=[1/0,1/0,1/0],W=[-1/0,-1/0,-1/0];return b.forEach(function(g){E[0]=Math.min(g.x,E[0]),E[1]=Math.min(g.y,E[1]),E[2]=Math.min(g.z,E[2]),W[0]=Math.max(g.x,W[0]),W[1]=Math.max(g.y,W[1]),W[2]=Math.max(g.z,W[2])}),{min:E,max:W}}}(),updateFromChildren:function(){var H=this;if(!ig&&!H._updatingToChildren&&H._syncSize&&0!==H.size()&&!H._freezeSyncFromChildren){var g=this._getBoundingBox(H.toChildren($n));if(g){H._updatingFromChildren=1;var V=(new lp).fromArray(this.getScale3d()),x=(new lp).fromArray(g.min),b=(new lp).fromArray(g.max),I=t.blockMinSize,r=new lp,z=b.clone().sub(x);0===z.x&&r.setX(.5),0===z.y&&r.setY(.5),0===z.z&&r.setZ(.5);var R=this._width==P||-1===this._width,f=new lp(this.getAnchor3d()),q=V.clone().multiply((new lp).fromArray(this.s3())),j=z.clone();0===j.x&&j.setX(I),0===j.y&&j.setY(I),0===j.z&&j.setZ(I);var O=f.clone().multiply(q),N=O.clone().multiplyScalar(-1).sub(x).divide(j).add(O.divide(j)).add(r),v=this.s("keepPosition");if(R||this._anchorChanged||this._scaleChanged||!v){!R&&v&&(f=N);var l=f.clone().multiply(z).add(x).applyEuler(this.getEuler()).add((new lp).fromArray(this.p3()));this.p3([l.x,l.y,l.z])}else this.setAnchor3d(N.x,N.y,N.z);var X=new lp(1,1,1).divide(V).multiply(z); this.s3(Math.abs(X.x),Math.abs(X.y),Math.abs(X.z)),delete H._updatingFromChildren}}},setPosition:function(s,l){var I=this;if(!I._updatingToChildren){var F;F=2===arguments.length?{x:s,y:l}:s,ig||I._updatingFromChildren||(I._updatingToChildren=1,fp(I._children,F.x-I._position.x,F.y-I._position.y),delete I._updatingToChildren),hf.superClass.setPosition.call(this,F)}},setSize3d:function(){this.beginTransaction(),hf.superClass.setSize3d.apply(this,arguments),this.endTransaction()},setTall:function(O){var P=this;if(!P._updatingToChildren){this.beginTransaction(),O=B(O,t.blockMinSize);var c=P.getTall();if(O!==c&&hf.superClass.setTall.call(P,O),!ig&&!P._updatingFromChildren){P._updatingToChildren=1;var Y=O/c;P._adjustChildTallOrScale(Y,"size"),delete P._updatingToChildren,P.updateFromChildren()}this.endTransaction()}},setWidth:function(H){return this.setSize(H,this.getHeight())},setHeight:function(v){return this.setSize(this.getWidth(),v)},setSize:function($,c){var C=t.blockMinSize;$=B($,C),c=B(c,C);var N=this;if(!N._updatingToChildren){2!==arguments.length&&(c=$.height,$=$.width),this.beginTransaction();var K=N.getWidth(),Z=N.getHeight();if($!==K&&hf.superClass.setWidth.call(N,$),c!==Z&&hf.superClass.setHeight.call(N,c),!ig&&!N._updatingFromChildren){N._updatingToChildren=1;var p=$/K,U=c/Z;N._adjustChildScaleOrSize(p,U,"size"),delete N._updatingToChildren,N.updateFromChildren()}this.endTransaction()}},_adjustChildScaleOrSize:function(g,d,l){var f=this;if(f._syncSize){var S=f.getPosition(),w=f.getRotation();f.eachChild(function(p){if($n(p)){var O=p.getPosition(),s=p.getRotation(),h=p.getWidth(),z=p.getHeight(),L=p.getScale(),Y=L.x*h,v=L.y*z;if(0!==Y&&0!==v){0>g*d&&p.setRotation(-1*s);var W=new Hq(s,O.x,O.y,Y,v);W.translate(-S.x,-S.y),W.rotate(-w),s=Of(W.b*Math.sign(Y),W.a*Math.sign(Y)),W.scale(g,d);var Q,i,E,N=n(s);if(Math.abs(N)<.001?(Q=r(s),i=W.b/Q,E=-W.c/Q):(i=W.a/N,E=W.d/N),"scale"===l)p.setScale(i/h,E/z);else if("size"===l){var q=i/L.x,t=E/L.y;p.setScale(Wr(i)*Math.abs(L.x),Wr(E)*Math.abs(L.y)),p instanceof F.Shape?(p.setWidthForce(Math.max(Math.abs(q),1e-5)),p.setHeightForce(Math.max(Math.abs(t),1e-5))):p.setSize(Math.max(.01,Math.abs(q)),Math.max(.01,Math.abs(t)))}W.rotate(w),W.translate(S.x,S.y),p.setPosition(W.tx,W.ty)}}})}},_calcChangeFactor:function(F,I,n,Z){var i,b,x,X;return i=_(F),b=_(n),x=i>b?i/b:b/i,i=_(I),b=_(Z),X=i>b?i/b:b/i,B(x,X)},setElevation:function(c){var B=this;if(!B._updatingToChildren){var r=B.getElevation(),X=c-r;0!==X&&(ig||B._updatingFromChildren||(B._updatingToChildren=1,fp(B._children,0,X,0),delete B._updatingToChildren),hf.superClass.setElevation.apply(B,arguments))}},setScaleTall:function(i){var U=this;if(!U._updatingToChildren){var p=U.getScaleTall();if(_(i)<.01&&(i=.01*(Wr(i)||Wr(p))),hf.superClass.setScaleTall.call(U,i),!ig&&!U._updatingFromChildren){U._updatingToChildren=1;var E=i/p;U._adjustChildTallOrScale(E,"scale"),delete U._updatingToChildren,U._scaleChanged=1,this.updateFromChildren(),delete U._scaleChanged}}},_adjustChildTallOrScale:function(H,d){var K=this;if(K._syncSize){var v=K.getElevation();K.eachChild(function(Q){if($n(Q)){if("size"===d){var M=Q.getTall();0>H&&Q.setScaleTall(-1*Q.getScaleTall()),Q.setTall(Math.max(.01,Math.abs(M*H)))}else{var V=Q.getScaleTall();Q.setScaleTall(V*H)}Q.setElevation(v+(Q.getElevation()-v)*H)}})}},setAnchor3d:function(){if(!this._updatingToChildren){this.beginTransaction();var p=hf.superClass.setAnchor3d.apply(this,arguments);return p&&!ig&&!this._updatingFromChildren&&this._syncSize&&(this._anchorChanged=1,this.updateFromChildren(),delete this._anchorChanged),this.endTransaction(),p}},setAnchor:function(){var G=this;if(!G._updatingToChildren){var O=G.getAnchor(),g=hf.superClass.setAnchor.apply(G,arguments);if(ig||G._updatingFromChildren||!G._syncSize)return g;G._updatingToChildren=1;var R=G.getAnchor();G.getPosition();var W=G.getSize(),x=G.getScale(),a=G.getRotation(),m=-W.width*x.x*(O.x-R.x),E=-W.height*x.y*(O.y-R.y),s=r(a),X=n(a),o=X*m-s*E,A=s*m+X*E;return G.eachChild(function(z){if($n(z)){var p=z.getPosition();z.setPosition(p.x-o,p.y-A)}}),delete G._updatingToChildren,g}},setAnchorElevation:function(){var y=this;if(!y._updatingToChildren){var q=y.getAnchorElevation(),l=hf.superClass.setAnchorElevation.apply(y,arguments);if(ig||y._updatingFromChildren||!y._syncSize)return l;y._updatingToChildren=1;var H=y.getAnchorElevation(),C=y.getTall(),G=y.getScaleTall(),I=-C*G*(q-H);return y.eachChild(function(G){if($n(G)){var A=G.getElevation();G.setElevation(A-I)}}),delete y._updatingToChildren,l}},setRotation:function(p){this._updateChildrenRotation3d("rotation",p)},setRotationX:function(I){this._updateChildrenRotation3d("rotationX",I)},setRotationZ:function($){this._updateChildrenRotation3d("rotationZ",$)},setRotation3d:function(){var y=this;if(!y._updatingToChildren){var R=y.r3();hf.superClass.setRotation3d.apply(y,arguments);var N=y.r3();ig||y._updatingFromChildren||(y._updatingToChildren=1,y.eachChild(function(Q){$n(Q)&&Q.syncRotation3d(y,N,R)}),delete y._updatingToChildren)}},_updateChildrenRotation3d:function(X,b){var z=this;if(!z._updatingToChildren){var o=z[Qo(X)]();hf.superClass[dc(X)].call(z,b),ig||z._updatingFromChildren||this._updateRotationToChildren(X,b-o)}},_updateRotationToChildren:function(Y,J){var U=this;U._updatingToChildren=1,U.eachChild(function(v){$n(v)&&v._11Q(U,Y,J)}),delete U._updatingToChildren},setScale:function(u,S){var i=this;if(!i._updatingToChildren){null==S&&(S=u.y,u=u.x);var K=i.getScale();if(_(u)<.01&&(u=.01*(Wr(u)||Wr(K.x))),_(S)<.01&&(S=.01*(Wr(S)||Wr(K.y))),hf.superClass.setScale.call(i,u,S),!ig&&!i._updatingFromChildren){i._updatingToChildren=1;var Z=u/K.x,M=S/K.y;i._adjustChildScaleOrSize(Z,M,"scale"),delete i._updatingToChildren,i._scaleChanged=1,i.updateFromChildren(),delete i._scaleChanged}}},onPropertyChanged:function(g){hf.superClass.onPropertyChanged.call(this,g),"s:3d.visible"===g.property&&this._invalidateChildrenBatch()},_invalidateChildrenBatch:function(){this.eachChild(function(c){(c.s("batch")||c.s("wf.geometry")||c.s("wf.visible"))&&c.iv(),c instanceof hf&&c._invalidateChildrenBatch()})},getSerializableProperties:function(){var C=hf.superClass.getSerializableProperties.call(this);return C.clickThroughEnabled=1,C.syncSize=1,C}});var Sd=F.Grid=function(){bo(F.Grid,this)};yr("Grid",ij,{IRotatable:!1,_icon:"grid_icon",_image:P,getUIClass:function(){return Qn},setRotation:function(){},getCellRect:function(u,G){var v=this,o=v.s("grid.row.count"),j=v.s("grid.column.count");if(0>=o||0>=j||0>u||u>=o||0>G||G>=j)return P;var r,h,q,X=v.getRect(),t=v.s("grid.row.percents"),y=v.s("grid.column.percents");if(Qr(X,v,"grid.border",-1),t&&t._as&&(t=t._as),y&&y._as&&(y=y._as),t&&t.length===o){for(q=0,r=0;u>r;r++)q+=X.height*t[r];X.y+=q,X.height=X.height*t[u]}else X.height=X.height/o,X.y+=X.height*u;if(y&&y.length===j){for(h=0,r=0;G>r;r++)h+=X.width*y[r];X.x+=h,X.width=X.width*y[G]}else X.width=X.width/j,X.x+=X.width*G;return Cl(X,-v.s("grid.gap")),X}});var Ff=F.Text=function(){bo(Ff,this),this.setSize(100,50),this.s("text","TEXT")};yr("Text",ij,{_icon:"text_icon",_image:"__text__",getUIClass:function(){return lj},setWidth:function(M){M||(M=.001),Ff.superClass.setWidth.call(this,M)},setHeight:function(g){g||(g=.001),Ff.superClass.setHeight.call(this,g)},toLabel:function(){return this._displayName||this._name||this.s("text")}}),Yc("__text__",{width:{value:100,isSafeFunc:!0,func:function(Z){return Z?Z._width:100}},height:{value:50,isSafeFunc:!0,func:function(p){return p?p._height:50}},comps:[{type:"text",relative:!0,rect:[0,0,1,1],text:{func:"style@text"},align:{func:"style@text.align"},vAlign:{func:"style@text.vAlign"},color:{func:"style@text.color"},font:{func:"style@text.font"},shadow:{func:"style@text.shadow"},shadowColor:{func:"style@text.shadow.color"},shadowBlur:{func:"style@text.shadow.blur"},shadowOffsetX:{func:"style@text.shadow.offset.x"},shadowOffsetY:{func:"style@text.shadow.offset.y"},scaleX:{func:"style@text.scale.x"},scaleY:{func:"style@text.scale.y"},gradient:{func:"style@text.gradient"},gradientColor:{func:"style@text.gradient.color"},gradientPack:{func:"style@text.gradient.pack"},decoration:{func:"style@text.decoration"},vertical:{func:"style@text.vertical"},verticalGap:{func:"style@text.vertical.gap"},wrap:{func:"style@text.wrap"},letterGap:{func:"style@text.letter.gap"},borderWidth:{func:"style@text.border.width"},borderColor:{func:"style@text.border.color"}}]});var op=F.Shape=function(){bo(op,this),this._59O=new Po};op.__de__=xq,yr("Shape",ij,{ms_ac:["thickness","closePath"],_icon:"shape_icon",_thickness:10,_closePath:!1,getUIClass:function(){return Vq},_22Q:function(){return kt},getLength:function(l){return vc(xb(this._59O,this._58O,l,this._closePath))},getSegments:function(){return this._58O},toSegments:function(){var I=this._58O;return I?new Po(I._as.slice(0)):I},setSegments:function(H){var s=this._58O;H=H?ks(H)?new Po(H.slice(0)):new Po(H._as.slice(0)):null,(s&&H&&s._as.join(",")!==H._as.join(",")||s!==H)&&(this._58O=H,this.fp("segments",s,H))},getPoints:function(){return this._59O},toPoints:function(){var e=this._59O;return new Po(e._as.slice(0))},getPointsMatrix2d:function(){var p=this,$=new vj.Matrix2d,v=p.getPosition(),W=p.getScale(),l=p.getRotation();return $.translate(-v.x,-v.y).scale(W.x,W.y).rotate(l).translate(v.x,v.y),$},getPointsMatrix3d:function(){return function(){var g=this,N=new vj.Matrix4,I=N.getElements(),F=g.p3();Xc(I,F),Xr(I,g.getFinalRotation3d(),g.getRotationMode());var W=g.getScale3d(),L=g._dynamicScale3d;return L&&(W[0]*=L[0],W[1]*=L[1],W[2]*=L[2]),Qf(I,W),Xc(I,ld(F)),N}}(),setPoints:function(d,K){var i=this,E=i._59O;d=d?ks(d)?new Po(d.slice(0)):new Po(d._as.slice(0)):new Po;var u,q,Y,m,v,R;K&&(u=i.getPosition(),R=new Hq(i.getRotation(),0,0,i.getScale().x,i.getScale().y)),(E&&d&&E._as.join(",")!==d._as.join(",")||E!==d)&&(i._59O=d,i.fs(),i.fp("points",E,d)),K&&(q=i.getPosition(),Y=q.x-u.x,m=q.y-u.y,v=R.tf(Y,m),i.setPosition(q.x-Y+v.x,q.y-m+v.y))},setPoints3d:function(L,r){var Y=new lp(this.p3()),F=this.getPointsMatrix3d();if(F.setPosition(new lp),Rd.superClass.setPoints.call(this,L),r){var h=new lp(this.p3()),K=h.clone().sub(Y).applyMatrix4(F);Y.add(K),this.p3(Y.x,Y.y,Y.z)}},addPoint:function(N,b,$){var e=this.toPoints();e.add(N,b),this.setPoints(e,$)},setPoint:function(K,t,l){var W=this.toPoints();W.set(K,t),this.setPoints(W,l)},removePointAt:function(f){var r=this.toPoints();r.removeAt(f),this.setPoints(r)},setWidthForce:function(Q){var D=this;if(!D._55I&&!ig&&D.getWidth()){D._55I=1;var n=D._position.x,S=Q/D.getWidth(),J=D.toPoints(),z=new Po;1!==S&&(J.each(function(K){z.add({x:(K.x-n)*S+n,y:K.y,e:K.e})}),D.setPoints(z),Gi(D,[S,0,0,1,n*(1-S),0]),D.fs()),delete D._55I}op.superClass.setWidth.call(D,Q)},setWidth:function(T){return this.setWidthForce(Id>T?Id:T)},setHeightForce:function(b){var s=this;if(!s._55I&&!ig&&s.getHeight()){s._55I=1;var S=s._position.y,Y=b/s.getHeight(),Q=s.toPoints(),$=new Po;1!==Y&&(Q.each(function(H){$.add({x:H.x,y:(H.y-S)*Y+S,e:H.e})}),s.setPoints($),Gi(s,[1,0,0,Y,0,S*(1-Y)]),s.fs()),delete s._55I}op.superClass.setHeight.call(s,b)},setHeight:function(O){return this.setHeightForce(Id>O?Id:O)},setAnchorElevation:function(O){var u=this;u._55I=!0;var o=u._updatingAnchor3d,C=!ig&&!o;if(C){var J,M=O,g=u.getAnchorElevation(),d=u.getTall();J=d*(g-M),0!==J&&u.shiftPointsElevation(J)}var R=op.superClass.setAnchorElevation.apply(u,arguments);return o||delete u._55I,R},getShapeElevation:function(){var q=this,Y=q._54O;return Y-(q.getTall()||0)*(q._anchorElevation-.5)},setAnchor3d:function(f,I,Y,J){var D,d=this;if("number"==typeof f?D={x:f,y:I,z:Y}:(D=f.length?{x:f[0],y:f[1],z:f[2]}:f,J=I),d._55I=!0,d._updatingAnchor3d=!0,d.beginTransaction(),!ig){var q=d.getAnchor3d(),p=d.getSize(),M=d.getTall(),L=p.width*(q.x-D.x),u=p.height*(q.z-D.z),w=M*(q.y-D.y);J||d.shiftPoints(L,u,w);var N=d.p3()}var s=op.superClass.setAnchor3d.apply(d,arguments);if(!ig&&J){var t=d.p3();d.shiftPoints(t[0]-N[0]+L,t[2]-N[2]+u,t[1]-N[1]+w)}return d.endTransaction(),delete d._updatingAnchor3d,delete d._55I,s},setAnchor:function(C,p,O){var b=this;b._55I=!0;var $=b._updatingAnchor3d,e=!ig&&!$;if(e){var X,U,k;"number"==typeof C?k={x:C,y:p}:(k=C.length?{x:C[0],y:C[1]}:C,O=p);var h=b.getAnchor(),o=b.getSize();X=o.width*(h.x-k.x),U=o.height*(h.y-k.y),O||b.shiftPoints(X,U);var d=b.getPosition()}var z=op.superClass.setAnchor.apply(b,arguments);if(e){var f=b.getPosition();O&&b.shiftPoints(f.x-d.x+X,f.y-d.y+U)}return $||delete b._55I,z},shiftPoints:function(V,q,h){if(V||q||h){var G=this,L=G.getElevation()||0,Q=G.toPoints(),o=new Po;Q.each(function(A){var j=A.e;h&&(j=(j==P?L:j)+h),o.add({x:A.x+V,y:A.y+q,e:j})}),G.setPoints(o),G.fs()}},shiftPointsElevation:function(z){return this.shiftPoints(0,0,z)},setPosition:function(G,F){var e,h=this;if(!h._28Q){if(h._28Q=1,!h._55I&&!ig){e=2===arguments.length?{x:G,y:F}:G;var C=e.x-h._position.x,z=e.y-h._position.y;if(0===C&&0===z)return delete h._28Q,void 0;h._55I=1,h.shiftPoints(C,z),Gi(h,[1,0,0,1,C,z]),delete h._55I}op.superClass.setPosition.apply(h,arguments),delete h._28Q}},fs:function(){this.fireShapeChange()},_70I:function(){var L=this;if(2!==L._59O.size())return!1;var R=L._58O;return R?2===R.size()&&1===R.get(0)&&2===R.get(1)?!0:!1:!0},fireShapeChange:function(){var D=this;if(!D._55I&&!ig){var x=es(D._59O);x&&(D._55I=1,D.setRect(x),delete D._55I)}D.fp(Ce,!1,!0)},getSerializableProperties:function(){var N=op.superClass.getSerializableProperties.call(this);return N.segments=1,N.points=1,N.thickness=1,N.closePath=1,N}});var Tl=F.Points=function(){bo(Tl,this)};yr("Points",ij,{_59O:[],_colors:[],_sizes:[],_uvoffsets:[],_22Q:function(){return lt},getPoints:function(){return this._59O},setPoints:function(m){var W=this._59O;m=m?m.slice(0):[];var b=m[0];if(Ll(b)){var k=m;m=[];for(var f=0,h=k.length;h>f;f+=3)m.push({x:k[f],e:k[f+1],y:k[f+2]})}this._59O=m,this._pointsDirty=!0,this.fp("points",W,this._59O)},setPoint:function(b,i){var r=this._59O.slice(0);r[b]=i,this.setPoints(r)},addPoint:function(u){this.setPoint(this._59O.length,u)},getColors:function(){return this._colors},setColors:function(D){var R=this._colors;D=D?D.slice(0):[],this._colors=D,this._colorsDirty=!0,this.fp("colors",R,D)},setPointColor:function(Y,v){var l=this._colors.slice(0);l[Y]=v,this.setColors(l)},getSizes:function(){return this._sizes},setSizes:function(F){var k=this._sizes;F=F?F.slice(0):[],this._sizes=F,this._sizesDirty=!0,this.fp("sizes",k,this._sizes)},setPointSize:function(S,P){var h=this._sizes.slice(0);h[S]=P,this.setSizes(h)},getUvoffsets:function(){return this._uvoffsets},setUvoffsets:function(O){var I=this._uvoffsets;O=O?O.slice(0):[],this._uvoffsets=O,this._offsetsDirty=!0,this.fp("uvoffsets",I,this._uvoffsets)},setPointUvoffset:function(A,D,T){var z;"object"==typeof D?(z=D[0],T=D[1]):z=D;var m=this._uvoffsets.slice(0);m[2*A+0]=z,m[2*A+1]=T,this.setUvoffsets(m)},getPointInfo:function(q){var s=this.getPoints();if(!s||s[q]==P)return P;var k=s[q],t=[k.x,k.e,k.y],O=this.mat||On(this),m=[t[0],t[1],t[2]];Ae(m,O);var B=this.getColors(),K=B[q]||this.s("points.color"),f=this.getSizes(),c=f[q];return{size:c==P?this.s("points.size"):c,color:K,local:t,world:m}},getSerializableProperties:function(){var B=Tl.superClass.getSerializableProperties.call(this);return B.points=1,B.colors=1,B.sizes=1,B.uvoffsets=1,B},onPropertyChanged:function(m){Tl.superClass.onPropertyChanged.call(this,m);var I=m.property;"s:points.color"===I?this._colorsDirty=!0:"s:points.size"===I?this._sizesDirty=!0:"s:points.model"===I&&(this._modelDirty=!0)},getWidth:function(){var Y=this;if(Y._width>=0)return Y._width;var v=Y.getStyle("points.model");if(v){var f=$c(v);if(f&&f.rawS3)return f.rawS3[0]}return 1},getHeight:function(){var V=this;if(V._height>=0)return V._height;var Y=V.getStyle("points.model");if(Y){var e=$c(Y);if(e&&e.rawS3)return e.rawS3[2]}return 1},getTall:function(){var s=this;if(s._tall>=0)return s._tall;var n=s.getStyle("points.model");if(n){var X=$c(n);if(X&&X.rawS3)return X.rawS3[1]}return 1}});var Rd=F.Polyline=function(){bo(Rd,this),this.s({"shape.background":null,"shape.border.width":2})};yr("Polyline",op,{_icon:"polyline_icon",_22Q:function(){return ot},getUIClass:function(){return ri},setClosePath:function(){},setTall:function(z){var A=this;if(A.beginTransaction(),!A._55I&&!A._24Q&&!ig&&A.getTall()){A._24Q=1;var s=A._54O,m=z/A.getTall();if(1!==m){var B=A.toPoints(),v=new Po;B.each(function(E){v.add({x:E.x,y:E.y,e:E.e==P?E.e:(E.e-s)*m+s})}),A.setPoints(v),A.fs()}delete A._24Q}Rd.superClass.setTall.call(A,z),A.endTransaction()},setElevation:function(j){var H=this;if(H.beginTransaction(),!H._55I&&!H._24Q&&!ig){H._24Q=1;var u=j-H._54O;0!==u&&H.shiftPointsElevation(u),delete H._24Q}Rd.superClass.setElevation.apply(H,arguments),H.endTransaction()},fireShapeChange:function(){var b=this,N=b._59O;if(!b._55I&&!b._24Q&&!ig){var i=N.size();if(i){var H=1,M=N.get(0),E=b._54O;M.e==P&&(M.e=E);for(var W=M.e,m=0;i>H;H++){M=N.get(H),M.e==P&&(M.e=E);var h=v(W,M.e),t=B(W+m,M.e);W=h,m=t-h}b._24Q=1,b.setTall(m),b.setElevation(W+m*b._anchorElevation),delete b._24Q}}Rd.superClass.fireShapeChange.apply(b,arguments)}});var Tk=F.SubGraph=function(){bo(Tk,this)};yr("SubGraph",ij,{ISubGraph:1,_image:"subGraph_image",_icon:"subGraph_icon",_8I:function(){Tk.superClass._8I.call(this),this.eachChild(function(h){$n(h)&&h._8I()})}}),t.loadingRefGraph=0;var Pc=F.RefGraph=function(){bo(Pc,this)};yr("RefGraph",hf,{_icon:"refGraph_icon",getRef:function(){return this._ref},setRef:function(B){var A=this._ref;this._ref=B,this.fp("ref",A,B),this.updateRef()},_21I:function(){Pc.superClass._21I.apply(this,arguments),this.updateRef()},updateRef:function(){var O=this;if(t.loadingRefGraph++,O.clearChildrenFromDataModel(),t.loadingRefGraph--,O._ref&&O._dataModel){O._xhrLoadHandler&&(O._xhrLoadHandler.cancel=!0);var Y=ig,m=O._xhrLoadHandler=function(u){if(u&&O._dataModel){t.loadingRefGraph++;var s=O._pendingUpdateInfo={needToRestore:Y};Y&&(s.p3=O.p3(),s.s3=O.s3(),s.r3=O.r3(),s.anchor3d=O.getAnchor3d(),s.scale3d=O.getScale3d()),O.r3(0,0,0),O.setScale3d(1,1,1),O.setAnchor3d(.5,.5,.5),O.p3(0,0,0);var b=t.parse(u),l=O._dataModel.deserialize(b,O,{justDatas:!0});l.each(function(V){V._refGraph=O}),O.checkPendingUpdateInfo(),t.loadingRefGraph--,t.handleRefGraphLoaded(O,l,b)}};m.xhrLoadCalled=!1,t.load(O._ref,function(l){m.cancel||(m.xhrLoadCalled?m(l):ne(function(){m(l)}))}),m.xhrLoadCalled=!0}},checkPendingUpdateInfo:function(){var K=this,O=K._pendingUpdateInfo;if(!O)return K.onPendingUpdated&&(t.loadingRefGraph++,K.onPendingUpdated(),t.loadingRefGraph--),void 0;var d=!0;this.eachChild(function(A){(A._pendingCheckImageJSON||A._pendingUpdateInfo)&&(d=!1)}),d&&(t.loadingRefGraph++,K._pendingUpdateInfo=null,K.updateFromChildren(),O.needToRestore&&(K.setAnchor3d(O.anchor3d),K.setScale3d(O.scale3d),K.r3(O.r3),K.p3(O.p3)),this.getParent()instanceof Pc&&this.getParent().checkPendingUpdateInfo(),K.onPendingUpdated&&K.onPendingUpdated(),t.loadingRefGraph--)},getSerializableProperties:function(){var x=Pc.superClass.getSerializableProperties.call(this);return x.ref=1,x}}),F.EdgeGroup=function(O,L){this._70O=O,this._siblings=L;for(var z,f,N=0,j=O.size(),q=l[wq];j>N;N++)if(z=O.get(N).getStyle(wq,!1),z!=P){q=z;break}q==P&&(q=!0);var s=t.edgeGroupAgentFunc;for(s&&(f=s(O),f&&f!==O.get(0)&&(O.remove(f),O.add(f,0))),N=0;j>N;N++)O.get(N).s(wq,q)},yr("EdgeGroup",$,{getEdges:function(){return this._70O},size:function(){return this._70O.size()},get:function(p){return this._70O.get(p)},indexOf:function(U){return this._70O.indexOf(U)},each:function(R,A){this._70O.each(R,A)},getSiblings:function(){return this._siblings},eachSiblingEdge:function($,N){this._siblings.each(function(b){b._70O.each($,N)})}});var _f=function(v,P,t){var B=ji[v]={type:v,action:P};if(t)for(var K in t)B[K]=t[K]};di(t,{setConnectAction:_f,getConnectAction:function(F,p){if(!p){if(!F)return null;p=F.getCurrentConnectActionType()}return ji[p]},doConnectAction:function(g,I,Q,Z){Z=Z||g.getCurrentConnectActionType();var s=ji[Z];if(!s)return!1;var L=s.action;return L?(I instanceof yf.Group?g.sm().getSelection().each(function(y){L.call(null,g,y,Q)}):L.call(null,g,I,Q),!0):!1},doDeleteConnectionAction:function(V,E,X){X=X||V.getCurrentConnectActionType();var _=ji[X];if(!_||!_.delete)return!1;var T=_.delete.action;return T?(E instanceof yf.Group?V.sm().getSelection().each(function(Q){T.call(null,V,Q)}):T.call(null,V,E),!0):!1}});var cq=F.JSONSerializer=function(x,c){this.dm=this._dataModel=x,this._hierarchical=t.forceHierarchicalSerialization?!0:c==P?x.isHierarchicalRendering():c};yr("JSONSerializer",$,{ms_ac:["hierarchical"],serialize:function(Q){return t.stringify(this.toJSON(),Q)},toJSON:function(){var e,K=this,X=K.dm,y=X.getRoots(),R=K.json={v:t.getVersion(),p:{},a:{},d:[]},k=X.getSerializableAttrs();(e=X.getInit())&&(R.init=e),(e=X.getName())&&(R.p.name=e),(e=X.getBackground())&&(R.p.background=e),(e=X.getLayers())&&(R.p.layers=e),(e=X.getEnvmap())&&(R.p.envmap=e),(e=X.getEnvmapType())&&(R.p.envmapType=e),R.p.autoAdjustIndex=X.isAutoAdjustIndex(),R.p.hierarchicalRendering=X.isHierarchicalRendering();for(var v in k){var U=X.a(v);U!==m&&K[qn](v,U,R.a)}return Dp(R.a)&&delete R.a,K._hierarchical?y.each(K.serializeData,this):X.each(function(y){K.serializeData(y)}),X.fireSerializeEvent({type:"serialize",json:R}),X.getPostProcessingData()&&(R.p.postProcessingData=X.getPostProcessingData()),R},isSerializable:function(){return!0},getProperties:function(L){return L.getSerializableProperties()},getStyles:function(u){return u.getSerializableStyles()},getAttrs:function(Z){return Z.getSerializableAttrs()},serializeData:function(v){var m=this;if(m.isSerializable(v)&&!v._refGraph){var I,a,X,z,N=Wc(v.getClassName())||v.getClass(),j=new N,U={c:v.getClassName(),i:v.getId(),p:{},s:{},a:{}};m.json.d.push(U),I=m.getProperties(v);for(a in I)if(/^_/.test(a)){if(X=v[a],!("_width"!==a&&"_height"!==a||X!=P&&-1!==X)){var t;((v.s("layout.h")||v.s("layout.v"))&&v.getHost()||v instanceof F.Node&&(t=v.getParent())&&t instanceof F.Block||v.s("fullscreen"))&&(X=v[a]="_width"===a?v.getWidth():v.getHeight())}X!==j[a]&&m[qn](a.substr(1),X,U.p)}else z=Qo(a),v[z]&&(X=v[z](),X!==j[z]()&&m[qn](a,X,U.p));I=m.getStyles(v);for(a in I)X=v.s(a),X!==j.s(a)&&m[qn](a,X,U.s);I=m.getAttrs(v);for(a in I)X=v.a(a),X!==j.a(a)&&m[qn](a,X,U.a);Dp(U.p)&&delete U.p,Dp(U.s)&&delete U.s,Dp(U.a)&&delete U.a}m._hierarchical&&v.getChildren().each(m.serializeData,m)},serializeValue:function(X,G,Z){Xn(G)?G={__a:G._as}:G instanceof Pi?G={__i:G.getId()}:G instanceof zk&&(G={__dm:G.serialize(0)}),Z[X]=G},deserialize:function(f,R,Q){var C=this;return ib(f)&&/.json$/.test(f)?(t.xhrLoad(f,function(T){C.deserializeImpl(T,R,Q)}),void 0):C.deserializeImpl(f,R,Q)},deserializeImpl:function(U,s,n){var E=this,O=E.dm;O.setDeserializing(!0),n=cg(n)?{setId:n}:ns(n)?{finishFunc:n}:n||{},U=E.json=ib(U)?t.parse(U):U,!n.justDatas&&U.a&&U.a.onPreDeserialize&&!n.disableOnPreDeserialize&&U.a.onPreDeserialize(U,O,n.view),O.beginTransaction(),ig++,E._82I={};var r=new Po,F=new Po,y=0,A=U.d.length;if(n.justDatas||(!n.disableInit&&ns(U.init)&&U.init(O),O.setInit(U.init)),!n.justDatas){for(var w in U.a)O.a(w,E[xp](U.a[w]));for(var W in U.p)O[dc(W)](U.p[W])}for(;A>y;y++){var g=U.d[y],Q=Wc(g.c),B=new Q,K=g.i;n.setId&&K!=P&&(B._id=K),E._82I[K]=B,r.add(B),F.add(g)}for(y=0;A>y;y++)E.deserializeData(r.get(y),F.get(y));return r.each(function(a){s&&!a.getParent()&&a.setParent(s),O.add(a)}),n.__innerHandler__&&n.__innerHandler__(U,O,n.view,r),O.fireSerializeEvent({type:"deserialize",json:U}),ig--,O.endTransaction(),!n.justDatas&&U.a&&U.a.onPostDeserialize&&!n.disableOnPostDeserialize&&U.a.onPostDeserialize(U,O,n.view,r),n.finishFunc&&n.finishFunc(U,O,n.view,r),O.setDeserializing(!1),r},deserializeData:function(H,j){for(var d in j.p)H[dc(d)](this[xp](j.p[d]));for(d in j.s)H.s(d,this[xp](j.s[d]));for(d in j.a)H.a(d,this[xp](j.a[d]))},deserializeValue:function(S){if(Pg(S)){var n=S.__i;if(n!=P)return this._82I[n];if(n=S.__dm,n!=P){var X=new F.DataModel;return X.deserialize(n),X}if(n=S.__a,ks(n))return new Po(n)}return S}}),di(zk,{serialize:function(Q,J){return new cq(this,J).serialize(Q)},toJSON:function(e){return new cq(this,e).toJSON()},deserialize:function(k,y,M){return new cq(this).deserialize(k,y,M)}});var Uh=F.OverlappingBox=function(l){this.gv=l,this.boxes={}};yr("OverlappingBox",$,{clear:function(){var l,e,F=this.boxes;for(l in F)e=F[l],e.length=0},isOverlapping:function(D,T){var H,b,V=this,S=V.boxes,p=S[D];p?(H=p.rects,b=p.length):p=S[D]={rects:H=[],length:b=0};var u,r,T;for(u=0;b>u;u++)if(r=H[u],r.xT.x&&r.yT.y)return!0;return H.length<=b?(H.push(T),p.length++):H[p.length++]=T,!1}}),di(t,{fetch:function(m,B){var k="GET",R=!1,n=null,v="";B&&(k=B.method||"GET",R=B.sync,v=B.url,n=B.data||null),m.open(k,v,!R),B.responseType?m.responseType=B.responseType:B.overrideMimeType&&m.overrideMimeType&&m.overrideMimeType(B.overrideMimeType),m.send(n)},convertImageSrc:function(Y,U){U&&"function"==typeof U||(U=function(){}),U(Y)}});var Ke=F.Request=function(){this._xhr=new XMLHttpRequest,this._onloadFunc=function(){},this._errorFunc=function(){}};yr("Request",$,{_responseType:null,_overrideMimeType:"text/plain",send:function(Y){var s=this._xhr,L=this.onload,k=this.onerror;this.getResponseType()?Y.responseType=this.getResponseType():this.getOverrideMimeType()&&(Y.overrideMimeType=this.getOverrideMimeType()),s.onload=L,s.onerror=k,t.fetch(s,Y)},onload:function(){},onerror:function(){},getResponseType:function(){return this._responseType},setResponseType:function($){this._responseType=$},getOverrideMimeType:function(){return this._overrideMimeType},setOverrideMimeType:function(X){this._overrideMimeType=X},getResponseText:function(){var N=this._xhr;return N.response||N.responseText}}),nq.GraphView=function(E){var I=this;I._24I={},I._34I=new Po,I.enableDirtyRect(),I._25I={},I._56I={},I._view=Bg(1,I),I._canvas=Hj(I._view),I.dm(E?E:new zk),this._coreInteractor=new $q(this),I.setEditable(!1),I.setScrollBarVisible(t.graphViewScrollBarVisible),I._initView()},Rq("GraphView",$,{ms_v:1,ms_gv:1,ms_bnb:1,ms_tip:1,ms_dm:1,ms_lp:1,ms_fire:1,ms_sm:1,_49o:1,ms_txy:1,_52o:1,_51o:1,ms_ac:[ai,Df,fg,Yg,"resettable","editInteractor",hj,"zoomable","pannable","rectSelectable","autoScrollZone",$i,"movableFunc","editableFunc","pointEditableFunc","rectEditableFunc","rotationEditableFunc","anchorEditableFunc","rectSelectBackground","rectSelectBorderColor","editPointSize","editPointBorderColor","editPointBackground","hoverDelay"],_zoomable:t.graphViewZoomable,_resettable:t.graphViewResettable,_pannable:t.graphViewPannable,_rectSelectable:t.graphViewRectSelectable,_autoScrollZone:t.graphViewAutoScrollZone,_rectSelectBackground:t.graphViewRectSelectBackground,_rectSelectBorderColor:t.graphViewRectSelectBorderColor,_editPointSize:t.graphViewEditPointSize,_editPointBorderColor:t.graphViewEditPointBorderColor,_editPointBackground:t.graphViewEditPointBackground,_scrollBarColor:Zm,_scrollBarSize:Yi,_autoHideScrollBar:Vf,_autoMakeVisible:Od,_currentActionType:null,getCoreInteractor:function(){return this._coreInteractor},getLayers:function(){return this._dataModel.getLayers()},setLayers:function(Q){this._dataModel.setLayers(Q)},setEditable:function(m){var J=this,w=J.__interactorMap__;if(!w){var e=nq.XEditInteractor;w=J.__interactorMap__={scrollBar:new zo(J),select:new Pb(J),edit:e?new e(J):new _d(J),text:new hm(J),move:new jm(J),"default":new Jm(J),touch:new Ve(J,{editable:!1})}}m?(J._uieditable=!0,J.setInteractors([w.scrollBar,w.select,w.edit,w.text,w.move,w.default,w.touch])):(J._uieditable=!1,J.setInteractors([w.scrollBar,w.select,w.move,w.default,w.touch]))},getCanvas:function(){return this._canvas},_33I:function(N){var y=N.getUIClass();return y?new y(this,N):P},getDataUI:function(r){var Q=this,t=Q._25I[r._id];return t===m&&(t=Q._33I(r),Q._25I[r._id]=t),t},getNodeRect:function(y){return t.getNodeRect(this,y)},getFullscreenDatas:function(){return this._dataModel.getFullscreenDatas()},getEdgeInfo:function(l){var B=this.getDataUI(l);return B?(B._79o(),B._78o):null},getEdgeSourcePosition:function(E){var N=this,K=N.getDataUI(E),w=K.s,k=K._data._40I;return Ub(N,k,w("edge.source.position"),w("edge.source.offset.x"),w("edge.source.offset.y"),w("edge.source.anchor.x"),w("edge.source.anchor.y"))},getEdgeTargetPosition:function(x){var n=this,J=n.getDataUI(x),e=J.s,i=J._data._41I;return Ub(n,i,e("edge.target.position"),e("edge.target.offset.x"),e("edge.target.offset.y"),e("edge.target.anchor.x"),e("edge.target.anchor.y"))},invalidateAll:function(b){var Y=this;if(b){for(var L in Y._25I){var l=Y._25I[L];l&&l.dispose()}Y._25I={},Y._56I={},Y._24I={},Y._34I.clear(),Y.redraw()}else Y.dm().each(function(A){Y.invalidateData(A)})},invalidateSelection:function(){var j=this;j.sm().each(function(b){j.invalidateData(b)})},invalidateData:function(n){var A=this;A._24I[n._id]=n,A._21Q(n),A.iv()},_21Q:function(l){var I=this,n=I._24I;if(lc(l)&&Hp[l.s(Xd)]){var G=l.getSourceAgent();G&&G.getAgentEdges().each(function($){n[$._id]=$}),G=l.getTargetAgent(),G&&G.getAgentEdges().each(function(Q){n[Q._id]=Q}),I.iv()}},redraw:function(m){var w=this;w._32I||(m?w._34I.add(m):(w._32I=1,w._34I.clear()),w.iv())},each:function(F,t){var p,z,f,B=0,c=this.getLayers(),v=this._dataModel,i=v._datas._as,_=i.length;if(c){var r,q={};v.isHierarchicalRendering()&&v.eachByHierarchical(function(u){f=u._layer,r=q[f],r||(r=q[f]=[]),r.push(u)});for(var a=c.length;a>B;B++)if(f=c[B],Pg(f)&&(f=f.name),v.isHierarchicalRendering()){r=q[f];var l,p,K;if(r&&(l=r.length)>0)for(var E=0;l>E;E++)if(p=r[E],K=t?F.call(t,p):F(p),K===!1)return}else for(var E=0;_>E;E++)if(p=i[E],p._layer===f&&(z=t?F.call(t,p):F(p),z===!1))return}else if(v.isHierarchicalRendering())this._dataModel.eachByHierarchical(F,null,t);else for(;_>B;B++)if(p=i[B],z=t?F.call(t,p):F(p),z===!1)return},reverseEach:function(J,T){var a,v,P,C,S=this._dataModel,O=S._layers,l=S._datas._as,U=l.length;if(O){var G,t={};for(S.isHierarchicalRendering()&&S.reverseEachByHierarchical(function(S){C=S._layer,G=t[C],G||(G=t[C]=[]),G.push(S)}),a=O.length-1;a>=0;a--)if(C=O[a],Pg(C)&&(C=C.name),S.isHierarchicalRendering()){G=t[C];var K,v,Y;if(G&&(K=G.length)>0)for(var h=0;K>h;h++)if(v=G[h],Y=T?J.call(T,v):J(v),Y===!1)return}else for(var h=U-1;h>=0;h--)if(v=l[h],v._layer===C&&(P=T?J.call(T,v):J(v),P===!1))return}else if(S.isHierarchicalRendering())S.reverseEachByHierarchical(J,null,T);else for(a=U-1;a>=0;a--)if(v=l[a],P=T?J.call(T,v):J(v),P===!1)return},getViewRect:function(){return this._29I},getContentRect:function(){var j=this,R=j._84I;if(!R){var k=this.dm().a("width"),u=this.dm().a("height");k>0&&u>0?j._84I={x:0,y:0,width:k,height:u}:(j.each(function(p){j.isVisible(p)&&(R=tn(R,j.getDataUIBounds(p)))}),j._84I=R?R:Mk)}return j._84I},getScrollRect:function(){return tn(this.getContentRect(),this._29I)},makeCenter:function(x,T,V){var n=this;if(!n.getWidth()||!n.getHeight())return V||ne(n.makeCenter,n,[x,T,!0],500),void 0;n.makeVisible(x),n.validate();var b=n.getDataUIBounds(x);if(b){var t=n.getWidth(),N=n.getHeight(),F=b.x+b.width/2,u=b.y+b.height/2,w=-F*n._zoom+t/2,Z=-u*n._zoom+N/2;n.setTranslate(w,Z,T)}},fitData:function(v,o,z,_,A){var S=this;if(!S.getWidth()||!S.getHeight())return A||ne(S.fitData,S,[v,o,z,_,!0],500),void 0;var R=function(){S.makeVisible(v),S.validate();var D=S.getDataUIBounds(v);D&&(D=Wl(D),Cl(D,z==P?20:z),S.fitRect(D,o,_))};o?t.callWhenLoaded(R):R()},fitContent:function(E,U,H,x){var V=this;if(!V.getWidth()||!V.getHeight())return x||ne(V.fitContent,V,[E,U,H,!0],500),void 0;var f=function(){V.validate();var X=Wl(V.getContentRect());Cl(X,U==P?20:U),V.fitRect(X,E,H)};E?t.callWhenLoaded(f):f()},fitRect:function(g,P,R){var q=this,C=q.getWidth(),p=q.getHeight(),O=g.x+g.width/2,z=g.y+g.height/2,U=v(C/g.width,p/g.height),$=q._zoom,K=-O*$+C/2,N=-z*$+p/2;0===U||isNaN(U)||(R&&(U=v(1,U)),P?(q._65I&&(delete q._65I.finishFunc,q._65I.stop(!0)),q._14o&&q._14o.stop(!0),q.setTranslate(K,N,{finishFunc:function(){q.setZoom(U,P) }})):(q.setTranslate(K,N),q.setZoom(U)))},fitSelection:function(s,J,z){var Q=this,v=Q.sm(),d=null;v.size()&&(v.each(function(A){d=tn(Q.getDataUIBounds(A),d)}),s&&Cl(d,s),Q.fitRect(d,J,z))},toCanvas:function(s,v,Z){v=v||this._zoom,this.validateImpl();var x=this,Y=x.getContentRect();Z&&Cl(Y,Z),Y.width||(Y.width=10),Y.height||(Y.height=10);var f=Hj(),I=Y.x*v,e=Y.y*v,K=Math.ceil(Y.width*v),u=Math.ceil(Y.height*v);_j(f,K,u,1);var h=Lh(f);s=s||this._dataModel.getBackground(),s&&_l(h,0,0,K,u,s),Oc(h,-I,-e),h.scale(v,v);var y=this._zoom;return this._zoom=v,x._42(h),this._zoom=y,h.restore(),f},toDataURL:function(e,m,L,R){return this.toCanvas(e,L,R).toDataURL(m||"image/png",1)},getClipBounds:function(){return this._74O},_42:function(x,n){var r=this,D=r.dm().getBackground();if(D){var y=r.dm().a("width"),A=r.dm().a("height");y>0&&A>0&&_l(x,0,0,y,A,D)}var s=r.__htmlOrderList,H=[],L=r._forcedLayoutHTML;if(r._93db(x,n),r.each(function($){var j=r.getDataUI($);if(j){var t=r._56I[$._id],P=j._htmlView;if(t){var d=j._79o();if(P=j._htmlView,F.HtmlNode&&$ instanceof F.HtmlNode)j._42(x);else{var A=r.getViewRect(),O=P&&P.layoutHTML;!n||vf(n,d)?(O&&(P.layoutHTML(),j.__outerLayout&&delete j.__outerLayout),j._42(x)):vf(A,d)||!O||j.__outerLayout&&!L||(P.layoutHTML(),j.__outerLayout=!0)}}P&&(H.push(P),P.getView&&(P=P.getView()),P.style.display=t?"block":Ho)}}),s&&H.length>0){var K=!1;if(s.length!==H.length)K=!0;else for(var B=0;B0&&S>0){var j=R.getDataUI($);if(j){var L=j._79o(),U=R._29I,o=U.x,f=U.y,p=U.width,Q=U.height,D=R._zoom;L&&!vf(L,U)&&(L.x+L.widtho+p&&R.tx(-(L.x+L.width-p)*D),L.y+L.heightf+Q&&R.ty(-(L.y+L.height-Q)*D))}delete R._23I}R._83I&&(delete R._83I,delete R._84I),R._98O(),R.countFrame(),Dp(R._24I)||ne(R.iv,R)},isValidGuideLineSource:function(){return!0},tryUpdateRootData:function(){if(!this._rootDataUpdating){this._rootDataUpdating=!0;var n,q=this.getFullscreenDatas();for(var m in q)n=q[m],this.scaleRootData(n);this.onRootDataUpdated&&this.onRootDataUpdated(),this._rootDataUpdating=!1}},scaleRootData:function(D){var H=D.s("fullscreen");if("uniform"===H||"fill"===H){D.getRotation()&&D.setRotation(0);var C=D.s("fullscreen.gap")||0,c=this.getWidth(),b=this.getHeight();if(c&&b){var g,Z,X,I=c-2*C,f=b-2*C,U=D.getAnchor(),r=D.getScaledSize(),o=r.width,J=r.height,v=D.s("fullscreen.lock");if(v)return"uniform"===H?I/f>o/J?(g=f/J,o=J*I/f):(g=I/o,J=o*f/I):"v"===v?(g=f/J,o=I/g,D.getWidth()!==o&&D.setWidth(o)):(g=I/o,J=f/g,D.getHeight()!==J&&D.setHeight(J)),this.setZoom(g),Z=C-(D.getX()-U.x*o)*g,X=C-(D.getY()-U.y*J)*g,Z!==this.tx()&&this.tx(Z),X!==this.ty()&&this.ty(X),void 0;Z=this.tx(),X=this.ty(),g=this._zoom;var w={x:(-Z+C)/g,y:(-X+C)/g,width:I/g,height:f/g};if("uniform"===H){var i=o/J,h=Math.min(w.width,w.height*i),B=h/i;w.x+=.5*(w.width-h),w.y+=.5*(w.height-B),w.width=h,w.height=B}I=w.width/D.getScaleX(),f=w.height/D.getScaleY(),(D.getWidth()!=I||D.getHeight()!==f)&&D.setSize(I,f);var S=w.x+U.x*w.width,W=w.y+U.y*w.height,T=D.getPosition();(S!==T.x||W!==T.y)&&D.setPosition(S,W)}}},isScrollBarVisible:function(){return!!this._79O},setScrollBarVisible:function(P){var E=this;P!==E.isScrollBarVisible()&&(P?(tg(E._view,E._79O=go()),tg(E._79O,E._27I=go()),tg(E._79O,E._28I=go())):(_g(E._79O),delete E._79O,delete E._27I,delete E._28I),E.fp("scrollBarVisible",!P,P))},getDebugTip:function(){return""},showScrollBar:function(){var G=this;G._79O&&(G._85I||(Zr(function(){G._86I()},xh),G.iv()),G._85I=new Date)},_86I:function(){var u=this;if(u._85I){var V=new Date,q=V.getTime();q-u._85I.getTime()>=xh?(delete u._85I,u.iv()):Zr(function(){u._86I()},xh)}},getVScrollBar:function(){return this._27I},getHScrollBar:function(){return this._28I},_98O:function(){var j=this,G=this._27I,B=this._28I;if(j._79O){if(j._autoHideScrollBar&&!j._85I)return G.style.visibility=gn,B.style.visibility=gn,void 0;var z=j.getScrollBarColor(),n=j._zoom,x=j.getScrollBarSize(),f=j.getViewRect(),$=j.getScrollRect(),v=f.height*n,U=$.height*n,c=f.width*n-x-2,l=v*((f.y-$.y)*n/U),R=v*(v/U),E=G.style;U-.5>v?(bn>R&&(l=l+R/2-bn/2,0>l&&(l=0),l+bn>v&&(l=v-bn),R=bn),gb(G,c,l,x,R),E.visibility=Ro,E.background=z,E.borderRadius=x/2+Lq):E.visibility=gn;var w=f.width*n,s=$.width*n,l=f.height*n-x-2,c=w*((f.x-$.x)*n/s),C=w*(w/s),E=B.style;s-.5>w?(bn>C&&(c=c+C/2-bn/2,0>c&&(c=0),c+bn>w&&(c=w-bn),C=bn),gb(B,c,l,C,x),E.visibility=Ro,E.background=z,E.borderRadius=x/2+Lq):E.visibility=gn}},setDataModel:function(A){var c=this,s=c._dataModel,o=c._selectionModel;s!==A&&(s&&(s.ump(c.handleDataModelPropertyChange,c),s.umm(c.handleDataModelChange,c),s.umd(c.handleDataPropertyChange,c),s.removeIndexChangeListener(c._75O,c),s.removeHierarchyChangeListener(c.handleHierarchyChange,c),o||s.sm().ums(c.handleSelectionChange,c)),c._dataModel=A,A.mp(c.handleDataModelPropertyChange,c),A.mm(c.handleDataModelChange,c),A.md(c.handleDataPropertyChange,c),A.addIndexChangeListener(c._75O,c),A.addHierarchyChangeListener(c.handleHierarchyChange,c),o?o._21I(A):A.sm().ms(c.handleSelectionChange,c),c.invalidateAll(!0),c.fp(Zb,s,A),c.updateBackground())},getLayersInfo:function(){if(this._layersInfo===m){var w=this.getLayers();w?(this._layersInfo={},w.forEach(function(R){var t=Pg(R)?R.name:R;this._layersInfo[t]=R},this)):this._layersInfo=null}return this._layersInfo},calculateEdgePosition:function(T,J,k){var d,B,M,b,U=this;T instanceof F.Data?(b=U.getDataUI(T),M=kr(b)):(M=kr(null,arguments[0],arguments[1]),J=arguments[2],k=arguments[3]),2===J.length&&(J=new ag(J[0],J[1]));var t=Vl(J,function(s){return ym(M,100*s)},100,.001),q=ym(M,100*t);if(!k){var H=b?Cq(b):Cq(arguments[0],arguments[1]),O=new ag(q.x,q.y),o=49/(U._zoom*U._zoom);for(d=0,B=H.length;B>d;d++)if(O.distanceToSquared(H[d])h;h++)b=W?W.get(h):1,5!==b&&(o++,3===b?(u(T,I,J+1,o,"C",O),u(T,I,J+2,o,"M",O),J+=2):4===b?(u(T,I,J+1,o-1,"R",O),u(T,I,J+2,o,"L",O),u(T,I,J+3,o,"M",O),J+=3):(u(T,I,J+1,o,"M",O),J+=1));return T}}(),calculateAttachPoint:function(){var T=new ag,r=new ag,I=new ag;return function(B,a){var w=this.getAttachPoints(B);if(!w||!w.length)return null;I.set(a.x,a.y);for(var y,x,e,P,c,f=1/0,A=0,l=w.length;l>A;A++)e=w[A],r.x=e.x,r.y=e.y,T.x=e.offsetX||0,T.y=e.offsetY||0,P=Ub(this,B,0,T.x,T.y,r.x,r.y),x=I.distanceToSquared(P),f>x&&(y=A,f=x,c=P);f=Math.sqrt(f);var F=this.getAttachStyle(B);if("close"===F){var U=B.s("attach.close.threshold")/this._zoom;if(f>U)return null}return{index:y,distance:f,info:w[y],point:c}}}(),getAttachPoints:function(I){var l=I.s("attach.points");if(l)return l;var Y=tc(I._image);return Y?Lk(Y.attachPoints,I,this)||null:void 0},getAttachStyle:function(o){var j=o.s("attach.style");if(j)return j;var e=tc(o._image);return e?Lk(e.attachStyle,o,this)||"close":void 0},updateLayers:function(){this._layersInfo=m,this.invalidateSelection(),this.redraw()},updateBackground:function(){var B=this.dm().a("width"),H=this.dm().a("height");this._canvas.style.background=B>0&&H>0?"":this.dm().getBackground()||""},handleDataModelPropertyChange:function(e){if("background"===e.property){var O=this._canvas.style.background,l=e.newValue||"";this.updateBackground(),this.fp("canvasBackground",O,l),this.redraw()}else"a:width"===e.property||"a:height"===e.property?(this._83I=1,this.updateBackground(),this.redraw()):"layers"===e.property?this.updateLayers():"hierarchicalRendering"===e.property&&this.redraw()},handleDataPropertyChange:function(v){this.dm().isHierarchicalRendering()&&"parent"===v.property&&v.data.hasChildren()&&this.redraw(),this.invalidateData(v.data)},onPropertyChanged:function(e){var Q=this,H=e.property;if(Q.redraw(),"zoom"===H){var $=Q.sm().getSelection();$.size()&&$.each(function(F){F.invalidate()})}else"dataModel"===H&&(Q._83I=1);jc[H]?Q.showScrollBar():H===hj&&Q.onCurrentSubGraphChanged(e)},onCurrentSubGraphChanged:function(){this.sm().cs(),this.reset()},handleDataModelChange:function(N){var n=this,g=N.kind,$=N.data;if(n._83I=1,"add"===g)n.invalidateData($),lc($)&&$.getEdgeGroup()&&$.getEdgeGroup().eachSiblingEdge(n.invalidateData,n),$.getHost&&$.getHost()&&$.getHost().updateLayoutAttaches();else if(g===xd){n._21Q($);var q=$._id,C=n._25I[q];if(C){if(n._56I[q]){var j=C._79o();j&&n.redraw(j)}C.dispose(),delete n._25I[q],delete n._24I[q],delete n._56I[q]}$===n._currentSubGraph&&n.setCurrentSubGraph(P)}else g===Bh&&(n.invalidateAll(!0),n.setCurrentSubGraph(P))},_75O:function(n){this.invalidateData(n.data)},handleHierarchyChange:function(j){this.dm().isHierarchicalRendering()&&j.data.hasChildren()&&this.redraw(),this.invalidateData(j.data)},adjustIndex:function($){var M=this;if(M.isVisible($)){M.dm().beginTransaction();for(var d=$;d._parent&&M.isVisible(d._parent);)d=d._parent;d&&d!==$&&M._dataModel.adjustIndex(d),M._dataModel.adjustIndex($),M.dm().endTransaction()}},getImage:function(o){return o.getImage?o.getImage():m},getSelectWidth:function(j){var w=tc(this.getImage(j));return w&&Lk(w.disableSelectedBorder,j,this)?0:j.s("select.width")},getSelectColor:function(a){return a.s("select.color")},isSelectable:function(p,E){if(this.isSelected(p))return!0;if(!E&&p.getParent()instanceof hf&&this.isSelectable(p.getParent(),!0)&&p.getParent().isSyncSize())return!1;var F=this.getLayersInfo();if(F){var z=F[p._layer];if(z&&z.selectable===!1)return!1}return p.s("2d.selectable")&&this.sm().isSelectable(p)},isMovable:function(k){var f=this;if(lc(k)&&k.getStyle(Xd)!==Lb)return!1;var s=this.getLayersInfo();if(s){var Q=s[k._layer];if(Q&&Q.movable===!1)return!1}return k.s("2d.movable")?f._movableFunc?f._movableFunc(k):!0:!1},isEditable:function(m){var j=this;if(F._uiSerializing)return j._uieditable;if(!j._editInteractor||!j.isSelected(m))return!1;if(hc(m)){var P=j.getDataUI(m);if(!P||P._88I)return!1}if(lc(m)&&m.getStyle(Xd)!==Lb)return!1;var w=this.getLayersInfo();if(w){var z=w[m._layer];if(z&&z.editable===!1)return!1}return m.s("2d.editable")?j._editableFunc?j._editableFunc(m):!0:!1},handleDelete:function(){this._editInteractor&&(this._editInteractor.handleDelete?this._editInteractor.handleDelete():this.removeSelection())},isPointEditable:function(H){return $n(H)&&0!==H.getRotation()?!1:this._pointEditableFunc?this._pointEditableFunc(H):!0},isRectEditable:function(t){return this._rectEditableFunc?this._rectEditableFunc(t):!0},isAnchorEditable:function(Y){return this._anchorEditableFunc?this._anchorEditableFunc(Y):!0},isRotationEditable:function(o){return o.setRotation&&o.IRotatable!==!1?this._rotationEditableFunc?this._rotationEditableFunc(o):!0:!1},isSourceTargetEditable:function(){return!0},getRotationPoint:function(i){var e=i.getAnchor(),t=i.getScale(),O=this._zoom,P=ve(i.getRotation(),0,-i.getHeight()*t.y*e.y-(t.y<0?-1:1)*(pr?32:16)/O),s=i.p();return P.x+=s.x,P.y+=s.y,P},getLogicalPoint:function(h){var e=this;return gg(h,e._canvas,e.tx(),e.ty(),e._zoom,e._zoom)},getScreenPoint:function(j,I){var b,H=this;return"object"==typeof j?j.x!==m?(b=j.x,I=j.y):(b=j[0],I=j[1]):b=j,pd(b,I,H._canvas,H.tx(),H.ty(),H._zoom,H._zoom)},getSelectedDataAt:function(R){var V=this;return this.getDataAt(R,function(e){return V.isSelected(e)})},getDataInfoAt:function(q,s,l){var b,i=this.lp(q),U=this.getDataAt(i,s,l);if(U){var Y=this.getDataUI(U);b={data:U,ui:Y,point:i};var E=Y._38o;if(E){var p=E.icons;for(var e in p){var T=p[e],c=E.rects[e];if(c)for(var S=Lk(T.names,U,this),I=S?S.length:0,H=c.rotation,j=I-1;j>=0;j--){var D=S[j],z=c[j];if(kf(z,i,H))return b.part="icons",b.name=e,b.icon=D,b.rect=z,b.index=j,b.rotation=H,b}}}if(this.isNoteVisible(U)){if(Y.note2Info&&kf(Y.note2Info.clickRect,i,P,Y.note2Info.scale))return b.part="note2",b;if(Y.noteInfo&&kf(Y.noteInfo.clickRect,i,P,Y.noteInfo.scale))return b.part="note",b}if(this.isLabelVisible(U)){if(Y.label2Info&&kf(Y.label2Info.rect,i,Y.label2Info.rotation,Y.label2Info.scale))return b.part="label2",b;if(Y.labelInfo&&kf(Y.labelInfo.rect,i,Y.labelInfo.rotation,Y.labelInfo.scale))return b.part="label",b}if(U.isInRect&&U.isInRect(i))return b.part="body",b}return b},getDataAt:function(r,I,D){r.target&&(r=this.lp(r));var N,x=this._zoom;return this.reverseEach(function(q){return(I?I(q):this.isSelectable(q))&&this.rectIntersects(q,ob(r.x,r.y,D,x))?(N=q,!1):void 0},this),N},getIconInfoAt:function(w,y){var T=this;if(w.target&&(w=T.lp(w)),y||(y=T.getDataAt(w)),y){var x=T.getDataUI(y);if(x&&x._38o){var o,N=x._38o,i=new Po;for(o in N.icons)i.add(o);for(var f=i.size()-1;f>=0;f--){o=i.get(f);for(var n=N.rects[o],D=n.rotation,G=n.length-1;G>=0;G--){var M=n[G],$=M.width,q=M.height,s={x:w.x-M.x-$/2,y:w.y-M.y-q/2};D!=P&&(s=ve(-D,s.x,s.y));var M={x:-$/2,y:-q/2,width:$,height:q};if(kf(M,s))return{key:o,index:G,name:N.icons[o].names[G],rect:n[G],point:w,rotation:D,relativeRect:M,relativePoint:s,data:y}}}}}return P},getDatasInRect:function(D,L,V){V===m&&(V=1);var F=this,c=new Po;return F.reverseEach(function(N){V&&!F.isSelectable(N)||(L?F.rectIntersects(N,D):F.rectContains(N,D))&&c.add(N)}),c},moveSelection:function(Q,g){var q=this;q.dm().beginTransaction(),fp(q.sm().toSelection(q.isMovable,q),Q,g),q.dm().endTransaction()},moveDatas:function(U,s,g){var p=this;p.dm().beginTransaction(),U instanceof Po||(U=new Po(U)),fp(U,s,g),p.dm().endTransaction()},getDataUIBounds:function(F){var E=this.getDataUI(F);return E?E._79o():P},drawData:function(n,Q,p){var g=this.getDataUI(Q);if(g){var c=g._79o();(!p||vf(p,c))&&(g._42(n),Q instanceof F.Block&&Q.eachChild(function(b){this.isVisible(b)&&this.drawData(n,b,p)},this))}},getBoundsForGroup:function(c){return c.s($b)?this.getDataUIBounds(c):P},isPixelPerfect:function(f){return f.s("pixelPerfect")},rectIntersects:function(l,Z){this.validate();var D=P;if(this._56I[l._id]){var N=this._25I[l._id];if(N){var X=N._79o();if(cc(Z,X))D=!0;else if((Z=Si(Z,X))&&(N.rectIntersects&&(D=N.rectIntersects(Z)),D==P)){if(!this.isPixelPerfect(l))return!0;var b=Z.x,e=Z.y,n=Z.width,v=Z.height,K=this._zoom,$=t.hitMaxArea,s=n*v*K*K;if(s>$){var L=Math.sqrt($/s);K*=L}n*=K,v*=K,2>n&&(n=2),2>v&&(v=2),b*=K,e*=K;var y=Fn(n,v);Oc(y,-b,-e),y.scale(K,K),this._drawForChecking=!0,this.drawData(y,l,Z),this._drawForChecking=!1;try{for(var S=0,H=y.getImageData(0,0,n,v).data;S0?this.scrollZoomIn(o):0>h&&this.scrollZoomOut(o)}},handlePinch:function(W,e,M){this.isZoomable()&&(Math.abs(e-M)M?this.pinchZoomIn(W):this.pinchZoomOut(W)))},checkDoubleClickOnNote:function(_,P){var C=this,U=C.lp(_),A=C.getDataUI(P),V=A.note2Info;return V&&P.s("note2.toggleable")&&kf(V.clickRect,U)?(P.s(Og,!P.s(Og)),C.fi({kind:"toggleNote2",event:_,data:P}),!0):(V=A.noteInfo,V&&P.s("note.toggleable")&&kf(V.clickRect,U)?(P.s(xc,!P.s(xc)),C.fi({kind:"toggleNote",event:_,data:P}),!0):!1)},_84o:function(){},isNoteVisible:function(){return this._zoom>.15},isLabelVisible:function(){return this._zoom>.15},isEditVisible:function(){return this._zoom>.15},autoScroll:function(s,u){var S=this,t=S.getAutoScrollZone(),d=t/S.getZoom(),J=t/4,v=S._29I,c=S.lp(s),M={x:S.tx(),y:S.ty()};return c&&t>0&&v&&(c.x-v.x1){var a,Q=this,w=Q._zoom;if(I.getView&&(a=I,I=I.getView()),I.style.position="absolute",L){var B=H.getRect();gb(a||I,Q.tx()+B.x*w,Q.ty()+B.y*w,B.width*w,B.height*w)}else{var j=new Ld,B=H.getAnchorRect(),u=H.getPosition(),v=H.getScale(),A=I.style;gb(a||I,B),j.appendTranslate(Q.tx(),Q.ty()),j.appendScale(w,w),j.append(new Ld(H.getRotation(),u.x,u.y,v.x,v.y)),Fq(A,"transform","matrix("+j.a.toFixed(5)+", "+j.b.toFixed(5)+", "+j.c.toFixed(5)+",\n "+j.d.toFixed(5)+", "+j.tx.toFixed(5)+", "+j.ty.toFixed(5)+")"),Fq(A,"transformOrigin",(-B.x).toFixed(5)+"px "+(-B.y).toFixed(5)+"px"),I.updateAppendMatrix=!0}}else this._layoutHTML&&this._layoutHTML()},getTextEditInfo:function(Y){return Y instanceof Ff?{name:"text",accessType:"s",font:Y.s("text.font"),isMultiline:!0}:void 0},getState:function(w){var J="state",r=w.s(J);if(r)return r;var z=tc(w._image);return z?Lk(z[J],w,this)||null:void 0},getShape:function(j){return j.getStyle(Ce)}}),$.defineProperties(nq.GraphView.prototype,{layoutHTML:{get:function(){return this._layoutHTMLImplBind||(this._layoutHTMLImplBind=this._layoutHTMLImpl.bind(this)),this._layoutHTMLImplBind},set:function(p){this._layoutHTML=p}}});var qf=function(N,u){var c=this;c.gv=N,c.s=function(v){return u.getStyle(v)},c._data=u,c._87I=new Po},Jj=P;Ri(qf,$,{_6I:P,ms_icons:1,_84o:function(){},dispose:function(){},isShadowed:function(){return this.s("shadow")||this.gv.isSelected(this._data)&&"shadow"===this.s("select.type")},getSelectWidth:function(){var d=this,F=d.gv.isSelected(d._data);return!F||d.isShadowed()?0:d.gv.getSelectWidth(d._data)},getSelectColor:function(){return this.gv.getSelectColor(this._data)},getBodyColor:function(p){var S=this._data,c=this.gv.getBodyColor(S);return c?c:p?S.getStyle(p):P},_2Q:function(g){return this.s(g)},_1Q:function(V,l,A,N){var e=this.s,R=e("2d.gray"),q=e(l+".dash.color");if(R&&(q=t.toGrayColor(q)),V.strokeStyle=q,V.lineWidth=A,V.stroke(),e(l+".dash.3d")){var C=e(l+".dash.3d.color");wb(V,q,R?t.toGrayColor(C):C,A,this.gv._zoom,e(l+".dash.3d.accuracy"))}si(V,N)},invalidate:function(){this._6I=P},_79o:function(){var e=this;if(!e._6I){var b=e._data,K=e.gv;e.labelInfo=e.label2Info=e.noteInfo=e.note2Info=e._38o=P,e._87I.clear(),e.interactiveInfo=K.isInteractive(b)?{}:P,e._3O(),e._55O=K.isEditable(b)?{_42O:K.isRectEditable(b),_43O:K.isPointEditable(b),_56O:K.isRotationEditable(b)}:P,e._6I=e._81o()}return e._6I},_3O:function(){},getPosition:function(){return Mk},_68o:function(B,N){B&&this._87I.add(id(B,N))},_81o:function(){var e=this,z=e.s;e._24O(ng,"getLabel"),e._24O(Iq,"getLabel2"),e._26O(Op,"getNote"),e._26O(Mi,"getNote2"),e._15O(),e._55O&&e._48O();var Q;if(e._87I.each(function(r){Q=tn(Q,r)}),Q&&z("shadow.interactable")){var O=e.isShadowed(),V=z("shadow2"),h=Wl(Q);V?(h.x+=z("shadow2.offset.x"),h.y+=z("shadow2.offset.y"),Cl(h,z("shadow2.blur"))):O&&(h.x+=z("shadow.offset.x"),h.y+=z("shadow.offset.y"),Cl(h,z("shadow.blur"))),Q=tn(Q,h)}return e._87I.clear(),Q},_42:function(v){var X=this,U=X._data,m=X.gv,o=X.s,K=o("opacity"),w=this.isShadowed(),A=o("shadow2");if(w||A){var L=v.shadowOffsetX,B=v.shadowOffsetY,O=v.shadowBlur,F=v.shadowColor,u=m.getZoom()*t.devicePixelRatio,y=w?"shadow":"shadow2";v.shadowOffsetX=o(y+".offset.x")*u,v.shadowOffsetY=o(y+".offset.y")*u,v.shadowBlur=o(y+".blur")*u,v.shadowColor=w?X.getSelectColor():o(y+".color")}if(K!=P){var d=v.globalAlpha;v.globalAlpha=K}X._80o(v),m.isLabelVisible(U)&&((!m._drawForChecking||o("label.selectable"))&&Fm(v,X.labelInfo),(!m._drawForChecking||o("label2.selectable"))&&Fm(v,X.label2Info)),m.isNoteVisible(U)&&(ar(v,X.noteInfo),ar(v,X.note2Info)),X._99O(v),K!=P&&(v.globalAlpha=d),(w||A)&&(v.shadowOffsetX=L,v.shadowOffsetY=B,v.shadowBlur=O,v.shadowColor=F)},_80o:function(){},_47O:function(){},_24O:function(M,m){var B=this,s=B._data,N=B.gv,n=B.s,S=N[m](s);if(S!=P){var K=n(M+".scale"),Y=n(M+".max"),W=n(M+".position"),r=B[M+"Info"]={label:S,scale:K,color:N[m+"Color"](s),font:n(M+".font"),opacity:n(M+".opacity"),align:n(M+".align"),decoration:n(M+".decoration"),rotation:B.getRotation(n(M+".rotation"),!1,W),background:N[m+"Background"](s)},V=uj(r,S);Y>0&&Y0&&bC;C++){var q=R[C],w=tc(q),S=b[C];if(H){var t=S.x+S.width/2,j=S.y+S.height/2;V.save(),Oc(V,t,j),tb(V,H),Oc(V,-t,-j)}m&&m._38o[O].push(V.interactiveInfo={compInfos:[],matrix:H?new Ld(H,t,j).appendTranslate(-t,-j):new Ld});var Y=Jj;Jj=O,Ql(V,w,Lk(E.stretch,g,c),S.x,S.y,S.width,S.height,B._data,B.gv),Jj=Y,V.interactiveInfo=P,H&&V.restore()}$!=P&&(V.globalAlpha=d)}}}}});var dd=function(e,z){bo(dd,this,[e,z])};Ri(dd,qf,{_checkEmptyRect:!0,_40O:function(x,u){var o=this,Y=o.s,O=x.rect;(x.borderColor=o.gv.getBorderColor(o._data))&&(x.borderType=Y("border.type"),x.borderWidth=Y("border.width"),x.borderPadding=Y("border.padding"),u=B(u,x.borderPadding+x.borderWidth/2));var R=o._data.getScale(),b=B(1,B(_(R.x),_(R.y)));if(x.selectWidth=o.getSelectWidth()){var G=o.gv._zoom;x.selectType=Y("select.type"),x._97o=o.getSelectColor(),x.selectPadding=Y("select.padding"),u=B(u,(x.selectPadding+x.selectWidth/2/G)/b)}u>0&&(u*=b,O=Wl(O),Cl(O,u)),o._68o(O)},_39O:function(Y,$){var w,T=this,Z=$.rect;if($.borderWidth>0&&(w=$.borderPadding,Y.strokeStyle=$.borderColor,Y.lineWidth=$.borderWidth,He(Y,$.borderType,{x:Z.x-w,y:Z.y-w,width:Z.width+2*w,height:Z.height+2*w}),Y.stroke()),$.selectWidth>0){var h=T.gv._zoom;if(w=$.selectPadding,Y.strokeStyle=$._97o,Y.lineWidth=$.selectWidth/h,$.rotation!=P){Y.save(),Y.translate($.position.x,$.position.y),Y.rotate($.rotation);var f=T._data,D=f.getWidth(),k=f.getHeight(),A=$.scale,E=$.anchor;Z={x:A.x*-D*E.x,y:A.y*-k*E.y,width:A.x*D,height:A.y*k}}He(Y,$.selectType,{x:Z.x-w,y:Z.y-w,width:Z.width+2*w,height:Z.height+2*w}),$.rotation!=P&&Y.restore(),Y.stroke()}},dispose:function(){var I=this,C=I._htmlView;dd.superClass.dispose.call(I),C&&(C.onHTMLRemoved&&C.onHTMLRemoved(),_g(C))},_3O:function(){var n,d=this,M=d.s,T=d._data,F=d.gv,u=F.getShape(T),N=d.getBodyColor(),a=M("shape.border.color"),I=d._83o=u?{shape:u,_53o:d.getBodyColor("shape.background"),_27Q:tc(M("shape.repeat.image"),N),shapeGradientPack:M("shape.gradient.pack"),shapeBorderGradientPack:M("shape.border.gradient.pack"),_54o:M("shape.border.width"),_55o:a,shapeBorderRepeatImage:tc(M("shape.border.repeat.image"),a),_56o:M("shape.border.3d"),_57o:M("shape.border.3d.color"),_58o:M("shape.border.3d.accuracy"),shapeGradient:M("shape.gradient"),_59o:M("shape.gradient.color"),_60o:M("shape.border.pattern"),_61o:M("shape.border.cap"),_62o:M("shape.border.join"),shapeForeground:M("shape.foreground"),bodyColor:N,gray:M("2d.gray")}:{img:tc(F.getImage(T),N),bodyColor:N,gray:M("2d.gray"),stretch:M("image.stretch")},t=I.img;t&&t.renderHTML?(d._htmlInfo&&d._htmlInfo.img!==t&&(d._htmlInfo=P),d._htmlInfo||(d._htmlInfo={img:t,cache:{}}),n=t.renderHTML(T,F,d._htmlInfo.cache)):d._htmlInfo=P,d._htmlView&&d._htmlView!==n&&(d._htmlView.onHTMLRemoved&&d._htmlView.onHTMLRemoved(),_g(d._htmlView.getView?d._htmlView.getView():d._htmlView)),(d._htmlView=n)&&F.appendHTML(n)&&(n.onHTMLAddedSync&&n.onHTMLAddedSync(),n.onHTMLAdded&&ne(n.onHTMLAdded)),I.rect=T.getRect(),I.position=T.p(),I.scale=T.getScale(),I.anchor=T.getAnchor(),I.rotation=T.getRotation(),u===Pj&&(I._63o=M("shape.depth"));var p=0;if(u)p=_i(P,I._54o/2,I._62o),d.s("shape.dash")&&(p=B(p,(d.s("shape.dash.width")||I._54o)/2));else if(t&&t.boundExtend)if(p=Lk(t.boundExtend,T,F),t.boundExtendAbsolute){var w=T.getScale();p/=F._zoom*B(1,B(_(w.x),_(w.y)))}else if(!Lk(t.fitSize,T,F)){var g=Lk(t.width,T,F),G=Lk(t.height,T,F);p*=B(T.getWidth()/g,T.getHeight()/G)}d._40O(I,p);var Y=M("clip.percentage");if(Y!=m&&(I.clipRect=qs(T.getAnchorRect(),M("clip.direction"),Y)),u){var r=M("shape.fill.clip.percentage");r!=m&&(I.shapeClipRect=qs(T.getAnchorRect(),M("shape.fill.clip.direction"),r));var k=M("shape.foreground.clip.percentage");k!=m&&(I.shapeForegroundClipRect=qs(T.getAnchorRect(),M("shape.foreground.clip.direction"),k))}},getPosition:function(D,s,t,l){var R=jl(D,this._83o.rect,l);return R.x+=s,R.y+=t,R},_80o:function(U){var _=this,j=_.s,X=_.gv,l=_._data,w=_._83o,H=w.rect,p=w.position,S=w.rotation,E=w.anchor,T=w.scale,y=w.shape,f=w.clipRect;if(!_._checkEmptyRect||H.width>0&&H.height>0){var N=l.getSize();if(N.x=-N.width*E.x,N.y=-N.height*E.y,io&&!Dq&&Oc(U,N.width,N.height),U.save(),Oc(U,p.x,p.y),tb(U,S),Qb(U,T.x,T.y),f&&(U.beginPath(),U.rect(f.x,f.y,f.width,f.height),U.clip()),X._drawForChecking&&w.img&&Lk(w.img.pixelPerfect,l,X)===!1)_l(U,N.x,N.y,N.width,N.height,"#888888");else if(_.freeDraw)_.freeDraw(U,N,w);else if(y){var u,M,v,m,R=w._60o,b=mn(U,R),g=w._27Q,G=w._54o,a=w.shapeGradientPack,k=w.gray,W=U.lineJoin,e=U.lineCap,F=function(c){return k?t.toGrayColor(c):c};"roundRect"===y?u=j("shape.corner.radius"):"polygon"===y?(u=j("shape.polygon.side"),M=j("shape.corner.radius"),v=j("shape.regular")):"arc"===y&&(u=j("shape.arc.from"),M=j("shape.arc.to"),v=j("shape.arc.close"),m=j("shape.arc.oval")),U.lineJoin=w._62o,U.lineCap=w._61o;var c=F(w._53o);if(c||g||a){var Q=w.shapeClipRect;Q&&(U.save(),U.beginPath(),U.rect(Q.x,Q.y,Q.width,Q.height),U.clip()),He(U,y,N,u,M,v,m),a?yd(U,a,function(W){return jq(W,w.bodyColor)},!1,N):g?Yl(U,g,F(w.bodyColor),null,l,X):Xm(U,c,w.shapeGradient,F(w._59o),N),U.fill(),a&&U.restore(),Q&&U.restore(),U!==b&&He(b,y,N,u,M,v,m)}else He(b,y,N,u,M,v,m);var J=w.shapeForeground;if(J){U.save();var B=w.shapeForegroundClipRect;B&&(U.beginPath(),U.rect(B.x,B.y,B.width,B.height),U.clip()),He(U,y,N,u,M,v,m),Xm(U,J,j("shape.foreground.gradient"),F(j("shape.foreground.gradient.color")),N),U.fill(),U.restore() }if(G>0){var Z=j("shape.border.width.absolute");Z&&(U.save(),U.setTransform(1,0,0,1,0,0)),U.lineWidth=G;var V=F(w._55o),z=w.shapeBorderGradientPack;z?yd(U,z,F,!0,N):w.shapeBorderRepeatImage?Nh(U,w.shapeBorderRepeatImage,V,null,l,X):U.strokeStyle=V,U.stroke(),z&&U.restore(),Z&&U.restore(),w._56o&&wb(U,V,F(w._57o),G,X._zoom,w._58o)}if(si(U,R),j("shape.dash")){var d=j("shape.dash.width")||G;if(d>0){R=j("shape.dash.pattern");var b=mn(U,R,_._2Q("shape.dash.offset"));b!==U&&He(b,y,N,u,M,v,m),_._1Q(U,"shape",d,R)}}Uq(U,c,w._63o,N),U.lineJoin=W,U.lineCap=e}else{var $=_.interactiveInfo;$&&(U.interactiveInfo=$.bodyInfo={compInfos:[],matrix:new Ld(S,p.x,p.y,T.x,T.y)}),w.gray&&(U.compGray=!0);var o=w.img;o&&o.cacheRule!=P&&(o=Le(U,o,w.stretch,N.width,N.height,l,X,w.bodyColor)),Ql(U,o,w.stretch,N.x,N.y,N.width,N.height,l,X,w.bodyColor),U.compGray=!1,U.interactiveInfo=P}U.restore()}_._39O(U,w)},_48O:function(){},_47O:function(){}});var wj=function(p,t){bo(wj,this,[p,t])},ps=function(q,M,L,s){var m=Yh(q,M);return L=s?v(L,m):Oo(L,m),m?L/=m:L=0,{x:q.x+(M.x-q.x)*L,y:q.y+(M.y-q.y)*L}};Ri(wj,qf,{_3O:function(){var Y,$=this,G=$._data,y=$.gv,c=$.s,p=c(Xd),r=G.isLooped(),v=c("edge.width"),V=$.getBodyColor("edge.color"),f=c("edge.center"),Q=c("edge.offset"),a=y.getBorderColor(G),z=a?c("border.width"):0,l=$.getSelectWidth(),g=G._40I,q=G._41I,W=$._78o=g&&q?{looped:r,type:p,width:v,center:f,color:V,repeatImage:tc(c("edge.repeat.image"),V),borderColor:a,borderWidth:z,_97o:l?$.getSelectColor():P,selectWidth:l,pattern:c("edge.pattern"),cap:c("edge.cap"),join:c("edge.join"),is3d:c("edge.3d"),_67o:c("edge.3d.color"),_66o:c("edge.3d.accuracy"),gray:c("2d.gray")}:P;if(W){var A=t.getEdgeType(p);if(A){var s=A(G,Aj($,y,G,r,p),y,$._19Q);s.points&&s.points.size()>1?(W.edgeTypeInfo=s,Y=es(W.edgeTypeInfo.points)):s[oc]&&s.rect&&(W.edgeTypeInfo=s,Y=s.rect)}else{var E=c("edge.source.anchor.x"),X=c("edge.source.anchor.y"),j=c("edge.target.anchor.x"),n=c("edge.target.anchor.y"),J=yp(y,G,"source"),b=yp(y,G,"target");if(p===Lb){var M=W.points=c(ke)||rh,R=M.size();W.segments=c("edge.segments");var N=E!==m||X!==m||lc(g),O=j!==m||n!==m||lc(q);if(!f)if(Q)N||(J=ps(J,R?M.get(0):b,Q,R)),O||(b=ps(b,R?M.get(R-1):J,Q,R));else{var Z;N||(Z=Wo(J,R?M.get(0):b,tj(y,g)),Z&&(J={x:Z[0],y:Z[1]})),O||(Z=Wo(R?M.get(R-1):J,b,tj(y,q)),Z&&(b={x:Z[0],y:Z[1]}))}Y=tn(es(W.points),es(J,b))}else{var i=Aj($,y,G,r,p);if($._19Q||(i=-i),r)J=Wl(J),J.x=y.getNodeRect(g).x,W.radius=i,Y={x:J.x-i,y:J.y-i,width:2*i,height:2*i};else{var I=Yh(J,b),H=Oo(Q,I),K={x:H,y:i},F={x:I-H,y:i},e=Of(b.y-J.y,b.x-J.x),o=W.mat=new Hq(e);if(W.orienAngle=e,W.angle=b.xw.x||j.x===w.x&&j.y>w.y)&&(F=Sp[F],u=-u),O=jl(F,$.rect,z),O.x+=I,O.y+=u,O=$.mat.tf(O),O.x+=$.origin.x,O.y+=$.origin.y,O);if(R&&R[oc])return R.getPosition?R.getPosition(this,F,I,u,z,X):{x:(j.x+w.x)/2,y:(j.y+w.y)/2};if(K){var O,e=K.size();if(ti[F]){if(e){var G=e%2;if(0===G)return nk(K.get(e/2-1),K.get(e/2),F,I,u,z,X);O=K.get((e-G)/2)}else O={x:(j.x+w.x)/2,y:(j.y+w.y)/2};return O=jl(F,{x:O.x,y:O.y,width:0,height:0},z),O.x+=I,O.y+=u,O}return Ug[F]?nk(j,e?K.get(0):w,F,I,u,z,X):nk(e?K.get(e-1):j,w,F,I,u,z,X)}if(R){var M=R.points,e=M.size();if(ti[F]){var G=e%2;return 0===G?nk(M.get(e/2-1),M.get(e/2),F,I,u,z,X):(O=M.get((e-G)/2),O=jl(F,{x:O.x,y:O.y,width:0,height:0},z),O.x+=I,O.y+=u,O)}return Ug[F]?nk(M.get(0),M.get(1),F,I,u,z,X):nk(M.get(e-2),M.get(e-1),F,I,u,z,X)}}return Mk},_42:function(l){this._78o&&wj.superClass._42.call(this,l)},drawPath:function(T,u){T.beginPath();var _=u.type,e=u.points,n=u.segments,l=u.edgeTypeInfo;if(!_||e){var W=u.sourcePoint,D=W.x,U=W.y,t=u.targetPoint,V=t.x,s=t.y;if(_)if(n){var m=new Po({x:D,y:U});m.addAll(e),m.add({x:V,y:s}),hq(T,m,n)}else T.moveTo(D,U),e.each(function(C){T.lineTo(C.x,C.y)}),T.lineTo(V,s);else u.looped?T.arc(D,U,u.radius,0,M,!0):u.center?(T.moveTo(u.c1.x,u.c1.y),T.lineTo(D,U),T.lineTo(V,s),T.lineTo(u.c2.x,u.c2.y)):(T.moveTo(D,U),T.lineTo(V,s))}else l&&(l.points?hq(T,l.points,l.segments):l[oc]&&l[oc](T,l))},_80o:function(y){var X=this,f=X.s,G=X._78o,p=G.width,D=G.selectWidth,O=G.borderWidth,H=G.repeatImage,P=y.lineJoin,Q=y.lineCap,J=G.gray,I=G.pattern;y.lineJoin=G.join,y.lineCap=G.cap,X.drawPath(mn(y,I),G);var F=f("edge.width.absolute");F&&(y.save(),y.setTransform(1,0,0,1,0,0)),D&&(y.strokeStyle=G._97o,y.lineWidth=p+2*(O+D),y.stroke()),O&&(y.strokeStyle=J?t.toGrayColor(G.borderColor):G.borderColor,y.lineWidth=p+2*O,y.stroke());var L=J?t.toGrayColor(G.color):G.color;if(H?Nh(y,H,L,null,X._data,X.gv):y.strokeStyle=L,y.lineWidth=p,y.stroke(),G.is3d){var q=J?t.toGrayColor(G._67o):G._67o;wb(y,L,q,p,X.gv._zoom,G._66o)}if(si(y,I),f("edge.dash")){I=f("edge.dash.pattern");var K=mn(y,I,X._2Q("edge.dash.offset"));K!==y&&X.drawPath(K,G),X._1Q(y,"edge",f("edge.dash.width")||p,I)}F&&y.restore(),y.lineJoin=P,y.lineCap=Q},_48O:function(){},_47O:function(){}});var hh=function(Q,Z){bo(hh,this,[Q,Z])};Ri(hh,dd,{_3O:function(){var Z,v,e=this,u=e.s,K=e._data,T=e.gv;if(e._88I=P,K.isExpanded()&&K.eachChild(function(n){if($n(n)){var l=T.getBoundsForGroup(n);l&&(v||(v=[]),v.push(l),Z=tn(Z,l))}}),Z){var N=T.getLabel(K),l=u("group.type"),g=u("group.border.width")||0,m=u("group.border.width.absolute"),z=g/2;m&&(g/=T._zoom),Z=$o(l,v,Z),Qr(Z,K,"group.padding",1),Cl(Z,g);var p=e._88I={type:l,rect:Z,_64o:Z};if(!l&&N!=P){var i,s=e.labelInfo={label:N,color:u("group.title.color"),font:u("group.title.font"),align:u("group.title.align")},X=uj(s,N),Y=X.width+g,j=X.height+g,c=u("group.title.align"),r=u("group.title.orientation");if(r===lh||r===Li?(Z.height+=g,Y>Z.width&&(Z.width=Y)):(r===dk||r===ge)&&(Z.width+=g,Y>Z.height&&(Z.height=Y)),i=c===dk?Z.x:c===ge?Z.x+Z.width-Y:Z.x+Z.width/2-Y/2,r===Li)p.titleRect={x:Z.x,y:Z.y+Z.height,width:Z.width,height:j},p.rect={x:Z.x,y:Z.y,width:Z.width,height:Z.height+j},s.rect={x:i,y:Z.y+Z.height,width:Y,height:j};else if(r===dk){var C=p.titleRect={x:Z.x-j,y:Z.y,width:j,height:Z.height};p.rect={x:Z.x-j,y:Z.y,width:Z.width+j,height:Z.height},s.rect={x:C.x+j/2-Z.height/2,y:C.y+Z.height/2-j/2,width:Z.height,height:j},s.rotation=-Math.PI/2}else if(r===ge){var C=p.titleRect={x:Z.x+Z.width,y:Z.y,width:j,height:Z.height};p.rect={x:Z.x,y:Z.y,width:Z.width+j,height:Z.height},s.rect={x:C.x+j/2-Z.height/2,y:C.y+Z.height/2-j/2,width:Z.height,height:j},s.rotation=Math.PI/2}else p.titleRect={x:Z.x,y:Z.y-j,width:Z.width,height:j},p.rect={x:Z.x,y:Z.y-j,width:Z.width,height:Z.height+j},s.rect={x:i,y:Z.y-j-z,width:Y,height:j+g}}e._40O(p,u("group.border.width")/2)}else hh.superClass._3O.call(e)},getPosition:function(X,G,g,R){var b=this._88I;if(b){var K=jl(X,b.rect,R);return K.x+=G,K.y+=g,K}return hh.superClass.getPosition.apply(this,arguments)},_24O:function(N,o){var h=this._88I;(!h||h.type||"label2"===N)&&hh.superClass._24O.call(this,N,o)},_80o:function(S){var q=this,O=q._88I;if(O){var U=q._data,b=q.s,m=q.gv,P=O.type,h=O.rect,e=O._64o,Z=O.titleRect,N=q.getBodyColor(),B=tc(b("group.image"),N),G=b("group.image.stretch"),$=q.getBodyColor("group.background"),Y=tc(b("group.repeat.image"),N),F=b("group.gradient.pack"),v=b("group.gradient"),Q=b("group.gradient.color"),W=b("group.border.width"),I=b("group.border.color"),y=b("group.border.pattern"),a=b("group.title.orientation"),r=b("group.depth"),T=b("group.border.radius"),J=b("group.border.join"),w=b("group.border.cap"),x=b("group.border.width.absolute");x&&(W/=m._zoom);var u=I,j=b("group.border.repeat.image");if(j&&(j=tc(j,I))&&(u=al(S,j,I,null,U,m)),P){var k=S.lineJoin,g=S.lineCap;if(S.lineJoin=J,S.lineCap=w,B){if(S.save(),He(S,P,h,T),S.clip(),Ql(S,B,G,h.x,h.y,h.width,h.height,U,m,N),S.restore(),W>0){var L=mn(S,y);He(L,P,h,T),S.lineWidth=W,S.strokeStyle=u,S.stroke(),si(S,y)}}else{var L=mn(S,y);$||Y||F?(He(S,P,h,T),F?yd(S,F,function(v){return jq(v,N)},!1,h):Y?Yl(S,Y,N,null,U,m):Xm(S,$,v,Q,h),S.fill(),F&&S.restore(),S!==L&&He(L,P,h,T)):He(L,P,h,T),W>0&&(S.lineWidth=W,S.strokeStyle=u,S.stroke()),si(S,y),P===Pj&&Uq(S,$,r,h)}S.lineJoin=k,S.lineCap=g}else{var D=b("group.title.background");if((!T||0>T)&&(T=0),B)Ql(S,B,G,e.x,e.y,e.width,e.height,U,m,q.getBodyColor());else if($||Y)if(Y?Yl(S,Y,N,null,U,m):Xm(S,$,v,Q,e),0===W)He(S,Pj,e),S.fill(),Uq(S,$,r,e);else{switch(S.beginPath(),a){case Li:Kc(S,e.x,e.y,e.width,e.height,T,T,0,0);break;case dk:Kc(S,e.x,e.y,e.width,e.height,0,T,0,T);break;case ge:Kc(S,e.x,e.y,e.width,e.height,T,0,T,0);break;case lh:Kc(S,e.x,e.y,e.width,e.height,0,0,T,T)}S.fill()}if(Z&&D)if(0===W)_l(S,Z.x,Z.y,Z.width,Z.height,D),Uq(S,D,r,Z);else{switch(S.beginPath(),S.fillStyle=D,a){case Li:Kc(S,Z.x,Z.y,Z.width,Z.height,0,0,T,T);break;case dk:Kc(S,Z.x,Z.y,Z.width,Z.height,T,0,T,0);break;case ge:Kc(S,Z.x,Z.y,Z.width,Z.height,0,T,0,T);break;case lh:Kc(S,Z.x,Z.y,Z.width,Z.height,T,T,0,0)}S.fill()}if(W>0){var L=mn(S,y);if(He(L,"roundRect",h,T),S.save(),S.lineWidth=W,S.strokeStyle=u,S.lineJoin=J,S.lineCap=w,S.closePath(),S.stroke(),Z&&b("group.splitLine")){var l=Z.x,A=Z.y,V=Z.width,c=Z.height;S.beginPath(),a===Li?(S.moveTo(l,A),S.lineTo(l+V,A)):a===dk?(S.moveTo(l+V,A),S.lineTo(l+V,A+c)):a===ge?(S.moveTo(l,A),S.lineTo(l,A+c)):(S.moveTo(l,A+c),S.lineTo(l+V,A+c))}S.stroke(),S.restore(),si(L,y)}}q._39O(S,O)}else hh.superClass._80o.call(q,S)}});var zj=function(F,z){bo(zj,this,[F,z])};Ri(zj,dd,{_80o:function(K){this._39O(K,this._83o)}});var Vq=function(F,L){bo(Vq,this,[F,L])};Ri(Vq,dd,{_3O:function(){var Y=this,G=Y._data,v=Y.s,W=Y.gv,S=G.getPoints(),A=W.getBorderColor(G),a=A?v("border.width"):0,w=Y.getSelectWidth(),k=v("shape.border.width"),s=G.getRect(),i=G.getAnchorRect(),K=W.getBodyColor(G),J=v("shape.border.color"),O=Y._99o=S.isEmpty()?P:{rect:s,rotation:G.getRotation(),fillRule:v("shape.fill.rule"),scale:G.getScale(),position:G.p(),points:S,segments:G.getSegments(),bodyColor:K,borderColor:A,borderWidth:a,_94o:v("shape.border.3d"),_95o:v("shape.border.3d.color"),_96o:v("shape.border.3d.accuracy"),_97o:w?Y.getSelectColor():P,selectWidth:w,_53o:v("shape.background"),_27Q:tc(v("shape.repeat.image"),K),shapeGradientPack:v("shape.gradient.pack"),shapeBorderGradientPack:v("shape.border.gradient.pack"),_54o:k,_55o:J,shapeBorderRepeatImage:tc(v("shape.border.repeat.image"),J),shapeGradient:v("shape.gradient"),_59o:v("shape.gradient.color"),_60o:v("shape.border.pattern"),_61o:v("shape.border.cap"),_62o:v("shape.border.join"),shapeForeground:v("shape.foreground"),gray:v("2d.gray")};if(O){i.x+=O.position.x,i.y+=O.position.y,O.gradientRect=i;var g=G.getScale(),o=B(1,B(_(g.x),_(g.y)));v("shape.dash")&&v("shape.dash.width")>k&&(k=v("shape.dash.width"));var X,j=v("shape.border.width.absolute");X=j?(k+a+w)/Y.gv._zoom/o:k*("square"===O._61o?.71:.5)+a+w/Y.gv._zoom/o,X&&(X*=o,s=Wl(s),_i(s,X,O._62o)),Y._68o(s);var D=v("clip.percentage");D!=m&&(O.clipRect=qs(G.getAnchorRect(),v("clip.direction"),D));var l=v("shape.fill.clip.percentage");l!=m&&(O.shapeClipRect=qs(G.getAnchorRect(),v("shape.fill.clip.direction"),l));var c=v("shape.foreground.clip.percentage");c!=m&&(O.shapeForegroundClipRect=qs(G.getAnchorRect(),v("shape.foreground.clip.direction"),c))}},getPosition:function(L,b,a,Y){var l=this._99o;if(l){var f=jl(L,l.rect,Y);return f.x+=b,f.y+=a,f}return Mk},_42:function(s){this._99o&&Vq.superClass._42.call(this,s)},_80o:function(s){var R,m=this,H=m.s,P=m._99o,C=P.position,z=P.scale,B=P.rotation,Q=P.borderWidth,V=P.selectWidth/m.gv._zoom,I=P._27Q,N=P.shapeGradientPack,G=P._54o,v=P.clipRect,c=P.shapeClipRect,J=P.points,T=P.segments,X=m._data.isClosePath(),k=P.fillRule,i=P.gray,y=function(P){return i?t.toGrayColor(P):P},U=y(P._53o),l=U||I||N;s.save(),Oc(s,C.x,C.y),tb(s,B),Qb(s,z.x,z.y),v&&(s.beginPath(),s.rect(v.x,v.y,v.width,v.height),s.clip()),l&&c&&(s.save(),s.beginPath(),s.rect(c.x,c.y,c.width,c.height),s.clip()),F.Default.extractShapeTranslation?(J=Wl(J),J.forEach(function(N){N.x-=C.x,N.y-=C.y})):Oc(s,-C.x,-C.y);var S=P._60o,M=mn(s,S),q=s.lineJoin,d=s.lineCap;s.lineJoin=P._62o,s.lineCap=P._61o;var E=y(P.bodyColor);l?(hq(s,J,T,X),N?yd(s,N,function(X){return jq(X,P.bodyColor)},!1,P.rect):I?Yl(s,I,E,null,m._data,m.gv):(R=E?E:U,Xm(s,R,P.shapeGradient,y(P._59o),P.gradientRect)),s.fill(k),N&&s.restore(),c&&(s.restore(),Oc(s,-C.x,-C.y)),M!==s&&hq(M,J,T,X)):hq(M,J,T,X);var Z=P.shapeForeground;if(Z){s.save();var b=P.shapeForegroundClipRect;b&&(Oc(s,C.x,C.y),s.beginPath(),s.rect(b.x,b.y,b.width,b.height),s.clip(),Oc(s,-C.x,-C.y)),hq(s,J,T,X),Xm(s,Z,H("shape.foreground.gradient"),y(H("shape.foreground.gradient.color")),P.gradientRect),s.fill(k),s.restore()}var D=H("shape.border.width.absolute");if(D&&(s.save(),s.setTransform(1,0,0,1,0,0)),V&&(s.strokeStyle=P._97o,s.lineWidth=G+2*(Q+V),s.stroke()),Q&&(s.strokeStyle=y(P.borderColor),s.lineWidth=G+2*Q,s.stroke()),G){R=y(P._55o);var f=P.shapeBorderGradientPack;f?yd(s,f,y,!0,P.rect):P.shapeBorderRepeatImage?Nh(s,P.shapeBorderRepeatImage,R,null,m._data,m.gv):(!U&&E&&(R=E),s.strokeStyle=R),s.lineWidth=G,s.stroke(),f&&s.restore(),P._94o&&wb(s,R,y(P._95o),G,m.gv._zoom,P._96o)}if(si(s,S),H("shape.dash")){var A=H("shape.dash.width")||G;if(A>0){S=H("shape.dash.pattern");var M=mn(s,S,m._2Q("shape.dash.offset"));M!==s&&hq(M,J,T,X),m._1Q(s,"shape",A,S)}}D&&s.restore(),s.lineJoin=q,s.lineCap=d,s.restore()},_48O:function(){},_47O:function(){}});var ri=function(E,s){bo(ri,this,[E,s])};Ri(ri,Vq,{getRotation:function(p,Y,D){p=p||0;var c=this._data.getPoints(),H=c.size();return H>1?ti[D]?H&&0===H%2?Bo(c.get(H/2-1),c.get(H/2),Y,p):p:Ug[D]?Bo(c.get(0),c.get(1),Y,p):Bo(c.get(H-2),c.get(H-1),Y,p):p},getPosition:function(W,v,U,T,h){var f=this._data.getPoints(),b=f.size();if(b>1){if(ti[W]){var C=b%2;if(0===C)return nk(f.get(b/2-1),f.get(b/2),W,v,U,T,h);var H=f.get((b-C)/2),Y={x:H.x,y:H.y,width:0,height:0};return H=jl(W,Y,T),H.x+=v,H.y+=U,H}return Ug[W]?nk(f.get(0),f.get(1),W,v,U,T,h):nk(f.get(b-2),f.get(b-1),W,v,U,T,h)}return Mk}});var Qn=function(h,V){bo(Qn,this,[h,V])};Ri(Qn,dd,{_3O:function(){var Z=this;Qn.superClass._3O.call(Z);var y=Z.s,c=Z._83o;Z._82o=c.img||c.shape?P:{background:Z.getBodyColor("grid.background"),depth:y("grid.depth"),rect:c.rect,_88o:y("grid.cell.depth"),cellBorderColor:y("grid.cell.border.color"),_89o:y("grid.row.count"),_90o:y("grid.column.count"),block:y("grid.block"),_91o:y("grid.block.color"),_92o:y("grid.block.padding"),_93o:y("grid.block.width")}},_80o:function(E){var z=this,Z=z._82o;if(!Z)return Qn.superClass._80o.call(z,E),void 0;var C,I,n=z._data,k=Z.background,s=Z.rect,w=Z.block,U=Z._91o,h=Z._92o,a=Z._93o,J=Z._88o,r=Z.cellBorderColor,f=Z._89o,g=Z._90o;if(k)if(_l(E,s.x,s.y,s.width,s.height,k),Uq(E,k,Z.depth,s),J)for(C=0;f>C;C++)for(I=0;g>I;I++)s=n.getCellRect(C,I),s&&Uq(E,k,J,s);else if(r){for(E.beginPath(),C=0;f>C;C++)for(I=0;g>I;I++)s=n.getCellRect(C,I),s&&E.rect(s.x,s.y,s.width,s.height);E.strokeStyle=r,E.lineWidth=1,E.stroke()}if("h"===w)for(C=0;f>C;C++)s=tn(n.getCellRect(C,0),n.getCellRect(C,g-1)),Cl(s,h),qc(E,U,s.x,s.y,s.width,s.height,a);else if("v"===w)for(I=0;g>I;I++)s=tn(n.getCellRect(0,I),n.getCellRect(f-1,I)),Cl(s,h),qc(E,U,s.x,s.y,s.width,s.height,a);z._39O(E,z._83o)}});var lj=function(o,Q){bo(lj,this,[o,Q])},zi=U?Hj().getContext("2d"):P;Ri(lj,dd,{_checkEmptyRect:!1,_81o:function(){var h=this._data,A=lj.superClass._81o.call(this),t=h.s("text");if(t!=P){t+="";var $,g=h.s("text.font"),i=h.s("text.align"),r=h.s("text.vAlign"),c=h.s("text.wrap"),s=h.s("text.vertical"),S=h.s("text.vertical.gap"),p=h.s("text.letter.gap")||0,R=h.getWidth(),x=h.getHeight();if(null==S&&(S=1),s){var w;w=c?ad(t,x,g,p,s,S):[t];var M=(w.length-1)*p,o=0;zi.textBaseline=lh,zi.font=g,w.forEach(function(g){for(var i=g.length,F=0,c=(i-1)*S,G=0;i>G;G++){var K=zi.measureText(g[G]);c+=K.fontBoundingBoxDescent,F=B(F,K.width)}M+=F,o=B(c,o)});var J=(w.length-1)*p;w.forEach(function(t){J+=t}),$={width:M,height:o}}else{var w=c?ad(t,R,g,p,s,S):t.split("\n"),b=w.length;if(b>1){var f=Dd(g,t).height,M=0,o=f*b+S*(b-1);w.forEach(function(P){M=B(M,Dd(g,P).width)}),$={width:M,height:o}}else $=Dd(g,t),p&&($.width+=(t.length-1)*p)}var e,a,Z=$.width,V=$.height,E=h.getAnchor();"left"===i?e=-R*E.x:"center"===i?e=-R*E.x+(R-Z)/2:"right"===i&&(e=R*(1-E.x)-$.width),"top"===r?a=-x*E.y:"middle"===r?a=-x*E.y+(x-V)/2:"bottom"===r&&(a=x*(1-E.y)-$.height);var H,z=h.getMatrix();if(H=es([z.tf(e,a),z.tf(e+Z,a),z.tf(e+Z,a+V),z.tf(e,a+V)]),A=tn(A,H),A&&h.s("text.shadow")){var k=Wl(A);k.x+=h.s("text.shadow.offset.x"),k.y+=h.s("text.shadow.offset.y"),Cl(k,h.s("text.shadow.blur")),A=tn(A,k)}}return A}});var aq=nq.Interactor=function(B){this.gv=this._graphView=B};Rq("Interactor",$,{ms_listener:1,getView:function(){return this.gv.getView()},setUp:function(){this.addListeners()},tearDown:function(){this.removeListeners(),this.clear()},clear:function(){},fi:function(H){this.gv.fi(H)},setCursor:function(h){pr||this.gv.setCursor(h)},startDragging:function(E){var o=this;o._lastClientPoint=Di(E),o._lastLogicalPoint=o.gv.lp(E),$k(o,E)},clearDragging:function(){var Z=this;Z._lastClientPoint=Z._lastLogicalPoint=Z._logicalPoint=P},autoScroll:function(D){return this.gv.autoScroll(D,this._lastClientPoint)}});var Se=P,ac=function(Z){Se.handleWindowTouchMove(Z)},rf=function(m){Se.handleWindowTouchEnd(m),j(q,Gb,ac),j(q,Ef,rf),Se=P},Sl=function(k){Se.handleWindowMouseMove(k)},Dm=function(B){Se.handleWindowMouseUp(B),j(q,qo,Sl),j(q,$g,Dm),Se=P},zp=function(h,$){if(h!==Se){var G=nf($);Se?G?Se.handleWindowTouchEnd($):Se.handleWindowMouseUp($):G?(N(q,Gb,ac),N(q,Ef,rf)):(N(q,qo,Sl),N(q,$g,Dm)),Se=h}},$q=function(p){var j=this;j.gv=p,j._is2d=p instanceof nq.GraphView,j._eventListeners={},["mousedown","mousemove","mouseleave","touchstart","touchmove",Ej,"wheel"].forEach(function(h){j.addListener(h)}),j.initImageResource()};Ri($q,aq,{enableVR:function(d){var L=this;!!L._vrEnable!==d&&(L._vrEnable=d,d?L.gv.vr.mp(L.onVRControllerChange,L):L.gv.vr.ump(L.onVRControllerChange,L))},onVRControllerChange:function(A){var E=this,P=A.property,l=A.newValue,W=l.id,L=E.gv.vr.getController(W),t=L.getRay();if(t){t.controllerId=W;var R=E.gv.vr.getRayEventType(t,P,l._62O);switch(R){case"down":E.handle_mousedown(t);break;case"up":Se&&Dm(t);break;case"move":E.handle_mousemove(t),Se&&E.handleWindowMouseMove(t)}}},setPreventEventDefault:function(C,x){var P=this,o=P._eventListeners[C];o?o._prevent=x:P._eventListeners[C]=o={_removal:m,_prevent:x}},removeListener:function(W){var R=this,p=R._eventListeners[W];p&&p._removal&&(p._removal(),p._removal=m)},addListener:function(G){var H=this,V=H._eventListeners[G];if(V||(H._eventListeners[G]=V={_removal:m,_prevent:!0}),!V||!V._removal){var P=function(Y){V._prevent&&t.preventDefault(Y),H.disabled||H.gv._48Q||("wheel"===G?sm(H,Y):H["handle_"+G](Y))};N(H.gv.getView(),G,P),V._removal=function(){j(H.gv.getView(),G,P)}}},handleWindowTouchMove:function(q){this.handleWindowMouseMove(q)},handleWindowMouseMove:function(F){return!this.downInfo||nf(F)&&1!==um(F)?(this.isDragging&&(this.handleDownInfo("onEndDrag",F),this.isDragging=!1),void 0):(this.isDragging?this.handleDownInfo("onDrag",F):(this.handleDownInfo("onBeginDrag",F),this.isDragging=!0),void 0)},handleWindowTouchEnd:function($){this.handleWindowMouseUp($)},handleWindowMouseUp:function(X){if(this.isDragging&&(this.handleDownInfo("onEndDrag",X),this.isDragging=!1),this.downInfo){var N=this.handle("onUp",X);if(N&&N.data===this.downInfo.data){this.handleMissingUp(X);var H=this,C=2===X.button?"onContextMenu":"onClick";if(!H._dbclickTimer)return H._dbclickTimer=Zr(function(){delete H._dbclickTimer,H.handleClick(X,C,N),this.downInfo=P},t.clickDelay),void 0;Nq(H._dbclickTimer),delete H._dbclickTimer,C="onDoubleClick",H.handleClick(X,C,N)}else this.handleDownInfo("onUp",X);this.downInfo=P,this.downComps=P}},handle_mouseleave:function(t){var x=this,j=x.gv;x._hoverTimer&&(Nq(x._hoverTimer),delete x._hoverTimer);var N=x.currentInfo?x.currentInfo.data:P;if(N){N.s("onLeave")&&N.s("onLeave")(t,N,j),x.fire("data","onLeave",t,N);var q=x.currentInfo?x.currentInfo.hits:P;if(q)for(var Y in q)x.handleLeave(t,Y);x.currentInfo=P}},handle_mousewheel:function(V){V.scrollDelta=V.wheelDelta/40,this.handle("onScroll",V)},handle_DOMMouseScroll:function(B){B.scrollDelta=2===B.axis?-B.detail:0,this.handle("onScroll",B)},handle_touchstart:function(D){this.handle_mousedown(D)},handle_touchmove:function(x){this.handle("onMove",x)},handle_mousedown:function(O){this.isDragging&&(this.handleDownInfo("onEndDrag",O),this.isDragging=!1),this.downComps=[],this.downInfo=this.handle("onDown",O),this.downInfo&&zp(this,O)},handle_mousemove:function(k){var G=this,o=G.gv;if(G._hoverTimer&&(Nq(G._hoverTimer),delete G._hoverTimer),!o._panning&&!o._moving){var c,U,X,d=G.handle("onMove",k),A=this.currentInfo?this.currentInfo.data:P,z=this.currentInfo?this.currentInfo.hits:P;if(d&&(U=d.data,X=d.hits,G._hoverTimer=Zr(function(){Nq(G._hoverTimer),delete G._hoverTimer,G.handle("onHover",k,d)},o.getHoverDelay()||t.hoverDelay)),U!==A){if(A&&(A.s("onLeave")&&A.s("onLeave")(k,A,o),this.fire("data","onLeave",k,A)),U&&(U.s("onEnter")&&U.s("onEnter")(k,U,o),this.fire("data","onEnter",k,U)),z)for(c in z)this.handleLeave(k,c);if(X)for(c in X){var q=X[c],I=U._interactPrefix=q.prefix,E=I&&U.a(I+"onEnter")||q.target.onEnter;E&&E.call(q.target,k,U,o,q.point,q.width,q.height),this.fire(q.type,"onEnter",q.event,q.data,q.image,q.comp,q.point,q),U._interactPrefix=null}}else{if(z)for(c in z)X&&X[c]||this.handleLeave(k,c);if(X)for(c in X)if(!z||!z[c]){var q=X[c],I=U._interactPrefix=q.prefix,E=I&&U.a(I+"onEnter")||q.target.onEnter;E&&E.call(q.target,k,U,o,q.point,q.width,q.height),this.fire(q.type,"onEnter",q.event,q.data,q.image,q.comp,q.point,q),U._interactPrefix=null}}this.currentInfo=d}},handle:function(O,t,p){var B,l=this,X=l.gv;if(l._is2d){if(p=p||X.getDataInfoAt(t),!p||!X.isInteractive(p.data))return;if(B=p.ui.interactiveInfo){var I,h=p.data;if(h.s(O)&&h.s(O)(t,h,X),this.fire("data",O,t,h),"body"===p.part&&B.bodyInfo)I="body",p.hits=this.handleImage(I,X.getImage(h),O,t,h,p.point,B.bodyInfo);else if("icons"===p.part&&B._38o){var H=B._38o[p.name];H&&H[p.index]&&(I="icons|"+p.name+"|"+p.index,p.hits=this.handleImage(I,p.icon,O,t,h,p.point,H[p.index]))}}return p}var h,z;if(!p)if(t&&t instanceof F.Math.Ray&&X.isVREnabled()){var J=X.vr.intersectWorld(t);if(h=J.data,z=J.intersect,X.vr.renderRayDuringInteraction(t,h,z),!h)return;var A=X.getData3dUI(h);if(B=A.interactiveInfo,!B)return;p={data:h,part:z.part,ui:A}}else{if(p=X.getDataInfoAt(t),!p)return;p&&(p={data:p.data,part:p.part})}if(X.isInteractive(p.data)){if(!z){h=p.data;var A=X.getData3dUI(h);if(p.ui=A,B=A.interactiveInfo,!B)return p;if(z=X.intersectObject(t,h),!z)return p}h.s(O)&&h.s(O)(t,h,X),this.fire("data",O,t,h);var x,v=z.part;return"body"!==v&&(x=h.s(v+".image")||h.s("shape3d."+v+".image")),x||(x=h.s("all.image")||h.s("shape3d.image")),x?(B="object"==typeof x?B[x.uuid]:B[x],B&&B.bodyInfo?(p.part="body",p.interactiveInfo=B,p.point=this._convertUVToPoint(z.uv,B),p.image=x,p.hits=this.handleImage("body",x,O,t,h,p.point,B.bodyInfo),p):p):p}},_handleLeaveOrMissing:function(y,p,T){var H="leave"===y?this.currentInfo:this.downInfo;if(H){var b=H.interactiveInfo||H.ui.interactiveInfo;if(b){var i,G,q=H.data;if(this._is2d){if(G=this.gv.lp(p),"body"===H.part&&b.bodyInfo)i="body","leave"===y?this.handleLeaveImage(T,i,this.gv.getImage(q),p,q,G,b.bodyInfo):this.handleMissingUpImage(i,this.gv.getImage(q),p,q,G,b.bodyInfo);else if("icons"===H.part&&b._38o){var o=b._38o[H.name];o&&o[H.index]&&(i="icons|"+H.name+"|"+H.index,"leave"===y?this.handleLeaveImage(T,i,H.icon,p,q,G,o[H.index]):this.handleMissingUpImage(i,H.icon,p,q,G,o[H.index]))}}else{if(!b.bodyInfo)return;var u=this.gv.intersectObject(p,q);G=u&&u.uv?this._convertUVToPoint(u.uv,b):{x:1/0,y:1/0},"leave"===y?this.handleLeaveImage(T,"body",H.image,p,q,G,b.bodyInfo):this.handleMissingUpImage("body",H.image,p,q,G,b.bodyInfo)}}}},handleClick:function(D,U,Q){var j=this,q=this.downInfo;if(q&&Q){var M,V=Q.interactiveInfo||Q.ui.interactiveInfo,_=Q.data,t=this.gv;if(_.s(U)&&_.s(U)(D,_,t),j.fire("data",U,D,_),V)if(this._is2d){if(q.part===Q.part){var f=t.lp(D);"body"===Q.part&&V.bodyInfo&&(M="body",this.handleClickImage(M,t.getImage(_),U,D,_,f,V.bodyInfo,Q))}}else{if(!V.bodyInfo)return;var y=t.intersectObject(D,_);if(!y)return;f=this._convertUVToPoint(y.uv,V),this.handleClickImage("body",q.image,U,D,_,f,V.bodyInfo,Q)}}},handleDownInfo:function(w,l){if(this.downInfo){var t=this.downInfo,D=this.gv,O=t.interactiveInfo||t.ui.interactiveInfo;if(O){var f,z=t.data;if(z.s(w)&&z.s(w)(l,z,D),this.fire("data",w,l,z),this._is2d){var J=D.lp(l);if("body"===t.part&&O.bodyInfo)f="body",this.handleDownInfoImage(f,D.getImage(z),w,l,z,J,O.bodyInfo);else if("icons"===t.part&&O._38o){var q=O._38o[t.name];q&&q[t.index]&&(f="icons|"+t.name+"|"+t.index,this.handleDownInfoImage(f,t.icon,w,l,z,J,q[t.index]))}}else{if(!O.bodyInfo)return;var v;if("onBeginDrag"===w?(v=D._raycaster.intersectObjectAndRecordTriangle(l,z),v&&(O.beginDragIntersectInfo=v.triangleInfo)):v=D.intersectObject(l,z),!v&&("onDrag"!==w&&"onEndDrag"!==w||!O.beginDragIntersectInfo||(v=D._raycaster.intersectLastTriangle(l,O.beginDragIntersectInfo)),!v))return;J=this._convertUVToPoint(v.uv,O),this.handleDownInfoImage("body",t.image,w,l,z,J,O.bodyInfo)}}}},fire:function(H,M,B,v,Y,t,F,g){this.gv.fi({kind:M,type:H,event:B,data:v,image:Y,comp:t,view:this.gv,point:F,width:g?g.width:m,height:g?g.height:m})},handleImage:function(J,X,$,q,p,b,h){var e={};if(X&&(X=tc(X))){var u=this.gv,t=h.rect,f=this.convertPoint(b,h);f.inRect&&(X[$]&&X[$](q,p,u,f,t.width,t.height),this.fire("image",$,q,p,X,m,f,t),e[J+"|image"]={target:X,type:"image",image:X,data:p,event:q,point:f,width:t.width,height:t.height});for(var E,l=h.compInfos,r=X,P=l.length-1;P>=0;P--){var s=l[P],I=s.comp;if(f=this.convertPoint(b,s,r,I,u,p),f.inRect){t=s.rect;var B=p._interactPrefix=s.prefix,n=B&&p.a(B+$)||I[$];if(n&&(E=n.call(I,q,p,u,f,t.width,t.height)),this.fire("comp",$,q,p,X,I,f,t),E!==!0&&(X=t.image)&&(X[$]&&(E=X[$](q,p,u,f,t.width,t.height)),this.fire("image",$,q,p,X,m,f,t)),p._interactPrefix=null,e[J+"|"+P]={target:I,type:"comp",comp:I,image:X,data:p,event:q,point:f,width:t.width,height:t.height,prefix:B},this.downComps&&this.downComps.push(I),X&&(e[J+"|"+P+"|image"]={target:X,type:"image",image:X,data:p,event:q,point:f,width:t.width,height:t.height,prefix:B}),E===!0)break}}}return e},handleLeave:function(J,m){return this._handleLeaveOrMissing("leave",J,m)},handleMissingUp:function(G){return this._handleLeaveOrMissing("missing",G)},handleLeaveImage:function(h,l,n,p,C,x,z){if(n&&(n=tc(n))){var Q=this.gv,U=z.rect,B=this.convertPoint(x,z);h===l+"|image"&&(n.onLeave&&n.onLeave(p,C,Q,B,U.width,U.height),this.fire("image","onLeave",p,C,n,m,B,U));for(var L,V=z.compInfos,b=n,T=V.length-1;T>=0;T--){var P=V[T],X=P.comp;B=this.convertPoint(x,P,b,X,Q,C),U=P.rect;var d=C._interactPrefix=P.prefix;if(h===l+"|"+T){var s=d&&C.a(d+"onLeave")||X.onLeave;s&&(L=s.call(X,p,C,Q,B,U.width,U.height)),this.fire("comp","onLeave",p,C,n,X,B,U)}if(L!==!0&&(n=U.image)&&h===l+"|"+T+"|image"&&(n.onLeave&&(L=n.onLeave(p,C,Q,B,U.width,U.height)),this.fire("image","onLeave",p,C,n,m,B,U)),C._interactPrefix=null,L===!0)break}}},handleMissingUpImage:function(G,P,H,r,M,s){var F="onUp",J=this.downInfo.hits;if(J&&P&&(P=tc(P))){var Y=this.gv,h=s.rect,U=this.convertPoint(M,s);!U.inRect&&J[G+"|image"]&&(P[F]&&P[F](H,r,Y,U,h.width,h.height),this.fire("image",F,H,r,P,m,U,h));for(var T,w=s.compInfos,c=P,v=w.length-1;v>=0;v--){var B=w[v],R=B.comp;if(U=this.convertPoint(M,B,c,R,Y,r),!U.inRect){h=B.rect;var y=r._interactPrefix=B.prefix;if(J[G+"|"+v]){var d=y&&r.a(y+F)||R[F];d&&(T=d.call(R,H,r,Y,U,h.width,h.height)),this.fire("comp",F,H,r,P,R,U,h)}if(T!==!0&&(P=h.image)&&J[G+"|"+v+"|image"]&&(P[F]&&(T=P[F](H,r,Y,U,h.width,h.height)),this.fire("image",F,H,r,P,m,U,h)),r._interactPrefix=null,T===!0)break}}}},handleDownInfoImage:function(s,w,$,L,X,H,K){var Y=this.downInfo.hits;if(Y&&w&&(w=tc(w))){var G=this.gv,T=K.rect,d=this.convertPoint(H,K);Y[s+"|image"]&&(w[$]&&w[$](L,X,G,d,T.width,T.height),this.fire("image",$,L,X,w,m,d,T));for(var B,g=K.compInfos,e=w,q=g.length-1;q>=0;q--){var M=g[q],n=M.comp;d=this.convertPoint(H,M,e,n,G,X),T=M.rect;var f=X._interactPrefix=M.prefix,u=["onDrag","onEndDrag"].indexOf($)>=0;if(!u&&Y[s+"|"+q]||u&&this.downComps&&this.downComps.indexOf(n)>=0){var V=f&&X.a(f+$)||n[$];V&&(B=V.call(n,L,X,G,d,T.width,T.height)),this.fire("comp",$,L,X,w,n,d,T)}if(B!==!0&&(w=T.image)&&Y[s+"|"+q+"|image"]&&(w[$]&&(B=w[$](L,X,G,d,T.width,T.height)),this.fire("image",$,L,X,w,m,d,T)),X._interactPrefix=null,B===!0)break}}},handleClickImage:function(b,S,o,e,t,F,I,T){var O=this.downInfo.hits,$=T.hits;if(O&&S&&(S=tc(S))){var Z=this.gv,Y=I.rect,M=this.convertPoint(F,I);O[b+"|image"]&&(S[o]&&S[o](e,t,Z,M,Y.width,Y.height),this.fire("image",o,e,t,S,m,M,Y));for(var R,K=I.compInfos,x=S,H=K.length-1;H>=0;H--){var f=K[H],v=f.comp;M=this.convertPoint(F,f,x,v,Z,t),Y=f.rect;var h=t._interactPrefix=f.prefix;if(O[b+"|"+H]&&$[b+"|"+H]){var B=h&&t.a(h+o)||v[o];B&&(R=B.call(v,e,t,Z,M,Y.width,Y.height)),this.fire("comp",o,e,t,S,v,M,Y)}if(R!==!0&&(S=Y.image)&&O[b+"|"+H+"|image"]&&(S[o]&&(R=S[o](e,t,Z,M,Y.width,Y.height)),this.fire("image",o,e,t,S,m,M,Y)),t._interactPrefix=null,R===!0)break}}},initImageResource:function(){t.setImage("coreInteractorRayHitImage",{width:16,height:16,comps:[{type:"oval",background:"rgb(255,0,0)",borderWidth:1,borderColor:"rgb(250,120,120)",opacity:.3,rotation:-1.593,rect:[.73315,.6933,14.5337,14.61341]},{type:"oval",background:"rgb(255,0,0)",borderWidth:1,borderColor:"rgb(250,120,120)",rotation:-1.593,rect:[3.56695,3.75073,8.8661,8.49856]}]})},_convertUVToPoint:function(n,y){if(!n)return{x:1/0,y:1/0};var d=y.bodyInfo.rect,P=n.clone(),k=n.multiply({x:d.width,y:d.height});return k.local=P,k},convertPoint:function(X,Q,K,d,F,y){var E=Q.rect,I=Q.matrix.applyInverse(X).sub(E),q=I.x>=0&&I.y>=0&&I.x<=E.width&&I.y<=E.height;if(!q)return I;if(d&&Lk(d.pixelPerfect,y,F)){var E,Y=1;this._is2d?(Y=F.getZoom(),E=ob(X.x,X.y,m,Y)):E=ob(X.x,X.y);var z=!1,h=E.x,$=E.y,k=E.width,A=E.height,W=t.hitMaxArea,n=k*A*Y*Y;if(n>W){var l=Math.sqrt(W/n);Y*=l}k*=Y,A*=Y,2>k&&(k=2),2>A&&(A=2),h*=Y,$*=Y;var x=Fn(k,A),C=new Ld(0,-h,-$,Y,Y);C.append(Q.matrix),F._drawForChecking=!0,d.transform=C;var J=K.fitSize;Q.refRect&&Q.refRect.fitSize?(d.refRect=Q.refRect,K.fitSize=!0):K.fitSize=!1;var H=K.comps;K.comps=[d],vb(x,K,0,0,k,A,y,self),K.comps=H,K.fitSize=J,delete d.refRect,delete d.unionRect,delete d.transform,F._drawForChecking=!1;try{for(var j=0,w=x.getImageData(0,0,k,A).data;jw.x||M.y>w.y},clear:function(i){var J=this,s=J.gv,B=J.mark;if(J._57I=P,J.pendingClickThrough=P,J._lastLogicalPoint){if(B){if(0!==B.width&&0!==B.height){var q=s.getDatasInRect(B,J.intersects());if(!q.isEmpty()){var m=s.sm(),Y=m.toSelection(),j=Me(i),f=i.altKey;q.each(function(F){m.co(F)?(!j||j&&f)&&Y.remove(F):(!f||j&&f)&&Y.add(F)}),m.ss(Y)}}_g(J.div),delete J.div,delete J.mark,J.redraw(),J.fi({kind:"endRectSelect",event:i}),s.onRectSelectEnded()}J.clearDragging(),delete s._77O}},redraw:function(){var b=this;b._draw||(b._draw=1,Zr(function(){b.mark&&b._42(),delete b._draw},16))}});var jm=nq.MoveInteractor=function(Y){bo(jm,this,[Y])};Rq("MoveInteractor",aq,{handle_mousedown:function(g){var m=this,i=m.gv;if(yn(g)&&!i._editing&&!i._scrolling&&!Tq()){var _=i.getSelectedDataAt(g);!_||i._39Q(_)&&!i.isMovable(_)?i._focusData=P:(m._data=_,i.handleMouseDown&&i.handleMouseDown(g,_),m.startDragging(g),i.isMovable(_)&&(i._moving=1))}},handleWindowMouseUp:function(u){var G=this,B=G.gv;B.handleMouseUp&&B.handleMouseUp(u,G._data),G.clear(u)},handleWindowMouseMove:function(O){var M=this,s=M._data,B=M.gv;if((!B._93O||!B._93O(O,s))&&B._moving){M._logicalPoint||M.fi({kind:"prepareMove",event:O});var G=M._logicalPoint?"betweenMove":"beginMove",j={kind:G,event:O},I=M._logicalPoint=B.lp(O);"beginMove"!==G||M._alreadyBeginTransaction||(M._alreadyBeginTransaction=!0,B.getDataModel().beginTransaction());var T=M._calcShift(G,O),Y=T.x,u=T.y,o=M.gv.getMoveMode(O,s);o&&("x"===o?u=0:"y"===o?Y=0:"xy"!==o&&(Y=u=0)),B.moveSelection(Y,u),M._lastLogicalPoint=I,M.autoScroll(O),M.fi(j)}},_calcShift:function(){var n=this,L=n._logicalPoint,N=n._lastLogicalPoint,j=L.x-N.x,v=L.y-N.y;return{x:j,y:v}},clear:function(c){var m=this,K=m.gv;m._lastLogicalPoint&&(m._lastLogicalPoint=m._data=K._moving=P,m._logicalPoint&&(m.fi({kind:"endMove",event:c}),K.onMoveEnded()),m.clearDragging()),m._alreadyBeginTransaction&&(m._alreadyBeginTransaction=!1,K.getDataModel().endTransaction())}});var hm=nq.TextEditInteractor=function(a){bo(hm,this,[a]),this.init()};Rq("TextEditInteractor",aq,{setUp:function(){var n=this;hm.superClass.setUp.call(n),n.gv.mp(n.handleGvPropertyChange,n)},teatDown:function(){var P=this;hm.superClass.teatDown.call(P),P.gv.ump(P.handleGvPropertyChange,P)},handleGvPropertyChange:function(){this._editTarget&&this.endTextEdit()},init:function(){var O=this,k=this.input=U.createElement("input"),H=k.style;k.text="text",H.border="1px solid #d8d8d8",H.position="absolute",H.padding="2px 3px",H.outline="none",H.marginLeft="-90px",H.marginTop="-16px",H.backgroundColor="rgba(255,255,255, 1)",H.fontSize="14px",H.width="180px",H.height="32px",H.boxShadow="0 0 13px rgba(16,142,233, 0.5)",H.textAlign="center",H.boxSizing="border-box",N(k,"keyup",function(h){return Hf(h)&&O.endTextEdit(),Bq(h)?(O.endTextEdit(!0),void 0):void 0}),N(k,"focus",function(){k.select()});var R=this.textarea=U.createElement("textarea"),E=this.wrap=U.createElement("div");E.appendChild(R),H=R.style,H.margin=0,H.padding="4px",H.overflow="hidden",H.boxSizing="border-box",H.position="absolute",H.outline="none",H.backgroundColor="transparent",H.resize="none",H.textAlign="center",H.fontSize="14px",H.borderWidth=0,H.width="100%",H=E.style,H.boxSizing="border-box",H.margin=0,H.padding=0,H.position="absolute",H.boxShadow="0 0 13px rgba(16,142,233, 0.5)",H.border="1px solid #d8d8d8",H.backgroundColor="rgba(255,255,255, 1)",H.zIndex="10",N(R,"keydown",function(_){return(Me()||Hn())&&Hf(_)?(O.endTextEdit(),void 0):Bq(_)?(O.endTextEdit(!0),void 0):(O._editTarget instanceof Ff||O.calculateTextareaHeight(String.fromCharCode(_.keyCode)),void 0)}),N(R,"focus",function(){R.select()});var n=function(R){R.stopPropagation()};N(k,"mousedown",n),N(k,"touchstart",n),N(R,"mousedown",n),N(R,"touchstart",n),N(R,"click",n),O.SIZING_STYLE=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"],O.HIDDEN_TEXTAREA_STYLE="visibility:hidden; min-height:0 !important;max-height:none !important;height:0 !important;visibility:hidden !important;overflow:hidden !important;position:absolute !important;z-index:-1000 !important;top:0 !important;right:0 !important",O.handleWindowClick=function(n){var t=O._editingDOM;if(t){var F=t.getBoundingClientRect(),y=Di(n);kf(F,y)||O.endTextEdit()}}},handle_mousedown:function(p){var k=this,B=k.gv;if(De(p)&&!B._editing){var z=B.getDataAt(p);if(z){var m=B.getTextEditInfo(z);m&&(this._editInfo=m,this._editTarget=z,B._editing=!0,m.isMultiline?this.handleMultilineEdit():this.handleTextEdit())}}},handleMultilineEdit:function(){var d=this,L=d.gv,z=d._editTarget,t=d.getTargetValue(),b=d.textarea,e=d.wrap,l=this._editInfo;this.hiddenTextarea||this.createHiddenTextarea(),(null===t||t===m)&&(t=""),b.value=t,l.font&&(b.style.font=l.font),d._editingDOM=b,L.appendHTML(e),this.layoutHTML(e,z),z instanceof Ff?b.style.height="100%":(b.style.height="auto",this.calculateTextareaHeight()),Zr(function(){b.focus(),N(q,"mousedown",d.handleWindowClick),N(q,"touchstart",d.handleWindowClick)},10)},handleTextEdit:function(){var d=this,P=d.gv,O=d._editTarget,J=d.getTargetValue(),G=d.input;(null===J||J===m)&&(J=""),G.value=J,d._editingDOM=G,P.getView().appendChild(G),this.layoutHTML(G,O),Zr(function(){G.focus(),N(q,"mousedown",d.handleWindowClick),N(q,"touchstart",d.handleWindowClick)},10)},layoutHTML:function(k,P){var B=this.gv,s=B.getZoom();if(P instanceof Ff){var U=B.getDataUI(P),C=U._6I,x=P.getScale(),I=k.style;k.style.left=C.x*s+B.tx()+"px",k.style.top=C.y*s+B.ty()+"px",k.style.width=U._6I.width+"px",k.style.height=U._6I.height+"px",Fq(I,"transform","scale("+s*x.x+","+s*x.y+")"),Fq(I,"transformOrigin","0px 0px")}else if(P instanceof ij){var C=P.getRect(),w=C.width*s;k.style.left=(C.x+C.width/2)*s+B.tx()+"px",k.style.top=(C.y+C.height/2)*s+B.ty()+"px",k.style.width=w+"px",k.style.marginLeft=-w/2+"px"}else if(P instanceof F.Edge){var U=B.getDataUI(P),C=U._6I;k.style.left=(C.x+C.width/2)*s+B.tx()+"px",k.style.top=(C.y+C.height/2)*s+B.ty()+"px"}},endTextEdit:function(G){var p=this,X=p._editInfo.isMultiline?p.wrap:p.input,F=p._editInfo.isMultiline?p.textarea:p.input;G||p.setTargetValue(F.value),p.gv.getView().removeChild(X),p.gv._editing=!1,delete p._editingDOM,delete p._editTarget,j(q,"mousedown",p.handleWindowClick),j(q,"touchstart",p.handleWindowClick)},setTargetValue:function($){var k=this,R=k._editTarget,l=k._editInfo,_=l.accessType,G=l.name;if(G&&_||(_="p",G="name"),"p"===_){var h=F.Default.setter(G);R[h]($)}else"a"===_?R.a(G,$):R.s(G,$)},getTargetValue:function(){var T=this,U=T._editTarget,i=T._editInfo,y=i.accessType,w=i.name;if(w&&y||(y="p",w="name"),"p"===y){var n=F.Default.getter(w);return U[n]()}return"a"===y?U.a(w):U.s(w)},createHiddenTextarea:function(){this.hiddenTextarea=U.createElement("textarea"),this.hiddenTextarea.setAttribute("style","margin:0; padding:0; position:absolute; overflowY:scroll; resize:none; box-sizing:border-box;pointer-events: none;opacity:0;"),this.hiddenTextarea.setAttribute("rows","1"),this.gv.getView().appendChild(this.hiddenTextarea)},calculateHTMLStyle:function(L,Y){if(Y&&this.computedStyleCache)return this.computedStyleCache;var k=this,J=q.getComputedStyle(L),s=J.getPropertyValue("box-sizing")||J.getPropertyValue("-moz-box-sizing")||J.getPropertyValue("-webkit-box-sizing"),P=parseFloat(J.getPropertyValue("padding-bottom"))+parseFloat(J.getPropertyValue("padding-top")),p=parseFloat(J.getPropertyValue("border-bottom-width"))+parseFloat(J.getPropertyValue("border-top-width")),h=k.SIZING_STYLE.map(function(f){return f+":"+J.getPropertyValue(f)}).join(";"),n={sizingStyle:h,paddingSize:P,borderSize:p,boxSizing:s};return Y&&(this.computedStyleCache=n),n},calculateTextareaHeight:function(d){d=d||"";var N=this,Q=N.textarea,t=N.hiddenTextarea,H=N.wrap,F=32,J=N.calculateHTMLStyle(Q,!1),o=J.paddingSize,z=J.borderSize,w=J.boxSizing,R=J.sizingStyle;t.setAttribute("style",R+";"+N.HIDDEN_TEXTAREA_STYLE),t.value=Q.value+d;var k=t.scrollHeight;"border-box"===w?k+=z:"content-box"===w&&(k-=o),Q.style.height=k+"px",H.style.height=Math.max(k,F)+"px",H.style.marginTop=k*-.5+"px"}});var zo=nq.ScrollBarInteractor=function(l){bo(zo,this,[l])};Rq("ScrollBarInteractor",aq,{_41o:function(){return this.gv.getViewRect().height1)&&V.gv._scrolling&&V.gv.isScrollBarVisible()){V._cp=Di(Z),V._tx=V.gv.tx(),V._ty=V.gv.ty();var S=V.isV(Z);V._state=S?"vScroll":"hScroll",$k(V,Z),V.fi({kind:"beginScroll",event:Z})}},handleWindowMouseMove:function(q){this.handleWindowTouchMove(q)},handleWindowTouchMove:function(N){var O=Di(N),K=this.gv.getViewRect(),z=this.gv.getScrollRect();"vScroll"===this._state?this.gv.ty(this._ty+(this._cp.y-O.y)*z.height/K.height):"hScroll"===this._state&&this.gv.tx(this._tx+(this._cp.x-O.x)*z.width/K.width),this.fi({kind:"betweenScroll",event:N})}});var Ve=nq.TouchInteractor=function(f,d){d=d||{},d.selectable===m&&(d.selectable=!0),d.movable===m&&(d.movable=!0),d.pannable===m&&(d.pannable=!0),d.pinchable===m&&(d.pinchable=!0),d.editable===m&&(d.editable=!0),this.params=d,bo(Ve,this,[f])};Rq("TouchInteractor",aq,{ms_edit:1,setUp:function(){var O=this;Ve.superClass.setUp.call(O),pr&&O.params.editable&&O.gv.setEditInteractor(O)},tearDown:function(){var s=this;Ve.superClass.tearDown.call(s),pr&&s.params.editable&&s.gv.setEditInteractor(P)},clear:function(I){var B=this,Q=B.gv;Q._moving&&(B.fi({kind:"endMove",event:I}),delete Q._moving,Q.onMoveEnded(),Q.dm().endTransaction()),Q._panning&&(B.fi({kind:"endPan",event:I}),delete Q._panning,Q.onPanEnded()),Q._pinching&&(B.fi({kind:"endPinch",event:I}),delete Q._pinching,Q.onPinchEnded()),Q._editing&&(B._46O(I),B._77I=B._node=B._edge=B._shape=B._rect=B._89I=B._index=Q._editing=P),B.pendingClickThrough=B._moving=B._panning=B._pinching=B._editing=B._57I=B._data=B._beginHistory=P,B.clearDragging()},handle_touchstart:function(A){var J=this;if(!J.gv._editing){Nj(A),J._57I=P,J.pendingClickThrough=P;var Q=J.params,M=J.gv,u=M.sm(),f=M.getDataAt(A),o=um(A);if(1===o){if(De(A))return M.handleDoubleClick(A,f),void 0;M.handleClick(A,f),f&&(M.handleMouseDown&&M.handleMouseDown(A,f),J._data=f),Q.selectable||(f=P),f&&(u.co(f)?f instanceof hf&&f.isClickThroughEnabled()&&(J.pendingClickThrough=Di(A)):u.ss(f),Q.editable&&M.isEditable(f)&&J._79I(A,f,!0)?(J._editing=1,J.startDragging(A)):Q.movable&&M.isMovable(f)&&(J._moving=1,J.startDragging(A))),f&&(M.isMovable(f)||M._39Q(f))||(J._57I=Di(A),Q.pannable&&M.isPannable()&&(J._panning=1,J.startDragging(A),J._translate={x:M.tx(),y:M.ty()}))}else if(Q.pinchable&&2===o){if(!M.getEditInteractor()&&f){var Z=tc(M.getImage(f));if(Z&&Lk(Z.scrollable,f,this))return}J._pinching=1,J.startDragging(A);var K=M.getView(),t=M.getZoom(),v=K.getBoundingClientRect(),h=A.touches[0],U=A.touches[1],c={x:(h.clientX+U.clientX)/2-v.left,y:(h.clientY+U.clientY)/2-v.top};c.x-=M.tx(),c.y-=M.ty(),c.x/=t,c.y/=t,J._p=c,J._d=Qk(A)}}},handle_touchend:function(Q){var T=this,X=T.gv,n=T._57I,N=T._data;if(n&&(Yh(n,Di(Q))<=1&&!X.getDataAt(Q)&&X.sm().cs(),T._57I=P),N&&X.handleMouseUp&&X.handleMouseUp(Q,N),T.pendingClickThrough){if(Yh(T.pendingClickThrough,Di(Q))<=1){var N=X.getDataAt(Q);if(N instanceof hf&&N.isClickThroughEnabled()){var k=X.getDataAt(Q,function(q){var z=q.getParent()===N&&X.isSelectable(q,!0);return z});k&&(Q.clickThrough=!0,X.sm().ss(k))}}T.pendingClickThrough=P}},handleWindowTouchEnd:function(Y){this.clear(Y)},handleWindowTouchMove:function($){var X=this,a=X.gv,R=um($);if(1===R){var u=Di($),D=ql(a,u,X._lastClientPoint),r=Yh({x:0,y:0},D);if(X._editing&&(X._beginHistory||(X._beginHistory=1,a.dm().beginTransaction()),a._editing=1,X._78I($)),X._moving){if(!a._moving&&rB&&(K=m[B],!(K in u));B++);u[K],u[K]=v},yf.getTargetCornersOnScreen=function(M,G){if(!G)return null;var q,h=[];if(Zn(G,M)){var w=tj(M,G);q=[{x:w.x,y:w.y},{x:w.x+w.width,y:w.y},{x:w.x+w.width,y:w.y+w.height},{x:w.x,y:w.y+w.height}]}else{if(!G.getCorners)return null;q=G.getCorners()}return q.forEach(function(X){var V=yf.toScreenPosition(M,X);h.push(V.x,V.y)}),h},yf.log=function(){};var Up;yf.updateTipInfo=function(l,k,z){if(z){var m=F.Default.getLogicalPoint(l,k._canvas);m.x+=yf.Icons.TipShiftX,m.y+=yf.Icons.TipShiftY,Up={helperPos:m,text:z,size:z.length}}else Up=P},yf.drawTip=function(U,F){Up&&yf.Icons.DrawIcon(F,U,yf.Icons.TipHelper,Up)};var hr=yf.Inject={_modules:[]};hr.registAsModule=function(b,O){var l={},Y={};for(var w in b){var m=O.prototype[w];l[w]=m}b.getBackup=function(Y){return l[Y]},b.getBackups=function(){return l},Y.doInject=function(){for(var _ in b)"getBackup"!==_&&(O.prototype[_]=b[_])},Y.undoInject=function(){for(var s in b)"getBackup"!==s&&(O.prototype[s]=l[s])},hr._modules.push(Y)},hr.doInject=function(M){for(var T,F=hr._modules,s=0,l=F.length;l>s;s++)T=F[s],T.doInject(M)},hr.undoInject=function(b){for(var H,Y=hr._modules,m=0,t=Y.length;t>m;m++)H=Y[m],H.undoInject(b)};var aq=F.graph.EditInteractor=function($){var g=this,O=U.createElement("canvas");O.className="editCanvas",O.style.position="absolute",g._uuid=F.Math.generateUUID(),g._styleMap={},g._canvas=O,g._context=O.getContext("2d"),aq.superClass.constructor.call(g,$),this._editDetail=!1,yf.setAntialias(g._context,!1),g._subModules=g.initSubModule(),g._gridGuide=new yf.Guide.Grid(g),g._rectGuide=new yf.Guide.Rect(g),g._hoverGuide=new yf.Guide.Hover(g)},_d=aq;F.Default.def(aq,F.graph.Interactor,{ms_edit:1,ms_fire:1}),$.defineProperties(aq.prototype,{editDetail:{get:function(){var R=!!this._editDetail;return R},set:function(v){var e=this,X=e._editDetail;X!==v&&(e._editDetail=v,e.gv._editing=v,e.fp("editDetail",X,v),e.fp("pointsEditingMode",X,v),e.fi({kind:v?"beginEditPoints":"endEditPoints"}))}},gvEditing:{get:function(){return this.gv._editing},set:function(I){(!this._editDetail||I)&&(this.gv._editing=I,I||(this.editDetail=!1))}},editing:{get:function(){return this._editing},set:function(F){this._editing=F,this.gvEditing=F}},editingModule:{get:function(){return this._editMod}},pointsEditingMode:{get:function(){return this.editDetail},set:function(c){var f=this;f.editDetail!==c&&(c?f._tryEnterEditDetailMode():f._tryQuitEditDetailMode())}},gridEnabled:{get:function(){var v=this._gridEnabled;if(!v)return!1;var O=this.gv;return O?!0:!0},set:function(w){w!==this._gridEnabled&&(this._gridEnabled=w,this._42())}},alignmentGuideEnabled:{get:function(){return this._agEnabled},set:function(M){M!==this._agEnabled&&(this._agEnabled=M,this._42())}},gridGuide:{get:function(){return this._gridGuide}},rectGuide:{get:function(){return this._rectGuide}},hoverGuide:{get:function(){return this._hoverGuide}}}),aq.prototype.initSubModule=function(){var v=this;return[new yf.Anchor(v),new yf.RotateX(v),new yf.MoveDummy(v),new yf.Rect(v),new yf.Curve(v),new yf.MoveHelper(v)]},aq.prototype.getSubModule=function(E){var j,n,x,k=this._subModules;for(n=0,x=k.length;x>n;n++)if(j=k[n],j.catalog===E)return j},aq.prototype.invokeSubModule=function(P,s){for(var t,C,B,R=this,T=R._subModules,j=Array.prototype.slice.call(arguments,2),X=0,J=T.length;J>X;X++)if(t=T[X],C=t[P],C&&(B=C.apply(t,j),B!=m&&s))return t},aq.prototype.invokeSubModuleInverse=function(z,l){var w=this,O=w._subModules;if(O)for(var o,j,e,U=Array.prototype.slice.call(arguments,2),F=O.length-1;F>=0;F--)if(o=O[F],j=o[z],j&&(e=j.apply(o,U),e!=m&&l))return o},aq.prototype.setUp=function(){yf.log("setUp");var y=this,U=y.gv,K=U.getView(),A=y._canvas;aq.superClass.setUp.call(y),U.setEditInteractor(y),U._79O?K.insertBefore(A,U._79O):K.appendChild(A),yf.startEdit(U),y.invokeSubModule("setUp"),U.dm().mm(y._onDataModelChanged,y),U.dm().md(y._onDataPropertyChanged,y)},aq.prototype.tearDown=function(){yf.log("tearDown");var w=this,I=w.gv,S=I.getView();w._resetCustomCursorStyle(),aq.superClass.tearDown.call(w),I.dm().umm(w._onDataModelChanged,w),I.dm().umd(w._onDataPropertyChanged,w),I.setEditInteractor(null),S.removeChild(w._canvas),w._drawTimer&&(Nq(w._drawTimer),w._drawTimer=null),yf._46O(I),w.invokeSubModule("tearDown")},aq.prototype._onDataModelChanged=function(s){var J=this;("clear"===s.kind||"remove"===s.kind&&J.editDetail&&s.data===J.getSubModule("Curve").target)&&(J.editDetail=!1,J._42())},aq.prototype._onDataPropertyChanged=function(S){var o=this;if(o.editDetail){var Z=o.getSubModule("Curve"),T=S.data;T===Z.target&&(T._writing||Z._handleDataChanged(S))}},aq.prototype.clear=function(){yf.log("clear")},aq.prototype.redraw=function(){this._42()},aq.prototype._42=function(){var x=this;x._drawTimer||(x._drawTimer=Zr(function(){x._drawTimer=null,x.drawImpl()},0))},aq.prototype.drawImpl=function(){var G;for(G in{_42:!0})break;return function(){var m=this,Y=m._canvas,l=m.gv,L=l.getWidth(),V=l.getHeight(),N=m._context,h=F.Default.getInternal(),E=t.devicePixelRatio;(Y.width!==L||Y.height!==V)&&h.setCanvas(Y,L,V,E),N.clearRect(0,0,Y.width,Y.height);var Q=m._getValidSelection();N.save(),N.scale(E,E),m._gridGuide._42(),m.invokeSubModuleInverse(G,!1,N,l,Q),m._rectGuide._42(),m._hoverGuide._42(),N.restore()}}(),aq.prototype._getValidSelection=function(){var I=this,q=I.gv,m=q.sm().getSelection(),R=[];return m.each(function(h){q.isVisible(h)&&q.isEditable(h)&&R.push(h)}),R},aq.prototype.handle_touchmove=function(n){return this.handle_mousemove(n)},aq.prototype.handle_mousemove=function(R){if(!F.Default.isDragging()){var h=this;if((h.editDetail||!Tq()&&!kq(R))&&!h.gv._externalEditing){if(h.gvEditing=!1,h._checkEdit(R))h.gvEditing=!0;else{if(!h.getStyle("hoverGuideVisible"))return;h.hoverData=h.gv.getDataAt(R)}h._42()}}},aq.prototype.handle_touchstart=function(L){return this.handle_mousedown(L)},aq.prototype.handle_mousedown=function(E){Nj(E);var z=this;if((z.editDetail||!Tq()&&!kq(E))&&!z.gv._externalEditing){if(De(E)&&!E.clickThrough){if(z.editDetail){if(z._tryQuitEditDetailMode(E))return}else if(z._tryEnterEditDetailMode())return;z.gv.dm().beginTransaction();var j=z.invokeSubModule("handleDoubleClick",!0,E);if(z.gv.dm().endTransaction(),j)return}var H=z._checkEdit(E);H&&(z._downPosition=z._getLogicalPoint(E),z.gv.dm().beginTransaction(),H.startEdit(z,E),z.editing=!0)}},aq.prototype._checkEdit=function(S){var g=this,V=g.gv,D=g._getLogicalPoint(S),k=g.invokeSubModule("check",!0,V,S,D)||null;return g._editMod=k,k},aq.prototype.handleWindowTouchMove=function(J){return this.handleWindowMouseMove(J)},aq.prototype.handleWindowMouseMove=function(r){var b=this,u=b._downPosition;if(u){var G=b._getLogicalPoint(r);if(G.distanceTo(u)X;X++){var x=w[X],q=Ub(d,K,0,x.offsetX||0,x.offsetY||0,x.x,x.y);q=yf.toScreenPosition(d,q),q.isAttach=k.attach===X,yf.Icons.DrawIcon(U,o,yf.Icons.AttachPoint,q)}}},aq.prototype._resetCustomCursorStyle=function(){var g=this;if(g._customStyle){var p=this.gv.getView();p.classList&&p.classList.remove&&p.classList.remove(g._customStyle),g._customStyle=null}},aq.prototype._setRotateCursor=function(N){var Q=this,i=Q._cursorFactory;i||(i=Q._cursorFactory=new yf.CursorFactory(Q));var f=i.getRotateCursor(N),M=Q.gv.getView();Q._resetCustomCursorStyle(),Q._customStyle=f,M.classList&&M.classList.add&&M.classList.add(f)};var Jc=yf.Group=function(n){var F=this;F._entities=n,F._64O=0,F._position={x:0,y:0},F._scale={x:1,y:1},F._anchor={x:.5,y:.5},F._anchor2={x:.5,y:.5}};Jc.prototype={},Jc.prototype.constructor=Jc;var xs=null,ph=null;Jc.findOrCreateGroup=function(J,F){if(ph===F&&xs&&xs.checkIsMe(J))return xs;ph=F;var v=new yf.Group(J);return v.getKeyOb()?(xs=v,v):void 0},Jc.prototype.checkIsMe=function(K){var i=this._entities;if(i.length!==K.length)return!1;var j,T={},U=K.length;for(j=0;U>j;j++)T[K[j]._id]=!0;for(j=0;U>j;j++)if(!T[i[j]._id])return!1;return!0},Jc.prototype.getRotation=function(){return this._64O},Jc.prototype.getPosition=function(){return this._position},Jc.prototype.getAnchor=function(){return this._anchor},Jc.prototype.getWidth=function(){return this._width},Jc.prototype.getScale=function(){return this._scale},Jc.prototype.getSize=function(){return{width:this._width,height:this._height}},Jc.prototype.getHeight=function(){return this._height},Jc.prototype.getKeyOb=function(){for(var D=this._entities,t=D.length-1;t>=0;t--){var Y=D[t];if(this.isNode(Y))return Y}},Jc.prototype.getAnchor2=function(){var I=this,V=I.rotateCenter;if(V)return V;var A=I.getKeyOb();if(!A)return I._anchor;var Y=I._anchor2,v=A.getMatrix();return v.tf({x:A.getWidth()*(Y.x-A.getAnchor().x),y:A.getHeight()*(Y.y-A.getAnchor().y)})},Jc.prototype.setAnchor2=function(H,R){var U=this,J=U.getKeyOb();if(J){var n,Y=J.getMatrix();n="number"==typeof H?{x:H,y:R}:H;var x=Y.tfi(n);U._anchor2={x:J.getAnchor().x+x.x/J.getWidth(),y:J.getAnchor().y+x.y/J.getHeight()}}},Jc.prototype.setRotation=function(){},Jc.prototype.beginRotate=function(S){this.rotateCenter=S.pos,this.rotateMode=S.groupRotateMode},Jc.prototype.endRotate=function(){delete this.rotateCenter,delete this.rotateMode},Jc.prototype.addRotation=function(v,X,G){return"batch"===X?this._addRotationInBatchMode(v,G):"block"===X?this._addRotationInBlockMode(v,G):void 0},Jc.prototype._addRotationInBlockMode=function(T,J){var k=this,v=k.rotateCenter||k.getPosition();k._entities.forEach(function(e){if(k.isNode(e)&&(!J||J(e))){var n=e.getMatrix();n.translate(-v.x,-v.y),n.rotate(T),n.translate(v.x,v.y);var b=Math.sign(e.getScale().x);e.setRotation(Of(n.b*b,n.a*b)),e.setPosition(n.tx,n.ty)}})},Jc.prototype._addRotationInBatchMode=function(q,T){var z=this,Q=z._anchor2;z._entities.forEach(function(N){if(z.isNode(N)&&(!T||T(N))){var I=N.getAnchor(),Z=N.getMatrix(),v=Z.tf({x:N.getWidth()*(Q.x-I.x),y:N.getHeight()*(Q.y-I.y)}),s=new yf.Math.Matrix2d;s.set(Z.a,Z.b,Z.c,Z.d,Z.tx,Z.ty),s.translate(-v.x,-v.y),s.rotate(q),s.translate(v.x,v.y);var o=Math.sign(N.getScale().x);N.setRotation(Of(s.b*o,s.a*o)),N.setPosition(s.tx,s.ty)}})},Jc.prototype.setPosition=function(h){var p,L,a,B,T=this,$=T._position,V=h.x-$.x,F=h.y-$.y,Z=T._entities;for(L=0,a=Z.length;a>L;L++)p=Z[L],$n(p)&&(B=p.getPosition(),p.setPosition(B.x+V,B.y+F));T._position=h},Jc.prototype.setScale=function(T,M){var O=this,D=T/O._scale.x,u=M/O._scale.y;O._adjustChildScaleOrSize(D,u,"size"),O._scale={x:T,y:M}},Jc.prototype.getRect=function(){var E=this,H=E._position,z=E._width,o=E._height;return{x:H.x-z/2,y:H.y-o/2,width:z,height:o}},Jc.prototype.setSize=function(m,w){var F=this,m=Math.max(1,m),w=Math.max(1,w),H=m/F._width,r=w/F._height;F._adjustChildScaleOrSize(H,r,"size"),F._width=m,F._height=w},Jc.prototype._adjustChildScaleOrSize=function(b,L,R){var O,c,d,w,P,G,J,B,j,V,z,k,n,N,Q=this,X=Q._position,a=Q._entities,u=new yf.Math.Matrix2d;for(c=0,d=a.length;d>c;c++)if(O=a[c],Q.isNode(O)){if(w=O.getPosition(),P=O.getRotation(),G=O.getWidth(),J=O.getHeight(),B=O.getScale(),z=B.x*G,k=B.y*J,u.identity().scale(z,k).rotate(P).translate(w.x,w.y).translate(-X.x,-X.y).rotate(-Q._64O),P=Of(u.b*Math.sign(z),u.a*Math.sign(z)),u.scale(b,L),j=Math.cos(P),V=Math.sin(P),Math.abs(j)<.001?(n=u.b/V,N=-u.c/V):(n=u.a/j,N=u.d/j),"scale"===R)O.setScale(n/G,N/J);else if("size"===R){var $=n/B.x,y=N/B.y;O.setScale(Wr(n)*Math.abs(B.x),Wr(N)*Math.abs(B.y)),O.setSize(Math.max(.1,Math.abs($)),Math.max(.1,Math.abs(y)))}u.rotate(Q._64O).translate(X.x,X.y),O.setPosition(u.tx,u.ty)}},Jc.prototype.getMatrix=function(){var v=this,d=v._position,m=F.Default.getInternal(),k=v._scale;return new m.Mat(v._64O,d.x,d.y,k.x,k.y)},Jc.prototype.toGlobal=function(C){return this.getMatrix().tf(C)},Jc.prototype.getCorners=function(){var c=this,J=c._width,w=c._height,Q=c._anchor,u=-J*Q.x,j=-w*Q.y,F=c.getMatrix();return[F.tf(u,j),F.tf(u,j+w),F.tf(u+J,j+w),F.tf(u+J,j)]},Jc.prototype.calcInfo=function(){var I,p,z,R,T,H,q=this,S=[],a=q._entities,M=q._64O;for(R=0,T=a.length;T>R;R++)H=a[R],q.isNode(H)&&H.getCorners&&S.push.apply(S,H.getCorners());if(S.length){var e=Math.cos(-M),c=Math.sin(-M),$=1/0,t=-1/0,r=1/0,X=-1/0;for(R=0,T=S.length;T>R;R++)z=S[R],I=z.x,p=z.y,z.x=e*I-c*p,z.y=c*I+e*p,$=Math.min($,z.x),t=Math.max(t,z.x),r=Math.min(r,z.y),X=Math.max(X,z.y);q._width=(t-$)/q._scale.x,q._height=(X-r)/q._scale.y,e=Math.cos(M),c=Math.sin(M);var n=q._anchor;I=$+(t-$)*n.x,p=r+(X-r)*n.y,q._position={x:e*I-c*p,y:c*I+e*p}}},Jc.prototype.isNode=function(o){return $n(o)?Zn(o)?o.size()?!1:!0:!0:!1},Jc.prototype._42=function(d,r,H){var s,a,x,S,w,X,v,p,h=this,J=h._entities,_=h.rotateMode;for("batch"===_&&(p=h.getKeyOb()),s=0,a=J.length;a>s;s++)x=J[s],h.isNode(x)&&(X=x.getRect(),S=yf.toScreenPosition(H,{x:X.x,y:X.y}),w=yf.toScreenPosition(H,{x:X.x+X.width,y:X.y+X.height}),v={min:S,max:w},x===p&&(v.isKeyOb=!0),yf.Icons.DrawIcon(d,r,yf.Icons.GroupSubEntityRect,v)) };var js=yf.CurveActiving=function(p,A){this._curve=p,this._interactor=p._interactor,this.silent=!0;for(var t in A)this[t]=A[t];delete this.silent};js.prototype={},js.prototype.constructor=js,$.defineProperties(js.prototype,{point:{get:function(){return this._point},set:function(g){var u=this;u._point=g,u.editingCtrl||u.silent||u._firePointChange()}},pairs:{get:function(){return this._pairs},set:function(G){var X=this;X._pairs=G,X.editingCtrl&&!X.silent&&X._firePointChange()}}}),js.prototype._firePointChange=function(){var q=this,R=q.getCurrentEditingPoint(),y=q._interactor;if(!R)return y.fi({kind:"selectPoint"}),void 0;var E=this._curve.target;if(E){var x=yf.getDataMatrix(E).invert(),W=R.e;R=x.apply(yf.toWorldPosition(y.gv,R)),R.e=W;var V=q._lastFirePoint;V&&Math.abs(R.x-V.x)<1e-5&&Math.abs(R.y-V.y)<1e-5&&(R.e==m&&V.e==m||Math.abs(R.e-V.e)<1e-5)||(q._lastFirePoint=R,y.fi({kind:"selectPoint",x:R.x,y:R.y,e:R.e}))}},js.prototype.dispose=function(){this._interactor.fi({kind:"selectPoint"})},js.prototype.getCurrentEditingPoint=function(){var H=this,i=H.editingCtrl;if(i){var T=H.pairs;if(T){var d=T[i.pairId];if(d){var E=d[i.type];if(E)return E}}}return H._point};var mo=yf.CursorFactory=function(j){var z=this;z._interactor=j,z._rotateCursorStyles={}};mo.prototype={},mo.prototype.constructor=mo,mo.prototype.getRotateCursor=function(O){var U=this;0>O&&(O+=2*Math.PI);var d=U._interactor,b=d.getStyle("rotateCursorSize"),w=d.getStyle("rotateCursorRound"),E=Math.round(180*(O/Math.PI)/w);E*w>=360&&(E=0);var t=U._rotateCursorStyles,C="htCustomRotateStyle_"+b+"_"+w+"_"+E;return t[C]||(U._produceRotateCursor(C,b,w,E),t[C]=!0),C},mo.prototype._produceRotateCursor=function(s,i,j,A){var N=this;N._interactor;var r=N._canvas;r||(r=N._canvas=U.createElement("canvas"));var J=t.devicePixelRatio;r.width=r.height=i*J,r.style.width=r.style.height=i+" px";var X=r.getContext("2d");yf.setAntialias(X,!1),X.scale(J,J);var G,Y,o,p,I,R=Math.round(i/2),g=""+R+" "+R+",auto !important;",E=4;G=Math.PI/180*A*j,X.clearRect(0,0,i,i),X.save(),X.scale(i/32,i/32),X.translate(16,15),X.rotate(G+Math.PI/2),X.beginPath(),X.moveTo(-8,0),X.lineTo(-8,E),X.lineTo(-8+E,E),X.moveTo(8,0),X.lineTo(8,E),X.lineTo(8-E,E),X.moveTo(-8,E),X.quadraticCurveTo(0,-6,8,E),X.restore(),X.lineCap="round",X.lineJoin="miter",X.strokeStyle="white",X.lineWidth=4,X.stroke(),X.strokeStyle="black",X.lineWidth=2,X.stroke(),Y=JSON.stringify(r.toDataURL()),p="cursor:url("+Y+")"+g,1!==J&&(o='',p+="cursor:url(data:image/svg+xml;base64,"+btoa(o)+")"+g,p+="cursor:-webkit-image-set(url("+Y+")"+J+"x,url("+Y+")1x)"+g),I=U.createElement("style"),I.textContent="body."+s+" *, ."+s+"{"+p+"}",U.head.appendChild(I)};var Sd=yf.Guide.Grid=function(q){var B=this;B._interactor=q,B._alignmentGuideId=0,B._xAlignmentGuide=[],B._yAlignmentGuide=[]};Sd.prototype={},Sd.prototype.constructor=Sd,$.defineProperties(Sd.prototype,{gridBlockSize:{get:function(){var u=this;return u._gridBlockSize||u._interactor.getStyle("gridBlockSize")},set:function(h){this._gridBlockSize=h,this._interactor._42()}},gridThickLinesEvery:{get:function(){var z=this;return z._gridThickLinesEvery||z._interactor.getStyle("gridThickLinesEvery")},set:function(D){this._gridThickLinesEvery=D,this._interactor._42()}},gridEnabled:{get:function(){var x=this,Q=x._interactor;return Q.gridEnabled&&x.isValidGrid()}}}),Sd.prototype._42=function(){var l=this,s=l._interactor;l.gridEnabled&&l.drawGrid(),s.alignmentGuideEnabled&&l.drawAlignmentGuide()},Sd.prototype.makeMatrix=function(){var K=this,s=K._interactor.getStyle("gridAngle"),R=K._interactor.getStyle("gridRotation"),y=new yf.Math.Matrix2d,L=Math.sin(s),O=Math.cos(s);return y.set(1,0,O,L,0,0),y.rotate(R),y},Sd.prototype.isValidGrid=function(){var Q=this,c=Math.PI,K=Q._interactor,V=K.gv;if(V._zoomM||M>180-n?!1:!0},Sd.prototype.drawAlignmentGuide=function(){var q=this,n=q._interactor,r=n.gv,z=n._canvas,Q=n._context,l=z.width,X=z.height,k=r.tx(),W=r.ty(),e=r._zoom;Q.beginPath(),Q.strokeStyle=n.getStyle("gridAlignmentGuideColor"),Q.lineWidth=1,q._xAlignmentGuide.forEach(function(P){var B=P.p*e+k;Q.moveTo(B,0),Q.lineTo(B,X)}),q._yAlignmentGuide.forEach(function(M){var h=M.p*e+W;Q.moveTo(0,h),Q.lineTo(l,h)}),Q.stroke()},Sd.prototype.drawGrid=function(){function D(T,q,W,o){var S=yf.toScreenPosition(z,w.apply({x:T,y:q})),G=yf.toScreenPosition(z,w.apply({x:W,y:o}));i.moveTo(S.x,S.y),i.lineTo(G.x,G.y)}var l=this,R=l._interactor,k=l.gridBlockSize,C=l.gridThickLinesEvery,q=R.getStyle("gridThickColor"),a=R.getStyle("gridLightColor"),z=R.gv,o=R._canvas,i=R._context,m=o.width,y=o.height,w=l.makeMatrix(),H=w.applyInverse(yf.toWorldPosition(z,{x:0,y:0})),T=w.applyInverse(yf.toWorldPosition(z,{x:m,y:0})),U=w.applyInverse(yf.toWorldPosition(z,{x:0,y:y})),c=w.applyInverse(yf.toWorldPosition(z,{x:m,y:y})),$=Math.min(H.x,T.x,U.x,c.x),B=Math.max(H.x,T.x,U.x,c.x),t=Math.min(H.y,T.y,U.y,c.y),x=Math.max(H.y,T.y,U.y,c.y);m=B-$,y=x-t;var s=Math.ceil($/k),X=Math.floor(B/k),v=Math.ceil(t/k),G=Math.floor(x/k);z.tx(),z.ty(),z._zoom;var u,P,n;for(i.save(),i.lineWidth=1,i.beginPath(),i.strokeStyle=q,n=Math.ceil(s/C)*C;X>=n;n+=C)u=n*k,D(u,t,u,x);for(n=Math.ceil(v/C)*C;G>=n;n+=C)P=n*k,D($,P,B,P);for(i.stroke(),i.beginPath(),i.strokeStyle=a,n=s;X>=n;n++)0!==n%C&&(u=n*k,D(u,t,u,x));for(n=v;G>=n;n++)0!==n%C&&(P=n*k,D($,P,B,P));i.stroke(),i.restore()},Sd.prototype.getAlignmentGuides=function(){var c=this;return{x:c._xAlignmentGuide,y:c._yAlignmentGuide}},Sd.prototype.addAlignmentGuide=function(_,Z,B){var a=this,G="x"===_?a._xAlignmentGuide:a._yAlignmentGuide,B=B?B:++a._alignmentGuideId,r={p:Z,id:B};if(G.length){var b=a._findClosestAlignmentGuide(r.p,G);b.dis<0?G.splice(b.index+1,0,r):G.splice(b.index,0,r)}else G.push(r);return a._interactor._42(),B},Sd.prototype.findClosest=function(b,A,H){var J=this,Q=J._interactor,G=Q.gv;H&&(b=yf.toWorldPosition(G,b));var N,h,D,l=1/0,a=1/0,j=b.x,z=b.y;if(J.gridEnabled){var X=J.gridBlockSize,s=J.makeMatrix(),d=s.applyInverse(b);d=s.apply({x:Math.round(d.x/X)*X,y:Math.round(d.y/X)*X}),l=d.x-j,a=d.y-z,D=!0}if(Q.alignmentGuideEnabled&&(N=J._findClosestAlignmentGuide(j,J._xAlignmentGuide).dis,h=J._findClosestAlignmentGuide(z,J._yAlignmentGuide).dis,Math.abs(N)1;)o=Math.floor((l+N)/2),$[o].pP;P++)for(G=0===P?U._xAlignmentGuide:U._yAlignmentGuide,V=0,S=G.length;S>V;V++)if(R=G[V],R.id===p)return G.splice(V,1),U._interactor._42(),{axis:0===P?"x":"y",position:R.p};return!1},Sd.prototype.adjustAlignmentGuide=function(u,h){var Q=this,P=Q.removeAlignmentGuide(u);return P?(Q.addAlignmentGuide(P.axis,h,u),!0):!1};var Am=yf.Guide.Rect=function(w){var Q=this;Q._interactor=w};Am.prototype={},Am.prototype.constructor=Am,Am.prototype.gatherRects=function(){var k,I,g,G,E=this,d=E._interactor.gv,q=[],X=[],u={x:q,y:X},o={},D=d.getDataModel(),j=D.a("width"),O=D.a("height");j&&O&&(k=0,I=0,g=j,G=O,q.push({node:D,type:0,p:k},{node:D,type:1,p:k+g/2},{node:D,type:2,p:k+g}),X.push({node:D,type:0,p:I},{node:D,type:1,p:I+G/2},{node:D,type:2,p:I+G}),o[D._id||0]={x:k,y:I,width:g,height:G}),D.each(function(c){if($n(c)&&!d.isSelected(c)&&d.isVisible(c)&&d.isValidGuideLineSource(c)){var w=!1;if(d.sm().getSelection().each(function(X){w||(c.isHostOn(X)?w=!0:c.isDescendantOf(X)&&(w=!0))}),!w){var K=c.getRect();k=K.x,I=K.y,g=K.width,G=K.height,q.push({node:c,type:0,p:k},{node:c,type:1,p:k+g/2},{node:c,type:2,p:k+g}),X.push({node:c,type:0,p:I},{node:c,type:1,p:I+G/2},{node:c,type:2,p:I+G}),o[c._id]=K}}}),q.sort(function(q,_){return q.p-_.p}),X.sort(function(u,z){return u.p-z.p}),E._grid=u,E._87I=o},Am.prototype.gatherLines=function(q,r,T){var v,p,L,E,u,P,N,S,K,o,m,_,Y=this,Q=[Y.findClosest({x:q.x,y:q.y},r),Y.findClosest({x:q.x+q.w/2,y:q.y+q.h/2},r),Y.findClosest({x:q.x+q.w,y:q.y+q.h},r)],H={},C=Y._87I;T=T||255;var I,f;for(Y._guideLine=[],v=0;2>v;v++)for(H={},0===v?(E="y",S=q.x,K=S+q.w):(E="x",S=q.y,K=S+q.h),p=0;3>p;p++)u=Q[p],u&&isFinite(u[E])&&(I=1<<3*v+p,T&I&&(P=u[E+"Line"],N=P.node,f=N._id||0,H[f]||(H[f]=!0,_=C[f],"y"===E?(o=_.x,m=_.x+_.width):(o=_.y,m=_.y+_.height),L=P.p,Y._guideLine.push({type:E,a:S,b:K,c:o,d:m,p:L,center:1===P.type}))))},Am.prototype._binarySearchClosest=function(q,O){if(!O.length)return{dis:1/0};for(var S,c=0,D=O.length-1;D-c>1;)S=Math.floor((c+D)/2),O[S].pb;b++)f=y[b],v=f.type,M=f.p,z=f.a,i=f.b,h=f.c,_=f.d,P=Math.min(z,h),E=Math.max(i,_),"x"===v?(Z=M*l+w,T=P*l+N,A=Z,Y=E*l+N):(Z=P*l+w,T=M*l+N,A=E*l+w,Y=T),yf.Icons.DrawIcon(x,s,yf.Icons.MoveLineGuide,{rect:[Z,T,A,Y],center:f.center}),_>=z&&i>=h||(P=z>_?_:i,E=z>_?z:h,X=E-P,"x"===v?(f.center2center||(Z-=c,A=Z),T=P*l+N,Y=E*l+N,W=yf.Icons.MoveLineGuideDistanceV):"y"===v&&(f.center2center||(T-=c,Y=T),Z=P*l+w,A=E*l+w,W=yf.Icons.MoveLineGuideDistanceH),yf.Icons.DrawIcon(x,s,W,{x0:Z,y0:T,x1:A,y1:Y,dis:X}))}}},Am.prototype.clear=function(){this._guideLine=null};var Vm=yf.Guide.Hover=function(j){var v=this;v._interactor=j};Vm.prototype={},Vm.prototype.constructor=Vm,$.defineProperties(Vm.prototype,{}),Vm.prototype._42=function(){var A=this._interactor;if(A.getStyle("hoverGuideVisible")&&!A.gvEditing){var g=A.hoverData,P=A.gv;if(!$n(g)||P.isSelected(g))return A.hoverData=null,void 0;var X=tj(P,g),w=yf.toScreenPosition(P,{x:X.x,y:X.y}),t=yf.toScreenPosition(P,{x:X.x+X.width,y:X.y+X.height});yf.Icons.DrawIcon(A,A._context,yf.Icons.HoverDataRect,{min:w,max:t,color:A.getStyle("hoverGuideColor")||A.getStyle("baseColor"),borderWidth:A.getStyle("hoverGuideBorderWidth")||1,borderPattern:A.getStyle("hoverGuideBorderPattern")||[1,4]})}},yf.DefaultStyleMap={baseColor:"rgb(51,153,255)",pointSize:[24,9],checkSize:7,rotateCheckSize:10,moveSensitivity:10,moveDummyThreshold:32,moveDummyPosition:[0,0,-16,-16],moveDummyLineExtraShift:[-32,0],moveDummySensitivity:16,keepAspectRatio:!1,rotateRound:Math.PI/2,shiftRotateRound:Math.PI/12,rotateSensitivity:Math.PI/60,rotateAsClock:!1,rotateTipVisible:!0,shiftLineRotateRound:Math.PI/4,anchorMovable:!0,anchorVisible:!0,anchorHideThreshold:25,anchorOutsideVisibleThreshold:.25,anchorRound:.25,anchorSensitivity:.02,smartGuideThreshold:8,curveIntersectSize:5,curvePointIntersectSize:8,edgeHostDetectPerFrame:!0,edgeHostEdgeMaxDistance:12,edgeHostEdgeHighlighColor:"#5d5d5d",edgeHostPointHighlighColor:"red",edgeHostHighlighPeriod:1500,edgeElevationEditable:!1,attachThreshold:25,guideLineVisible:!0,guideLineTextSpacing:0,hoverGuideVisible:!1,hoverGuideColor:null,gridBlockSize:40,gridThickLinesEvery:10,gridThickColor:"#5d5d5d",gridLightColor:"#d0d0d0",gridZoomThreshold:.25,gridAlignmentGuideColor:"#ff0000",gridAngle:Math.PI/2,gridRotation:0,groupRotateModeDefault:"block",groupRotateModeKey:["ctrlKey","metaKey"],rotateCursorSize:32,rotateCursorRound:45,tipTextColor:"#ffffff",tipBackground:"#333333",curveHighlightColor:"#30599e",rectPointBackground:"white",rectPointBorderColor:"#666666",rectPointShadowColor:"rgba(0,0,0,0.35)",shapeCtrlPointBackground:"white",shapeCtrlPointBorderColor:null,shapeCtrlPointHighlightBorder:null,shapeHighlighPointBackground:"#30599e",curveElevationVisible:!0,curveElevationIntersectSize:8,curveElevationGuideShift:[20,0],curveTipVisible:!0,connectGuideVisible:!0,connectGuideShift:[1,.25,8,0],connectGuideIntersectSize:8,connectGuideGarbageIntersectsize:25,connectGuideGarbageShift:[1,1,-48,-48]};var dj=yf.Icons={},bm=1e4,lf=null,Cp=yf.DefaultStyleMap.baseColor,pg="rgb(183,232,135)",Kp="rgb(255,204,153)",Nf=6;F.Default.setImage("Icons.RectPoint",{width:Nf,height:Nf,comps:[{type:"rect",background:"rgb(247,247,247)",borderWidth:1,borderColor:{func:function(){return Cp}},rect:[0,0,Nf,Nf]}]}),dj.GroupSubEntityRect={comps:[{type:"shape",points:{func:function(){var y=dj.GroupSubEntityRect.data;if(!y)return[];var f=y.min,P=y.max;return[f.x,f.y,f.x,P.y,P.x,P.y,P.x,f.y]}},segments:[1,2,2,2,5],background:null,borderWidth:1,borderColor:{func:function(){return dj.GroupSubEntityRect.data.isKeyOb?Cp:Cp}}}]};var eh=4;dj.HoverDataRect={comps:[{type:"shape",points:{func:function(){var L=dj.HoverDataRect.data;if(!L)return[];var r=L.min,l=L.max,M=eh;return r.x-=M,r.y-=M,l.x+=M,l.y+=M,[r.x,r.y,r.x,l.y,l.x,l.y,l.x,r.y]}},segments:[1,2,2,2,5],background:null,borderWidth:{func:function(){return dj.HoverDataRect.data.borderWidth}},borderColor:{func:function(){return dj.HoverDataRect.data.color}},borderCap:"butt",borderPattern:{func:function(){return dj.HoverDataRect.data.borderPattern}}}]},dj.Line={comps:[{type:"image",name:"Icons.RectPoint",rect:{func:function(){return[[dj.Line.data.P1.x,dj.Line.data.P1.y],Nf,Nf]}}},{type:"image",name:"Icons.RectPoint",rect:{func:function(){return[[dj.Line.data.P2.x,dj.Line.data.P2.y],Nf,Nf]}}}]},dj.NodeHoverGuide={comps:[{type:"shape",points:{func:function(){return dj.NodeHoverGuide.data}},segments:[1,2,2,2,5],background:null,borderWidth:1,borderColor:"#3399FF"}]},dj.Rect={comps:[{type:"shape",points:{func:function(){var u=dj.Rect.data;if(!u)return[];var k=u.LT,E=u.LB,I=u.RB,_=u.RT;return[k.x,k.y,E.x,E.y,I.x,I.y,_.x,_.y]}},segments:[1,2,2,2,5],background:null,borderWidth:1,borderColor:{func:function(){return Cp}}},{type:"image",name:"Icons.RectPoint",rotation:{func:function(){return dj.Rect.data.rotation}},rect:{func:function(){return[[dj.Rect.data.LT.x,dj.Rect.data.LT.y],Nf,Nf]}}},{type:"image",name:"Icons.RectPoint",rotation:{func:function(){return dj.Rect.data.rotation}},rect:{func:function(){return[[dj.Rect.data.LB.x,dj.Rect.data.LB.y],Nf,Nf]}}},{type:"image",name:"Icons.RectPoint",rotation:{func:function(){return dj.Rect.data.rotation}},rect:{func:function(){return[[dj.Rect.data.RB.x,dj.Rect.data.RB.y],Nf,Nf]}}},{type:"image",name:"Icons.RectPoint",rotation:{func:function(){return dj.Rect.data.rotation}},rect:{func:function(){return[[dj.Rect.data.RT.x,dj.Rect.data.RT.y],Nf,Nf]}}},{type:"image",name:"Icons.RectPoint",rotation:{func:function(){return dj.Rect.data.rotation}},visible:{func:function(){return dj.Rect.data.L?!0:!1}},rect:{func:function(){return[[dj.Rect.data.L.x,dj.Rect.data.L.y],Nf,Nf]}}},{type:"image",name:"Icons.RectPoint",rotation:{func:function(){return dj.Rect.data.rotation}},visible:{func:function(){return dj.Rect.data.R?!0:!1}},rect:{func:function(){return[[dj.Rect.data.R.x,dj.Rect.data.R.y],Nf,Nf]}}},{type:"image",name:"Icons.RectPoint",rotation:{func:function(){return dj.Rect.data.rotation}},visible:{func:function(){return dj.Rect.data.T?!0:!1}},rect:{func:function(){return[[dj.Rect.data.T.x,dj.Rect.data.T.y],Nf,Nf]}}},{type:"image",name:"Icons.RectPoint",rotation:{func:function(){return dj.Rect.data.rotation}},visible:{func:function(){return dj.Rect.data.B?!0:!1}},rect:{func:function(){return[[dj.Rect.data.B.x,dj.Rect.data.B.y],Nf,Nf]}}}]};var fs=16;F.Default.setImage("Icons.Anchor",{width:12,height:12,comps:[{type:"shape",borderWidth:1,borderColor:{func:function(){return Cp}},borderCap:"round",shadowColor:"#1ABC9C",points:[.50928,6,11.49072,6,6,6,6,.50928,6,11.49072]},{type:"circle",borderWidth:1,borderColor:{func:function(){return Cp}},shadowColor:"#1ABC9C",rect:[2.84391,2.84391,6.53697,6.53697]}]}),dj.Anchor={comps:[{type:"image",name:"Icons.Anchor",rect:{func:function(){return[[dj.Anchor.data.POS.x,dj.Anchor.data.POS.y],fs,fs]}}}]},dj.TipShiftX=12,dj.TipShiftY=12;var Fb=[8,28];dj.TipHelper={comps:[{type:"roundRect",rect:{func:function(){return[dj.TipHelper.data.helperPos.x,dj.TipHelper.data.helperPos.y,Fb[0]*dj.TipHelper.data.size,Fb[1]]}},background:{func:function(){return lf.getStyle("tipBackground")}},opacity:.6},{type:"text",text:{func:function(){return dj.TipHelper.data.text}},rect:{func:function(){return[dj.TipHelper.data.helperPos.x,dj.TipHelper.data.helperPos.y,Fb[0]*dj.TipHelper.data.size,Fb[1]]}},color:{func:function(){return lf.getStyle("tipTextColor")}},font:"bold 12px Arial",align:"center"}]};var Qh=7;dj.ShapePoint={comps:[{type:"circle",visible:{func:function(){return!!dj.ShapePoint.data.dynamicVisible}},rect:{func:function(){var c=dj.ShapePoint.data.point,C=dj.ShapePoint.data.size||Qh;return[c,C+10,C+10]}},background:{func:function(){var u=Date.now(),X=dj.ShapePoint.data.dynamicPeriod||1500,R=Math.sin(u%X/X*Math.PI);return"rgba(27,124,22,"+.5*R+")"}},borderWidth:0},{type:"circle",rect:{func:function(){var m=dj.ShapePoint.data.point,R=dj.ShapePoint.data.size||Qh;return[m,R,R]}},background:{func:function(){var F=dj.ShapePoint.data.isEnd;return F?"rgba(27,124,222,0.7)":"#ffffff"}},borderWidth:1,borderColor:{func:function(){return dj.ShapePoint.data.color||Cp}}},{type:"rect",visible:{func:function(){return!!dj.ShapePoint.data.dynamicVisible}},background:"red",borderWidth:0,rotation:Math.PI/4,borderColor:{func:function(){return Cp}},rect:{func:function(){var T=5;return[dj.ShapePoint.data.point,T,T]}}}]},dj.ShapeBgCurve={comps:[{type:"shape",visible:{func:function(){return!!dj.ShapeBgCurve.data.dynamicVisible}},points:{func:function(){return dj.ShapeBgCurve.data.P}},segments:{func:function(){return dj.ShapeBgCurve.data.S}},background:null,borderWidth:6,borderColor:{func:function(){var N=Date.now(),L=dj.ShapeBgCurve.data.dynamicPeriod||1500,H=Math.sin(N%L/L*Math.PI);return"rgba(27,124,22,"+.3*H+")"}}},{type:"shape",points:{func:function(){return dj.ShapeBgCurve.data.P}},segments:{func:function(){return dj.ShapeBgCurve.data.S}},background:null,borderWidth:1,borderColor:{func:function(){return dj.ShapeBgCurve.data.color||Cp}}}]};var Dl=8;dj.ShapeHighlighPoint={comps:[{type:"circle",rect:{func:function(){var Z=dj.ShapeHighlighPoint.data;return[[Z.x,Z.y],Dl,Dl]}},background:{func:function(){return lf.getStyle("shapeHighlighPointBackground")}},borderWidth:0}]};var Oh=10;dj.ShapeHighlighRealPoint={comps:[{type:"circle",rect:{func:function(){var w=dj.ShapeHighlighRealPoint.data;return[[w.x,w.y],Oh,Oh]}},background:"#ffffff",borderWidth:2,borderColor:{func:function(){return Cp}}}]};var Qq=8;dj.ShapeHighlighCtrlPoint={comps:[{type:"shape",points:{func:function(){var L=dj.ShapeHighlighCtrlPoint.data,f=L.x,X=L.y,W=Qq/2;return[f-W,X-W,f-W,X+W,f+W,X+W,f+W,X-W]}},segments:[1,2,2,2,5],borderWidth:2,background:{func:function(){return lf.getStyle("shapeCtrlPointBackground")}},borderColor:{func:function(){return lf.getStyle("shapeCtrlPointBorderColor")||Cp}}}]};var Kr=3;dj.ShapeHighlightCurve={comps:[{type:"shape",points:{func:function(){return dj.ShapeHighlightCurve.data}},segments:[1,4],background:null,borderWidth:Kr,borderColor:{func:function(){return lf.getStyle("curveHighlightColor")}}}]},dj.ShapeGuideLine={comps:[{type:"shape",points:{func:function(){return dj.ShapeGuideLine.data}},background:null,borderWidth:1,borderColor:"rgb(255,204,153)"}]},dj.MoveLineGuide={comps:[{type:"shape",points:{func:function(){return dj.MoveLineGuide.data.rect}},background:null,borderWidth:1,borderColor:{func:function(){return dj.MoveLineGuide.data.center?pg:Kp}}}]};var Wn=5;dj.MoveLineGuideDistanceH={comps:[{type:"shape",points:{func:function(){var L=dj.MoveLineGuideDistanceH.data,G=L.x0,m=L.y0;return[G,m-Wn,G,m+Wn]}},rotation:-Math.PI/4,segments:[1,2],background:null,borderWidth:1,borderColor:Kp},{type:"shape",points:{func:function(){var m=dj.MoveLineGuideDistanceH.data,E=m.x1,j=m.y1;return[E,j-Wn,E,j+Wn]}},rotation:-Math.PI/4,segments:[1,2],background:null,borderWidth:1,borderColor:Kp},{type:"text",text:{func:function(){return Math.round(dj.MoveLineGuideDistanceH.data.dis)}},rect:{func:function(){var P=dj.MoveLineGuideDistanceH.data;return[[(P.x0+P.x1)/2,P.y0-10],20,20]}},color:Kp,font:"12px Arial",align:"center"}]},dj.MoveLineGuideDistanceV={comps:[{type:"shape",points:{func:function(){var k=dj.MoveLineGuideDistanceV.data,S=k.x0,n=k.y0;return[S-Wn,n,S+Wn,n]}},rotation:Math.PI/4,segments:[1,2],background:null,borderWidth:1,borderColor:Kp},{type:"shape",points:{func:function(){var A=dj.MoveLineGuideDistanceV.data,u=A.x1,X=A.y1;return[u-Wn,X,u+Wn,X]}},rotation:Math.PI/4,segments:[1,2],background:null,borderWidth:1,borderColor:Kp},{type:"text",text:{func:function(){return Math.round(dj.MoveLineGuideDistanceV.data.dis)}},rect:{func:function(){var S=dj.MoveLineGuideDistanceV.data;return[[S.x0-10,(S.y0+S.y1)/2],20,20]}},color:Kp,font:"12px Arial",align:"center"}]},F.Default.setImage("Icons.EdgeElevationGuideImage",{width:16,height:16,comps:[{type:"oval",background:"rgb(255,255,255)",borderWidth:1,borderColor:"rgb(138,138,138)",rect:[.5,.5,15,15]},{type:"shape",borderWidth:2,borderColor:"rgb(44,44,44)",borderCap:"round",points:[4,8,8,4,12,8,8,4,8,13],segments:[1,2,2,1,2]}]}),dj.EdgeElevationGuide={comps:[{type:"image",name:"Icons.EdgeElevationGuideImage",rect:{func:function(){var U=dj.EdgeElevationGuide.data,q=U.x,M=U.y,p=lf.getStyle("curveElevationIntersectSize"),P=lf.getStyle("curveElevationGuideShift");return q+=P[0],M+=P[1],[q-p,M-p,2*p,2*p]}}}]},F.Default.setImage("Icons.ConnectGuideBgImage",{width:12,height:12,comps:[{type:"shape",background:"#3399ff",fillRule:"evenodd",shadowColor:"#1ABC9C",rotation:3.14159,points:[6.00001,11.99999,6.00001,11.99999,2.6863,11.99999,1e-5,9.30695,1e-5,5.99999,1e-5,5.99999,1e-5,2.68628,2.69305,-1e-5,6.00001,-1e-5,12.00001,-1e-5,11.99998,12.00001,6.00001,11.99999],segments:[1,2,4,2,4,2,2,2]}]}),F.Default.setImage("Icons.ConnectGuideHeaderImage",{width:12,height:12,comps:[{type:"oval",background:"#3399FF",borderColor:"#3399FF",shadowColor:"#1ABC9C",rect:[0,0,12,12]},{type:"shape",borderWidth:1,borderColor:"rgb(255,255,255)",borderCap:"round",shadowColor:"#1ABC9C",points:[4.76,2.56,8.2,5.98,4.76,9.44]}]}),dj.ConnectGuide={comps:[{type:"image",name:"Icons.ConnectGuideBgImage",rotation:{func:function(){return dj.ConnectGuide.data.rotation}},rect:{func:function(){var e=dj.ConnectGuide.data.connect;e.x,e.y;var B=lf.getStyle("connectGuideIntersectSize");return[[e.x,e.y],2*B,2*B]}}},{type:"image",name:"Icons.ConnectGuideHeaderImage",rect:{func:function(){var J=dj.ConnectGuide.data.cursorPos||dj.ConnectGuide.data.connect,O=lf.getStyle("connectGuideIntersectSize");return[[J.x,J.y],2*O-2,2*O-2]}}},{type:"shape",background:null,borderColor:"#3399ff",borderWidth:2,segments:[1,4],points:{func:function(){var F=dj.ConnectGuide.data.connect,t=dj.ConnectGuide.data.cursorPos||F;return[F.x,F.y,F.x+.5*(t.x-F.x),F.y,t.x+.5*(F.x-t.x),t.y,t.x,t.y]}}}]},F.Default.setImage("Icons.ConnectGuideGarbageImage",{width:48,height:48,comps:[{type:"oval",background:"rgba(0,0,0,0.1)",borderColor:"#979797",shadowColor:"#1ABC9C",rect:[0,0,48,48]},{type:"shape",borderWidth:2,borderColor:"rgb(255,255,255)",borderCap:"round",shadowColor:"#1ABC9C",points:[19.84721,19.69091,19.84721,32.25123]},{type:"shape",borderWidth:2,borderColor:"rgb(255,255,255)",borderCap:"round",shadowColor:"#1ABC9C",points:[24.10371,19.69091,24.10371,32.25123]},{type:"shape",borderWidth:2,borderColor:"rgb(255,255,255)",borderCap:"round",shadowColor:"#1ABC9C",points:[28.15279,19.69091,28.15279,32.25123]},{type:"shape",borderWidth:2,borderColor:"rgb(255,255,255)",borderCap:"round",shadowColor:"#1ABC9C",points:[11.23055,15.22377,36.76945,15.189,19.12302,15.17121,20.94722,11.5228,26.41985,11.5228,28.24406,15.17121]},{type:"rect",borderWidth:2,borderColor:"rgb(255,255,255)",shadowColor:"#1ABC9C",rect:[15.48702,15.22377,17.02595,21.25344]}]}),F.Default.setImage("Icons.ConnectGuideDeletingImage",{width:56,height:56,comps:[{type:"oval",background:"rgba(232,0,0,0.75)",borderColor:"#979797",shadowColor:"#1ABC9C",rect:[0,0,56,56]},{type:"shape",borderWidth:2,borderColor:"rgb(255,255,255)",borderCap:"round",shadowColor:"#1ABC9C",points:[22.67939,27.69091,22.67939,40.25123]},{type:"shape",borderWidth:2,borderColor:"rgb(255,255,255)",borderCap:"round",shadowColor:"#1ABC9C",points:[26.93588,27.69091,26.93588,40.25123]},{type:"shape",borderWidth:2,borderColor:"rgb(255,255,255)",borderCap:"round",shadowColor:"#1ABC9C",points:[30.98497,27.69091,30.98497,40.25123]},{type:"shape",borderWidth:2,borderColor:"rgb(255,255,255)",borderCap:"round",shadowColor:"#1ABC9C",anchorX:0,anchorY:1,rotation:5.65062,points:[14.06272,23.22377,39.60163,23.189,21.9552,23.17121,23.7794,19.5228,29.25203,19.5228,31.07623,23.17121]},{type:"rect",borderWidth:2,borderColor:"rgb(255,255,255)",shadowColor:"#1ABC9C",rect:[18.3192,23.22377,17.02595,21.25344]}]}),dj.ConnectGuideGarbage={comps:[{type:"image",name:{func:function(){var C=dj.ConnectGuideGarbage.data.hover;return C?"Icons.ConnectGuideDeletingImage":"Icons.ConnectGuideGarbageImage"}},rect:{func:function(){var G=dj.ConnectGuideGarbage.data,e=lf.getStyle("connectGuideGarbageIntersectsize");return G.hover&&(e+=5),[[G.x,G.y],2*e,2*e]}}}]};var md=6;dj.ShapeActivingCtrl={comps:[{type:"shape",visible:{func:function(){return dj.ShapeActivingCtrl.data.c1?!0:!1}},points:{func:function(){var t=dj.ShapeActivingCtrl.data;return[t.point.x,t.point.y,t.c1.x,t.c1.y]}},segments:[1,2],background:null,borderWidth:1,borderColor:{func:function(){return Cp}}},{type:"shape",visible:{func:function(){return dj.ShapeActivingCtrl.data.c2?!0:!1}},points:{func:function(){var w=dj.ShapeActivingCtrl.data;return[w.point.x,w.point.y,w.c2.x,w.c2.y]}},segments:[1,2],background:null,borderWidth:1,borderColor:{func:function(){return Cp}}},{type:"shape",visible:{func:function(){return dj.ShapeActivingCtrl.data.c1?!0:!1}},points:{func:function(){var I=dj.ShapeActivingCtrl.data.c1,U=I.x,h=I.y,k=md/2;return"c1"===dj.ShapeActivingCtrl.data.hl&&(k+=.5),[U-k,h-k,U-k,h+k,U+k,h+k,U+k,h-k]}},segments:[1,2,2,2,5],borderWidth:2,background:{func:function(){return lf.getStyle("shapeCtrlPointBackground")}},borderColor:{func:function(){return"c1"===dj.ShapeActivingCtrl.data.hl?lf.getStyle("shapeCtrlPointHighlightBorder")||Cp:lf.getStyle("shapeCtrlPointBorderColor")||Cp}}},{type:"shape",visible:{func:function(){return dj.ShapeActivingCtrl.data.c2?!0:!1}},points:{func:function(){var I=dj.ShapeActivingCtrl.data.c2,M=I.x,C=I.y,x=md/2;return"c2"===dj.ShapeActivingCtrl.data.hl&&(x+=.5),[M-x,C-x,M-x,C+x,M+x,C+x,M+x,C-x]}},segments:[1,2,2,2,5],borderWidth:2,background:{func:function(){return lf.getStyle("shapeCtrlPointBackground")}},borderColor:{func:function(){return"c2"===dj.ShapeActivingCtrl.data.hl?lf.getStyle("shapeCtrlPointHighlightBorder")||Cp:lf.getStyle("shapeCtrlPointBorderColor")||Cp}}}]},dj.RoundPoint={comps:[{type:"circle",background:"rgb(247,247,247)",borderWidth:1,borderColor:{func:function(){return Cp}},rect:{func:function(){return[[dj.RoundPoint.data.x,dj.RoundPoint.data.y],Nf,Nf]}}}]},dj.AttachPoint={comps:[{type:"rect",background:{func:function(){return dj.AttachPoint.data.isAttach?"rgb(51,153,255)":"rgb(247,247,247)"}},borderWidth:1,rotation:Math.PI/4,borderColor:{func:function(){return Cp}},rect:{func:function(){var m=dj.AttachPoint.data.isAttach?Nf+4:Nf;return[[dj.AttachPoint.data.x,dj.AttachPoint.data.y],m,m]}}}]},dj.SimpleRect={comps:[{type:"rect",background:null,borderWidth:{func:function(){return dj.SimpleRect.data.borderWidth||1}},borderColor:{func:function(){return dj.SimpleRect.data.color||Cp}},rect:{func:function(){var r=dj.SimpleRect.data;return[r.x,r.y,r.width,r.height]}}}]},F.Default.setImage("Icons.MoveDummyImage",{width:32,height:32,boundExtend:12,attachStyle:"close",comps:[{type:"oval",background:"rgb(255,255,255)",borderColor:"#979797",shadow:!0,shadowColor:"rgba(0,0,0,0.25)",shadowOffsetX:0,rect:[0,0,32,32]},{type:"shape",background:"rgb(51,153,255)",pixelPerfect:!0,points:[8.65079,11.90713,9.05502,11.46921,9.70629,11.46921,10.11052,11.90713,10.51476,12.28891,10.51476,12.92895,10.11052,13.34441,8.49359,14.97258,12.2889,14.97258,12.85034,14.97258,13.29949,15.42172,13.29949,15.99439,13.29949,16.57828,12.85034,17.0162,12.2889,17.0162,8.49359,17.0162,10.11052,18.6556,10.51476,19.0486,10.51476,19.7111,10.11052,20.09288,9.70629,20.50834,9.05502,20.50834,8.65079,20.09288,5.32709,16.76917,5.28217,16.71303,4.87794,16.32002,4.87794,15.67998,5.28217,15.26452,8.65079,11.90713,8.65079,11.90713,8.65079,11.90713,13.3444,10.09931,13.3444,10.09931,12.94017,10.50354,12.2889,10.50354,11.88467,10.09931,11.48043,9.69507,11.48043,9.0438,11.88467,8.63957,15.27574,5.25973,15.66874,4.86672,16.32001,4.86672,16.73547,5.25973,16.76917,5.31586,20.10409,8.63957,20.50832,9.0438,20.50832,9.68385,20.10409,10.09931,19.69986,10.49231,19.07105,10.50354,18.64436,10.09931,17.02742,8.45991,17.02742,12.26646,17.02742,12.83912,16.55581,13.31072,15.99438,13.31072,15.43295,13.31072,14.98379,12.83912,14.98379,12.26646,14.96134,8.45991,13.3444,10.09931,13.3444,10.09931,13.3444,10.09931,21.90069,13.33318,21.90069,13.33318,21.49646,12.91771,21.49646,12.27768,21.90069,11.89591,22.31615,11.45798,22.94497,11.45798,23.36043,11.89591,26.72904,15.2533,27.12205,15.66876,27.12205,16.3088,26.72904,16.7018,26.6729,16.75794,23.36043,20.08165,22.94497,20.49711,22.31615,20.49711,21.90069,20.08165,21.49646,19.69987,21.49646,19.03737,21.90069,18.64437,23.51763,17.00498,19.72231,17.00498,19.14965,17.00498,18.71173,16.56705,18.71173,15.98316,18.71173,15.41049,19.14965,14.96135,19.72231,14.96135,23.51763,14.96135,21.90069,13.33318,21.90069,13.33318,21.90069,13.33318,11.88467,23.32675,11.88467,23.32675,11.48043,22.94498,11.48043,22.27125,11.88467,21.88948,12.2889,21.48523,12.94017,21.48523,13.3444,21.88948,14.96134,23.52887,14.98379,19.7111,14.98379,19.14966,15.43295,18.67805,15.99438,18.67805,16.55581,18.67805,17.02742,19.14966,17.02742,19.7111,17.02742,23.52887,18.64436,21.88948,19.07105,21.48523,19.69986,21.48523,20.10409,21.88948,20.50832,22.27125,20.50832,22.94498,20.10409,23.32675,16.76917,26.65045,16.73547,26.72905,16.32001,27.13329,15.66874,27.13329,15.27574,26.72905,11.88467,23.32675,11.88467,23.32675,11.88467,23.32675],segments:[1,4,4,2,2,4,4,2,2,4,4,2,2,4,2,2,2,1,2,4,4,2,4,2,2,4,4,2,2,4,4,2,2,2,2,1,2,4,4,2,4,2,2,4,4,2,2,4,4,2,2,2,2,1,2,4,4,2,2,4,4,2,2,4,4,2,2,4,2,2,2]}]}),dj.MoveDummy={comps:[{type:"image",name:"Icons.MoveDummyImage",rect:{func:function(){var b=dj.MoveDummy.data;return[[b.pos.x,b.pos.y],2*b.size,2*b.size]}}}]},yf.Icons.DrawIcon=function(e,y,i,D){i.width=i.height=bm,i.data=D,lf=e,F.Default.drawImage(y,i,0,0,bm,bm),lf=m},yf.Icons.MapPoints=function(T,r){for(var $=0,U=T.length;U>$;$++)T[$]/=r},yf.roundTo=function(t,I,W){var y=Math.abs(t%I);return W>y||W>I-y?I*Math.round(t/I):t},yf.toFixed=function(k){return Math.round(100*k)/100},yf.getDataMatrix=function(x){if(x instanceof F.Shape){var W=new F.Math.Matrix2d,V=x.getPosition();return W.translate(-V.x,-V.y).scale(x.getScale().x,x.getScale().y).rotate(x.getRotation()).translate(V.x,V.y),W}return x.getMatrix?x.getMatrix():new F.Math.Matrix2d};var Sf=yf.Math.Curve=function(){this._curves=[]};Sf.prototype={},Sf.prototype.constructor=Sf,Sf.prototype.createFromHtShape=function(G,p,H){p instanceof F.List&&(p=p.toArray()); var S,V,U,W,f,P,O,w=this,x=null,l=null,h=0,K=yf.Math.Vector2,r=yf.Math.CubicBezier,g=function(T){return new K(G[T],G[T+1],H?H[T/2]:m)};for(V=0,U=p.length;U>V;V++){switch(W=p[V],f=null,W){case 1:l=g(h),x=l,h+=2;break;case 2:S=g(h),h+=2,f=new r(l,l.clone(),S.clone(),S),l=S;break;case 3:P=g(h),S=g(h+2),h+=4,f=new r(l,P.clone().sub(l).multiplyScalar(2/3).add(l),P.clone().sub(S).multiplyScalar(2/3).add(S),S),l=S;break;case 4:P=g(h),O=g(h+2),S=g(h+4),h+=6,f=new r(l,P,O,S),l=S;break;case 5:if(!x)break;f=new r(l,l.clone(),x.clone(),x),l=null,x=null}f&&(f._index=w._curves.length,w._curves.push(f))}},Sf.prototype.checkPoint=function(g,m){var h,t,y,f,C,B=this,K=B._curves;for(h=0,t=K.length;t>h;h++)if(f=K[h],C=f.intersectRect(g,m,m),C.length)return y=0,C.forEach(function(J){y+=J.t}),y/=C.length,g=f.getPointAt(y),g.t=y,{bezier:f,intersection:g}},Sf.prototype.insertKnot=function(R,_){var J=R.insertKnot(_),v=this,n=v._curves;n.splice(R._index,1,J[0],J[1])},Sf.prototype._isCloseEnough=function(h,b){return Math.abs(h.x-b.x)<1e-6&&Math.abs(h.y-b.y)<1e-6},Sf.prototype._isSamePoint=function(k,y){return k===y},Sf.prototype.moveRealPoint=function(J,T){var t=this,q=t._curves,s=T.clone().sub(J);q.forEach(function(f){var G=f._p1;f._p2,f._p3;var u=f._p4;t._isSamePoint(G,J)&&(f._p2.add(s),f._p1=T),t._isSamePoint(u,J)&&(f._p3.add(s),f._p4=T)})},Sf.prototype.moveCtrlDueToRealPointMovement=function(O,g){var v=this,a=v._curves,b=function(Z){Z.add(g),Z.e&&g.e&&(Z.e+=g.e)};a.forEach(function(K){var g=K._p1;K._p2,K._p3;var Y=K._p4;v._isSamePoint(g,O)&&b(K._p2),v._isSamePoint(Y,O)&&b(K._p3)})},Sf.prototype.moveCtrlPoint=function(B,p,z){var y=B[z];if(y){y.e!==m&&(p.e=y.e);var j=this,Z=j._curves;p.clone().sub(y),Z.forEach(function(e){var t;"c2"===z?t="_p2":"c1"===z&&(t="_p3"),j._isSamePoint(e[t],y)&&(e[t]=p)}),B[z]=p}},Sf.prototype.deleteRealPoint=function(h,Z){var d,k,Y,f,l,W,X,c=this,j=c._curves,n={},A=[],B=yf.Math.CubicBezier;for(k=0,Y=j.length;Y>k;k++)d=j[k],f=d._p1,l=d._p2,W=d._p3,X=d._p4,(n[k]||!c._isSamePoint(f,h))&&(c._isSamePoint(X,h)?Y>k+1&&c._isSamePoint(j[k+1]._p1,h)&&(Z||A.push(new B(f,l,j[k+1]._p3,j[k+1]._p4))):A.push(d));c._curves=A},Sf.prototype.findPairs=function(m,L){var $,F,s,B,t,p,C,c,u=this,H=u._curves,h={},I=[];for(F=0,s=H.length;s>F;F++)$=H[F],B=$._p1,t=$._p2,p=$._p3,C=$._p4,!h[F]&&u._isSamePoint(B,m)&&(L?I.push({point:B,r2:C}):I.push({point:B,c2:t})),u._isSamePoint(C,m)&&(c=L?{point:C,r1:B}:{point:C,c1:p},s>F+1&&u._isSamePoint(H[F+1]._p1,m)&&(L?c.r2=H[F+1]._p4:c.c2=H[F+1]._p2,h[F+1]=!0),I.push(c));return I},Sf.prototype.toHtShape=function(){var w=this,u=w._curves,z=[],U=[],N={x:1/0,y:1/0};return u.forEach(function(p){var S=p._p1,J=p._p2,u=p._p3,h=p._p4;return w._isCloseEnough(S,N)||(z.push(1),U.push(S.clone())),N=h,w._isCloseEnough(S,J)&&w._isCloseEnough(u,h)?(z.push(2),U.push(h.clone()),void 0):(z.push(4),U.push(J.clone(),u.clone(),h.clone()),void 0)}),{segments:z,points:U}};var mj=yf.Math.CubicBezier=function(w,V,X,I){var z=this;z._id=yf.Math.CubicBezier._globalId++,z._p1=w,z._p2=V,z._p3=X,z._p4=I};mj._globalId=1,mj.prototype={},mj.prototype.constructor=mj,mj.prototype.toString=function(){return this._id},mj.prototype.intersectRect=function($,N,G){var n=N/2,T=G/2,d=$.x,D=$.y,X=yf.Math.Vector2,P=new X(-n+d,-T+D),j=new X(n+d,T+D),R=new X(j.x,P.y),s=new X(P.x,j.y),w=this,h=w.intersectLine(P,R),f=w.intersectLine(R,j),O=w.intersectLine(j,s),Q=w.intersectLine(s,P),b=h.concat(f).concat(O).concat(Q);return b},mj.prototype.intersectLine=function(U,p){var Q,z,v,X,y,M,t,x,e,D,N,G,a,f=this,o=U.clone().min(p),i=U.clone().max(p);X=f._p1,y=f._p2,M=f._p3,t=f._p4,Q=X.clone().multiplyScalar(-1),z=y.clone().multiplyScalar(3),v=M.clone().multiplyScalar(-3),N=Q.add(z).add(v).add(t),Q=X.clone().multiplyScalar(3),z=y.clone().multiplyScalar(-6),v=M.clone().multiplyScalar(3),D=Q.add(z).add(v),Q=X.clone().multiplyScalar(-3),z=y.clone().multiplyScalar(3),e=Q.add(z),x=X.clone(),a=new yf.Math.Vector2(U.y-p.y,p.x-U.x),G=U.x*p.y-p.x*U.y;for(var d=f.getRoots(a.dot(N),a.dot(D),a.dot(e),a.dot(x)+G),$=new Array,r=0,j=d.length;j>r;r++){var m=d[r];if(!(0>m||m>1)){var K=f.getPointAt(m);K.t=m,U.x==p.x?o.y<=K.y&&K.y<=i.y&&$.push(K):U.y==p.y?o.x<=K.x&&K.x<=i.x&&$.push(K):K.x>=o.x&&K.y>=o.y&&K.x<=i.x&&K.y<=i.y&&$.push(K)}}return $},mj.prototype.solveTForPoint=function(U){var l,$,W,p,R=this;l=R._p1.x-U.x,$=R._p2.x-U.x,W=R._p3.x-U.x,p=R._p4.x-U.x;for(var T=R.getRoots(p-3*W+3*$-l,3*W-6*$+3*l,3*$-3*l,l),F=m,z=1/0,o=0,_=T.length;_>o;o++){var K=T[o];if(!(0>K||K>1)){var y=R.getPointAt(K);y.t=K;var k=Math.abs(y.y-U.y);z>k&&(z=k,F=y)}}return F},mj.prototype.getPointAt=function(P){var S=this,H=S._p1,p=S._p2,K=S._p3,z=S._p4,$=H.clone().lerp(p,P),e=p.clone().lerp(K,P),G=K.clone().lerp(z,P),s=$.lerp(e,P),u=e.lerp(G,P);return s.lerp(u,P)},mj.prototype.getPointByPercentage=function(T){var R=this.length*T,F=this._cacheLength,L=F.length;if(0===R)return F[0].point;if(T>=1)return F[L-1].point;for(var z=0;L>z;z++){var j=F[z];if(!(j.len=Q)return g[0].t;if(Q>=1)return g[M-1].t;for(var f=0;M>f;f++){var K=g[f];if(!(K.len0){var I=Math.sqrt(V);s.push(.5*(-h+I)),s.push(.5*(-h-I))}else 0==V&&s.push(.5*-h)}x/=g,a/=g,O/=g,K=(3*a-x*x)/3,h=(2*x*x*x-9*a*x+27*O)/27;var P=x/3,z=h*h/4+K*K*K/27,B=h/2;if(Math.abs(z)<=1e-6&&(z=0),z>0){var Y,X,I=Math.sqrt(z);Y=-B+I,X=Y>=0?Math.pow(Y,1/3):-Math.pow(-Y,1/3),Y=-B-I,Y>=0?X+=Math.pow(Y,1/3):X-=Math.pow(-Y,1/3),s.push(X-P)}else if(0>z){var F=Math.sqrt(-K/3),f=Math.atan2(Math.sqrt(-z),-B)/3,c=Math.cos(f),J=Math.sin(f),j=Math.sqrt(3);s.push(2*F*c-P),s.push(-F*(c+j*J)-P),s.push(-F*(c-j*J)-P)}else{var Y;Y=B>=0?-Math.pow(B,1/3):Math.pow(-B,1/3),s.push(2*Y-P),s.push(-Y-P)}return s},mj.prototype._70I=function(){var Y=this;return Y._p1.distanceToSquared(Y._p2)<1e-10&&Y._p3.distanceToSquared(Y._p4)<1e-10},mj.prototype.insertKnot=function(S){var A=this,V=A._p1,q=A._p2,z=A._p3,Q=A._p4,r=V.clone().lerp(q,S),D=q.clone().lerp(z,S),w=z.clone().lerp(Q,S),h=r.clone().lerp(D,S),I=D.clone().lerp(w,S),t=h.clone().lerp(I,S);return A._70I()?(V.clone().lerp(Q,S),[new yf.Math.CubicBezier(V,V.clone(),t.clone(),t),new yf.Math.CubicBezier(t,t.clone(),Q.clone(),Q)]):[new yf.Math.CubicBezier(V,r,h,t),new yf.Math.CubicBezier(t,I,w,Q)]},$.defineProperties(mj.prototype,{length:{get:function(){var I=this._cacheLength;if(!I){I=this._cacheLength=[];for(var p=this._p1,F=0,P=0;1>=F;){var o=this.getPointAt(F+=.001);P+=o.clone().sub(p).length(),p=o,I.push({len:P,t:F,point:o.clone()})}}return I[I.length-1].len}},p1:{get:function(){return this._p1},set:function(M){this._p1=M,this._cacheLength=m}},p2:{get:function(){return this._p2},set:function(g){this._p2=g,this._cacheLength=m}},p3:{get:function(){return this._p3},set:function(A){this._p3=A,this._cacheLength=m}},p4:{get:function(){return this._p4},set:function(z){this._p4=z,this._cacheLength=m}}});var wj=F.Default.getInternal().ui().EdgeUI,_m={_47O:function(p){var $=this,j=_m.getBackups()._47O;yf.inEdit($.gv)||j.call($,p)}};yf.Inject.registAsModule(_m,wj);var dd=F.Default.getInternal().ui().NodeUI,Oj={_47O:function(d){var g=this,T=Oj.getBackups()._47O;yf.inEdit(g.gv)||T.call(g,d)},getSelectWidth:function(){var q=this,Y=q.gv,n=q._data;if(Y.isEditable(n)&&yf.inEdit(Y))return 0;var u=Oj.getBackup("getSelectWidth");return u.call(q)}};yf.Inject.registAsModule(Oj,dd);var gs=F.graph.GraphView,Np={_editPointSize:function(){var Z=F.Default.isTouchable,N=yf.getStyle("pointSize");return N[Z?0:1]}(),isPointEditable:function(c){var U=this;if(yf.inEdit(U))return U._pointEditableFunc?U._pointEditableFunc(c):!0;var L=Np.getBackup("isPointEditable");L.call(U,c)},isEditable:function(w){var A,h=this,C=Np.getBackup("isEditable");if(A=w instanceof yf.Group?!0:C.call(h,w),!yf.inEdit(h))return A;if(!(w instanceof F.Edge))return A;if(!w.s("2d.editable"))return!1;var m=h.getEditableFunc();return m?m(w):!0},_42:function(V,w){var j=this,Y=Np.getBackups()._42;if(Y.call(j,V,w),yf.inEdit(j)){var C=j.getEditInteractor();C.drawImpl()}}};yf.Inject.registAsModule(Np,gs);var Vq=F.Default.getInternal().ui().ShapeUI,Zp={_47O:function(O){var d=this,Z=Zp.getBackups()._47O;yf.inEdit(d.gv)||Z.call(d,O)}};yf.Inject.registAsModule(Zp,Vq);var Jm=F.graph.DefaultInteractor,Gf={handle_mousewheel:function(K){var M=this,W=Gf.getBackup("handle_mousewheel");yf.inEdit(M.gv)||W.call(M,K)}};yf.Inject.registAsModule(Gf,Jm);var jm=F.graph.MoveInteractor,zd={_calcShift:function($,y){var c=this,g=zd.getBackup("_calcShift"),q=c.gv;if(!yf.inEdit(q))return g.call(c,$,y);var j=q.getEditInteractor(),h=j.getSubModule("Move").calcShift($,y,c);return h||g.call(c,$,y)},clear:function(q){var X=this,M=zd.getBackup("clear");M.call(X,q);var J=X.gv;if(yf.inEdit(J)){var W=J.getEditInteractor();W.getSubModule("Move").clear(q)}}};yf.Inject.registAsModule(zd,jm);var Am=yf.Rect=function(t){this.catalog="Rect",this._interactor=t};Am.prototype={},Am.prototype.constructor=Am,Am.prototype.gatherInfo=function(f,X){var i=this;if(1===X.length){var m=X[0];return m instanceof F.Shape&&m._70I()?i.gatherLine(f,m):Zn(m,f)?!1:i.gatherSingleTarget(f,m)}return X.length>1?i.gatherMultiTargets(f,X):!1},Am.prototype.gatherSingleTarget=function(j,$){if($.getCorners){var J,y=this,b=y.info;y.target=$,J=y.screenInfo={};var z=$.getCorners();b.LT=new yf.Math.Vector2(z[0]),b.LB=new yf.Math.Vector2(z[1]),b.RB=new yf.Math.Vector2(z[2]),b.RT=new yf.Math.Vector2(z[3]),b.T=b.LT.clone().add(b.RT).divideScalar(2),b.B=b.LB.clone().add(b.RB).divideScalar(2),b.L=b.LT.clone().add(b.LB).divideScalar(2),b.R=b.RT.clone().add(b.RB).divideScalar(2);for(var O in b)J[O]=yf.toScreenPosition(j,b[O]);var g=y._interactor,T=g.getStyle("checkSize"),Q=function(b,B,Q){var X=B.clone().sub(b).setLength(-T),C=Q.clone().sub(b).setLength(-T),w=X.add(C).add(b);return w};return J.rotLT=Q(J.LT,J.RT,J.LB),J.rotLB=Q(J.LB,J.LT,J.RB),J.rotRB=Q(J.RB,J.LB,J.RT),J.rotRT=Q(J.RT,J.LT,J.RB),J.rotT=J.rotLT.clone().add(J.rotRT).divideScalar(2),J.rotB=J.rotLB.clone().add(J.rotRB).divideScalar(2),J.rotL=J.rotLT.clone().add(J.rotLB).divideScalar(2),J.rotR=J.rotRT.clone().add(J.rotRB).divideScalar(2),J.rotation=$.getRotation(),y.gatherConnectInfo(),!0}},Am.prototype.gatherConnectInfo=function(){var S=this,i=S.target,N=S._interactor,l=S.screenInfo,Q=N.gv;if(Q.isConnectActionVisible(i)&&N.getStyle("connectGuideVisible")){var a;i.s&&(a=i.s("connectGuideShift")),a||(a=N.getStyle("connectGuideShift"));var u=i.getAnchor(),d=i.getSize(),t=i.toGlobal({x:d.width*(a[0]-u.x),y:d.height*(a[1]-u.y)});t=yf.toScreenPosition(Q,t),l.P1?t.add(l.P2.clone().sub(l.P1).setLength(a[2])):(t.add(l.RT.clone().sub(l.LT).setLength(a[2])),t.add(l.LB.clone().sub(l.LT).setLength(a[3]))),l.connect=t}},Am.prototype.gatherMultiTargets=function(P,h){var A=yf.Group.findOrCreateGroup(h,this._interactor._uuid);if(!A)return!1;var k=this;return k.editing&&"rotate"!==k.editing.mode||A.calcInfo(),k.gatherSingleTarget(P,A)},Am.prototype.gatherLine=function(_,g){this.target=g;var e=this.screenInfo={},R=g.getPoints(),c=yf.getDataMatrix(g);return e.P1=yf.toScreenPosition(_,c.apply(R.get(0))),e.P2=yf.toScreenPosition(_,c.apply(R.get(1))),this.gatherConnectInfo(),!0},Am.ResizeKeys=["LT","RB","LB","RT","L","R","B","T"],Am.ResizeDirection=[{x:-1,y:-1},{x:1,y:1},{x:-1,y:1},{x:1,y:-1},{x:-1,y:0},{x:1,y:0},{x:0,y:1},{x:0,y:-1}],Am.RotateKeys=["rotLT","rotRB","rotLB","rotRT","rotL","rotR","rotB","rotT"],Am.prototype.check=function(U,C,j){if(F.Default.isLeftButton(C)){var N=this;if(N.editing=null,N.tipInfo=null,N.screenInfo){var G=N.target,E=U.isEditable(G),g=N.screenInfo;if(E&&g.connect){var z=N._checkConnect(j);if(z)return z}if(g.P1)return N._checkLine(j);var f,d,R,H=null,S=N._interactor,w=S.getStyle("checkSize");if(E&&U.isRectEditable(G))for(d=0;dk;k++)if(C[b[k]]){A=!0;break}var c=S.getStyle("groupRotateModeDefault");D=A?"batch"===c?"block":"batch":c}var O="batch"===D?G.getAnchor2():G.getPosition(),W=Math.atan2(h.y-O.y,h.x-O.x);S._setRotateCursor(W),N.editing={mode:f,key:H,pos:O,flipY:G.getScale().y<0,rotation:G.getRotation(),hitRot:W},D&&(N.editing.groupRotateMode=D)}else{var e=yf.Rect.ResizeKeys.indexOf(H),t=yf.Rect.ResizeDirection[e],r=Math.cos(G.getRotation()),o=Math.sin(G.getRotation()),Y=t.x*Math.sign(G.getScale().x),L=t.y*Math.sign(G.getScale().y),X=Math.atan2(-o*Y-r*L,r*Y-o*L),m=(Math.round(X/(Math.PI/4))+8)%8,p=["ew-resize","nesw-resize","ns-resize","nwse-resize","ew-resize","nesw-resize","ns-resize","nwse-resize"][m];this._interactor.setCursor(p);var Z=G.getWidth(),i=G.getHeight(),n=G.getAnchor();N.editing={mode:f,key:H,rect:{x:-Z*n.x,y:-i*n.y,width:Z,height:i},anchor:n,matrix:G.getMatrix()}}return H}}},Am.prototype._checkLine=function(z){var l=this;l.screenInfo;var J,L=l._interactor.getStyle("checkSize");if(yf.checkHit(z,l.screenInfo.P1,L))J="P1";else{if(!yf.checkHit(z,l.screenInfo.P2,L))return this._interactor.setCursor("default"),void 0;J="P2"}return l.editing={mode:"line",key:J},J},Am.prototype._checkConnect=function(s){var C=this,e=C.screenInfo,b=C._interactor,W=b.getStyle("connectGuideIntersectSize"),g=e.connect,q=s.x,B=g.x;if(B>q&&W>B-q&&Math.abs(g.y-s.y)=B&&yf.checkHit(s,g,W)){var T="connect",m=t.getConnectAction(b.gv);if(C.editing={mode:T},m&&m.delete)if(C.target instanceof yf.Group){var M=!0;b.gv.sm().getSelection().each(function(j){m.delete.visible.call(null,b.gv,j)||(M=!1)}),C.editing.hasDeleteAction=M}else m.delete.visible.call(null,b.gv,C.target)&&(C.editing.hasDeleteAction=!0);return b.setCursor("default"),T}},Am.prototype._fireEditEvent=function(b,t){var H=this._interactor,l=this.editing;if(l){var V=l.mode;V="rotate"===V?"Rotation":"connect"===V?"Connection":"resize"===V?"Rect":V[0].toUpperCase()+V.slice(1),H.fi({kind:b+"Edit"+V,event:t})}},Am.prototype.startEdit=function(r,D){r.startDragging(D);var P=this;P._interactor.fi({kind:"prepareEdit",event:D});var j=P.editing,Q=P.target;if(j){if(P._fireEditEvent("begin",D),j.started=!0,"rotate"===j.mode)return j.groupRotateMode&&Q.beginRotate(j),r._42(),void 0;if("connect"!==j.mode)("line"===j.mode||Q&&0===Q.getRotation())&&(P._inSmartGuide=!0,P._interactor.rectGuide.gatherRects());else if(j.hasDeleteAction){var p=r.gv,E=P._interactor.getStyle("connectGuideGarbageShift");j.garbageInfo={x:p.getWidth()*E[0]+E[2],y:p.getHeight()*E[1]+E[3],size:P._interactor.getStyle("connectGuideGarbageIntersectsize")},r._42()}}},Am.prototype._46O=function(l){var y,c,U=this,d=U.editing,$=U.target;if(d){if("connect"===d.mode&&!d.canceled&&!d.deleted)try{d.garbageInfo&&d.garbageInfo.hover?t.doDeleteConnectionAction(U._interactor.gv,$):t.doConnectAction(U._interactor.gv,$,d.target)}catch(Y){console.error(Y)}c=d.freezeFlag,y=U.editing.groupRotateMode,U._fireEditEvent("end",l),U.editing=null}U.tipInfo=null,U._inSmartGuide&&(U._interactor.rectGuide.clear(),U._inSmartGuide=!1),y&&$&&$.endRotate(),$ instanceof F.Block&&(c===m?delete $._freezeSyncFromChildren:$._freezeSyncFromChildren=c,$.updateFromChildren())},Am.prototype.handleNormalStateDelete=function(){var P=this,E=P.editing;if(E&&"connect"===E.mode&&!E.canceled&&!E.deleted){if(E.garbageInfo){try{t.doDeleteConnectionAction(P._interactor.gv,P.target)}catch(f){console.error(f)}E.garbageInfo=null}return E.cursorPos=null,E.targetCorners=null,E.deleted=!0,P._interactor._42(),!0}},Am.prototype.handleNormalStateKeyDown=function(U){var l=this,j=l.editing;return!j||"connect"!==j.mode||j.canceled||j.deleted?void 0:F.Default.isEsc(U)?(j.cursorPos=null,j.targetCorners=null,j.canceled=!0,l._interactor._42(),!0):void 0},Am.prototype.handleEdit=function(W,E){var L=this,N=L.editing;if(N){var T,c,C,J,z,X=L.target,Y=N.key,H=N.mode,w=W.lp(E),$=L._interactor;if("connect"===H){if(N.canceled)return;if(N.deleted)return;N.cursorPos=$._getLogicalPoint(E);var P=N.garbageInfo;return P&&yf.checkHit(N.cursorPos,P,P.size)?(P.hover=!0,N.target=null,N.targetCorners=null):(P&&(P.hover=!1),N.target=W.getDataAt(w,function(o){return W.isSelectable(o)?$n(o)?!0:!1:!1})||null,N.targetCorners=yf.getTargetCornersOnScreen(W,N.target)),$._42(),void 0}if("rotate"===H){var x,p,B=N.pos,u=Math.atan2(w.y-B.y,w.x-B.x);if(N.groupRotateMode?p=u-N.hitRot:(x=u-N.hitRot,p=N.rotation+x),p%=2*Math.PI,0>p&&(p+=2*Math.PI),!F.Default.isCtrlDown(E)){var k,t;Me(E)?(k=$.getStyle("shiftRotateRound"),t=k/2):(k=$.getStyle("rotateRound"),t=$.getStyle("rotateSensitivity")),p=yf.roundTo(p,k,t)}N.groupRotateMode?(x=p-(N.lastRotation||0),0!==x&&(X.addRotation(x,N.groupRotateMode,function(k){return W.isRotationEditable(k)}),N.lastRotation=p)):X.setRotation(p),$._setRotateCursor(u),p>Math.PI&&(p-=2*Math.PI);var D=180*(p/Math.PI);D=D.toFixed(2),T=""+D+"°"}else if("resize"===H){var o=N.rect;C=o.x,J=o.y;var s,h=o.width,m=o.height,V=N.anchor,I=N.matrix,U=X.s&&X.s("keepAspectRatio")||$.getStyle("keepAspectRatio");Me(E)&&(U=!U);var y=L._unionPointMode1,K=L._unionPointMode2;if(L._inSmartGuide&&!F.Default.isCtrlDown(E)&&!U){var q;"L"===Y||"R"===Y?q="x":("T"===Y||"B"===Y)&&(q="y"),L._adsorbedToClosest(w,q),z=!0}s=I.tfi(w);var S;"LT"===Y?(o=y(s,{x:C+h,y:J+m},h,m,U),S=9):"T"===Y?(o=K({x:C,y:s.y},{x:C+h,y:J+m},h,m,U,"v"),S=1):"RT"===Y?(o=y(s,{x:C,y:J+m},h,m,U),S=33):"L"===Y?(o=K({x:s.x,y:J},{x:C+h,y:J+m},h,m,U,"h"),S=8):"R"===Y?(o=K({x:C,y:J},{x:s.x,y:J+m},h,m,U,"h"),S=32):"LB"===Y?(o=y(s,{x:C+h,y:J},h,m,U),S=12):"B"===Y?(o=K({x:C,y:J},{x:C+h,y:s.y},h,m,U,"v"),S=4):"RB"===Y&&(o=y(s,{x:C,y:J},h,m,U),S=36);var i=I.tf(o.x+o.width*V.x,o.y+o.height*V.y);X instanceof F.Block&&(N.hasOwnProperty("freezeFlag")||(N.freezeFlag=X._freezeSyncFromChildren,X._freezeSyncFromChildren=!0)),X.setPosition(i),X.setSize(o.width,o.height),z&&(c=X.getRect(),$.rectGuide.gatherLines({node:X,x:c.x,y:c.y,w:c.width,h:c.height},q,S)),T=""+Math.round(o.width)+" * "+Math.round(o.height)}else if("line"===H){if(Me(E)){var a=X.getPoints(),f="P1"===Y?a.get(1):a.get(0),Q={x:w.x-f.x,y:w.y-f.y},v=$.getStyle("shiftLineRotateRound"),j=L._shiftDirList;if(!j||L._shiftRotateRound!==v){L._shiftRotateRound=v,L._shiftDirList=j=[];for(var e=0;eM;M++){var g=j[M],G=g.x*Q.x+g.y*Q.y;Math.abs(G)>Math.abs(A)&&(A=G,l=g)}w={x:f.x+l.x*A,y:f.y+l.y*A},$.rectGuide.clear()}else L._inSmartGuide&&!F.Default.isCtrlDown(E)&&(L._adsorbedToClosest(w),z=!0);var d=yf.getDataMatrix(X).applyInverse(w);X.setPoint("P1"===Y?0:1,d,!0);var _=X.getPoints(),R=_.get(0),Z=_.get(1);C=R.x-Z.x,J=R.y-Z.y,T=" "+Math.round(Math.sqrt(C*C+J*J))+" ",z&&(c=X.getRect(),$.rectGuide.gatherLines({node:X,x:c.x,y:c.y,w:c.width,h:c.height}))}if(T){var b=F.Default.getLogicalPoint(E,$._canvas);b.x+=yf.Icons.TipShiftX,b.y+=yf.Icons.TipShiftY,L.tipInfo={helperPos:b,text:T,size:T.length}}L._fireEditEvent("between",E)}},Am.prototype._unionPointMode1=function(Q,o,X,Y,v){if(v&&X&&Y){var P=Q.x-o.x,U=Q.y-o.y;Math.abs(P*Y)H;H+=2)e.x=Math.min(e.x,h.targetCorners[H]),g.x=Math.max(g.x,h.targetCorners[H]),e.y=Math.min(e.y,h.targetCorners[H+1]),g.y=Math.max(g.y,h.targetCorners[H+1]);yf.Icons.DrawIcon(f,F,yf.Icons.HoverDataRect,{min:e,max:g,color:f.getStyle("hoverGuideColor")||f.getStyle("baseColor")})}h.garbageInfo&&yf.Icons.DrawIcon(f,F,yf.Icons.ConnectGuideGarbage,h.garbageInfo)}f.getStyle("rotateTipVisible")&&P.tipInfo&&yf.Icons.DrawIcon(f,F,yf.Icons.TipHelper,P.tipInfo)}P.target instanceof yf.Group&&P.target._42(f,F,b)}};var Mp=yf.Anchor=function(H){this.catalog="Anchor",this._interactor=H};Mp.prototype={},Mp.prototype.constructor=Mp,Mp.prototype.gatherInfo=function(t,M){var k=this;if(1===M.length){var R=M[0];if(!R.getAnchor)return;if(R instanceof F.Shape&&R._70I())return;if(Zn(R,t))return;return k.gatherSingleTarget(t,M[0])}return M.length>1?k.gatherMultiTargets(t,M):!1},Mp.prototype.gatherSingleTarget=function(J,F){var S=this;return S.info.POS=F.getPosition(),S.screenInfo.POS=yf.toScreenPosition(J,S.info.POS),S.target=F,!0},Mp.prototype.gatherMultiTargets=function(e,D){var R=this,S=yf.Group.findOrCreateGroup(D,this._interactor._uuid);return S?(R.screenInfo.POS=yf.toScreenPosition(e,S.getAnchor2()),R.target=S,!0):!1},Mp.prototype.isVisible=function(){var d=this,Q=d._interactor;if(Q.getStyle("anchorVisible")===!1)return!1;var v=d.target;if(v){if(this.editing)return!0;var H=v.getAnchor(),f=Q.getStyle("anchorOutsideVisibleThreshold");if(H.x<-f||H.x>1+f||H.y<-f||H.y>1+f)return!0;var M=v.getSize(),m=v.getScale(),P=Math.min(Math.abs(M.width*m.x),Math.abs(M.height*m.y));if(P*Q.gv._zoome)){var W=K.getStyle("moveDummyPosition"),C=E.clone().sub(F),d=Z.clone().sub(F),g=W[2],f=W[3];if(V){var M=K.getStyle("moveDummyLineExtraShift");M&&(g+=M[0],f+=M[1])}var k=F.clone().add(C.clone().multiplyScalar(W[0])).add(C.setLength(g)).add(d.clone().multiplyScalar(W[1])).add(d.setLength(f));return D.screenInfo.pos=k,D.screenInfo.size=K.getStyle("moveDummySensitivity"),!0}}}}}}},us.prototype.getMovableTarget=function(f){var p=this._interactor.gv;if($n(f)){if(p.isMovable(f))return f}else if(f instanceof yf.Group)for(var j=f._entities,l=j.length-1;l>=0;l--){var N=j[l];if($n(N)&&p.isMovable(N))return N}return null},us.prototype.getMoveInteractor=function(){for(var N,S,e,y=this._interactor.gv,Z=y.getInteractors(),N=0,S=Z.length;S>N;N++)if(e=Z.get(N),e instanceof jm)return e},us.prototype.startEdit=function(K,h){K.startDragging(h);var r=this.getMoveInteractor();if(r){var x=this.selectedTarget,f=K.gv;f._moving=1,r._data=x,f.handleMouseDown&&f.handleMouseDown(h,x)}},us.prototype._46O=function(S){var P=this,v=P.getMoveInteractor();v&&(v.handleWindowMouseUp(S),P.selectedTarget=null)},us.prototype.handleEdit=function(l,c){var g=this.getMoveInteractor();g&&g.handleWindowMouseMove(c)},us.prototype.check=function(P,f,l){if(this.selectedTarget=null,F.Default.isLeftButton(f)&&!P._scrolling&&!Tq()){var x=this;if(x.screenInfo){var v=x.screenInfo.pos;if(v&&!(l.distanceTo(v)>x.screenInfo.size)){var q=x._interactor;return x.selectedTarget=x.getMovableTarget(q.getSubModule("Rect").target),q.setCursor("default"),!0}}}},us.prototype._42=function(F,t,d){var S=this;S.screenInfo={};var B=S._interactor;B.editDetail||S.gatherInfo(t,d)&&(!B.editing||S.selectedTarget)&&yf.Icons.DrawIcon(B,F,yf.Icons.MoveDummy,S.screenInfo)};var rb=yf.RotateX=function(p){this.catalog="RotateX",this._interactor=p};rb.prototype={},rb.prototype.constructor=rb,rb.prototype.gatherInfo=function(l,i){var w=this;if(1===i.length){var V=i[0];return V instanceof F.Shape&&V._70I()||Zn(V,l)?!1:w.gatherSingleTarget(l,V)}return i.length>1?w.gatherMultiTargets(l,i):!1},rb.prototype.gatherSingleTarget=function(){var i=new F.Math.Vector2,V=new F.Math.Vector2,m=new F.Math.Vector2,w=new F.Math.Vector2,H=function(e,u){var p=e.x-u.x,i=e.y-u.y;return p*p+i*i};return function(y,b){if(b.getCorners){var s=this,h=b.getCorners(),I=15,P=b.getPosition();i.copy(h[0]),m.copy(h[1]),w.copy(h[3]),V.copy(i).add(w).divideScalar(2).add(i.sub(m).setLength(I/y.getZoom()));var Y=Math.max(H(P,h[0]),H(P,h[1]),H(P,h[2]),H(P,h[3]));return s.info.POS=V.clone(),s.screenInfo.POS=yf.toScreenPosition(y,s.info.POS),s.screenInfo.LEN=Math.sqrt(Y)*y.getZoom()+I,s.screenInfo.CENTER=yf.toScreenPosition(y,P),s.target=b,!0}}}(),rb.prototype.gatherMultiTargets=function(V,d){var E=this,v=yf.Group.findOrCreateGroup(d,this._interactor._uuid);if(!v)return!1;var E=this;return E.gatherSingleTarget(V,v)},rb.prototype.isVisible=function(){var T=this._interactor;if(!T.getStyle("rotateAsClock"))return!1;var Y=this.target;if(!Y)return!0;var V=T.gv;return V.isEditable(Y)&&V.isRotationEditable(Y)?!0:!1},rb.prototype.check=function(x,k,s){var M=this,p=M._checkImpl(x,k,s);return(p||M._clockPainted)&&M._interactor._42(),p},rb.prototype._checkImpl=function(Y,i,N){if(F.Default.isLeftButton(i)){var q=this;q.editing=null,q.tipInfo=null;var P;if(q.screenInfo&&(P=q.screenInfo.POS)&&q.isVisible()){var J=q._interactor;if(yf.checkHit(N,P,J.getStyle("checkSize"))){var C=q.target,M=Y.lp(i),R=C.getPosition(),O=Math.atan2(M.y-R.y,M.x-R.x);return J._setRotateCursor(O),q.editing={pos:R,rotation:C.getRotation(),hitRot:O,groupRotateMode:"block",screenInfo:{CENTER:q.screenInfo.CENTER,LEN:q.screenInfo.LEN}},!0}}}},rb.prototype.startEdit=function(A,u){A.startDragging(u),A.fi({kind:"beginEditRotation",event:u}),this.target instanceof yf.Group&&this.target.beginRotate(this.editing)},rb.prototype._46O=function(b){var r=this;r.editing&&(r.editing=null,r._interactor.fi({kind:"endEditRotation",event:b})),r.target instanceof yf.Group&&r.target.endRotate(),r.tipInfo=null},rb.prototype.handleEdit=function(N,m){var i=this,S=i.editing;if(S){var E,e,n=i.target,R=N.lp(m),k=i._interactor,Y=S.pos,D=Math.atan2(R.y-Y.y,R.x-Y.x),Z=n instanceof yf.Group;if(Z?e=D-S.hitRot:(E=D-S.hitRot,e=S.rotation+E),e%=2*Math.PI,0>e&&(e+=2*Math.PI),!F.Default.isCtrlDown(m)){var Q,X;Me(m)?(Q=k.getStyle("shiftRotateRound"),X=Q/2):(Q=k.getStyle("rotateRound"),X=k.getStyle("rotateSensitivity")),e=yf.roundTo(e,Q,X)}Z?(E=e-(S.lastRotation||0),0!==E&&(n.addRotation(E,S.groupRotateMode,function(F){return N.isRotationEditable(F)}),S.lastRotation=e)):n.setRotation(e),k._setRotateCursor(D),e>Math.PI&&(e-=2*Math.PI);var K=180*(e/Math.PI),I=""+K.toFixed(2)+"°",g=F.Default.getLogicalPoint(m,k._canvas);g.x+=yf.Icons.TipShiftX,g.y+=yf.Icons.TipShiftY,i.tipInfo={helperPos:g,text:I,size:I.length},k.fi({kind:"betweenEditRotation",event:m})}},rb.prototype._42=function(n,_,k){var v=this;v._clockPainted=!1,v.info={},v.screenInfo={};var i=v._interactor;i.editDetail||v.gatherInfo(_,k)&&v.isVisible()&&(yf.Icons.DrawIcon(i,n,yf.Icons.RoundPoint,v.screenInfo.POS),i.getStyle("rotateTipVisible")&&v.tipInfo&&yf.Icons.DrawIcon(i,n,yf.Icons.TipHelper,v.tipInfo),v.editing&&v.drawClock(n))},rb.prototype.drawClock=function(s){s.save();var w=this;w._clockPainted=!0;var J=w.editing||{},v=J.screenInfo||w.screenInfo,k=v.LEN,g=k+8,D=k+18;s.save(),s.translate(v.CENTER.x,v.CENTER.y),s.beginPath(),s.strokeStyle="rgb(150, 150, 150)";for(var h,C,i,L,b,z=0;360>z;z++)h=z*Math.PI/180,0===z%5&&(C=n(h)*k,i=r(h)*k,L=n(h)*g,b=r(h)*g,s.moveTo(C,i),s.lineTo(L,b)),0===z%45&&(C=n(h)*k,i=r(h)*k,L=n(h)*D,b=r(h)*D,s.moveTo(C,i),s.lineTo(L,b));s.stroke(),s.rotate(-pn);var P=J.lastRotation||w.target.getRotation();s.beginPath(),s.fillStyle="rgba(255, 0, 0, 0.1)",s.strokeStyle="rgb(157, 157, 157)",s.moveTo(0,0),s.arc(0,0,D,0,P,!1),s.fill(),s.beginPath(),s.moveTo(0+D,0),s.arc(0,0,D,0,P,!1),s.stroke(),s.restore()};var Sf=yf.Curve=function(j){this.catalog="Curve",this._interactor=j};Sf.prototype={},Sf.prototype.constructor=Sf,$.defineProperties(Sf.prototype,{activing:{get:function(){return this._activing},set:function(x){var k=this;if(x)k._activing=new yf.CurveActiving(this,x),k._activing._firePointChange();else{var B=k._activing;B&&B.dispose(),k._activing=null}}}}),Sf.PointType={Mirrored:0,Straight:1,Disconnected:2,Asymmetric:3},Sf.prototype.setUp=function(){var z=this,S=z._interactor;S&&S.gv.mp(z._onGraphviewPropertyChanged,z)},Sf.prototype._onGraphviewPropertyChanged=function(d){("zoom"===d.property||"translateX"===d.property||"translateY"===d.property)&&this._handleDataChanged()},Sf.prototype.tearDown=function(){var B=this,o=B._interactor;o&&o.gv.ump(B._onGraphviewPropertyChanged,B)},Sf.prototype.canEnterEditDetailMode=function(){var l=Ud(this._interactor);return l?this.target=l:void 0},Sf.prototype.canQuitEditDetailMode=function(p){var J=this,$=J._interactor._getLogicalPoint(p);return J._checkEditRealPoint($)?void 0:J._interactor.gv.getDataAt(p)!==J.target?!0:void 0},Sf.prototype.preHandleScroll=function(){var M=this.editing;return M&&M.inEdit?!0:void 0},Sf.prototype.getCurrentSelectintStatus=function(){var E=this;if(E.activing&&!E.activing.selections){if(E.activing.status!=m)return E.activing.status;var W=function(J){var r=E.activing.status;E.activing.status=J,E._interactor.fp("shapePointStatus",r,J)},x=yf.Curve.PointType,s=E.activing.point,t=E.activing.pairs;if(!t||1!==t.length)return W(x.Mirrored);var S=t[0],Q=S.c1&&S.c1.isNearEnough(s),D=S.c2&&S.c2.isNearEnough(s); if(!S.c1||!S.c2)return Q||D?W(x.Straight):W(x.Disconnected);if(Q&&D)return W(x.Straight);if(Q||D)return W(x.Asymmetric);var N=S.c1.clone().sub(s),V=S.c2.clone().sub(s);return Math.abs(N.x*V.y-N.y*V.x)>1e-5||N.x*V.x>0?W(x.Disconnected):Math.abs(N.length()-V.length())>1e-5?W(x.Asymmetric):W(x.Mirrored)}},Sf.prototype.handle_keydown=function(M){var i=this;if(i._interactor.editDetail){var r=yf.Curve.PointType;"1"===M.key?i._setCurrentSelectionStatus(r.Straight):"2"===M.key?i._setCurrentSelectionStatus(r.Mirrored):"3"===M.key?i._setCurrentSelectionStatus(r.Disconnected):"4"===M.key&&i._setCurrentSelectionStatus(r.Asymmetric)}},Sf.prototype.setCurrentSelectionStatus=function(M){var p=this,j=p._interactor;if(j){var e=j.gv;e.dm().beginTransaction(),this._setCurrentSelectionStatus(M),e.dm().endTransaction()}},Sf.prototype._setCurrentSelectionStatus=function(O){var f=this,k=f.activing;if(k){var l=f.getCurrentSelectintStatus();if(null!==l&&l!==O){k.status=O;var y=f.activing.point,F=f.activing.pairs;if(F&&1===F.length){var M=F[0],P=f.screenInfo.curve,Q=yf.Curve.PointType,B=f._interactor,R=function(){f._writeToHt(),B.fp("shapePointStatus",l,O),f.check(B.gv,null,new yf.Math.Vector2(B._lastLogicalPoint))};if(O===Q.Straight)return P.moveCtrlPoint(M,y,"c1"),P.moveCtrlPoint(M,y,"c2"),R(),void 0;if(l===Q.Straight){var o=P.findPairs(y,!0),$=o[0],G=$.r1||y,m=$.r2||y,Y=m.clone().sub(G).multiplyScalar(.25);return P.moveCtrlPoint(M,y.clone().sub(Y),"c1"),P.moveCtrlPoint(M,y.clone().add(Y),"c2"),R(),void 0}var X=M.c1,w=M.c2;if(X&&w){if(O===Q.Mirrored)return P.moveCtrlPoint(M,y.clone().multiplyScalar(2).sub(w),"c1"),R(),void 0;if(O===Q.Asymmetric&&l===Q.Disconnected){var d=X.clone().sub(y).length(),Y=y.clone().sub(w).setLength(d).add(y);return P.moveCtrlPoint(M,Y,"c1"),R(),void 0}}k._firePointChange(),B.fp("shapePointStatus",l,O),f.check(B.gv,null,new yf.Math.Vector2(B._lastLogicalPoint))}}}},Sf.prototype._handleDataChanged=function(){var k="s:edge.points,s:edge.segments,points,segments,shape,position,rotation,scale".split(",");return function(h){var m=this;if(m.screenInfo&&m.target){if(h&&k.indexOf(h.property)<0)return;var z=m._interactor;m.gatherSingleTarget(z.gv,m.target,!0),m.check(z.gv,null,new yf.Math.Vector2(z._lastLogicalPoint)),z._42()}}}(),Sf.prototype.gatherSingleTarget=function(g,L,c){var O,s,b=this;b.screenInfo&&b.screenInfo.curve&&(s=b.screenInfo.curve._curves);var C=b.editing;O=C?b.screenInfo:b.screenInfo={};var f,e,N=L instanceof F.Edge;N?(f=L.s("edge.segments"),e=L.s("edge.points")||new F.List):(f=L._58O,e=L._59O),O.S=f;var p,R=O.P=[],E=yf.getDataMatrix(L);if(L instanceof F.Polyline||L instanceof F.Edge&&b._interactor.getStyle("edgeElevationEditable"))p=L.getElevation&&L.getElevation()||0,O.E=[];else{var t=!1;e.each(function(Y){Y.e!==m&&(t=!0)}),t&&(O.E=[])}if(e.each(function(X){O.E&&O.E.push(X.e!=m?X.e:p),X=E.apply(X);var M=yf.toScreenPosition(g,X);R.push(M.x,M.y)}),N){var V=R.length,K=yf.toScreenPosition(g,L._lastSourcePoint||(V?{x:R[0],y:R[1]}:{x:0,y:0})),$=yf.toScreenPosition(g,L._lastTargetPoint||(V?{x:R[V-2],y:R[V-1]}:{x:0,y:0}));if(R.splice(0,0,K.x,K.y),R.push($.x,$.y),O.E){var z=L.getSourceAgent();z instanceof F.Edge?O.E.splice(0,0,L.s("edge.source.offset.elevation")):O.E.splice(0,0,((L.s("edge.source.anchor.elevation")||.5)-.5)*z.getTall()*z.getScaleTall()+z.getElevation()+L.s("edge.source.offset.elevation"));var l=L.getTargetAgent();l instanceof F.Edge?O.E.push(L.s("edge.target.offset.elevation")):O.E.push(((L.s("edge.target.anchor.elevation")||.5)-.5)*l.getTall()*l.getScaleTall()+l.getElevation()+L.s("edge.target.offset.elevation"))}}if(!O.S||!O.S.size()){O.S=new F.List,O.S.add(1);for(var S=0;Sj;j++){if(f=U[j],f._p1.isNearEnough(u)&&(!v||v.indexOf(f._p1)<0))return f._p1;if(f._p4.isNearEnough(u)&&(!v||v.indexOf(f._p4)<0))return f._p4}if(m)for(j=0,W=Math.min(m.length,W);W>j;j++){if(f=m[j],f._p1===u&&(!v||v.indexOf(U[j]._p1)<0))return U[j]._p1;if(f._p4===u&&(!v||v.indexOf(U[j]._p4)<0))return U[j]._p4}},Sf.prototype.convertToCubicBezier=function(o){var U,K,x=this,v=new yf.Math.Curve,V=x.screenInfo;if(v.createFromHtShape(V.P,V.S,V.E),V.curve=v,x.activing){var s=v._curves;U=x.activing.point,K=x._convertToNewPoint(U,s,o);var k=[];if(K&&(x.activing.point=K,k.push(K)),x.activing.selections){var C=-1,i=x.activing.selections;i.forEach(function(g){C++,K=x._convertToNewPoint(g,s,o,k),K&&(i[C]=K,k.push(K))})}}},Sf.prototype.check=function(y,O,A){if(!O||yn(O)||kq(O)){var v=this;if(v._interactor.setCursor("default"),v.editing=null,v.highlight=null,v.tipInfo=null,v.edgeEditResult=null,v.screenInfo){if(Tq()||O&&kq(O))return v._interactor._42(),!0;if(v._checkEditCtrlPoint(A))return v._interactor._42(),!0;if(v._checkEditRealPoint(A))return v._interactor._42(),!0;if(v._checkEditElevation(A))return v._interactor._42(),!0;var p=v.screenInfo.curve,h=p.checkPoint(A,v._interactor.getStyle("curveIntersectSize"));if(h){var G=v.highlight={};G.type="insertKnot",G.bezier=h.bezier,G.point=h.intersection}return v._interactor._42(),!0}}},Sf.prototype.getAdjacentBeziers=function(i){var f=this.screenInfo;if(f){var r,t,n,K=f.curve._curves,E=[],q=m;for(r=0,t=K.length;t>r;r++)if(n=K[r],q===m){if(n._p4.isNearEnough(i)){E.push(n),q=r;continue}}else{if(n._p1.isNearEnough(i))return E.push(n),E;if(n._p4.isNearEnough(i)){E[0]=n,q=r;continue}}}},Sf.prototype.roundCorner=function(B){if(this.activing&&this.screenInfo){var w=this.screenInfo.curve,S=w._curves,e=this.getAdjacentBeziers(this.activing.point),U=e[1],s=U._index;U=U.insertKnot(U.getTByPercentage(B/U.length))[1],S[s]=U;var c=U.p1,b=e[0],x=b._index;b=b.insertKnot(b.getTByPercentage(1-B/b.length))[0],S[x]=b;var i=b.p4,r=this.activing.point,I=new yf.Math.CubicBezier(i,r.clone().sub(i).multiplyScalar(2/3).add(i),r.clone().sub(c).multiplyScalar(2/3).add(c),c);S.splice(s,0,I),this._writeToHt(),this.activing=null,this._interactor._42()}},Sf.prototype._checkEditRealPoint=function(J){var C,X,w,l,S,o,K=this,p=K.screenInfo.curve._curves,I=K._interactor.getStyle("curvePointIntersectSize"),N=1/0;for(I*=I,w=0,l=p.length;l>w;w++)C=p[w],S=C._p1,o=J.distanceToSquared(S),N>o&&(N=o,X=S),S=C._p4,o=J.distanceToSquared(S),N>o&&(N=o,X=S);if(N>I)return!1;var j=K.highlight={};return j.type="changeRealPoint",j.point=X,K.editing={type:"realPoint",point:X,shiftGuide:{point:X.clone(),dir:"x",limit:0}},K._interactor.setCursor("crosshair"),!0},Sf.prototype._checkEditElevation=function(j){var E=this;if(!E._interactor.getStyle("curveElevationVisible"))return!1;var l=E.target;if(l instanceof F.Edge&&!E._interactor.getStyle("edgeElevationEditable"))return!1;var N=E.activing;if(!N)return!1;var Y=N.getCurrentEditingPoint();if(!Y)return!1;var M=E._interactor,L=M.getStyle("curveElevationGuideShift"),U=M.getStyle("curveElevationIntersectSize"),a=j.distanceToSquared({x:Y.x+L[0],y:Y.y+L[1]});if(!(a>U*U)){var C=E.highlight={};C.type="elevation";var G=new yf.Math.Vector2(j.x,j.y,Y.e);return E.editing={type:"elevation",startPoint:G},E._interactor.setCursor("crosshair"),!0}},Sf.prototype._checkEditCtrlPoint=function(Z){var N=this;if(N.activing&&!N.activing.selections){var j=N.getCurrentSelectintStatus();if(j!==yf.Curve.PointType.Straight){var v=N.activing.pairs;if(v){var R=N._interactor.getStyle("curvePointIntersectSize");R*=R;var E,h,G,b,D,L,B,x,S,w=1/0;for(B=0,S=v.length;S>B;B++)for(b=v[B],x=0;2>x;x++)D=0===x?"c1":"c2",b[D]&&(L=Z.distanceToSquared(b[D]),w>L&&(w=L,E=b,h=B,G=D));if(w>R)return!1;N.activing.hlpair=E,N.activing.hltype=G;var n=N.highlight={};return n.type="changeCtrlPoint",n.point=E[G],N.editing={type:"ctrlPoint",pair:E,pairId:h,ctrlType:G,direction:E[G].clone().sub(N.activing.point).normalize()},N._interactor.setCursor("crosshair"),!0}}}},Sf.prototype.startEdit=function(O,f){O.startDragging(f);var z=this;z.highlight&&"insertKnot"===z.highlight.type&&(z.insertKnot(),z.gatherSingleTarget(z._interactor.gv,z.target),z.activing=null,z._checkEditRealPoint(z._interactor._getLogicalPoint(f)));var T=z._activing;if(T){var Y=z.editing?z.editing.type:null;"ctrlPoint"===Y?T.editingCtrl={pairId:z.editing.pairId,type:T.hltype}:"realPoint"===Y&&(T.editingCtrl=!1)}var D=z.highlight,I=F.Default.isCtrlDown(f);if(!D||Tq()||kq(f)){var J=z._interactor.gv;if(!J.setFocus(f)||J._scrolling)return;return I?z._multiSelect={startPoint:J.lp(f)}:J.isPannable()&&(yn(f)||kq(f))&&(z._pan={tx:J.tx(),ty:J.ty()},O.fi({kind:"beginPan",event:f})),void 0}if("changeRealPoint"===D.type){var n,k=z.activing?z.activing.point:null,H=z.activing?z.activing.selections:null;if(I&&z.activing)k===D.point?(H?(z.activing={point:H[0]},H.length>1&&(H.splice(0,1),z.activing.selections=H)):z.activing=null,z.editing=null):H&&(n=H.indexOf(D.point))>=0?(H.length>1?H.splice(n,1):delete z.activing.selections,z.editing=null):H?(H.push(k),z.activing={point:D.point,selections:H}):z.activing={point:D.point,selections:[k]};else if(H)k===D.point||((n=H.indexOf(D.point))>=0?(H.splice(n,1,k),z.activing={point:D.point,selections:H}):z.activing={point:D.point});else{var b;k===D.point&&(b=z.activing.status),z.activing={point:D.point},b&&(z.activing.status=b)}O.fi({kind:"beginEditPoint",event:f})}},Sf.prototype.insertKnot=function(){var K=this,e=K.highlight,M=K.screenInfo.curve;M.insertKnot(e.bezier,e.point.t),K._writeToHt()},Sf.prototype._writeToHt=function(){var T,W,P=this,V=P.screenInfo.curve,M=V.toHtShape(),H=M.points,v=[],U=M.segments,b=P._interactor.gv;b.dm().beginTransaction();var w,D,k=P.target,x=k instanceof F.Edge,Q=yf.getDataMatrix(k).invert();D=k instanceof F.Polyline||x&&P._interactor.getStyle("edgeElevationEditable"),D&&(w=k.getElevation&&k.getElevation()||0);for(var z=0,l=H.length;l>z;z++)T=H[z],W=yf.toWorldPosition(b,T),W=Q.apply(W),isFinite(T.e)&&T.e!==w&&(W.e=T.e),v.push(W);if(k._writing=!0,x){k.s("edge.type","points"),k.setStyle("edge.segments",U),k.setStyle("edge.points",v.slice(1,v.length-1)),k.setStyle("edge.source.offset.x",0),k.setStyle("edge.source.offset.y",0),k.setStyle("edge.target.offset.x",0),k.setStyle("edge.target.offset.y",0);var Z=P._nextChangeEdgeHost;delete P._nextChangeEdgeHost,Z&&("source"===Z.type?k.setSource(Z.host):k.setTarget(Z.host)),P._writeEdgeHostAnchor("source",v[0]),P._writeEdgeHostAnchor("target",v[v.length-1])}else v.length?(k.setSegments(U),k.setPoints(v,!0)):k.removeFromDataModel();b.dm().endTransaction(),delete k._writing},Sf.prototype._writeEdgeHostAnchor=function(q,y){var R=this,z=R.target,U=R._calcHostAnchor(z,q,y);U.index!==m?(z.setStyle("edge."+q+".index",U.index),z.setStyle("edge."+q+".percent",m),z.setStyle("edge."+q+".anchor.x",m),z.setStyle("edge."+q+".anchor.y",m),z.setStyle("edge."+q+".anchor.elevation",m),z.setStyle("edge."+q+".offset.elevation",y.e)):U.percent!==m?(z.setStyle("edge."+q+".percent",U.percent),z.setStyle("edge."+q+".index",m),z.setStyle("edge."+q+".anchor.x",m),z.setStyle("edge."+q+".anchor.y",m),z.setStyle("edge."+q+".anchor.elevation",m),z.setStyle("edge."+q+".offset.elevation",y.e)):(z.s("edge."+q+".anchor.x",U.x),z.s("edge."+q+".anchor.y",U.y),z.s("edge."+q+".anchor.elevation",U.e),U.offsetX||U.offsetY||U.offsetElevation?(z.s("edge."+q+".offset.x",U.offsetX),z.s("edge."+q+".offset.y",U.offsetY),z.s("edge."+q+".offset.elevation",U.offsetElevation)):(z.s("edge."+q+".offset.x",0),z.s("edge."+q+".offset.y",0),z.s("edge."+q+".offset.elevation",0)))},Sf.prototype._calcHostAnchor=function(B,w,V,I){I||(I="source"===w?B.getSource():B.getTarget());var z=this._interactor.gv,d=z.calculateAttachPoint(I,V);if(d)return d.info;if(lc(I)){var D=z.calculateEdgePosition(I,V);return D}var h=I.getRotation(),A=I.getAnchor();Zn(I,z)&&(h=0);var W=I.getElevation(),T=I.getTall()*I.getScaleTall();W=((V.e||0)-B.s("edge."+w+".offset.elevation")-W)/T+.5;var m=I.getScale();if(h||m.x<0||m.y<0){var j=I.getMatrix(),r=j.tfi(V),R=I.getSize();return{x:r.x/R.width+A.x,y:r.y/R.height+A.y,e:W}}var k=tj(z,I),Z={x:(V.x-k.x)/k.width,y:(V.y-k.y)/k.height,e:W};return Z},Sf.prototype._handlePanning=function(Y){var o=this,X=o._pan;if(X){X.started=!0;var V=o._interactor,q=V.gv,C=V._lastClientPoint,E=Di(Y),H=ql(q,E,C);q.setTranslate(X.tx+H.x,X.ty+H.y),o.gatherSingleTarget(V.gv,o.target),V._42(),V.fi({kind:"betweenPan",event:Y})}},Sf.prototype.handleEdit=function(i,u){var Y=this,p=Y.editing;if(Y._pan)return Y._handlePanning(u),void 0;if(Y._multiSelect)return Y._multiSelect.endPoint=i.lp(u),Y._interactor.redraw(),void 0;if(p){p.inEdit=!0;var k,g,K,E=Y._interactor._getLogicalPoint(u),U=F.Default.isCtrlDown(u),f=F.Default.isShiftDown(u),W=p.type,$=Y.activing;if(Y._guideInfo=null,"ctrlPoint"===W&&f){var G=Y.editing.direction.clone();k=$.point;var o=G.dot(E.clone().sub(k));E=G.setLength(o).add(k)}else if("ctrlPoint"===W||"realPoint"===W){var G;if("realPoint"===W&&f){var q=Y.editing.shiftGuide;g=q.point;var v=Math.abs(E.x-g.x),A=Math.abs(E.y-g.y);v>A&&v>q.limit&&"y"===q.dir&&(q.dir="x"),A>v&&A>q.limit&&"x"===q.dir&&(q.dir="y"),G=q.dir,"x"===G?(E.y=g.y,q.limit=Math.max(q.limit,v)):"y"===G&&(E.x=g.x,q.limit=Math.max(q.limit,A))}if(!U){var h,H=Y._isEditEdgeSourceTarget();H&&(h=E.clone());var Q=Y._guidingToEdit(E,G),S="realPoint"===W?Y._interactor.gridGuide.findClosest(E,G,!0):null,N=1/0,L=1/0;S&&(S.x&&(N=S.x),S.y&&(L=S.y));var e=!1;if(Q&&(Q.xList&&(Math.abs(Q.x)<=Math.abs(N)?(e=!0,N=Q.x):delete Q.xList),Q.yList&&(Math.abs(Q.y)<=Math.abs(L)?(e=!0,L=Q.y):delete Q.yList),e&&(Y._guideInfo=Q)),isFinite(N)&&(E.x+=N),isFinite(L)&&(E.y+=L),e&&(Q.v=E),H){var j=e?E.clone():null;E.copy(h);var t=Y._editEdgeSourceTarget(H,E,U,j);t&&(Y.edgeEditResult=t,K=t.tipText,t.isFixed&&(Y._guideInfo=null))}}}var s=Y.screenInfo.curve;if("realPoint"===p.type){k=p.point,k.e!==m&&(E.e=k.e),s.moveRealPoint(k,E),p.point=E,Y.highlight.point=E;var T=$.status,z=$.selections;if(Y.activing={point:E,status:T},z){var y=E.clone().sub(k),D=0;z.forEach(function(R){var u=R.clone().add(y);s.moveRealPoint(R,u),z[D++]=u}),Y.activing.selections=z}}else if("ctrlPoint"===p.type){var I=$.pairs,l=I[p.pairId];s.moveCtrlPoint(l,E,p.ctrlType);var x=$.status,R=yf.Curve.PointType;if((x===R.Mirrored||x===R.Asymmetric)&&l.c1&&l.c2){var k=new yf.Math.Vector2($.point),d="c1"===p.ctrlType?"c2":"c1";if(x===yf.Curve.PointType.Mirrored)s.moveCtrlPoint(l,k.clone().multiplyScalar(2).sub(E),d);else if(x===R.Asymmetric){var o=l[d].clone().sub(k).length(),C=k.clone().sub(l[p.ctrlType]).setLength(o).add(k);isNaN(C.x)||s.moveCtrlPoint(l,C,d)}}$._firePointChange()}else if("elevation"===p.type){g=p.startPoint;var n=g.e+(g.y-E.y)/i._zoom;Y._setCurrentPointImpl("e",n),$._firePointChange(),K="E: "+yf.toFixed(n)}var V=F.Default.getLogicalPoint(u,Y._interactor._canvas);if(V.x+=yf.Icons.TipShiftX,V.y+=yf.Icons.TipShiftY,!K){var P=yf.toWorldPosition(i,E);K=""+yf.toFixed(P.x)+", "+yf.toFixed(P.y)}Y.tipInfo={helperPos:V,text:K,size:K.length},Y._writeToHt(),Y._interactor.fi({kind:"betweenEditPoint",event:u})}},Sf.prototype._setCurrentPointImpl=function(o,Z){var J=this,u=J._activing;if(!u)return!1;var L=J.target;if(!L)return!1;var j=u.getCurrentEditingPoint();if(!j)return!1;var z=u.editingCtrl;if(!z)var b=j.clone();if("e"===o)j.e=Z;else{var l;if("x"===o||"y"===o){var B=u._lastFirePoint;l="x"===o?{x:Z,y:B?B.y:0}:{x:B?B.x:0,y:Z}}else"object"==typeof o?(l=o,o.e!==m&&(j.e=o.e)):(l={x:arguments[0],y:arguments[1]},arguments[2]!==m&&(j.e=arguments[2]));var K=yf.getDataMatrix(L);l=yf.toScreenPosition(J._interactor.gv,K.apply(l)),j.x=l.x,j.y=l.y}if(!z){var k=b.multiplyScalar(-1).add(j);Ll(j.e)&&Ll(b.e)&&(k.e=j.e-b.e);var w=J.screenInfo.curve;w.moveCtrlDueToRealPointMovement(j,k);var U=u.selections;if(U){var O=0;U.forEach(function(T){var E=T.clone().add(k);isFinite(k.e)&&(E.e=(isFinite(T.e)?T.e:L.getElevation()||0)+k.e),w.moveRealPoint(T,E),U[O++]=E}),u.selections=U}}return!0},Sf.prototype.setCurrentPoint=function(H,e){return this._setCurrentPointImpl(H,e)?(this._writeToHt(),!0):!1},Sf.prototype._isEditEdgeSourceTarget=function(){var i=this,I=i.target;if(!(I instanceof F.Edge))return!1;var A=i.editing.point,Y=i.screenInfo.curve._curves;return A===Y[0]._p1?"source":A===Y[Y.length-1]._p4?"target":!1},Sf.prototype._editEdgeSourceTarget=function(k,z,I,W){var T,G=this,c=G.target;if(T="source"===k?c.getSource():c.getTarget()){var X,F=G._interactor.gv,R=yf.toWorldPosition(F,z),l=G._calcHostAnchor(c,k,R,T);if(X=l.index!==m||l.percent!==m?l.distance*F.getZoom()>G._interactor.getStyle("edgeHostEdgeMaxDistance"):G._interactor.getStyle("edgeHostDetectPerFrame")?!0:l.x<0||l.x>1||l.y<0||l.y>1?!0:!1){var O=F.getDataAt(R,function(J){return F.isSelectable(J)?F.isSourceTargetEditable(c,J,k)?c.canSetSourceTarget(J,k)?!0:!1:!1:!1});if(O){var q=G._calcHostAnchor(c,k,R,O);T=O,G._nextChangeEdgeHost={type:k,host:O},l=q}}var t,L,y,d=!1;if(I||l.x===m)(l.percent!==m||l.index!==m)&&(d=!0,L=l.point);else{var v=G._interactor.getStyle("anchorRound"),H=G._interactor.getStyle("anchorSensitivity");t=F.calculateAttachPoint(T,R),t?(l=t.info,d=!0):(W&&(l=G._calcHostAnchor(c,k,yf.toWorldPosition(F,W),T)),l.x=yf.roundTo(l.x,v,H),l.y=yf.roundTo(l.y,v,H)),L=Ub(F,T,0,l.offsetX||0,l.offsetY||0,l.x,l.y)}L&&(y=yf.toScreenPosition(F,L),z.x=y.x,z.y=y.y),G._edgeHostGuideInfo={corners:yf.getTargetCornersOnScreen(F,T),attach:t?t.index:-1,host:T};var f;return l.percent!==m?f="percent: "+l.percent.toFixed(2):l.index!==m?f="index: "+l.index:(f=""+l.x.toFixed(2)+", "+l.y.toFixed(2),(l.offsetX||l.offsetY)&&(f+=" offset: "+l.offsetX.toFixed(2)+", "+l.offsetY.toFixed(2))),{host:T,anchor:l,tipText:f,isFixed:d}}},Sf.prototype._guidingToEdit=function(K,n){var S,o,y=this;if(S=y.screenInfo.curve){o=S._curves;var W,V,b,D,g,p,M,G,z=1/0,h=1/0,c=[];for(y.editing&&"realPoint"===y.editing.type&&(G=y.editing.point),g=0,p=2*o.length;p>g;g++)M=o[Math.floor(g/2)][g%2?"_p4":"_p1"],c.indexOf(M)>=0||(c.push(M),G&&G===M||(b=M.x-K.x,D=M.y-K.y,Math.abs(b)w||"y"===n)&&(W=null),(Math.abs(h)>w||"x"===n)&&(V=null),W||V){var k=!1,q={};if(W&&(k=!0,q.xList=W,q.x=z),V&&(k=!0,q.yList=V,q.y=h),k)return q}}},Sf.prototype._46O=function(E){var v=this;v.editing&&(v.editing=null,v._interactor.fi({kind:"endEditPoint",event:E})),v._guideInfo=null,v._edgeHostGuideInfo=null,v._pan&&(v._pan=null,v._interactor.fi({kind:"endPan",event:E})),v._multiSelect&&(v._handleMultiSelect(v._multiSelect,E),v._multiSelect=null),v.tipInfo=null,v.edgeEditResult=null},Sf.prototype._handleMultiSelect=function(k,h){if(k.startPoint&&k.endPoint){var x,d,g,K,i,a,V=this,C=V._interactor,o=C.gv,B=yf.toScreenPosition(o,k.startPoint),S=yf.toScreenPosition(o,k.endPoint),P=F.Default.unionPoint(B,S),t=V.screenInfo.curve._curves,A=[],v=function(c){c.x>=P.x&&c.y>=P.y&&c.x<=P.x+P.width&&c.y<=P.y+P.height&&A.indexOf(c)<0&&A.push(c)};for(x=0,d=t.length;d>x;x++)i=t[x],v(i._p1),v(i._p4);if(A.length){var O=V.activing||{},z=O.selections||[];O.point&&z.push(O.point);var w=F.Default.isShiftDown(h),X=h.altKey;if(X&&!w)for(a=A,A=[],x=0,d=a.length;d>x;x++)g=a[x],K=z.indexOf(g),K>=0&&A.push(g);for(x=0,d=z.length;d>x;x++)g=z[x],K=A.indexOf(g),K>=0?(!w||w&&X)&&(A[K]=m):A.push(g);for(a=A,A=[],x=0,d=a.length;d>x;x++)a[x]&&A.push(a[x]);d=A.length,0===d?V.activing=null:1===d?V.activing={point:A[0]}:(g=A[d-1],V.activing={point:g,selections:A.splice(0,d-1)}),C.redraw()}}},Sf.prototype._canDeletePoint=function(w,e){var h=this.target;if(!(h instanceof F.Edge))return!0;var N=w._curves[0],m=w._curves[w._curves.length-1];return N._p1===e||m._p4===e?!1:!0},Sf.prototype.handleDelete=function(){var L=this;if(L.activing&&L.screenInfo){var g=F.Default.isShiftDown(),Q=L.screenInfo.curve;L._canDeletePoint(Q,L.activing.point)&&Q.deleteRealPoint(L.activing.point,g),L.activing.selections&&L.activing.selections.forEach(function(x){L._canDeletePoint(Q,x)&&Q.deleteRealPoint(x,g)}),L.activing=null,delete L.editing,delete L.tipInfo,delete L.edgeEditResult,delete L._pan,delete L._multiSelect,L._writeToHt(),L._interactor.fp("deleteShapePoint",!1,!0)}},Sf.prototype.handleDoubleClick=function(U){var k=this,Y=k._interactor._getLogicalPoint(U);if(k.screenInfo&&k._checkEditRealPoint(Y)){var F=k.getCurrentSelectintStatus(),D=yf.Curve.PointType;return F=F===D.Mirrored?D.Straight:D.Mirrored,k._setCurrentSelectionStatus(F),k._interactor._42(),!0}},Sf.prototype._drawHighlight=function(q){var G=this,P=G.highlight;if(P){var X=P.bezier,u=G._interactor;X&&yf.Icons.DrawIcon(u,q,yf.Icons.ShapeHighlightCurve,[X._p1.x,X._p1.y,X._p2.x,X._p2.y,X._p3.x,X._p3.y,X._p4.x,X._p4.y]);var w=P.point;w&&"insertKnot"===P.type&&yf.Icons.DrawIcon(u,q,yf.Icons.ShapeHighlighPoint,w)}},Sf.prototype._drawGuide=function(k){var d=this,Y=d._guideInfo;if(Y){var p,f,Z,T,P=Y.v;for(p=0;2>p;p++)if(T=0===p?Y.xList:Y.yList)for(f=0,Z=T.length;Z>f;f++)yf.Icons.DrawIcon(d._interactor,k,yf.Icons.ShapeGuideLine,[P.x,P.y,T[f].x,T[f].y])}},Sf.prototype._drawCurrentPoint=function(K){var s=this;if(s.activing){var M=s.activing,Z=s.getCurrentSelectintStatus(),L=s._interactor;if(Z!==yf.Curve.PointType.Straight){var h=M.pairs;M.hlpair,M.hltype;var t=M.selections,F=M.editingCtrl;if(h&&!t){var X,V,p;for(V=0,p=h.length;p>V;V++)X=h[V],F&&V===F.pairId&&X[F.type]?yf.Icons.DrawIcon(L,K,yf.Icons.ShapeActivingCtrl,{point:X.point,c1:X.c1,c2:X.c2,hl:F.type}):yf.Icons.DrawIcon(L,K,yf.Icons.ShapeActivingCtrl,X)}}yf.Icons.DrawIcon(L,K,yf.Icons.ShapeHighlighRealPoint,s.activing.point),t&&t.forEach(function(k){yf.Icons.DrawIcon(L,K,yf.Icons.ShapeHighlighRealPoint,k)})}},Sf.prototype.clear=function(){var O=this;O.editing=null,O._guideInfo=null,O.activing=null,O.highlight=null},Sf.prototype._42=function(l){var o=this;o.info={},o.editing||(o.screenInfo=null);var n=o._interactor;if(!n.editDetail)return o.clear(),void 0;var C=n.gv;if(!o.target||!C.isSelected(o.target)||!C.isVisible(o.target))return n.editDetail=!1,o.clear(),void 0;if(o.gatherSingleTarget(C,o.target),yf.Icons.DrawIcon(n,l,yf.Icons.ShapeBgCurve,o.screenInfo),o._interactor.getStyle("curveElevationVisible")&&(o.target instanceof F.Polyline||o.target instanceof F.Edge&&o._interactor.getStyle("edgeElevationEditable"))&&o.activing){var $=o.activing.getCurrentEditingPoint();$&&"string"!=typeof $.e&&yf.Icons.DrawIcon(n,l,yf.Icons.EdgeElevationGuide,$)}if(o._drawHighlight(l),o._drawCurrentPoint(l),o._getRealPoint().forEach(function(c){yf.Icons.DrawIcon(n,l,yf.Icons.ShapePoint,c)}),o._drawGuide(l),o.tipInfo&&o._interactor.getStyle("curveTipVisible")&&yf.Icons.DrawIcon(n,l,yf.Icons.TipHelper,o.tipInfo),o._edgeHostGuideInfo&&n._drawHostGuide(o._edgeHostGuideInfo),o.edgeEditResult&&o._drawEdgeHostHighlight(l,o.edgeEditResult.host,o.edgeEditResult.anchor),o._multiSelect&&o._multiSelect.endPoint){var m=F.Default.unionPoint(yf.toScreenPosition(C,o._multiSelect.startPoint),yf.toScreenPosition(C,o._multiSelect.endPoint));m.color=C.getRectSelectBorderColor(),l.save(),l.setTransform(1,0,0,1,0,0);var j=t.devicePixelRatio,b=m.borderWidth=Math.round(j);b/=2,m.x=Math.round(m.x*j)+b,m.y=Math.round(m.y*j)+b,m.width=Math.round(m.width*j),m.height=Math.round(m.height*j),yf.Icons.DrawIcon(n,l,yf.Icons.SimpleRect,m),l.restore()}},Sf.prototype._drawEdgeHostHighlight=function(W,j,l){this.drawEdgeHostHighlight(W,j,l),this._interactor.redraw()},Sf.prototype.drawEdgeHostHighlight=function(Z,T,c){if(lc(T)){var i,a,U,I,K=this,B=K._interactor,Y=B.gv,J=Y.getDataUI(T),j=Ap(J),D=[];for(U=0,I=j.points.length;I>U;U++)a=yf.toScreenPosition(Y,j.points.get(U)),D.push(a.x,a.y);j.segments&&(i=j.segments.toArray());var L=B.getStyle("edgeHostHighlighPeriod"),P=B.getStyle("edgeHostEdgeHighlighColor");yf.Icons.DrawIcon(B,Z,yf.Icons.ShapeBgCurve,{P:D,S:i,color:P,dynamicVisible:c.index===m,dynamicPeriod:L}),P=B.getStyle("edgeHostPointHighlighColor");var H=Cq(J);for(U=0,I=H.length;I>U;U++){var F=H[U],G=yf.toScreenPosition(Y,F);yf.Icons.DrawIcon(B,Z,yf.Icons.ShapePoint,{point:{x:G.x,y:G.y},color:P,size:12,dynamicVisible:U===c.index,dynamicPeriod:L})}}},Sf.prototype._getRealPoint=function(){var Y,g=this.screenInfo,f=g.P,U=g.S,C=-1,p=[],O=-1,v=U.length;return U.each(function(e){O++;var s=1;if(3===e)s=2;else if(4===e)s=3;else if(5===e)return;C+=s,Y=O+1>=v?!0:1===U.get(O+1)?!0:!1,p.push({point:{x:f[2*C],y:f[2*C+1]},segmentIndex:O,pointIndex:C,isEnd:Y})}),p},Sf.prototype.getEditingPointsInfo=function(p){var b=this,y=b.activing;if(!y)return!1;var P=y.point;if(!P)return!1;var e=this._getRealPoint(),X=[{screen:P}];y.selections&&y.selections.forEach(function(o){X.push({screen:o})});var Q,g,I=e.length;return X.forEach(function(k){for(Q=0;I>Q;Q++)if(g=e[Q],k.screen.isNearEnough(g.point)){k.segmentIndex=g.segmentIndex,k.pointIndex=g.pointIndex,k.point=b.target.getPoints().get(g.pointIndex);break}}),p&&X.sort(function(j,p){return j.segmentIndex-p.segmentIndex}),X};var No=yf.MoveHelper=function(R){var f=this;f.catalog="Move",f._interactor=R};No.prototype={},No.prototype.constructor=No,No.prototype.calcShift=function(G,$,C){var X,e,f=this,r=f._interactor.gv,x=r.lp($);if("beginMove"===G&&f._gatherGridInfo(C._lastLogicalPoint||x),X=f._target){var U=X.downPosition;if(U){var j=f._interactor.getStyle("moveSensitivity")/r._zoom;if(U.distanceTo(x)h;h++)J=s[h],J&&(V=J.x,I=J.y,isFinite(V)&&Math.abs(V)t&&m>S.limit&&"y"===S.dir&&(S.dir="x"),t>m&&t>S.limit&&"x"===S.dir&&(S.dir="y");var M=S.dir;return"x"===M?($.y=G.y,S.limit=Math.max(S.limit,m)):"y"===M&&($.x=G.x,S.limit=Math.max(S.limit,t)),$},No.prototype._isAttachableLineShape=function(E){if(!E.getSegments)return!1;var Z=E.getSegments();if(!Z)return!0;Z instanceof F.List&&(Z=Z.getArray());for(var k=1,L=Z.length;L>k;k++)if(2!==Z[k])return!1;return!0},No.prototype._calcAttachNodeShift=function(){var u=new ag,k=new ag,T=new ag,J=new ag;return function(l,H){var B=this._interactor.gv,i=l.getHost(),v=B.getDataAt(H,function(V){return V.s("2d.hostable")?!0:!1});if(v&&i!==v&&l.setHost(v),!v)return this._edgeHostGuideInfo=null,l.setHost(null);var R=this._edgeHostGuideInfo={corners:yf.getTargetCornersOnScreen(B,v),host:v,attach:-1};if(this._isAttachableLineShape(v)){for(var F,b,A,h,n,W,m=v.getPoints(),P=m.size(),y=v.getPointsMatrix2d(),C=1/0,L=0;P>L&&(L!==P-1||v.isClosePath());L++)0!==L?k.copy(T):y.apply(m.get(L),k),y.apply(L===P-1?m.get(0):m.get(L+1),T),u.copy(H).sub(k),J.copy(T).sub(k),F=J.length(),J.divideScalar(F),b=u.dot(J),0>b?b=0:b>F&&(b=F),J.multiplyScalar(b).add(k),A=u.copy(H).sub(J).lengthSq(),C>A&&(C=A,W=L,h=b,n=F);return Math.sqrt(C)*B.getZoom()>this._interactor.getStyle("attachThreshold")?(l.s({"attach.index":-1}),l.setHost(null),void 0):(l.s("attach.offset.opposite")&&(h=n-h),l.s({"attach.index":W,"attach.offset":l.s("attach.offset.relative")?h/n:h}),{x:0,y:0})}var g=B.calculateAttachPoint(v,H);if(g){var r=g.point;return R.attach=g.index,this._calcShiftByAddon(r.x-H.x,r.y-H.y)}}}(),No.prototype._gatherGridInfo=function(P){var i,v=this,V=v._interactor,d=V._getValidSelection();if(d.length){if(1===d.length){if(i=d[0],!i.getRect)return v._target=null,void 0}else if(i=yf.Group.findOrCreateGroup(d,V._uuid),!i)return v._target=null,void 0}else{var d=V.gv.sm().getSelection();if(d.length&&(i=d.get(0),!i.getRect))return v._target=null,void 0}if(i){var F=i.getPosition(),H=i.getRect();v._target={node:i,x:H.x-F.x,y:H.y-F.y,w:H.width,h:H.height,lp:{x:P.x,y:P.y},pos:{x:F.x,y:F.y},shiftGuide:{dir:"x",limit:0},downPosition:new yf.Math.Vector2(P)},V.rectGuide.gatherRects()}},No.prototype.clear=function(){var I=this;I._edgeHostGuideInfo=null,I._interactor.rectGuide.clear(),I._interactor._42()},No.prototype._42=function(){var U=this._edgeHostGuideInfo;U&&this._interactor._drawHostGuide(U)};var vi=$.freeze({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047}),vq=function(){function c(x,T){var W=m; return function(){return W||(W=x.getExtension(T)),W}}function K(W,N){N==m&&(N={}),N.version=G&&(W instanceof WebGL2RenderingContext||$.prototype.toString.call(W)===y)?2:1,N.extensions=function(){for(var u={},p=W.getSupportedExtensions(),Z=p.length;Z--;)u[name]=c(W,p[Z]);return u}();for(var R=$.keys(z),L=0,F=R.length;F>L;++L){var M=R[L];N[M]=W.getParameter(z[M])}if(N.version>1){R=$.keys(E);for(var L=0,F=R.length;F>L;++L){var M=R[L];N[M]=W.getParameter(E[M])}}return N}var G="undefined"!=typeof WebGL2RenderingContext,y="[object WebGL2RenderingContext]",z={aliasedLineWidthRange:vi.ALIASED_LINE_WIDTH_RANGE,aliasedPointSizeRange:vi.ALIASED_POINT_SIZE_RANGE,maxCombinedTextureImageUnits:vi.MAX_COMBINED_TEXTURE_IMAGE_UNITS,maxCubeMapTextureSize:vi.MAX_CUBE_MAP_TEXTURE_SIZE,maxFragmentUniformVectors:vi.MAX_FRAGMENT_UNIFORM_VECTORS,maxRenderBufferSize:vi.MAX_RENDERBUFFER_SIZE,maxTextureImageUnits:vi.MAX_TEXTURE_IMAGE_UNITS,maxTextureSize:vi.MAX_TEXTURE_SIZE,maxVaryingVectors:vi.MAX_VARYING_VECTORS,maxVertexAttribs:vi.MAX_VERTEX_ATTRIBS,maxVertexTextureImageUnits:vi.MAX_VERTEX_TEXTURE_IMAGE_UNITS,maxVertexUniformVectors:vi.MAX_VERTEX_UNIFORM_VECTORS,maxViewportDIMs:vi.MAX_VIEWPORT_DIMS},E={max3DTextureSize:vi.MAX_3D_TEXTURE_SIZE,maxArrayTextureLayers:vi.MAX_ARRAY_TEXTURE_LAYERS,maxColorAttachments:vi.MAX_COLOR_ATTACHMENTS,maxCombinedFragmentUniformComponents:vi.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,maxCombinedUniformBlocks:vi.MAX_COMBINED_UNIFORM_BLOCKS,maxCombinedVertexUniformComponents:vi.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,maxDrawBuffers:vi.MAX_DRAW_BUFFERS,maxElementIndex:vi.MAX_ELEMENT_INDEX,maxElementsIndices:vi.MAX_ELEMENTS_INDICES,maxElementsVertices:vi.MAX_ELEMENTS_VERTICES,maxFragmentInpuComponents:vi.MAX_FRAGMENT_INPUT_COMPONENTS,maxFragmentUniformBlocks:vi.MAX_FRAGMENT_UNIFORM_BLOCKS,maxFragmentUniformComponents:vi.MAX_FRAGMENT_UNIFORM_COMPONENTS,maxProgramTexelOffset:vi.MAX_PROGRAM_TEXEL_OFFSET,maxSamples:vi.MAX_SAMPLES,maxTextureLODBias:vi.MAX_TEXTURE_LOD_BIAS,maxTransformFeedbackInterleavedComponents:vi.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,maxTransformFeedbackSeparateAttribs:vi.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,maxTransformFeedbackSeparateComponents:vi.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,maxUniformBlockSize:vi.MAX_UNIFORM_BLOCK_SIZE,maxUniformBufferBindings:vi.MAX_UNIFORM_BUFFER_BINDINGS,maxVaryingComponents:vi.MAX_VARYING_COMPONENTS,maxVertexOutputComponents:vi.MAX_VERTEX_OUTPUT_COMPONENTS,maxVertexUniformBlocks:vi.MAX_VERTEX_UNIFORM_BLOCKS,maxVertexUniformComponents:vi.MAX_VERTEX_UNIFORM_COMPONENTS,minProgramTexelOffset:vi.MIN_PROGRAM_TEXEL_OFFSET};return{"for":function(R){var p=R._info;return p||(R._info=p=K(R,p)),p}}}(),Lo=function(){function z(z,b,C){return{def:z,getter:C?function(l){var c=vq.for(l);return c.version>1?l.getParameter(b):z}:function(P){return P.getParameter(b)},setter:C?function(K,H){var X=vq.for(K);X.version>1&&K.pixelStorei(b,H)}:function(G,$){G.pixelStorei(b,$)}}}function W(g){return"string"==typeof g?Jh(g):g.r!==m?(j[0]=g.r,j[1]=g.g,j[2]=g.b,j[3]=g.a,j):g.red!==m?(j[0]=g.red,j[1]=g.green,j[2]=g.blue,j[3]=g.alpha,j):g}function c(A){return R(A)?Array.prototype.slice.call(A,0):A}function G(C,a,z){this.gl=a,this._record=z||{},this._branches={},this._leafSync={},this._struct=C;for(var m=C.children,f=m.length;f--;){var A=m[f],q=A.name;A.isLeaf?(this._leafSync[q]=!1,this._record[q]=c(A.desc.def)):this._record[q]={}}}function P(u){function X(m,e){G.call(this,u,m,e);for(var q=N.length;q--;){var j=N[q];this._branches[j._name]=new j._type(m,this._record[j._name])}}function p(v,C){function W(t,b){for(var L=k,w=!1;L--;)t[L]!==b[L]&&(t[L]=b[L],w=!0);return w}var Q=v.name,t=R(v.desc.def),k=t&&v.desc.def.length;if(v.isLeaf){var U=v.desc.setter,l=v.desc.parse;$.defineProperty(C,Q,{configurable:!1,enumerable:!0,get:function(){return this._record[Q]},set:t?function(f){l&&(f=l(f)),(W(this._record[Q],f)||!this._leafSync[Q])&&(U(this.gl,this._record[Q]),this._leafSync[Q]=!0)}:function(c){this._record[Q]===c&&this._leafSync[Q]||(U(this.gl,c),this._record[Q]=c,this._leafSync[Q]=!0)}})}else N.push({_name:Q,_type:P(v)}),$.defineProperty(C,Q,{configurable:!1,enumerable:!0,get:function(){return this._branches[Q]},set:function(f){this._branches[Q].apply(f)}})}var N=[];return D(X,G),u.forEach(p,X.prototype),X}var j="undefined"!=typeof Float32Array&&new Float32Array(4),J={viewport:{def:[0,0,0/0,0/0],getter:function(y){return y.getParameter(y.VIEWPORT)},setter:function(R,o){var j=o[2]!==o[2]?R.drawingBufferWidth-o[0]:o[2],L=o[3]!==o[3]?R.drawingBufferHeight-o[1]:o[3];R.viewport(o[0],o[1],j,L)}},dither:{def:!1,getter:function(q){return q.isEnabled(q.DITHER)},setter:function(h,_){_?h.enable(h.DITHER):h.disable(h.DITHER)}},rasterizerDiscard:{def:!1,getter:function(o){var C=vq.for(o);return C.version>1&&o.isEnabled(o.RASTERIZER_DISCARD)},setter:function(N,h){var L=vq.for(N);1!==L.version&&(h?N.enable(N.RASTERIZER_DISCARD):N.disable(N.RASTERIZER_DISCARD))}},lineWidth:{def:1,getter:function(C){return C.lineWidth?C.getParameter(C.LINE_WIDTH):1},setter:function(f,F){f.lineWidth&&f.lineWidth(F)}},color:{clear:{def:[0,0,0,0],getter:function(v){return v.getParameter(v.COLOR_CLEAR_VALUE)},setter:function(h,_){h.clearColor(_[0],_[1],_[2],_[3])},parse:W},mask:{def:[!0,!0,!0,!0],getter:function(D){return D.getParameter(D.COLOR_WRITEMASK)},setter:function(r,u){r.colorMask(u[0],u[1],u[2],u[3])}}},blend:{enabled:{def:!1,getter:function(g){return g.isEnabled(g.BLEND)},setter:function(s,w){w?s.enable(s.BLEND):s.disable(s.BLEND)}},color:{def:[0,0,0,0],getter:function(k){return k.getParameter(k.BLEND_COLOR)},setter:function(E,s){E.blendColor(s[0],s[1],s[2],s[3])},parse:W},equation:{def:[vi.FUNC_ADD,vi.FUNC_ADD],getter:function(S){return[S.getParameter(S.BLEND_EQUATION_RGB),S.getParameter(S.BLEND_EQUATION_ALPHA)]},setter:function(R,L){R.blendEquationSeparate(L[0],L[1])},parse:function(s){var f=s.length;return f>1?s:1===f?(j[1]=j[0]=s[0],j):(j[1]=j[0]=s,j)}},func:{def:[vi.ONE,vi.ZERO,vi.ONE,vi.ZERO],getter:function(F){return[F.getParameter(F.BLEND_SRC_RGB),F.getParameter(F.BLEND_DST_RGB),F.getParameter(F.BLEND_SRC_ALPHA),F.getParameter(F.BLEND_DST_ALPHA)]},setter:function(G,W){G.blendFuncSeparate(W[0],W[1],W[2],W[3])},parse:function(s){var a=s.length;return a>3?s:(j[2]=j[0]=s[0],j[3]=j[1]=s[1],j)}}},cullFace:{enabled:{def:!1,getter:function(b){return b.isEnabled(b.CULL_FACE)},setter:function(S,r){r?S.enable(S.CULL_FACE):S.disable(S.CULL_FACE)}},mode:{def:vi.BACK,getter:function(P){return P.getParameter(P.CULL_FACE_MODE)},setter:function(V,G){V.cullFace(G)}},frontFace:{def:vi.CCW,getter:function(N){return N.getParameter(N.FRONT_FACE)},setter:function(e,l){e.frontFace(l)}}},scissor:{enabled:{def:!1,getter:function(s){return s.isEnabled(s.SCISSOR_TEST)},setter:function(N,i){i?N.enable(N.SCISSOR_TEST):N.disable(N.SCISSOR_TEST)}},box:{def:[0,0,0/0,0/0],getter:function(F){return F.getParameter(F.SCISSOR_BOX)},setter:function(Y,V){var R=V[2]!==V[2]?Y.drawingBufferWidth-V[0]:V[2],t=V[3]!==V[3]?Y.drawingBufferHeight-V[1]:V[3];Y.scissor(V[0],V[1],R,t)}}},depth:{enabled:{def:!1,getter:function(I){return I.isEnabled(I.DEPTH_TEST)},setter:function(Q,f){f?Q.enable(Q.DEPTH_TEST):Q.disable(Q.DEPTH_TEST)}},clear:{def:1,getter:function(h){return h.getParameter(h.DEPTH_CLEAR_VALUE)},setter:function(F,E){F.clearDepth(E)}},mask:{def:!0,getter:function(Y){return Y.getParameter(Y.DEPTH_WRITEMASK)},setter:function(d,T){d.depthMask(T)}},range:{def:[-1,1],getter:function(e){return e.getParameter(e.DEPTH_RANGE)},setter:function(l,z){l.depthRange(z[0],z[1])}},func:{def:vi.LESS,getter:function(_){return _.getParameter(_.DEPTH_FUNC)},setter:function(w,t){w.depthFunc(t)}}},stencil:{enabled:{def:!1,getter:function(J){return J.isEnabled(J.STENCIL_TEST)},setter:function(T,u){u?T.enable(T.STENCIL_TEST):T.disable(T.STENCIL_TEST)}},clear:{def:0,getter:function(q){return q.getParameter(q.STENCIL_CLEAR_VALUE)},setter:function(M,y){M.clearStencil(y)}},frontMask:{def:255,getter:function(l){return l.getParameter(l.STENCIL_WRITEMASK)},setter:function(U,W){U.stencilMaskSeparate(U.FRONT,W)}},frontOp:{def:[vi.KEEP,vi.KEEP,vi.KEEP],getter:function(a){return[a.getParameter(a.STENCIL_FAIL),a.getParameter(a.STENCIL_PASS_DEPTH_FAIL),a.getParameter(a.STENCIL_PASS_DEPTH_PASS)]},setter:function(m,V){m.stencilOpSeparate(m.FRONT,V[0],V[1],V[2])}},frontFunc:{def:[vi.ALWAYS,0,255],getter:function(l){return[l.getParameter(l.STENCIL_FUNC),l.getParameter(l.STENCIL_REF),l.getParameter(l.STENCIL_VALUE_MASK)]},setter:function(J,g){J.stencilFuncSeparate(J.FRONT,g[0],g[1],g[2])}},backMask:{def:255,getter:function(v){return v.getParameter(v.STENCIL_BACK_WRITEMASK)},setter:function(t,X){t.stencilMaskSeparate(t.BACK,X)}},backOp:{def:[vi.KEEP,vi.KEEP,vi.KEEP],getter:function(m){return[m.getParameter(m.STENCIL_BACK_FAIL),m.getParameter(m.STENCIL_BACK_PASS_DEPTH_FAIL),m.getParameter(m.STENCIL_BACK_PASS_DEPTH_PASS)]},setter:function(s,x){s.stencilOpSeparate(s.BACK,x[0],x[1],x[2])}},backFunc:{def:[vi.ALWAYS,0,255],getter:function(y){return[y.getParameter(y.STENCIL_BACK_FUNC),y.getParameter(y.STENCIL_BACK_REF),y.getParameter(y.STENCIL_BACK_VALUE_MASK)]},setter:function(g,c){g.stencilFuncSeparate(g.BACK,c[0],c[1],c[2])}}},hint:{generateMipmap:{def:vi.DONT_CARE,getter:function(o){return o.getParameter(o.GENERATE_MIPMAP_HINT)},setter:function(C,s){C.hint(C.GENERATE_MIPMAP_HINT,s)}},fragmentShaderDerivative:{def:vi.DONT_CARE,getter:function(D){var v=vq.for(D);return 1!==v.version||v.extensions.OES_standard_derivatives?D.getParameter(vi.FRAGMENT_SHADER_DERIVATIVE_HINT):vi.DONT_CARE},setter:function(N,G){var d=vq.for(N);return d.version>1||d.extensions.OES_standard_derivatives?(N.hint(vi.FRAGMENT_SHADER_DERIVATIVE_HINT,G),void 0):void 0}}},pixelStore:{packAlignment:z(4,vi.PACK_ALIGNMENT,!1),unpackAlignment:z(4,vi.UNPACK_ALIGNMENT,!1),unpackFlipY:z(!1,vi.UNPACK_FLIP_Y_WEBGL,!1),unpackPremultiplyAlpha:z(!1,vi.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),unpackColorspaceConversion:z(vi.BROWSER_DEFAULT_WEBGL,vi.UNPACK_COLORSPACE_CONVERSION_WEBGL,!1),packRowLength:z(0,vi.PACK_ROW_LENGTH,!0),packSkipPixels:z(0,vi.PACK_SKIP_PIXELS,!0),packSkipRows:z(0,vi.PACK_SKIP_ROWS,!0),unpackRowLength:z(0,vi.UNPACK_ROW_LENGTH,!0),unpackImageHeight:z(0,vi.UNPACK_IMAGE_HEIGHT,!0),unpackSkipPixels:z(0,vi.UNPACK_SKIP_PIXELS,!0),unpackSkipRows:z(0,vi.UNPACK_SKIP_ROWS,!0),unpackSkipImages:z(0,vi.UNPACK_SKIP_IMAGES,!0)},polygonOffset:{enabled:{def:!1,getter:function(O){return O.isEnabled(O.POLYGON_OFFSET_FILL)},setter:function(s,t){t?s.enable(s.POLYGON_OFFSET_FILL):s.disable(s.POLYGON_OFFSET_FILL)}},value:{def:[0,0],getter:function(Z){return[Z.getParameter(Z.POLYGON_OFFSET_FACTOR),Z.getParameter(Z.POLYGON_OFFSET_UNITS)]},setter:function(U,J){U.polygonOffset(J[0],J[1])}}},sampleCoverage:{enabled:{def:!1,getter:function(P){return P.isEnabled(P.SAMPLE_COVERAGE)},setter:function(T,G){G?T.enable(T.SAMPLE_COVERAGE):T.disable(T.SAMPLE_COVERAGE)}},alpha:{def:!1,getter:function(P){return P.isEnabled(P.SAMPLE_ALPHA_TO_COVERAGE)},setter:function(I,s){s?I.enable(I.SAMPLE_ALPHA_TO_COVERAGE):I.disable(I.SAMPLE_ALPHA_TO_COVERAGE)}},value:{def:[1,!1],getter:function(s){return[s.getParameter(s.SAMPLE_COVERAGE_VALUE),s.getParameter(s.SAMPLE_COVERAGE_INVERT)]},setter:function(P,V){P.sampleCoverage(V[0],V[1])}}}},y=sn.create(J,function(j){return"def"in j});G.prototype.reset=function(){for(var J=this._struct.children,i=J.length;i--;){var S=J[i],P=S.name;S.isLeaf?this[P]=S.desc.def:this._branches[P].reset()}},G.prototype.save=function(e){e==m&&(e={});for(var d=this._struct.children,f=d.length;f--;){var M=d[f],H=M.name;if(M.isLeaf)e[H]=c(this._record[H]);else{var R=e[H];R==m&&(e[H]=R={}),this._branches[H].save(R)}}return e},G.prototype.sync=function(Q,h){for(var g=this._struct.children,w=g.length;w--;){var m=g[w],r=m.name;m.isLeaf?(h||!this._leafSync[r])&&(Q?(this._record[r]=m.desc.getter(this.gl),this._leafSync[r]=!0):(m.desc.setter(this.gl,this._record[r]),this._leafSync[r]=!0)):this._branches[r].sync(Q,h)}},G.prototype.syncLoss=function(){for(var b=this._struct.children,B=b.length;B--;){var K=b[B];K.isLeaf?this._leafSync[K.name]=!1:this._branches[K.name].syncLoss()}},G.prototype.apply=function(I){for(var s=this._struct.children,C=s.length;C--;){var N=s[C],X=N.name;X in I&&(N.isLeaf?this[X]=I[X]:this._branches[X].apply(I[X]))}},G.prototype.append=function(O){var h=this._struct.childMap;for(var H in O){var r=h[H];r&&(r.isLeaf?this[H]=O[H]:this._branches[H].append(O[H]))}};var K=P(y);return function(P){var c=P._state;return c||(P._state=c=new K(P)),c}}(),kp=function(){function i(Q,Y,M,S){if(Q){var g=Q.length;if(g!=m)for(var d=0;S>d;++d)Y[M+d]=Q[d];else Q.toArray&&Q.toArray(Y,M)}else for(var d=0;S>d;++d)Y[M+d]=0}function e(t,S,X){var f=t[0];if(0>=f||f>0)return t;var $=S*X,I=E[$];if(I==m&&(E[$]=I=new Float32Array($)),0!==S){i(f,I,0,X);for(var d=1,r=0;d!==S;++d)r+=X,i(t[d],I,r,X)}return I}function p(b,Y){b.uniform1f(this.addr,Y)}function M(c,o){c.uniform1fv(this.addr,o)}function N(s,K){if(K.x!=m)s.uniform2f(this.addr,K.x,K.y);else{var r=E[2];r.set(K,0),s.uniform2fv(this.addr,r)}}function B(x,w){x.uniform2fv(this.addr,e(w,this.size,2))}function k(R,I){if(I.x!=m)R.uniform3f(this.addr,I.x,I.y,I.z);else if(I.r!=m)R.uniform3f(this.addr,I.r,I.g,I.b);else if(I.red!=m)R.uniform3f(this.addr,I.red,I.green,I.blue);else{var y=E[3];y.set(I,0),R.uniform3fv(this.addr,y)}}function f(b,$){b.uniform3fv(this.addr,e($,this.size,3))}function R(P,p){if("string"==typeof p&&(p=Jh(p)),p.x!=m)P.uniform4f(this.addr,p.x,p.y,p.z,p.w);else if(p.r!=m)P.uniform4f(this.addr,p.r,p.g,p.b,p.a);else if(p.red!=m)P.uniform4f(this.addr,p.red,p.green,p.blue,p.alpha);else{var f=E[4];f.set(p,0),P.uniform4fv(this.addr,f)}}function U(u,p){u.uniform4fv(this.addr,e(p,this.size,4))}function d(l,u){l.uniform1i(this.addr,u)}function z(D,Q){D.uniform1iv(this.addr,Q)}function S(K,E){K.uniform2iv(this.addr,E)}function n(t,L){t.uniform3iv(this.addr,L)}function P($,k){$.uniform4iv(this.addr,k)}function Y(L,x){L.uniform1i(this.addr,v[x?1:0])}function J(i,N){var f=E[4];f.set(N,0),i.uniformMatrix2fv(this.addr,!1,f)}function a(g,H){g.uniformMatrix2fv(this.addr,!1,e(H,this.size,4))}function T(V,U){var d=E[9];d.set(U,0),V.uniformMatrix3fv(this.addr,!1,d)}function r(f,$){f.uniformMatrix3fv(this.addr,!1,e($,this.size,9))}function X(K,I){var o=E[16];o.set(I,0),K.uniformMatrix4fv(this.addr,!1,o)}function V(R,m){R.uniformMatrix4fv(this.addr,!1,e(m,this.size,16))}function l(M,s){M.uniform1i(this.addr,this.slots[0]),M.activeTexture(M.TEXTURE0+this.slots[0]),M.bindTexture(M.TEXTURE_2D,s||M._emptyTexture)}function I(F,w){F.uniform1iv(this.addr,this.slots);for(var i=this.slots.length;i--;)F.activeTexture(F.TEXTURE0+this.slots[i]),F.bindTexture(F.TEXTURE_2D,w[i]||F._emptyTexture)}function A(M,Q){M.uniform1i(this.addr,this.slots[0]),M.activeTexture(M.TEXTURE0+this.slots[0]),M.bindTexture(M.TEXTURE_CUBE_MAP,Q||M._emptyCubeTexture)}function y(e,Y){e.uniform1iv(this.addr,this.slots);for(var n=this.slots.length;n--;)e.activeTexture(e.TEXTURE0+this.slots[n]),e.bindTexture(e.TEXTURE_CUBE_MAP,Y[n]||e._emptyCubeTexture)}function b(c,B,r){s[c]=[B,r]}function W($,A,g){switch($.type){case 35678:case 35680:if("uSampler"===g)return[0];if("uBlendSampler"===g)return[1];for(var _=$.size,W=new Int32Array(_),B=0;_>B;++B)W[B]=A.usedTextureSlot++;return W}return m}function G(k,O,R,K,I){this.name=k,this.addr=O,this.size=K?R.size:0,this.activeInfo=R,this.setter=s[R.type][K?1:0],this.slots=W(R,I,k),Sh(this)}function L(Y,n,e,q){var K=Y.name,y=K.length;for(w.lastIndex=0;;){var Q=w.exec(K),N=w.lastIndex,J=Q[1],W="]"===Q[2],Z=Q[3];if(W&&(J=0|J),Z===m||"["===Z&&N+2===y){e[J]=new G(J,n,Y,Z!==m,q);break}var u=e[J];u==m&&(e[J]=u={}),e=u}}function t(n,f,I){this.gl=f,this._program=I,this._leaves={},this._branches={},this._struct=n}function K(c){function U(P,n){t.call(this,c,P,n);for(var d=e.length;d--;){var x=e[d];this._branches[x._name]=new x._type(P,n)}this.uuid=vj.generateUUID()}function Z(i,G){var t=i.name;if(i.isLeaf){var R=H("d.setter(this.gl, v);",["v"],["d"],[i.desc]);$.defineProperty(G,t,{configurable:!1,enumerable:!0,get:function(){return R},set:R})}else e.push({_name:t,_type:K(i)}),$.defineProperty(G,t,{configurable:!1,enumerable:!0,get:function(){return this._branches[t]},set:function(C){this._branches[t].apply(C)}})}var e=[];return D(U,t),c.forEach(Z,U.prototype),U}function u(t,U){for(var z=t.getProgramParameter(U,t.ACTIVE_UNIFORMS),O={},Y={usedTextureSlot:2};z--;){var G=t.getActiveUniform(U,z),R=G.name,S=t.getUniformLocation(U,R);L(G,S,O,Y)}var N=sn.create(O,function(J){return"addr"in J}),E=K(N);return $.defineProperty(E.prototype,"textureCount",{configurable:!1,enumerable:!1,writable:!1,value:Y.usedTextureSlot}),new E(t,U)}var E=[];if("function"==typeof Float32Array)for(var _=1;17>_;++_)E[_]=new Float32Array(_);var v=[0,1],s=[];b(vi.FLOAT,p,M),b(vi.FLOAT_VEC2,N,B),b(vi.FLOAT_VEC3,k,f),b(vi.FLOAT_VEC4,R,U),b(vi.INT,d,z),b(vi.INT_VEC2,S,S),b(vi.INT_VEC3,n,n),b(vi.INT_VEC4,P,P),b(vi.BOOL,Y,z),b(vi.BOOL_VEC2,S,S),b(vi.BOOL_VEC3,n,n),b(vi.BOOL_VEC4,P,P),b(vi.FLOAT_MAT2,J,a),b(vi.FLOAT_MAT3,T,r),b(vi.FLOAT_MAT4,X,V),b(vi.SAMPLER_2D,l,I),b(vi.SAMPLER_CUBE,A,y);var w=/([\w\d_]+)(\])?(\[|\.)?/g;return t.prototype.apply=function(h){for(var H=this._struct.children,v=H.length;v--;){var z=H[v],L=z.name;L in h&&(z.isLeaf?this[L]=h[L]:this._branches[L].apply(h[L]))}},t.prototype.append=function(h){var U=this._struct.childMap;for(var B in h){var f=U[B];f&&(f.isLeaf?this[B]=h[B]:this._branches[B].append(h[B]))}},function(p,q){var i=q._uniforms;return i||(q._uniforms=i=u(p,q)),i}}(),ch=function(){function i(Q,p,v){p.vertexAttrib1f(Q.addr,v)}function q(b,O,H){if(H.x!=m)O.vertexAttrib2f(b.addr,H.x,H.y);else{var h=R[2];h.set(H,0),O.vertexAttrib2fv(b.addr,h)}}function U(o,J,g){if(g.x!=m)J.vertexAttrib3f(o.addr,g.x,g.y,g.z);else if(g.r!=m)J.vertexAttrib3f(o.addr,g.r,g.g,g.b);else if(g.red!=m)J.vertexAttrib3f(o.addr,g.red,g.green,g.blue);else{var A=R[3];A.set(g,0),J.vertexAttrib3fv(o.addr,A)}}function M(D,X,F){if("string"==typeof F&&(F=Jh(F)),F.x!=m)X.vertexAttrib4f(D.addr,F.x,F.y,F.z,F.w);else if(F.r!=m)X.vertexAttrib4f(D.addr,F.r,F.g,F.b,F.a);else if(F.red!=m)X.vertexAttrib4f(D.addr,F.red,F.green,F.blue,F.alpha);else{var U=R[4];U.set(F,0),X.vertexAttrib4fv(D.addr,U)}}function u(o,y,k){k=k.el||k;for(var V=0,N=0;2>V;++V)y.vertexAttrib2f(o.addr,k[N++],k[N++])}function A(r,q,F){F=F.el||F;for(var f=0,K=0;3>f;++f)q.vertexAttrib3f(r.addr,F[K++],F[K++],F[K++])}function e(P,R,m){m=m.el||m;for(var G=0,A=0;4>G;++G)R.vertexAttrib4f(P.addr,m[A++],m[A++],m[A++],m[A++])}function I(d,X,Z,$){for(var j,U=Z?1:0,x=X.addr,v=0;$>v;v++)j=y[x+v]||0,j!==U&&(y[x+v]=U,d.vertexAttribDivisor(x+v,U))}function N(a,P,L,R,C,d,n){P.bindBuffer(P.ARRAY_BUFFER,L);var O=a.addr;P.enableVertexAttribArray(O),I(P,a,L.instanced,1),P.vertexAttribPointer(O,1,R||P.FLOAT,!!C,d||0,n||0),P.bindBuffer(P.ARRAY_BUFFER,null)}function B(g,O,S,v,D,d,Q){O.bindBuffer(O.ARRAY_BUFFER,S);var b=g.addr;O.enableVertexAttribArray(b),I(O,g,S.instanced,1),O.vertexAttribPointer(b,2,v||O.FLOAT,!!D,d||0,Q||0),O.bindBuffer(O.ARRAY_BUFFER,null)}function k(w,$,s,J,_,N,l){$.bindBuffer($.ARRAY_BUFFER,s);var n=w.addr;$.enableVertexAttribArray(n),I($,w,s.instanced,1),$.vertexAttribPointer(n,3,J||$.FLOAT,!!_,N||0,l||0),$.bindBuffer($.ARRAY_BUFFER,null)}function P(r,_,C,w,P,J,R){_.bindBuffer(_.ARRAY_BUFFER,C);var z=r.addr;_.enableVertexAttribArray(z),I(_,r,C.instanced,1),_.vertexAttribPointer(z,4,w||_.FLOAT,!!P,J||0,R||0),_.bindBuffer(_.ARRAY_BUFFER,null)}function X(w,o,m,G,g,r,b){var r=r||16,b=b||0,C=w.addr;o.bindBuffer(o.ARRAY_BUFFER,m),o.enableVertexAttribArray(C),o.vertexAttribPointer(C,2,G||o.FLOAT,!!g,r,b),o.enableVertexAttribArray(C+1),o.vertexAttribPointer(C+1,2,G||o.FLOAT,!!g,r,b+8),I(o,w,m.instanced,2),o.bindBuffer(o.ARRAY_BUFFER,null)}function V(l,M,d,g,K,c,b){var c=c||36,b=b||0,J=l.addr;M.bindBuffer(M.ARRAY_BUFFER,d);for(var G=0;3>G;G++)M.enableVertexAttribArray(J+G),M.vertexAttribPointer(J+G,3,g||M.FLOAT,!!K,c,b+12*G);I(M,l,d.instanced,3),M.bindBuffer(M.ARRAY_BUFFER,null)}function S(L,r,k,z,P,b,T){var b=b||64,T=T||0,H=L.addr;r.bindBuffer(r.ARRAY_BUFFER,k);for(var $=0;4>$;$++)r.enableVertexAttribArray(H+$),r.vertexAttribPointer(H+$,4,z||r.FLOAT,!!P,b,T+16*$);I(r,L,k.instanced,4),r.bindBuffer(r.ARRAY_BUFFER,null)}function g(l,n,k,N){j[l]=function(B,l,E,r,D,M){this.addr==m||this.addr<0||(l==m||l===!1?N(B,this.addr):mf(l)===K?k(this,B,l,E,r,D,M):(N(B,this.addr),n(this,B,l)))}}function v(n,j){n.disableVertexAttribArray(j)}function L(G,F){G.disableVertexAttribArray(F),G.disableVertexAttribArray(F+1)}function a(i,y){i.disableVertexAttribArray(y),i.disableVertexAttribArray(y+1),i.disableVertexAttribArray(y+2)}function Y(T,q){T.disableVertexAttribArray(q),T.disableVertexAttribArray(q+1),T.disableVertexAttribArray(q+2),T.disableVertexAttribArray(q+3)}function _(K,p,M){this.name=K,this.addr=p,this.activeInfo=M,this.setter=j[M.type],Sh(this)}function o(v,s,o){this.gl=s,this.program=o,this._branches={},this._struct=v}function s(x){function g(b,r){o.call(this,x,b,r);for(var v=q.length;v--;){var h=q[v];this._branches[h._name]=new h._type(b,r)}}function a(h,r){var c=h.name;if(h.isLeaf){var W=H("d.setter(this.gl, v);",["v"],["d"],[h.desc]);$.defineProperty(r,c,{configurable:!1,enumerable:!0,get:function(){return W},set:W})}else q.push({_name:c,_type:s(h)}),$.defineProperty(r,c,{configurable:!1,enumerable:!0,get:function(){return this._branches[c]},set:function(X){this._branches[c].apply(X)}})}var q=[];return D(g,o),x.forEach(a,g.prototype),g}function Z(T,A){for(var N=T.getProgramParameter(A,T.ACTIVE_ATTRIBUTES),O={};N--;){var r=T.getActiveAttrib(A,N),I=r.name,b=T.getAttribLocation(A,I);O[I]=new _(I,b,r)}var G=sn.create(O,function(u){return"addr"in u}),Z=s(G);return new Z(T,A)}for(var R=[],y={},T=1;17>T;++T)R[T]=new ip(T);var j=[],K="undefined"!=typeof WebGLBuffer&&WebGLBuffer.prototype;return g(vi.FLOAT,i,N,v),g(vi.FLOAT_VEC2,q,B,v),g(vi.FLOAT_VEC3,U,k,v),g(vi.FLOAT_VEC4,M,P,v),g(vi.FLOAT_MAT2,u,X,L),g(vi.FLOAT_MAT3,A,V,a),g(vi.FLOAT_MAT4,e,S,Y),o.prototype.disable=function(){for(var C=this._struct.children,T=C.length;T--;){var u=C[T],a=u.name;u.isLeaf?this[a]=m:this._branches[a].disable()}},o.prototype.apply=function(z){for(var x=this._struct.children,v=x.length;v--;){var r=x[v],w=r.name;w in z&&(r.isLeaf?this[w]=z[w]:this._branches[w].apply(z[w]))}},o.prototype.append=function(u){var M=this._struct.childMap;for(var v in u){var E=M[v];E&&(E.isLeaf?this[v]=u[v]:this._branches[v].append(u[v]))}},function(x,B){var w=B._attribs;return w||(B._attribs=w=Z(x,B)),w}}(),Vk=function(G){var U=this;$.defineProperties(this,{gl:{configurable:!1,enumerable:!1,value:G,writable:!1},glState:{configurable:!1,enumerable:!1,value:Lo(G),writable:!1}}),U._currProgram=m,U._currUniforms=m,U._currAttribs=m,U._sync=!0};$.defineProperties(Vk.prototype,{program:{configurable:!1,enumerable:!1,get:function(){return this._currProgram},set:function(K){var V=this;V._sync&&K===V._currProgram||(V.gl.useProgram(K),V._currProgram=K,V._currUniforms=kp(V.gl,K),V._currAttribs=ch(V.gl,K),V._sync=!0)}},uniforms:{configurable:!1,enumerable:!1,get:function(){var z=this;return z._currProgram&&!z._sync&&(z.gl.useProgram(z._currProgram),z._sync=!0),z._currUniforms},set:function(C){var c=this;c._currUniforms&&(c._currProgram&&!c._sync&&(c.gl.useProgram(c._currProgram),this._sync=!0),c._currUniforms.apply(C))}},attribs:{configurable:!1,enumerable:!1,get:function(){var o=this;return o._currProgram&&!o._sync&&(o.gl.useProgram(o._currProgram),o._sync=!0),o._currAttribs},set:function(t){var k=this;k._currUniforms&&(k._currProgram&&!k._sync&&(k.gl.useProgram(k._currProgram),this._sync=!0),k._currAttribs.apply(t))}}}),Vk.prototype.useProgram=function(L){var a=this;a._sync&&L===a._currProgram||(a.gl.useProgram(L),a._currProgram=L,a._currUniforms=kp(a.gl,L),a._currAttribs=ch(a.gl,L),a._sync=!0)},Vk.prototype.directState=function(){return this.glState},Vk.prototype.directUniforms=function(){return this._currUniforms},Vk.prototype.directAttribs=function(){return this._currAttribs},Vk.prototype.syncLoss=function(){this._sync=!1,this.glState.syncLoss()},Vk.for=function(f){var O=f._renderState;return O||(f._renderState=O=new Vk(f)),O};var Cn="directional",Oq="point",gr="spot",Ch="light.color",nr=4294967295,ce=0,Rf={},jn=[],Hr=0,cf=function(e,N){ib(N)&&ws.test(N)?Kq(e,N):Pg(N)&&N.modelType?ui(e,N):N===m?delete po[e]:po[e]=N},cm=function(t){return t},$c=function(i){i=t.convertShape3dModelName(i);var D;if(Pg(i)){if(i.modelType){if(i.uuid){if(D=po[i.uuid])return D}else i.uuid=F.Math.generateUUID();return D===m&&(Kg&&Kg[i.uuid]||ui(i.uuid,i)),m}return i}return D=po[i],i&&D===m&&ws.test(i)&&(Kg&&Kg[i]||Kq(i,i)),D},Eo=function(z,g){z.frameStack?z.frameStack.push(g):z.frameStack=[g],z.bindFramebuffer(z.FRAMEBUFFER,g)},Xk=function(l){var b=l.frameStack;if(b){if(b.pop(),b.length)return l.bindFramebuffer(l.FRAMEBUFFER,b[b.length-1]),void 0;l.frameStack=null}l.bindFramebuffer(l.FRAMEBUFFER,null)};di(t,{graph3dViewAttributes:P,graph3dViewFirstPersonMode:!1,graph3dViewMouseRoamable:!0,graph3dViewMoveStep:15,graph3dViewRotateStep:d/60,graph3dViewSortable:!1,graph3dViewBlockSelectable:!0,graph3dViewEditHelperDisabled:!1,graph3dViewPannable:!0,graph3dViewRotatable:!0,graph3dViewWalkable:!0,graph3dViewResettable:!0,graph3dViewZoomable:!0,graph3dViewRectSelectable:!0,graph3dViewRectSelectBackground:Fc,graph3dViewGridVisible:!1,graph3dViewGridSize:50,graph3dViewGridGap:50,graph3dViewGridColor:[.4,.75,.85,1],graph3dViewRotateMaxPhi:d,graph3dViewRotateMinPhi:0,graph3dViewShadowDisabled:!0,graph3dViewShadowQuality:"high",graph3dViewShadowIntensity:.3,graph3dViewShadowBias:-.005,graph3dViewShadowRadius:.1,graph3dViewShadowType:"hard",graph3dViewShadowDegreeX:30,graph3dViewShadowDegreeZ:-10,graph3dViewOriginAxisVisible:!1,graph3dViewCenterAxisVisible:!1,graph3dViewAxisXColor:[1,0,0,1],graph3dViewAxisYColor:[0,1,0,1],graph3dViewAxisZColor:[0,0,1,1],graph3dViewEditSizeColor:[1,1,0,1],graph3dViewOrtho:!1,graph3dViewOrthoWidth:2e3,graph3dViewSyncEyeWithOrthoWidth:!1,graph3dViewFovy:d/4,graph3dViewNear:10,graph3dViewFar:1e4,graph3dViewEye:[0,300,1e3],graph3dViewCenter:[0,0,0],graph3dViewUp:[0,1,-1e-7],graph3dViewDataNumWarningLine:1e4,graph3dViewHeadlightRange:0,graph3dViewHeadlightGroup:0,graph3dViewHeadlightColor:[1,1,1,1],graph3dViewHeadlightIntensity:1,graph3dViewHeadlightDisabled:!1,graph3dViewHeadlightAmbientIntensity:.7,graph3dViewFogDisabled:!0,graph3dViewFogMode:"linear",graph3dViewFogDensity:5e-4,graph3dViewFogColor:"white",graph3dViewFogNear:1,graph3dViewFogFar:2e3,graph3dViewPickerResolution:.5,graph3dViewDashDisabled:!0,graph3dViewBatchBlendDisabled:!0,graph3dViewBatchBrightnessDisabled:!0,graph3dViewBatchColorDisabled:!1,graph3dViewBatchInstancedDisabled:!0,graph3dViewEnvmapType:"legacy",graph3dMaxVectorCacheTime:50,graph3dEnvmapCapabilityRequire:8,setShape3dModel:cf,getShape3dModel:$c,convertShape3dModelName:cm,getShape3dModelMap:function(){return po},getCachedShape3dModelMap:function(){return sq},createMatrix:function(n,e){ks(n)||(n=[n]);for(var R=n.length-1;R>=0;R--){var s=n[R];e=wf(s.mat,s.s3,s.r3,s.rotationMode,s.t3,e)}return e},transformVec:function(h,B){return Ae(h,B)},glBindFrame:Eo,glUnbindFrame:Xk,createBoxModel:function(){return{vs:vs,ns:Hh,uv:Yj,is:ah}},createRoundRectModel:function(H,h){return Lp.roundRect(H,h)},createStarModel:function(a,l){return Lp.star(a,l)},createRectModel:function(v,R){return Lp.rect(v,R)},createTriangleModel:function(D,v){return Lp.triangle(D,v)},createRightTriangleModel:function(i,b){return Lp.rightTriangle(i,b)},createParallelogramModel:function(C,B){return Lp.parallelogram(C,B)},createTrapezoidModel:function(v,L){return Lp.trapezoid(v,L)},createSmoothSphereModel:function(I,J,d,E,T,V,g){return lo(new Qm(I,J,d,E,T,V,g))},createSphereModel:function(y,d,_,C,o,B,K){return y?td(y,d,_,C,o,B,K):t.createSmoothSphereModel()},createSmoothConeModel:function(C,W,o,L,f){return gh(C,W,o,L,f)},createConeModel:function(o,d,T,l,x,B,h,u){return o?ud(o,d,T,l,x,B,h,u):gh(B)},createSmoothCylinderModel:function(f,V,r,B,G,O,s,X){return lo(new Xq(f,V,r,B,G,O,s,X))},createCylinderModel:function(l,j,S,r,L,U,w,a){return l?rn(l,j,S,r,L,U,w,a):Oi(U,w)},createSmoothTorusModel:function(f,l,e,V,D,J){return lo(new Ir(f,l,e,V,D,J))},createTorusModel:function(Z,L,w,g,X,H,J,f){return Z?xg(Z,L,w,g,X,H,J,f):Wf(H,J)},createExtrusionModel:function(d,K,O,c,f,Q,y,i){return Vh(d,K,O,c,f,Q,y,i)},createSmoothRingModel:function(s,U,P,J,v,j){for(var T=[],L=0;LK;K++){var V=Q[z[K]];if(V)for(var d=0,t=V.length;t>d;d+=3)V[d]=(V[d]-c)/l-.5,V[d+1]=(V[d+1]-Z)/I-.5,V[d+2]=(V[d+2]-w)/j-.5}return Q},loadFontFace:function(h,p){t.xhrLoad(h,function(A){if(!A)return p();var G;try{G=JSON.parse(A)}catch(D){G=JSON.parse(A.substring(65,A.length-2))}Vj.loadFace(G),p&&p(G.familyName.toLowerCase())},p?null:{sync:!0})},getShaderErrorLog:function(){return jn.join("\n")},createRingModel:function(T,A,k,x,E,y,R,i,p,I){for(var w=[],Q=0;Q1){if($=c[0],x)for(a=$.x,Z=$.y,Q=R;i>Q;Q++)u=Q+1,b=Q*f,O=u*f,F=n(b),H=r(b),m=n(O),h=r(O),q.push(F*a,Z,-H*a,m*a,Z,-h*a,0,Z,0),o.push(.5-.5*F,.5-.5*H,.5-.5*m,.5-.5*h,.5,.5);for(M=0;s>M;M++){for(S=c[M],a=$.x,g=S.x,Z=$.y,J=S.y,D=v/e,v+=Yh($,S),d=v/e,Q=R;i>Q;Q++)u=Q+1,b=Q*f,O=u*f,F=n(b),H=r(b),m=n(O),h=r(O),C.push(F*g,J,-H*g,m*g,J,-h*g,F*a,Z,-H*a,m*g,J,-h*g,m*a,Z,-h*a,F*a,Z,-H*a),l.push(Q/y,d,u/y,d,Q/y,D,u/y,d,u/y,D,Q/y,D),p&&Q===R&&(V.push(0,Z,0,0,J,0,F*g,J,-H*g,F*g,J,-H*g,F*a,Z,-H*a,0,Z,0),L.push(0,.5-Z,0,.5-J,2*g,.5-J,2*g,.5-J,2*a,.5-Z,0,.5-Z)),I&&u===i&&(Y.push(0,Z,0,m*g,J,-h*g,0,J,0,m*g,J,-h*g,0,Z,0,m*a,Z,-h*a),G.push(1,.5-Z,1-2*g,.5-J,1,.5-J,1-2*g,.5-J,1,.5-Z,1-2*a,.5-Z));$=S}if(E)for(a=$.x,Z=$.y,Q=R;i>Q;Q++)u=Q+1,b=Q*f,O=u*f,F=n(b),H=r(b),m=n(O),h=r(O),j.push(m*a,Z,-h*a,F*a,Z,-H*a,0,Z,0),K.push(.5-.5*m,.5+.5*h,.5-.5*F,.5+.5*H,.5,.5)}}),{vs:C,uv:l,bottom_vs:j,bottom_uv:K,top_vs:q,top_uv:o,from_vs:V,from_uv:L,to_vs:Y,to_uv:G}}},!0),di(l,{"3d.move.mode":m,"3d.selectable":!0,"3d.visible":!0,"3d.movable":!0,"3d.editable":!0,"3d.clip.direction":null,"3d.clip.percentage":1,"3d.reflectable":!0,"shape.border.gradient.color":m,"edge.gradient.color":m,"edge.source.t3":m,"edge.target.t3":m,"light.type":Oq,"light.group":0,"light.center":[0,0,0],"light.color":[1,1,1,1],"light.disabled":!1,"light.angle":d/4,"light.range":0,"light.exponent":1,"light.intensity":1,"light.mask":nr,"headlight.ambientIntensity":m,"wf.visible":!1,"wf.width":1,"wf.color":Gh,"wf.short":!1,"wf.mat":m,"wf.geometry":!1,"wf.loadQuadWireframe":!1,"wf.combineTriangle":!0,batch:m,"transparent.mask":!1,brightness:m,"select.brightness":.7,"repeat.uv.length":m,"shadow.cast":!0,"shadow.receive":!0,"3d.clipbox":m,"3d.clipbox.mask":nr,"3d.clipbox.group":0,"3d.clipbox.shape":"cube","effect.flow":!1,"effect.flow.gradient":"spread.horizontal","effect.flow.uvshape":"rect","effect.flow.size":512,"effect.flow.group":0,"effect.flow.intensity":1,"effect.flow.blend":m,"effect.flow.mask":nr,bloom:!1,envmap:0,"envmap.probe":0,roughness:0,renderTextureSamples:4,alphaTest:.4,autorotate:!1,fixSizeOnScreen:!1,"texture.cache":!1,"hide.overlapping.group":m,"vector.dynamic":!1,"vector.dynamic.maxsize":2048,"texture.scale":1,"geometry.cache":!1,"highlight.mode":!1,"highlight.type":"hard","highlight.visible":!0,"highlight.width":.8,"highlight.color":"rgba(190, 210, 250, 1)","highlight.glow":.8,"highlight.strength":2,"color.empty":[0,0,0,0],"label.face":Nl,"label.t3":m,"label.r3":m,"label.texture.scale":2,"label.rotationMode":hk,"label.light":!1,"label.blend":m,"label.reverse.flip":!1,"label.reverse.color":pq,"label.reverse.cull":!1,"label.transparent":!1,"label.autorotate":!1,"label2.face":Nl,"label2.t3":m,"label2.r3":m,"label2.texture.scale":2,"label2.rotationMode":hk,"label2.light":!1,"label2.blend":m,"label2.reverse.flip":!1,"label2.reverse.color":pq,"label2.reverse.cull":!1,"label2.transparent":!1,"label2.autorotate":!1,"note.face":Nl,"note.t3":m,"note.r3":m,"note.texture.scale":2,"note.rotationMode":hk,"note.light":!1,"note.blend":m,"note.reverse.flip":!1,"note.reverse.color":pq,"note.reverse.cull":!1,"note.transparent":!1,"note.autorotate":!1,"note2.face":Nl,"note2.t3":m,"note2.r3":m,"note2.texture.scale":2,"note2.rotationMode":hk,"note2.light":!1,"note2.blend":m,"note2.reverse.flip":!1,"note2.reverse.color":pq,"note2.reverse.cull":!1,"note2.transparent":!1,"note2.autorotate":!1,shape3d:m,"shape3d.color":kd,"shape3d.top.color":m,"shape3d.bottom.color":m,"shape3d.from.color":m,"shape3d.to.color":m,"shape3d.image":m,"shape3d.image.projection":m,"shape3d.top.image":m,"shape3d.bottom.image":m,"shape3d.from.image":m,"shape3d.to.image":m,"shape3d.light":!0,"shape3d.side":0,"shape3d.side.from":m,"shape3d.side.to":m,"shape3d.smooth":m,"shape3d.visible":!0,"shape3d.from.visible":!0,"shape3d.to.visible":!0,"shape3d.top.visible":!0,"shape3d.bottom.visible":!0,"shape3d.torus.radius":.17,"shape3d.resolution":0,"shape3d.blend":m,"shape3d.opacity":m,"shape3d.reverse.flip":!1,"shape3d.reverse.color":pq,"shape3d.reverse.cull":!1,"shape3d.transparent":!1,"shape3d.uv.offset":m,"shape3d.uv.scale":m,"shape3d.uv.rotation":m,"shape3d.uv.anchor":m,"shape3d.top.uv.offset":m,"shape3d.top.uv.scale":m,"shape3d.top.uv.rotation":m,"shape3d.top.uv.anchor":m,"shape3d.bottom.uv.offset":m,"shape3d.bottom.uv.scale":m,"shape3d.bottom.uv.rotation":m,"shape3d.bottom.uv.anchor":m,"shape3d.from.uv.offset":m,"shape3d.from.uv.scale":m,"shape3d.from.uv.rotation":m,"shape3d.from.uv.anchor":m,"shape3d.to.uv.offset":m,"shape3d.to.uv.scale":m,"shape3d.to.uv.rotation":m,"shape3d.to.uv.anchor":m,"shape3d.top.cap":m,"shape3d.bottom.cap":m,"shape3d.start.angle":0,"shape3d.sweep.angle":M,"shape3d.point.epsilon":1e-6,"shape3d.discard.selectable":!0,"shape3d.top.discard.selectable":!0,"shape3d.bottom.discard.selectable":!0,"shape3d.from.discard.selectable":!0,"shape3d.to.discard.selectable":!0,"shape3d.scaleable":!0,"shape3d.reflector":!1,"shape3d.reflector.color":"rgb(128,128,128)","shape3d.reflector.blur":0,"shape3d.reflector.blur.iterations":1,"shape3d.reflector.background":null,"shape3d.reflector.clip":.003,"shape3d.reflector.shadow":"scene","camera.type":"perspective","camera.aspect":1,"camera.fovy":m,"camera.ortho.width":m,"camera.near":m,"camera.far":m,"camera.background":0,"camera.renderSky":!0,"camera.renderAxis":!1,"camera.renderGrid":!1,"camera.renderEdit":!1,"camera.onlySky":!1,"texture.mipmap.max":m,"texture.filter":m,"texture.filter.min":m,"texture.filter.mag":m,"texture.wrap":m,"points.image":"rect","points.color":"white","points.transparent":!1,"points.size":20,"points.opacity":1,"points.uv.scale":[1,1],"points.uv.offset":[0,0],"points.discard.selectable":!1,"all.light":!0,"all.visible":!0,"all.color":kd,"all.image":m,"all.blend":m,"all.opacity":m,"all.reverse.flip":!1,"all.reverse.color":pq,"all.reverse.cull":!1,"all.transparent":!1,"all.uv":m,"all.uv.offset":m,"all.uv.scale":m,"all.uv.rotation":m,"all.uv.anchor":m,"all.discard.selectable":!0,mat:m,"left.mat":m,"right.mat":m,"top.mat":m,"bottom.mat":m,"front.mat":m,"back.mat":m,"edge.source.anchor.elevation":m,"edge.target.anchor.elevation":m,"edge.source.offset.elevation":0,"edge.target.offset.elevation":0},!0); var nh,zg=!1,rm=[0,0,0,0],Bm=function(u){return u instanceof Bf},Rc=function(W){return[W.x,W.e||0,W.y]},Jo=function(N,j,Z){for(var j=Jh(j||0),F=j[0],V=j[1],T=j[2];Z--;)N.push(F,V,T)},Oe=function(q,l,e){for(var l=Jh(l||0),g=l[0],Y=l[1],j=l[2],F=l[3];e--;)q.push(g,Y,j,F)},Vr=function(x,p,X){if(p)for(var t,z,c,q=p[0],Z=p[1],d=p[2],U=p[4],K=p[5],y=p[6],$=p[8],M=p[9],O=p[10],L=p[12],k=p[13],H=p[14],e=X.length,u=0,u=0;e>u;u+=3)t=X[u],z=X[u+1],c=X[u+2],x.push(q*t+U*z+$*c+L,Z*t+K*z+M*c+k,d*t+y*z+O*c+H);else rl(x,X)},xf=function(q,u,Q){var T=u.s("light.intensity"),l=Jh(u.s(Ch)),v=l[0],m=l[1],e=l[2];1!==T&&(v*=T,m*=T,e*=T);var C=u.s("light.disabled");q.push(v,m,e,C?1:0),Q.c.push(v,m,e),Q.g.push(C?-1:u.s("light.group")),Q.e.push(C?1:0)},de=function(I,x){var K=Vk.for(x),Z=K.directUniforms(),R=I._lastLightUploadInfo={c:[],g:[],e:[]};Z.uHeadlightRange=I._headlightRange;var b=Z.uHeadlightAmbientIntensity=I._headlightAmbientIntensity,h=I._headlightIntensity,S=Jh(I._headlightColor);1!==h&&(S=[S[0]*h,S[1]*h,S[2]*h]);var C;Z.uHeadlightColor=[S[0],S[1],S[2],(C=I._headlightDisabled)?1:0],R.c.push(S[0],S[1],S[2]),R.g.push(C?-1:I._headlightGroup),R.e.push(C?1:0);var g=I._59O,N=I._spots,o=I._dirs;if(g.length){var u=[],j=[],A=[];g.forEach(function(h){xf(u,h,R),rl(j,I._transformPointToViewSpace(h.p3())),A.push(h.s("light.range"))}),Z.uPointColor=u,Z.uPointRange=A,Z.uPointPosition=j}if(N.length){var s=[],e=[],m=[],F=[],w=[],v=[];N.forEach(function(U){xf(s,U,R),rl(e,I._transformPointToViewSpace(U.p3())),rl(w,I._transformDirectionToViewSpace(U.p3(),U.s("light.center"))),m.push(U.s("light.range")),F.push(n(U.s("light.angle")/2)),v.push(U.s("light.exponent"))}),Z.uSpotColor=s,Z.uSpotRange=m,Z.uSpotAngle=F,Z.uSpotExponent=v,Z.uSpotPosition=e,Z.uSpotDirection=w}if(o.length){var y=[],U=[];o.forEach(function(F){xf(y,F,R),rl(U,I._transformDirectionToViewSpace(F.p3()))}),Z.uDirColor=y,Z.uDirDirection=U}I._lastLightMask=nr,I._lastHeadlightAmbientIntensity=b},il=function(_,i,Z,a){if(a===m&&(a=_._headlightAmbientIntensity),a!==_._lastHeadlightAmbientIntensity&&(i.uHeadlightAmbientIntensity=_._lastHeadlightAmbientIntensity=a),Z!==_._lastLightMask){_._lastLightMask=Z;var C=_._lastLightUploadInfo;if(C){var c,R,N,J=C.g,e=C.e,G=J.length,M=new Array(G),$=!1;for(R=0;G>R;R++)c=J[R],N=0>c||c>=32?1:Z&1<R;R++)Y.push(u[P++],u[P++],u[P++],e[p++]);i.uPointColor=Y}if(G=H.length){for(R=0,Y=[];G>R;R++)Y.push(u[P++],u[P++],u[P++],e[p++]);i.uSpotColor=Y}if(G=d.length){for(R=0,Y=[];G>R;R++)Y.push(u[P++],u[P++],u[P++],e[p++]);i.uDirColor=Y}}}}},ni=function(w,I){return Math.max(w.getRotateMinPhi()+Id,Math.min(w.getRotateMaxPhi()-Id,I))},Pq=function(){return.05+ek()/2},Ol=function(X,v,Z,h){var R,G=X.getEye();return X.isOrtho()?(R=se(X.getCenter(),G),R[0]+=h[0],R[1]+=h[1],R[2]+=h[2]):R=G,Jf(v,Z,h,R)},Jf=function(O,S,e,B){var t=Ze(O,S),o=se(B,e,!0),r=Ze(o,S);if(_(r)Y)return u=Of(q.y-O.y,O.x-q.x),{x:O.x+d*r(u),y:O.y+d*n(u)};var Q=q.x-O.x,b=q.y-O.y,M=p.x-O.x,c=p.y-O.y,N=L(Q*Q+b*b),P=L(M*M+c*c);u=S(Ze(U,W))/2,k=U[1]*W[0]-U[0]*W[1]>0?-1:1,h/=Y,z/=Y;var K=d/r(u),e=B(N,P)/n(u);Y=Math.min(K,e);var T={x:O.x+k*Y*h,y:O.y+k*Y*z};return p.b&&K>P/n(u)&&(T.adjust=!0),T},er=function(q){var d=q[1],M=q[2],f=q[3],v=q[6],G=q[7],C=q[11];q[1]=q[4],q[2]=q[8],q[3]=q[12],q[4]=d,q[6]=q[9],q[7]=q[13],q[8]=M,q[9]=v,q[11]=q[14],q[12]=f,q[13]=G,q[14]=C},hs=function(J){var Y=J[0],z=J[1],N=J[2],r=J[3],v=J[4],D=J[5],e=J[6],q=J[7],H=J[8],X=J[9],F=J[10],m=J[11],d=J[12],b=J[13],O=J[14],l=J[15],L=Y*D-z*v,$=Y*e-N*v,f=Y*q-r*v,U=z*e-N*D,Q=z*q-r*D,i=N*q-r*e,k=H*b-X*d,o=H*O-F*d,p=H*l-m*d,h=X*O-F*b,R=X*l-m*b,y=F*l-m*O,j=L*y-$*R+f*h+U*p-Q*o+i*k;return j?(j=1/j,J[0]=(D*y-e*R+q*h)*j,J[1]=(N*R-z*y-r*h)*j,J[2]=(b*i-O*Q+l*U)*j,J[3]=(F*Q-X*i-m*U)*j,J[4]=(e*p-v*y-q*o)*j,J[5]=(Y*y-N*p+r*o)*j,J[6]=(O*f-d*i-l*$)*j,J[7]=(H*i-F*f+m*$)*j,J[8]=(v*R-D*p+q*k)*j,J[9]=(z*p-Y*R-r*k)*j,J[10]=(d*Q-b*f+l*L)*j,J[11]=(X*f-H*Q-m*L)*j,J[12]=(D*o-v*h-e*k)*j,J[13]=(Y*h-z*o+N*k)*j,J[14]=(b*$-d*U-O*L)*j,J[15]=(H*U-X*$+F*L)*j,void 0):P},Xc=function(R,q){if(q){var j=q[0],C=q[1],l=q[2];R[12]=R[0]*j+R[4]*C+R[8]*l+R[12],R[13]=R[1]*j+R[5]*C+R[9]*l+R[13],R[14]=R[2]*j+R[6]*C+R[10]*l+R[14],R[15]=R[3]*j+R[7]*C+R[11]*l+R[15]}},Qf=function(Z,D){if(D){var h=D[0],B=D[1],b=D[2];Z[0]=Z[0]*h,Z[1]=Z[1]*h,Z[2]=Z[2]*h,Z[3]=Z[3]*h,Z[4]=Z[4]*B,Z[5]=Z[5]*B,Z[6]=Z[6]*B,Z[7]=Z[7]*B,Z[8]=Z[8]*b,Z[9]=Z[9]*b,Z[10]=Z[10]*b,Z[11]=Z[11]*b}},kl=function(C,e,K){var I=e[0],H=e[1],n=e[2],v=e[3],k=e[4],Q=e[5],a=e[6],h=e[7],J=e[8],u=e[9],s=e[10],M=e[11],z=e[12],U=e[13],r=e[14],B=e[15],Y=K[0],d=K[1],O=K[2],F=K[3];return C[0]=Y*I+d*k+O*J+F*z,C[1]=Y*H+d*Q+O*u+F*U,C[2]=Y*n+d*a+O*s+F*r,C[3]=Y*v+d*h+O*M+F*B,Y=K[4],d=K[5],O=K[6],F=K[7],C[4]=Y*I+d*k+O*J+F*z,C[5]=Y*H+d*Q+O*u+F*U,C[6]=Y*n+d*a+O*s+F*r,C[7]=Y*v+d*h+O*M+F*B,Y=K[8],d=K[9],O=K[10],F=K[11],C[8]=Y*I+d*k+O*J+F*z,C[9]=Y*H+d*Q+O*u+F*U,C[10]=Y*n+d*a+O*s+F*r,C[11]=Y*v+d*h+O*M+F*B,Y=K[12],d=K[13],O=K[14],F=K[15],C[12]=Y*I+d*k+O*J+F*z,C[13]=Y*H+d*Q+O*u+F*U,C[14]=Y*n+d*a+O*s+F*r,C[15]=Y*v+d*h+O*M+F*B,C},ci=function(X,f,j,H){var U,J,W,i,E,k,K,e,l,D,F=f[0],x=f[1],z=f[2],q=H[0],g=H[1],u=H[2],n=j[0],P=j[1],R=j[2];return _(F-n)0?(D=2*Math.sqrt($+1),i[3]=.25*D,i[0]=(Z[6]-Z[9])/D,i[1]=(Z[8]-Z[2])/D,i[2]=(Z[1]-Z[4])/D):Z[0]>Z[5]&Z[0]>Z[10]?(D=2*Math.sqrt(1+Z[0]-Z[5]-Z[10]),i[3]=(Z[6]-Z[9])/D,i[0]=.25*D,i[1]=(Z[1]+Z[4])/D,i[2]=(Z[8]+Z[2])/D):Z[5]>Z[10]?(D=2*Math.sqrt(1+Z[5]-Z[0]-Z[10]),i[3]=(Z[8]-Z[2])/D,i[0]=(Z[1]+Z[4])/D,i[1]=.25*D,i[2]=(Z[6]+Z[9])/D):(D=2*Math.sqrt(1+Z[10]-Z[0]-Z[5]),i[3]=(Z[1]-Z[4])/D,i[0]=(Z[8]+Z[2])/D,i[1]=(Z[6]+Z[9])/D,i[2]=.25*D),i},Go=function(T,X,g){var I=X[0],W=X[1],d=X[2],E=X[3],t=I+I,Y=W+W,z=d+d,L=I*t,V=I*Y,Z=I*z,f=W*Y,F=W*z,N=d*z,C=E*t,J=E*Y,S=E*z;return T[0]=1-(f+N),T[1]=V+S,T[2]=Z-J,T[3]=0,T[4]=V-S,T[5]=1-(L+N),T[6]=F+C,T[7]=0,T[8]=Z+J,T[9]=F-C,T[10]=1-(L+f),T[11]=0,T[12]=g[0],T[13]=g[1],T[14]=g[2],T[15]=1,T},Ok=function(r,e){if(r.isVREnabled()){var $=r.vr.getViewMatrix(e);if($)return $}return r._camera?r._camera.getViewMatrix(e):ci(e?e:tk(),r._eye,r._center,r._up)},te=function(X,V){if(X.isVREnabled()){var K=X.vr.getProjectMatrix();if(K)return K}if(X._camera)return X._camera.getProjectMatrix();if(!V&&X._computedProjectMatrix)return qk(X._computedProjectMatrix);var H=X.getAspect(),q=X._near,$=X._far,E=tk();if(X._ortho){var t=X._orthoWidth/2,g=t/H;Eg(E,-t,t,-g,g,q,$)}else Zq(E,X._fovy,H,q,$);return E},eq=function(K,o){if(!K)return P;var T=0,p=1,V=2,a=[],e=0,D=K.length,g=D/3;if(o){for(;D>e;e++)a[e]=0;for(e=0;ed;d++)a[3*o[e+d]+T]+=G[T],a[3*o[e+d]+p]+=G[p],a[3*o[e+d]+V]+=G[V]}}else for(e=0;g>e;e+=3){var k=[],H=[],G=[];k[T]=K[3*(e+1)+T]-K[3*e+T],k[p]=K[3*(e+1)+p]-K[3*e+p],k[V]=K[3*(e+1)+V]-K[3*e+V],H[T]=K[3*(e+2)+T]-K[3*(e+1)+T],H[p]=K[3*(e+2)+p]-K[3*(e+1)+p],H[V]=K[3*(e+2)+V]-K[3*(e+1)+V],G[T]=k[p]*H[V]-k[V]*H[p],G[p]=k[V]*H[T]-k[T]*H[V],G[V]=k[T]*H[p]-k[p]*H[T];for(var d=0;3>d;d++)a[3*(e+d)+T]=G[T],a[3*(e+d)+p]=G[p],a[3*(e+d)+V]=G[V]}for(e=0;D>e;e+=3){var B=[];B[T]=a[e+T],B[p]=a[e+p],B[V]=a[e+V];var q=L(B[T]*B[T]+B[p]*B[p]+B[V]*B[V]);0===q&&(q=Id),B[T]=B[T]/q,B[p]=B[p]/q,B[V]=B[V]/q,a[e+T]=B[T],a[e+p]=B[p],a[e+V]=B[V]}return new ip(a)},xe=function(F,E,r,e){if(r||(r=F.createTexture()),E){var Q=F.TEXTURE_2D,f=F.REPEAT,b=F.CLAMP_TO_EDGE,v=F.TEXTURE_MIN_FILTER;e=e||Zg;var D=e.minFilter||e.filter||F.LINEAR,K=e.magFilter||e.filter||F.LINEAR;F.activeTexture(F.TEXTURE0),_p(F,r),F.texImage2D(Q,0,F.RGBA,F.RGBA,F.UNSIGNED_BYTE,E),rr(F,F.TEXTURE_MAG_FILTER,K);var d=E.naturalWidth||E.width,U=E.naturalHeight||E.height;vj.isPOT(d)&&vj.isPOT(U)&&!e.clampToEdge&&!E.clampToEdge?(rr(F,F.TEXTURE_WRAP_S,f),rr(F,F.TEXTURE_WRAP_T,f),rr(F,v,D===F.NEAREST?F.NEAREST_MIPMAP_NEAREST:F.LINEAR_MIPMAP_LINEAR),e.mipmapMaxLevel!==m&&rr(F,F.TEXTURE_MAX_LEVEL,e.mipmapMaxLevel),F.generateMipmap(Q)):(rr(F,F.TEXTURE_WRAP_S,b),rr(F,F.TEXTURE_WRAP_T,b),rr(F,v,D)),_p(F,P)}return r},wh=function(M,W,I){var u=new Uint8Array(I||4);return W=W||M.createTexture(),M.activeTexture(M.TEXTURE0),_p(M,W),rr(M,M.TEXTURE_MIN_FILTER,M.LINEAR),M.texImage2D(M.TEXTURE_2D,0,M.RGBA,1,1,0,M.RGBA,M.UNSIGNED_BYTE,u),W},uh=function(W,L,q){var h=new Uint8Array(q||4);return L=L||W.createTexture(),W.activeTexture(W.TEXTURE0),W.bindTexture(W.TEXTURE_CUBE_MAP,L),W.texParameteri(W.TEXTURE_CUBE_MAP,W.TEXTURE_MAG_FILTER,W.LINEAR),W.texParameteri(W.TEXTURE_CUBE_MAP,W.TEXTURE_MIN_FILTER,W.LINEAR),W.texImage2D(W.TEXTURE_CUBE_MAP_POSITIVE_X+0,0,W.RGBA,1,1,0,W.RGBA,W.UNSIGNED_BYTE,h),W.texImage2D(W.TEXTURE_CUBE_MAP_POSITIVE_X+1,0,W.RGBA,1,1,0,W.RGBA,W.UNSIGNED_BYTE,h),W.texImage2D(W.TEXTURE_CUBE_MAP_POSITIVE_X+2,0,W.RGBA,1,1,0,W.RGBA,W.UNSIGNED_BYTE,h),W.texImage2D(W.TEXTURE_CUBE_MAP_POSITIVE_X+3,0,W.RGBA,1,1,0,W.RGBA,W.UNSIGNED_BYTE,h),W.texImage2D(W.TEXTURE_CUBE_MAP_POSITIVE_X+4,0,W.RGBA,1,1,0,W.RGBA,W.UNSIGNED_BYTE,h),W.texImage2D(W.TEXTURE_CUBE_MAP_POSITIVE_X+5,0,W.RGBA,1,1,0,W.RGBA,W.UNSIGNED_BYTE,h),L},kn=function(d){d._26I&&d._prg&&(d._26I.deleteProgram(d._prg),d._prg=P)},As=function(){function J(c){if(c.match(X))return vr(c);var l=w[c];if(l)return l;var V=new RegExp("#define\\s+"+c+"\\s+(\\d+)"),B=P.match(V);return w[c]=B?vr(B[1]):0}function y(Y){w={},P=Y;var r=Y.replace(k,c).replace(m,u);return P=null,w=null,r}function c(F,v,l){l=J(l);for(var P="",Q=0;l>Q;Q++)P+=v+Q+";";return P}function u(P,G,q,p){for(var a="",o=J(G);oe;e++)V[e]=S&1<=0&&E.enableVertexAttribArray(n)},_q=function(Z,V){V!=P&&V>=0&&Z.disableVertexAttribArray(V)},yb=function(H,y){var L=H.getGL(),E=Vk.for(L),m=E.directUniforms();H._7O=H._8O.pop(),y&&(m.uMVMatrix=H._7O,H._6O=y,m.uNMatrix=y)},rk=function($,w){return w||(w=tk()),Vb(w,$),hs(w),er(w),w},Vi=function(q,g){var n=q.getGL(),C=q._7O,V=Vk.for(n),h=V.directUniforms();g?(q._8O.push(qk(C)),h.uMMatrix=g,kl(C,C,g),q._7O=C):h.uMMatrix=Zf,h.uMVMatrix=C,h.uNMatrix=rk(C,q._6O)},be={body:0,label:1,label2:2,note:3,note2:4,symbol:5},vk=10,Kd=function(l,d,G,X,e,p){var A;if(G){var s=X._pickId;s||(s=X._pickId=d._pickIdUsed,d._pickIdUsed+=vk);var v,o=be[e];if(null!=o)v=s+o;else{var H=X._pickExtraPartMap;H||(H=X._pickExtraPartMap={}),(v=H[e])||(v=H[e]=d._pickIdUsed++)}d[v]||(d[v]={data:X.data,part:e}),A=Ss(v)}else A=rm;if(!p){var i=Vk.for(l),O=i.directUniforms();O.uFixPickReverseColor=A}return A},qj=Kd,fk=function(S,O,H){"target"!==H&&(H="source");var _="target"===H?O.getTargetAgent():O.getSourceAgent(),u="edge."+H+".";if($n(_)){var L=O.s(u+"anchor.x"),d=O.s(u+"anchor.elevation"),I=O.s(u+"anchor.y"),v=On(_,S.getMat(_)),y=_.getAnchor3d(),s=Ae([(L===m?.5:L)-y.x,(d===m?.5:d)-y.y,(I===m?.5:I)-y.z],v);return s[1]+=O.s(u+"offset.elevation"),s}var X=O.s(u+"index"),p=S.getData3dUI(_);if(!p.info||!p.info.list)return!1;if(X>=0){var i,U,e,W,Z,J=p.info._lastPointsSegments,P=J.points,w=J.segments,r=-1,h=-1;for(e=0,W=w?w.length:P.length;W>e;e++){if(U=w?w.get(e):1,3===U)Z=2;else if(4===U)Z=3;else{if(5===U)continue;Z=1}if(r+=Z,h++,h===X){i=P.get(r);break}}return i||(i=P.get(P.length-1)),[i.x,(i.e||0)+O.s(u+"offset.elevation"),i.y]}var V=O.s(u+"percent")||.5;if(V=Math.max(0,Math.min(V,1)),!p||!p.getCache)return!1;var M=p.getCache(),W=M[M.length-1].length,J=S.getLineOffset(_,V*W),s=J.point;return[s.x,s.y+O.s(u+"offset.elevation"),s.z]},rp=function(){var J={center:function(C,v,X,k,K){var i=-v[1]/2,g={x:-v[0]/2,y:i,width:v[0],height:v[1]},e=jl(C,g,X);return[e.x+k,-e.y-K,t.getPosition3dGap()]},front:function(P,U,G,o,k){var q=-U[1]/2,v={x:-U[0]/2,y:q,width:U[0],height:U[1]},X=jl(P,v,G);return[X.x+o,-X.y-k,U[2]/2+t.getPosition3dGap()]},back:function(l,z,o,y,G){var v=-z[0]/2,E=-z[1]/2,B={x:v,y:E,width:z[0],height:z[1]},R=jl(l,B,o);return[-R.x-y,-R.y-G,-z[2]/2-t.getPosition3dGap()]},left:function(f,r,h,b,i){var q=-r[1]/2,M={x:-r[2]/2,y:q,width:r[2],height:r[1]},F=jl(f,M,h);return[-r[0]/2-t.getPosition3dGap(),-F.y-i,F.x+b]},right:function(r,n,s,M,c){var O=-n[2]/2,W=-n[1]/2,$={x:O,y:W,width:n[2],height:n[1]},p=jl(r,$,s);return[n[0]/2+t.getPosition3dGap(),-p.y-c,-p.x-M]},top:function(O,L,e,c,P){var y={x:-L[0]/2,y:-L[2]/2,width:L[0],height:L[2]},Q=jl(O,y,e);return[Q.x+c,L[1]/2+t.getPosition3dGap(),Q.y+P]},bottom:function(x,C,S,g,Q){var F=-C[2]/2,A={x:-C[0]/2,y:F,width:C[0],height:C[2]},J=jl(x,A,S);return[J.x+g,-C[1]/2-t.getPosition3dGap(),-J.y-Q]}};return function(E,D,o,S,V,H){return J[S](E,D,o,V||0,H||0)}}(),aj=function(H,R,U,y,J,c,B,O,L,X){if(J&&(R[0]+=J[0],R[1]+=J[1],R[2]+=J[2]),Xc(H,U),O){var V=tk();if(Xr(V,L,X),Ae(R,V),Xc(H,R),H.auto=O,H.pos=Ae([0,0,0],H),c){var a=H.mat2=tk();Xr(a,c,B)}}else Xr(H,L,X),Xc(H,R),y===dk?Sc(H,-pn):y===ge?Sc(H,pn):y===lh?dg(H,-pn):y===Li?dg(H,pn):y===tp&&Sc(H,d),Xr(H,c,B);return H},gl=function(T,Z){var d=Z.auto,p=Z.mat2,t=T.gv;if(d){var x,y=tk(),E=[0,0,0,0];x="string"==typeof d?[d.indexOf("x")<0?t._eye[0]:t._center[0],d.indexOf("y")<0?t._eye[1]:t._center[1],d.indexOf("z")<0?t._eye[2]:t._center[2]]:t._eye,ir(E,ci(tk(),x,t._center,t._up)),Go(y,Fo(E,E),Z.pos),p&&kl(y,y,p),Vi(t,y)}else Vi(t,Z)},Pk=function(K,c,q,g,N){var R=K.s,f=K.gv,V=f.getGL(),S=f._prg,B=f._buffer,G=f._1O,C=Vk.for(V),X=C.directAttribs();xe(V,uf,G),gl(K,q),Ii(V,S,R(c+".blend"),R(c+".light"),R(c+".opacity"),R(c+".reverse.flip"),R(c+".reverse.color"),R(c+".reverse.cull")),Zk(V,S,G,N,B.uv,$l),X.aPosition=Gk(V,B.vs,g,P),X.aNormal=Gk(V,B.ns,Gc,P),cj(V,B.is,Gq),bb(V,0,Gq.length),$h(V,S,G),Cm(V,S),yb(f)},dm=function(Z,B,d){var E=Z.gv,u=Z.data,c=Z[B]={blend:E.getBodyColor(u)||E.getFaceBlend(u,B),light:E.getFaceLight(u,B),color:E.getFaceColor(u,B),opacity:E.getFaceOpacity(u,B),transparent:E.getFaceTransparent(u,B),reverseFlip:E.getFaceReverseFlip(u,B),reverseColor:E.getFaceReverseColor(u,B),reverseCull:E.getFaceReverseCull(u,B),texture:E.getFaceImage(u,B),blendTexture:E.getFaceBlendImage(u,B),discardSelectable:E.getFaceDiscardSelectable(u,B)};if("csg"!==B){c.uv=E.getFaceUv(u,B)||d&&d[B+"Uv"],c.uvScale=E.getFaceUvScale(u,B)||d&&d[B+"UvScale"],c.uvOffset=E.getFaceUvOffset(u,B)||d&&d[B+"UvOffset"],c.uvRotation=E.getFaceUvRotation(u,B)||d&&d[B+"uvRotation"],c.uvAnchor=E.getFaceUvAnchor(u,B)||d&&d[B+"uvAnchor"];var x=E.getFaceMat(u,B);if(x){var $=On(u,x);u.appendAnchorMatrix3d($),c.mat=$}}return c},Be=function(L,p,e,h,V){var t=L[h];if(t){if(!V(t.transparent))return;var D=L.data,X=L.gv,I=X._buffer,v=X.getTexture(t.texture,D,h),d=X.getTexture(t.blendTexture,D),G=Vk.for(p),T=G.directUniforms(),k=G.directAttribs();Zk(p,e,v,t.discardSelectable,I.uv,t.tuv,t.uvOffset,t.uvScale,t.uvRotation,t.uvAnchor,d),Ii(p,e,t.blend,t.light,t.opacity,t.reverseFlip,t.reverseColor,t.reverseCull),t.cs&&!X._batchColorDisabled?(T.uBatchColor=!0,k.aBatchColor=Gk(p,I.batchColor,t.cs,e.aBatchColor,4)):T.uDiffuse=t.color||l["color.empty"],k.aPosition=Gk(p,I.vs,t.vs,P),k.aNormal=Gk(p,I.ns,t.ns,P),Ln(p,0,t.vs.length/3),t.cs&&!X._batchColorDisabled&&(T.uBatchColor=!1,_q(p,e.aBatchColor)),Cm(p,e),$h(p,e,v)}},Dn=function(E,N,K){ks(E)?E.forEach(function(u){Dn(u,N,K)}):ib(E)?Dn(on(N,E),N,K):Pg(E)?E.shape3d?Dn(E.shape3d,N,K):K.push(E):K.push(E)},Hb=function(){for(var Y=50,v=arguments.length,T=[],u=0;v>u;u++)T[u]=arguments[u];jn[Hr]="Time : "+(new Date).toLocaleString()+", Info :"+T.join(", "),Hr=(Hr+1)%Y,console.error("Failed to create shader.")},_c=function(){var w=new vj.Matrix2d;return function(r,v,c,j,D){return D||(D=w),D.identity(),j&&D.translate(-j[0],-j[1]),c&&D.scale(c[0],c[1]),r&&D.rotate(r),j&&D.translate(j[0],j[1]),v&&D.translate(v[0],v[1]),D}}(),Cr=function(J,O,o,A,Q,b){var i,q,y,r,Z,X,v,Y,s,B,j,x=[A-O,Q-o],T=J?J.length:0;for(y=0;T>y;y++){for(r=2,i=J[y],Z=i[0],X=i[1];r+10?b:-b,j=[s[0]*B,s[1]*B];break}Z=v,X=Y,r+=2}if(j)break}if(j)for(A=O+j[0],Q=o+j[1],y=0;T>y;y++)for(r=2,i=J[y],Z=i[0],X=i[1];r+1!opjujtpQ`mh! gjeof$ !~!<6/1!,!*{/mbdpMwVxpmg!,!z/mbdpMwVxpmg!-y/mbdpMwVxpmg)3dfw!>!^j]wVxpmg!<{zy/*enspgtobsu!+!yjsubNNv!+!^j]yjsubNxpmg)!>!mbdpMwVxpmg!|!*,,j!!j!uoj)!spg!!esppDxpebit! QBNXPEBIT`FTV!gfegj$ ! gjeof$ !~!!fdobutjEfojMw!|!*itbEv)!gj! ITBE!gfegj$ ! gjeof$ !~!!ttfouihjsCidubCw!|!*ttfouihjsCidubCv)!gj! TTFOUIHJSCIDUBC!gfegj$ ! gjeof$ !~!!eofmCidubCw!|!*eofmCidubCv)!gj! EOFMCIDUBC!gfegj$ ! gjeof$ !~!!spmpDidubCw!|!*spmpDidubCv)!gj! SPMPDIDUBC!gfegj$ !~!<**1/2!-wVb)4dfw!+!yjsubNwVv)3dfw!>!wVw!|!*fsvuyfUv)!gj!<*enspgtobsu)4dfw!>!opjujtpQw! gjeof$ !~! 1!>>!SFQQJMD`YPC`YBN!gj$ !<*enspgtobsu!+!yjsubNNv)4dfw!>!emspXw!<*yfusfw)4dfw!>!yfusfWw! gjeof$ !<**1/2!-mbnspOb)5dfw!+!yjsubNOv)4dfw!>!mbnspOw! ftmf$ !<**1/2!-mbnspOb)5dfw!+!yjsubNOv)4dfw!>!mbnspOw!ftmf!~!<**1/2!-*efdobutoJyjsubNb!-mbnspOb)opjudfsjEnspgtobsu)5dfw!+!yjsubNOv)4dfw!>!mbnspOw!|!*fdobutoJftVv)!gj! FDOBUTOJIDUBC!gfegj$ ! gjeof$ !|!*ldjQva!%%!yjGva)!gj! 1!>>!SFQQJMD`YPC`YBN!gj$ !!yfusfw!5dfw! gjeof$ !~!!enspgtobsu!|!*fdobutoJftVv)!gj! FDOBUTOJIDUBC!gfegj$ !<*1/2!-opjujtpQb)5dfw!>!enspgtobsu!5dfw!|!*ejpw)ojbn!ejpw! gjeof$ !<^UDFKCP`XPMG`YBN]wVxpmg!3dfw!hojzsbw!<^UDFKCP`XPMG`YBN]yjsubNxpmg!5ubn!nspgjov! 1!?!UDFKCP`XPMG`YBN!gj$ ! gjeof$ !U;U+=6)W=Yh([u[U],u[U+1],u[U+2]],[u[U+3],u[U+4],u[U+5]]),l.push(W),e+=W;if(e&&G){var M,c=zq(Jh(G),n),D=[c[0]-H[0],c[1]-H[1],c[2]-H[2],c[3]-H[3]],_=0;for(U=0;p>U;U+=6)M=_/e,Oe(E,[H[0]+D[0]*M,H[1]+D[1]*M,H[2]+D[2]*M,H[3]+D[3]*M],1),_+=l[U/6],M=_/e,Oe(E,[H[0]+D[0]*M,H[1]+D[1]*M,H[2]+D[2]*M,H[3]+D[3]*M],1)}else Oe(E,H,q);if(T)for(_=N||0,U=0;p>U;U+=6)w.push(_),_+=l[U/6],w.push(_)},oj=function(R,A,F){if(A){var U=F[A.batch],x=U.ps,I=U.ms&&U.ms.length,b=I?4*A.index:4*A.begin,z=I?1:A.size;if(x[b]!==R[0]||x[b+1]!==R[1]||x[b+2]!==R[2]||x[b+3]!==R[3]){for(var c=0;z>c;c++)x[b++]=R[0],x[b++]=R[1],x[b++]=R[2],x[b++]=R[3];x._invalidateThisFrame=!0}}},wr=function(){var f=new F.Math.Vector3,g=new F.Math.Vector3;return function(y,G){var m=G+["32"],d=y[G],x=y[m];if(d){if((t.extractBatchTranslation||t.extractVerticesTranslation)&&"vs"===G){g.set(0,0,0);for(var D=d.length,Y=0;D>Y;Y+=3)g.add(f.fromArray(d,Y));g.divideScalar(D/3);for(var z=g.x,F=g.y,i=g.z,L=new Array(D),Y=0;D>Y;Y+=3)L[Y]=d[Y]-z,L[Y+1]=d[Y+1]-F,L[Y+2]=d[Y+2]-i;d=L,y.translate=[z,F,i]}x&&x.length===d.length?(x.set(d),x._bufId=null):y[m]=new ip(d)}else delete y[m]}}(),Ym=function(Q,U,h,R,C,J,S,b){var $=U instanceof F.Shape,l=J[0],D=J.length;if(D>1){l=qk(l);for(var p=1;D>p;p++)kl(l,l,J[p])}if($){var o=U.p3();Xc(l,o)}rl(S.ms,l);var q;if(S.ics&&(q=U.s("shape3d.color"))&&Oe(S.ics,q,1),!S.vs.length){var K=qk(ie);$&&Xc(K,ld(o)),Ig(Q,U,h,R,C,[K],S,b)}},Ig=function(d,k,E,q,T,n,s,g){if(ks(E))E.forEach(function(G){Ig(d,k,G,q,T,n,s,g)});else if(ib(E))Ig(d,k,on(q,E),q,T,n,s,g);else if(Pg(E)){var m,M=Lk(E.mat,k,d),C=Lk(E.s3,k,d),r=Lk(E.t3,k,d),V=Lk(E.r3,k,d);if((C||V||r||M)&&(m=wf(M,C,V,Lk(E.rotationMode,k,d),r),n.push(m)),E.shape3d)Ig(d,k,E.shape3d,q,T,n,s,E);else{var A=q.s;g=g||Zg;var K=n[0],b=n.length,R=A("shape3d.color",E.color,g.color);if(T||(T=A("shape3d.blend",E.blend,g.blend)),b>1){K=qk(K);for(var Z=1;b>Z;Z++)kl(K,K,n[Z])}var L=K?rk(K):P;E.vs&&A(qr,E.visible,g.visible)&&wi(K,s,E.vs,E.uv,E.is,E.ns,L,T,R),E.top_vs&&A(Qg,E.topVisible,g.topVisible)&&wi(K,s,E.top_vs,E.top_uv,E.top_is,E.top_ns,L,T,A("shape3d.top.color",E.topColor,g.topColor)||R),E.bottom_vs&&A(dh,E.bottomVisible,g.bottomVisible)&&wi(K,s,E.bottom_vs,E.bottom_uv,E.bottom_is,E.bottom_ns,L,T,A("shape3d.bottom.color",E.bottomColor,g.bottomColor)||R),E.from_vs&&A(Bc,E.fromVisible,g.fromVisible)&&wi(K,s,E.from_vs,E.from_uv,E.from_is,E.from_ns,L,T,A("shape3d.from.color",E.fromColor,g.fromColor)||R),E.to_vs&&A(sk,E.toVisible,g.toVisible)&&wi(K,s,E.to_vs,E.to_uv,E.to_is,E.to_ns,L,T,A("shape3d.to.color",E.toColor,g.toColor)||R)}m&&n.pop()}},wi=function(i,w,c,l,D,b,q,n,N){var Q,H=w.cs,Z=w.uv,E=w.bs,j=w.ns,A=w.vs;if(b&&0!==b.length||(b=eq(c,D)),D){Q=D.length;for(var B=0;Q>B;B++){var G=D[B],J=3*G;Vr(A,i,[c[J],c[J+1],c[J+2]]),Vr(j,q,[b[J],b[J+1],b[J+2]]),Z&&rl(Z,[l[2*G],l[2*G+1]])}}else Q=c.length/3,Vr(A,i,c),Vr(j,q,b),Z&&rl(Z,l);H&&Oe(H,N,Q),E&&(n?Jo(E,n,Q):rl(E,Kn,Q))},kk=function(R,c,q){var v=R.data.p3();if(c=qk(c),Xc(c,v),rl(q.ms,c),!q.vs.length){var u=qk(ie);Xc(u,ld(v)),mk(R,u,q)}},mk=function(p,h,q){Jd(p,dk,h,q),Jd(p,ge,h,q),Jd(p,Nl,h,q),Jd(p,tp,h,q),Jd(p,lh,h,q),Jd(p,Li,h,q),Jd(p,"csg",h,q)},Mg=function(B,h,$,T,Y,i){rl($.ms,Y);var r;$.ics&&(r=h.s("all.color"))&&Oe($.ics,r,1),$.vs.length||Fp(B,h,$,T,qk(ie),i)},Fp=function(o,S,F,n,Z,s){Zo(o,S,F,n,Z,s,dk,ll),Zo(o,S,F,n,Z,s,ge,xi),Zo(o,S,F,n,Z,s,lh,sd),Zo(o,S,F,n,Z,s,Li,Yf),Zo(o,S,F,n,Z,s,Nl,Ab),Zo(o,S,F,n,Z,s,tp,uk)},jf=function(D,V,N,b,O){b?O.instanced?D.gv.batchInstancedModel(D.data,b,D,D.getBodyColor(),[V],N):Ig(D.gv,D.data,b,D,D.getBodyColor(),[V],N):O.instanced?D.gv.batchInstancedShapeFace(D,V,N):mk(D,V,N)},Jd=function(N,B,Z,e){var H=N[B];if(H){var k=H.tuv;if(k){var b=H.uvScale,Q=H.uvOffset,o=H.uvRotation,w=H.uvAnchor;if(b||Q||o){var l,s,j,d=_c(o,Q,b,w),K=d.a,q=d.b,n=d.c,c=d.d,U=d.tx,g=d.ty,I=k.length;for(j=0;I>j;j+=2)l=k[j],s=k[j+1],k[j]=K*l+n*s+U,k[j+1]=q*l+c*s+g}}wi(Z,e,H.vs,k,P,P,Z?rk(Z):P,H.blend,H.color)}},Zo=function(s,G,K,h,y,k,l,n){var o,p=K.cs,U=K.uv,_=K.bs,c=K.vs,d=K.ns,Z=eq(n);if(s.getFaceVisible(G,l)){var q=s.getFaceMat(G,l);if(q&&(y=On(G,q),k=rk(y)),Vr(c,y,n),Vr(d,k,Z),p&&Oe(p,s.getFaceColor(G,l),6),U){var t=s.getFaceUv(G,l)||h[l+"Uv"],z=s.getFaceUvScale(G,l)||h[l+"UvScale"],u=s.getFaceUvOffset(G,l)||h[l+"UvOffset"],m=s.getFaceUvRotation(G,l)||h[l+"UvRotation"],L=s.getFaceUvAnchor(G,l)||h[l+"UvAnchor"];t=t?[t[6],t[7],t[0],t[1],t[2],t[3],t[2],t[3],t[4],t[5],t[6],t[7]]:Um;var j=t[0],O=t[1],W=t[2],b=t[3],J=t[4],X=t[5],P=t[6],a=t[7],M=t[8],H=t[9],g=t[10],$=t[11];if(z||u||m||L){var E=_c(m,u,z,L),v=E.a,R=E.b,N=E.c,f=E.d,r=E.tx,e=E.ty;j=v*j+N*O+r,O=R*j+f*O+e,W=v*W+N*b+r,b=R*W+f*b+e,J=v*J+N*X+r,X=R*J+f*X+e,P=v*P+N*a+r,a=R*P+f*a+e,M=v*M+N*H+r,H=R*M+f*H+e,g=v*g+N*$+r,$=R*g+f*$+e}U.push(j,O,W,b,J,X,P,a,M,H,g,$)}_&&(o=s.getBodyColor(G)||s.getFaceBlend(G,l),o?Jo(_,o,6):rl(_,Kn,6))}},Ee=function(n,Z,U,u){var U=n._picking?n.pickColorMap:null,W=n.getGL(),O=n._prg,N=n._buffer;if(!Dp(Z)){Vi(n,ie),En(W,O);for(var g in Z){var q,I,H,x,k=Z[g];if(k.batch){var G=n.getBatchInfo(k.batch)||Zg;q=G.wfBloom===m?G.bloom:G.wfBloom,I=G.wfReflectable===m?G.reflectable:G.wfReflectable,H=G.wfClipboxMask===m?G.clipboxMask:G.wfClipboxMask,x=G.width}else q=k.B,I=k.reflectable,H=k.clipboxMask,x=k.W;if(!(u&&!k.T||!u&&k.T||n.isReflecting(W)&&I===!1)){k.invalidate?(k.invalidate=!1,wr(k,"vs"),wr(k,"cs"),wr(k,"ls"),wr(k,"ps")):U&&k.ps&&k.ps._invalidateThisFrame&&(k.ps._invalidateThisFrame=!1,wr(k,"ps"));var c=k.translate;c&&Vi(n,[1,0,0,0,0,1,0,0,0,0,1,0,c[0],c[1],c[2],1]);var h=k.vs32,K=U?k.ps32:k.cs32;mb(W,O,x,P,N.vs,h);var A=Vk.for(W),R=A.directUniforms(),$=A.directAttribs(),F=k.D,b=!n._dashDisabled&&F;R.uAlphaTest=l.alphaTest,W._blooming&&!q&&(R.blackout=!0),uq(n,R,H===m?nr:H),b&&(R.uDash=!0,R.uDashDistance=F,R.uDashGapDistance=k.G,R.uDiffuse=k.A||l["color.empty"],$.aLineDistance=Gk(W,N.lineDistance,k.ls32,P,1));var C=!n._batchColorDisabled;C&&K.length?(R.uBatchColor=!0,$.aBatchColor=Gk(W,N.batchColor,K,P,4)):(R.uBatchColor=!1,$.aBatchColor=!1),Zk(W),Ln(W,0,h.length/3,W.LINES),$h(W),C&&(R.uBatchColor=!1,$.aBatchColor=!1),b&&(R.uDash=!1,$.aLineDistance=!1),W._blooming&&!q&&(R.blackout=!1),c&&yb(n)}}fq(W,O),yb(n)}},_n=function(V){V.invalidate=!1,wr(V,"vs"),wr(V,"ns"),wr(V,"cs"),wr(V,"rs"),wr(V,"ps"),wr(V,"bs"),wr(V,"uv"),wr(V,"ms"),wr(V,"ics")},Om=function(O,Z,a,T,B){var e,U,d,S,w,K,A,N,u,Y,x,q,a=O._picking?O.pickColorMap:null,L=O.getGL(),E=O._prg,s=Vk.for(L),W=s.directUniforms(),J=s.directAttribs(),z=O._buffer;if(!Dp(Z)&&!O.drawFilter){Vi(O,ie);for(e in Z)if(U=O.getBatchInfo(e)||Zg,U.visible!==!1&&!(T&&!U.transparent||!T&&U.transparent||O.isReflecting(L)&&U.reflectable===!1)){var n=U.renderLayerMask;if(n==P&&(n=Hm),B==P&&(B=Hm),Tj(B,n)&&(d=Z[e],a||!U.transparentMask)){var _=T&&U.autoSort===!0&&(O._33Q||d.invalidate);d.invalidate?_n(d):a&&d.ps&&d.ps._invalidateThisFrame&&(d.ps._invalidateThisFrame=!1,wr(d,"ps"));var G=d.ms32,I=G&&G.length;if(w=d.vs32,K=a?d.ps32:I?d.ics32:d.cs32,u=d.uv32,A=d.bs32,N=d.rs32,x=w.length/3,_){var V=ln(w,O.getEye(),O);V?(d.is=V.is,d.elementTypeUint=V.useUint32):(d.is=null,d.elementTypeUint=null)}if(x){q=d.translate,q&&Vi(O,[1,0,0,0,0,1,0,0,0,0,1,0,q[0],q[1],q[2],1]),S=U.light,Y=O.getTexture(U.image),Ii(L,E,P,U.light,U.opacity,U.reverseFlip,U.reverseColor,U.reverseCull),K?O._batchColorDisabled?(W.uBatchColor=!1,J.aBatchColor=!1):(W.uBatchColor=!0,J.aBatchColor=I?qe(L,z.instancedBatchColor,K,P,4):Gk(L,z.batchColor,K,P,4)):(W.uBatchColor=!1,W.uDiffuse=U.color||l["color.empty"]);var g=U.alphaTest;W.uAlphaTest=g===m?l.alphaTest:g,W.shadowReceive=!a&&U.shadowReceive!==!1,uq(O,W,U.clipboxMask===m?nr:U.clipboxMask),il(O,W,U.lightMask===m?nr:U.lightMask,U.headlightAmbientIntensity),L._blooming&&!U.bloom&&(W.blackout=!0),U.envmap!==m?(W.uUseEnvMap=!0,W.uReflectivity=U.envmap,W.roughness=U.roughness||0,O._setEnvmapByProbeId(W,U.envmapProbe||0)):(W.uUseEnvMap=!1,W.uReflectivity=0);var Q=A&&!O._batchBlendDisabled;Q&&(W.uBatchBlend=!0,J.aBatchBlend=Gk(L,z.batchBlend,A,P));var R=N&&!O._batchBrightnessDisabled;R&&(W.uBatchBrightness=!0,J.aBatchBrightness=Gk(L,z.batchBrightness,N,P,1)),u?Zk(L,E,Y,U.discardSelectable,z.uv,u,U.uvOffset,U.uvScale,U.uvRotation,U.uvAnchor):Zk(L),J.aPosition=Gk(L,z.vs,w,P),J.aNormal=Gk(L,z.ns,d.ns32,P),I&&(W.uUseInstance=!0,J.aMatrixInstanced=qe(L,z.ms,G,P)),d.is?(ao(L,z.is,d.is),bb(L,0,x,null,d.elementTypeUint?L.UNSIGNED_INT:null,null,I?d.ms32.length/16:0)):Ln(L,0,x,null,I?d.ms32.length/16:0),u?$h(L,E,Y):$h(L),K&&!O._batchColorDisabled&&(W.uBatchColor=!1,J.aBatchColor=!1),Q&&(W.uBatchBlend=!1,J.aBatchBlend=!1),R&&(W.uBatchBrightness=!1,J.aBatchBrightness=!1),L._blooming&&!U.bloom&&(W.blackout=!1),I&&(W.uUseInstance=!1,J.aMatrixInstanced=m),Cm(L,E),q&&yb(O)}}}yb(O)}},ln=function(G,m,t){var f=G.length/3,u=f>65535,c=t._glCapabilities.elementTypeUint&&u;if(!c&&u)return null;for(var g=new Array(f),B=f/3,z=new Array(B),M=0;B>M;M++)z[M]=M;z.sort(function(W,e){var C=9*W,D=[(G[C]+G[C+3]+2*G[C+6])/4,(G[C+1]+G[C+4]+2*G[C+7])/4,(G[C+2]+G[C+5]+2*G[C+8])/4];C=9*e;var l=[(G[C]+G[C+3]+2*G[C+6])/4,(G[C+1]+G[C+4]+2*G[C+7])/4,(G[C+2]+G[C+5]+2*G[C+8])/4],E=Yh(m,D)-Yh(m,l);return E>0?-1:0>E?1:0});for(var M=0;B>M;M++){var X=3*M,$=3*z[M];g[X]=$,g[X+1]=$+1,g[X+2]=$+2}return{useUint32:c,is:c?new Uint32Array(g):new km(g)}},Qj={obj:function(s,D){var y={mat:s.mat,s3:s.s3,r3:s.r3,rotationMode:s.rotationMode,t3:s.t3,cube:s.cube==P?!0:s.cube,center:s.center==P?!0:s.center,ignoreMtls:s.ignoreMtls,ignoreTransparent:s.ignoreTransparent,ignoreColor:s.ignoreColor,ignoreImage:s.ignoreImage,ignoreNormal:s.ignoreNormal,prefix:s.prefix,flipY:s.flipY,flipFace:s.flipFace,reverseFlipMtls:s.reverseFlipMtls,finishFunc:function(O,r){if(O){var r=[];for(var j in O){var y=O[j];r.rawS3=y.rawS3,y.center&&(r.center=y.center),r.push(y),s.eachModel&&s.eachModel(j,y)}r.json=s,D(r)}else D()}};t.loadObj(s.obj,s.mtl,y)},bin:function(S,B){var e={finishFunc:function(o){o?B(o):B()}};t.loadBin(S.url,e)}};t.getModelTypeHandlers=function(){return Qj},t.setModelTypeHandler=function(u,O){Qj[u]=O},t.getModelTypeHandler=function(i){return Qj[i]},t.handleModelLoaded=function(){},t.handleUnfoundModel=function(){};var Kg=P,fe=P,mi=function(W){Kg&&!W._loadingModelView_&&(fe||(fe={}),fe[W._loadingModelView_=hi()]=W)},Kq=function(n,W){Kg||(Kg={});var w=Kg[n];if(w){if(w.url===W)return;w.request.onload=nn,w.request.onerror=nn}if(W.indexOf(".bin")===W.length-4)return ui(n,{modelType:"bin",url:W},W);if(W=t.beforeLoadURL(W),W.data){var f=t.parse(W.data);ui(n,f,W)}else{var K=new Ke;Kg[n]={request:K,url:W},K.onload=function(){if(200===this.status||0===this.status){delete Kg[n];var x=t.parse(K.getResponseText());ui(n,x,W)}else Wb(n,t.handleUnfoundModel(n,W)||P)},K.onerror=function(){Wb(n,t.handleUnfoundModel(n,W)||P)};var m={};m.url=encodeURI(W),m.sync=!1,K.send(m)}},ui=function(b,l,F){var g=l.modelType;if(!g)return Wb(b,l),t.handleModelLoaded(b,l),void 0;var S=t.getModelTypeHandler(g);if(S){if(Kg||(Kg={}),Kg[b])return;Kg[b]=!0;var u=function(J){J?(Wb(b,J),t.handleModelLoaded(b,J)):Wb(b,t.handleUnfoundModel(b,F,l)||P)};S(l,u)}else Wb(b,t.handleUnfoundModel(b,F,l)||P)},Wb=function(Z,f){if(delete Kg[Z],ib(f)&&ws.test(f))return Kq(Z,f),void 0;if(po[Z]=f,Dp(Kg)&&(Kg=P,fe)){for(var G in fe){var j=fe[G];j.invalidateAll&&j.invalidateAll(m,"modelLoaded",Z),j.redraw&&j.redraw(),j.iv(),delete j._loadingModelView_}fe=P}if(f&&fe)for(var G in fe){var j=fe[G];j.invalidateAll&&j.invalidateAll(m,"modelLoading",Z),j.redraw&&j.redraw(),j.iv()}},$l=new ip([0,0,0,1,1,1,1,0]),Gc=new ip([0,0,1,0,0,1,0,0,1,0,0,1]),Gq=new km([0,1,2,2,3,0]),vs=new ip([-.5,.5,-.5,-.5,-.5,-.5,-.5,-.5,.5,-.5,.5,.5,-.5,.5,.5,-.5,-.5,.5,.5,-.5,.5,.5,.5,.5,.5,.5,.5,.5,-.5,.5,.5,-.5,-.5,.5,.5,-.5,.5,.5,-.5,.5,-.5,-.5,-.5,-.5,-.5,-.5,.5,-.5,-.5,.5,-.5,-.5,.5,.5,.5,.5,.5,.5,.5,-.5,-.5,-.5,.5,-.5,-.5,-.5,.5,-.5,-.5,.5,-.5,.5]),ah=new km([0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]),Yj=new ip([0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0]),Hh=eq(vs,ah),Cs=(new ip([-.5,.5,.5,-.5,-.5,.5,.5,-.5,.5,.5,.5,.5,.5,-.5,-.5,.5,.5,-.5,-.5,-.5,-.5,-.5,.5,-.5]),new km([0,1,2,3,0,7,5,4,6,7,5,3,2,4,6,1]),[dk,Nl,ge,tp,lh,Li]),oq=[-.5,.5,.5,-.5,-.5,.5,-.5,-.5,.5,.5,-.5,.5,.5,-.5,.5,.5,.5,.5,.5,.5,.5,-.5,.5,.5,-.5,.5,-.5,-.5,-.5,-.5,-.5,-.5,-.5,.5,-.5,-.5,.5,-.5,-.5,.5,.5,-.5,.5,.5,-.5,-.5,.5,-.5,.5,.5,.5,.5,.5,-.5,.5,-.5,.5,.5,-.5,-.5,-.5,.5,.5,-.5,.5,-.5,-.5,-.5,.5,-.5,-.5,-.5],en=[-.5,.5,.5,-.4,.5,.5,-.5,.5,.5,-.5,.4,.5,-.5,.5,.5,-.5,.5,.4,.5,.5,.5,.4,.5,.5,.5,.5,.5,.5,.4,.5,.5,.5,.5,.5,.5,.4,-.5,-.5,.5,-.4,-.5,.5,-.5,-.5,.5,-.5,-.4,.5,-.5,-.5,.5,-.5,-.5,.4,.5,-.5,.5,.4,-.5,.5,.5,-.5,.5,.5,-.4,.5,.5,-.5,.5,.5,-.5,.4,-.5,.5,-.5,-.4,.5,-.5,-.5,.5,-.5,-.5,.4,-.5,-.5,.5,-.5,-.5,.5,-.4,.5,.5,-.5,.4,.5,-.5,.5,.5,-.5,.5,.4,-.5,.5,.5,-.5,.5,.5,-.4,-.5,-.5,-.5,-.4,-.5,-.5,-.5,-.5,-.5,-.5,-.4,-.5,-.5,-.5,-.5,-.5,-.5,-.4,.5,-.5,-.5,.4,-.5,-.5,.5,-.5,-.5,.5,-.4,-.5,.5,-.5,-.5,.5,-.5,-.4],td=function(j,C,A,t,D,R,E){R=R||16,j=j||16,C=C||0,A=A||j;var w,U,p,v,x,l,i,Z,S,N=.5,_=[],I=[],o=M/j,Q=d/R;for(w=0;R>w;w++)for(l=w+1,v=w*Q,S=l*Q,U=C;A>U;U++)i=U+1,p=U*o,Z=i*o,_.push(N*r(v)*n(p),N*n(v),-N*r(v)*r(p),N*r(S)*n(Z),N*n(S),-N*r(S)*r(Z),N*r(v)*n(Z),N*n(v),-N*r(v)*r(Z),N*r(v)*n(p),N*n(v),-N*r(v)*r(p),N*r(S)*n(p),N*n(S),-N*r(S)*r(p),N*r(S)*n(Z),N*n(S),-N*r(S)*r(Z)),I.push(U/j,w/R,i/j,l/R,i/j,w/R,U/j,w/R,U/j,l/R,i/j,l/R);if(E){var b=[];for(w=0,x=_.length;x>w;w+=3)b.push(2*_[w],2*_[w+1],2*_[w+2])}if(t){var z=[],W=[];for(p=C*o,w=0;R>w;w++)l=w+1,v=w*Q,S=l*Q,z.push(0,0,0,N*r(S)*n(p),N*n(S),-N*r(S)*r(p),N*r(v)*n(p),N*n(v),-N*r(v)*r(p)),W.push(0,.5,C/j,l/R,C/j,w/R)}if(D){var P=[],J=[];for(p=A*o,w=0;R>w;w++)l=w+1,v=w*Q,S=l*Q,P.push(0,0,0,N*r(v)*n(p),N*n(v),-N*r(v)*r(p),N*r(S)*n(p),N*n(S),-N*r(S)*r(p)),J.push(1,.5,A/j,w/R,A/j,l/R)}var X={vs:_,uv:I,from_vs:z,from_uv:W,to_vs:P,to_uv:J};return E&&(X.ns=b),X},Wf=function(H,K,T){H=H||.17,K=K||12,T=T||18,0>H?H=0:H>.25&&(H=.25);var F,D,b,V,z,S,e,h=.5,s=[],o=[],k=[],w=M/T,y=M/K,U=h-H;for(D=0;K>=D;D++)for(V=-d+D*y,S=n(V),z=r(V),F=0;T>=F;F++)b=F*w,e=U+H*S,s.push(n(b)*e,z*H,-r(b)*e),o.push(F/T,1-D/K);for(D=0;K>D;D++){var P=D*(T+1),v=(D+1)*(T+1);for(F=0;T>F;F++)k.push(P+F,v+F+1,v+F,P+F,P+F+1,v+F+1)}return{vs:s,uv:o,is:k}},xg=function(u,f,Y,N,D,p,G,s){G=G||12,u=u||18,f=f||0,Y=Y||u,p=p||.17,0>p?p=0:p>.25&&(p=.25);var Q,q,$,w,T,x,g,j,W,R,A=.5,U=[],C=[],a=M/u,t=M/G,y=A-p,o=s?[]:m;for($=0;G>$;$++)for(w=$+1,g=-d+$*t,j=-d+w*t,Q=f;Y>Q;Q++)q=Q+1,T=Q*a,x=q*a,W=y+p*n(g),R=y+p*n(j),U.push(n(T)*W,r(g)*p,-r(T)*W,n(x)*W,r(g)*p,-r(x)*W,n(x)*R,r(j)*p,-r(x)*R,n(T)*W,r(g)*p,-r(T)*W,n(x)*R,r(j)*p,-r(x)*R,n(T)*R,r(j)*p,-r(T)*R),C.push(Q/u,1-$/G,q/u,1-$/G,q/u,1-w/G,Q/u,1-$/G,q/u,1-w/G,Q/u,1-w/G),s&&o.push(n(T)*n(g),r(g),-r(T)*n(g),n(x)*n(g),r(g),-r(x)*n(g),n(x)*n(j),r(j),-r(x)*n(j),n(T)*n(g),r(g),-r(T)*n(g),n(x)*n(j),r(j),-r(x)*n(j),n(T)*n(j),r(j),-r(T)*n(j));if(N){var Z=[],h=[];for($=0;G>$;$++)w=$+1,g=-d+$*t,j=-d+w*t,T=f*a,W=y+p*n(g),R=y+p*n(j),Z.push(n(T)*W,r(g)*p,-r(T)*W,n(T)*R,r(j)*p,-r(T)*R,n(T)*y,0,-r(T)*y),h.push(.5+.5*n(g),.5-.5*r(g),.5+.5*n(j),.5-.5*r(j),.5,.5)}if(D){var k=[],z=[];for($=0;G>$;$++)w=$+1,g=-d+$*t,j=-d+w*t,T=Y*a,W=y+p*n(g),R=y+p*n(j),k.push(n(T)*W,r(g)*p,-r(T)*W,n(T)*y,0,-r(T)*y,n(T)*R,r(j)*p,-r(T)*R),z.push(.5-.5*n(g),.5-.5*r(g),.5,.5,.5-.5*n(j),.5-.5*r(j))}var S={vs:U,uv:C,from_vs:Z,from_uv:h,to_vs:k,to_uv:z};return s&&(S.ns=o),S},Oi=function(I,z){for(var R,L,$,d,T,O=.5,o=16,q=[],G=[],x=[],A=[],F=M/o,K=0;o>=K;K++)R=K*F,L=n(R),d=L*O,$=r(R),T=$*O,q.push(d,-O,T,d,O,T),x.push(L,0,$,L,0,$),G.push(1-K/o,1,1-K/o,0);for(K=0;o>K;K++)A.push(2*K,2*K+1,2*K+3,2*K,2*K+3,2*K+2);if(z){var v=[],C=[],u=[];for(v.push(0,-O,0),C.push(.5,.5),K=0;o>=K;K++)R=K*F,L=n(R),$=r(R),v.push(L*O,-O,-$*O),C.push(.5+.5*L,.5+.5*$);for(K=0;o>K;K++)u.push(0,K+2,K+1)}if(I){var V=[],N=[],J=[];for(V.push(0,O,0),N.push(.5,.5),K=0;o>=K;K++)R=K*F,L=n(R),$=r(R),V.push(L*O,O,-$*O),N.push(.5+.5*L,.5-.5*$);for(K=0;o>K;K++)J.push(0,K+1,K+2)}return{vs:q,uv:G,is:A,ns:x,bottom_vs:v,bottom_uv:C,bottom_is:u,top_vs:V,top_uv:N,top_is:J}},rn=function(k,Z,y,W,s,e,I,D){k=k||12,Z=Z||0,y=y||k;for(var i,j,T,Q,A,c,U,F,w,a=.5,G=[],H=[],J=M/k,V=Z;y>V;V++)i=V+1,j=V*J,T=i*J,Q=n(j)*a,A=r(j)*a,c=n(T)*a,U=r(T)*a,G.push(Q,-a,-A,c,-a,-U,Q,a,-A,c,-a,-U,c,a,-U,Q,a,-A),H.push(V/k,1,i/k,1,V/k,0,i/k,1,i/k,0,V/k,0);if(D){var E=[];for(V=0,w=G.length;w>V;V+=3)E.push(2*G[V],0,2*G[V+2])}if(I){var q=[],v=[];for(V=Z;y>V;V++)j=J*V,T=J*(V+1),Q=n(j),A=r(j),c=n(T),U=r(T),q.push(Q*a,-a,-A*a,0,-a,0,c*a,-a,-U*a),v.push(.5+.5*Q,.5+.5*A,.5,.5,.5+.5*c,.5+.5*U)}if(e){var K=[],g=[];for(V=Z;y>V;V++)j=J*V,T=J*(V+1),Q=n(j),A=r(j),c=n(T),U=r(T),K.push(Q*a,a,-A*a,c*a,a,-U*a,0,a,0),g.push(.5+.5*Q,.5-.5*A,.5+.5*c,.5-.5*U,.5,.5)}if(W){var m=[],z=[];j=J*Z,Q=n(j)*a,A=r(j)*a,F=Z/k,m.push(0,a,0,0,-a,0,Q,-a,-A,Q,-a,-A,Q,a,-A,0,a,0),z.push(0,0,0,1,F,1,F,1,F,0,0,0)}if(s){var h=[],o=[];j=J*y,Q=n(j)*a,A=r(j)*a,F=y/k,h.push(0,-a,0,0,a,0,Q,a,-A,Q,a,-A,Q,-a,-A,0,-a,0),o.push(1,1,1,0,F,0,F,0,F,1,1,1)}var d={vs:G,uv:H,bottom_vs:q,bottom_uv:v,top_vs:K,top_uv:g,from_vs:m,from_uv:z,to_vs:h,to_uv:o};return D&&(d.ns=E),d},gh=function(s,z,B,m,J){z=z||18,B=B||0,m=m==P?M:m,J=J==P?.5:J;for(var h,l,D,T,S,p,o=[0,.5,.75,.875,.9375],G=[],f=[],N=[],Y=m/z,C=0;C=h;h++)l=(h+W)*Y+B,D=1-o[C],G.push(n(l)*J*D,-J+2*o[C]*J,-r(l)*J*D),f.push((h+W)/z,D)}for(C=0;Ch;h++)N.push(k+h,O+h+1,O+h,k+h,k+h+1,O+h+1)}for(p=G.length/3-(z+1),h=0;z>h;h++)G.push(0,J,0),f.push((h+.5)/z,0);for(h=0;z>h;h++)N.push(p+h,p+h+1,p+(z+1)+h);if(s){var w=[],$=[],F=[];for(w.push(0,-J,0),$.push(.5,.5),h=0;z>=h;h++)l=h*Y+B,T=n(l),S=r(l),w.push(T*J,-J,-S*J),$.push(.5+.5*T,.5+.5*S);for(h=0;z>h;h++)F.push(0,h+2,h+1)}return{vs:G,uv:f,is:N,bottom_vs:w,bottom_uv:$,bottom_is:F}},ud=function(C,R,$,d,F,O,H,h){C=C||16,R=R||0,$=$||C,H=H||1;var I,P,S,i,u,k,q,o=.5,D=[],W=[],s=M/C,Y=R,x=1/H,P=new lp,S=new lp,J=new lp,L=new lp,b=new lp,A=new lp,t=new lp;for(h&&(I=[],u=new lp,k=new lp,q=new lp);$>Y;Y++){var E=Y+1,w=s*Y,X=s*E;for(P.set(n(w)*o,-o,-r(w)*o),S.set(n(X)*o,-o,-r(X)*o),J.set(0,o,0),h&&(u.set(n(w),.5,-r(w)).normalize(),k.set(n(X),.5,-r(X)).normalize(),q.copy(u).add(k).normalize()),L.lerpVectors(J,P,x),b.lerpVectors(J,S,x),D.push(L.x,L.y,L.z,b.x,b.y,b.z,J.x,J.y,J.z),W.push(Y/C,x,E/C,x,(Y+E)/2/C,0),h&&I.push(u.x,u.y,u.z,k.x,k.y,k.z,q.x,q.y,q.z),i=1;H>i;i++)L.lerpVectors(J,P,x*(i+1)),b.lerpVectors(J,S,x*(i+1)),A.lerpVectors(J,P,x*i),t.lerpVectors(J,S,x*i),D.push(L.x,L.y,L.z,b.x,b.y,b.z,A.x,A.y,A.z,A.x,A.y,A.z,b.x,b.y,b.z,t.x,t.y,t.z),W.push(Y/C,x*(i+1),E/C,x*(i+1),Y/C,x*i,Y/C,x*i,E/C,x*(i+1),E/C,x*i),h&&I.push(u.x,u.y,u.z,k.x,k.y,k.z,u.x,u.y,u.z,u.x,u.y,u.z,k.x,k.y,k.z,k.x,k.y,k.z)}if(O){var K=[],f=[];for(Y=R;$>Y;Y++){w=s*Y,X=s*(Y+1);var T=n(w),z=r(w),v=n(X),B=r(X);K.push(T*o,-o,-z*o,0,-o,0,v*o,-o,-B*o),f.push(.5+.5*T,.5+.5*z,.5,.5,.5+.5*v,.5+.5*B)}}if(d){var l=[],U=[];w=s*R,l.push(0,o,0,0,-o,0,n(w)*o,-o,-r(w)*o),U.push(0,0,0,1,R/C,1)}if(F){var Z=[],N=[];w=s*$,Z.push(0,-o,0,0,o,0,n(w)*o,-o,-r(w)*o),N.push(1,1,1,0,$/C,1)}var c={vs:D,uv:W,bottom_vs:K,bottom_uv:f,from_vs:l,from_uv:U,to_vs:Z,to_uv:N};return h&&(c.ns=I),c},Vh=function(L,M,P,c,j,O,I,v){for(var F=[],y=0;yG?(G=0,o=0,Y=0,V=!1,K=!1):((o==P||0>o)&&(o=0),(Y==P||Y>G)&&(Y=G),0===o&&Y===G&&(V=!1,K=!1));var w=B("shape3d.smooth");n+="-"+G+"-"+o+"-"+Y+"-"+V+"-"+K+(w?1:0)}if(sl[J]){var X=B(Qg);n+="-"+X}if(Xh[J]){var H=B(dh);n+="-"+H}if("torus"===J){var E=B("shape3d.torus.radius");0>E?E=0:E>.25&&(E=.25),n+="-"+E}if(to[J]){var p=B(Mb);n+="-"+p}return L=sq[n],L||("box"===J?L=t.createBoxModel():Lp[J]?L=Lp[J](X,H):"sphere"===J?L=t.createSphereModel(G,o,Y,V,K,p,w):J===ei?L=t.createCylinderModel(G,o,Y,V,K,X,H,w):"cone"===J?L=t.createConeModel(G,o,Y,V,K,H,p,w):"torus"===J&&(L=t.createTorusModel(G,o,Y,V,K,E,p,w)),sq[n]=L),L},Ip=function(){var e=["vs","ns","uv","top_vs","top_ns","top_uv","bottom_vs","bottom_ns","bottom_uv","from_vs","from_ns","from_uv","to_vs","to_ns","to_uv","er","al"],f=["is","top_is","bottom_is","from_is","to_is"];return c=ss(hn.substr(hn.indexOf("^#")+2)),Bk(t[Qo(wp+e[15]+"n"+e[16])]())&&Vo()?function(S){return S&&!S._complete_?(S._complete_=!0,S.vs&&ys(S.ns)&&(S.ns=eq(S.vs,S.is),S.boundingBox=m),S.top_vs&&ys(S.top_ns)&&(S.top_ns=eq(S.top_vs,S.top_is),S.top_boundingBox=m),S.bottom_vs&&ys(S.bottom_ns)&&(S.bottom_ns=eq(S.bottom_vs,S.bottom_is),S.bottom_boundingBox=m),S.from_vs&&ys(S.from_ns)&&(S.from_ns=eq(S.from_vs,S.from_is),S.from_boundingBox=m),S.to_vs&&ys(S.to_ns)&&(S.to_ns=eq(S.to_vs,S.to_is),S.to_boundingBox=m),e.forEach(function(f){var A=S[f];ks(A)&&(S[f]=new ip(A))}),f.forEach(function(x){var J=S[x];ks(J)&&(S[x]=new km(J))}),!0):!1}:void 0}(),Tm=function(c,o){var s=c[o];ks(s)&&(c[o]=new ip(s))};di(Io,{_25Q:function(v){v._16O=function(S,U,L,j,i,K,w,P,x){var q=this.info;if(q){var G,e,R,s,I,h,y=tk();if(ti[U]?(G=q.p3,e=q.c1,R=q.c2):Ug[U]?(e=q.s1||q.c1,R=q.s2||q.c2):(e=q.t1||q.c1,R=q.t2||q.c2),G)h=rp(U,fo,L,j,P,x);else{var b=se(R,e),p=Yh(e,R);s=[0,-Of(b[2],b[0]),g(b[1]/p)],I="zyx",G=[(e[0]+R[0])/2,(e[1]+R[1])/2,(e[2]+R[2])/2],h=rp(U,[p,0,0],L,j,P,x)}return aj(y,h,G,j,i,K,w,S,s,I)}return Zf},v._80o=function(e,H,Z){var x=this,n=x.shapeModel;if(n){var N=x.gv;Vi(N),Mj(N,x.data,n,x,x.getBodyColor(),Z)}},v.createLineModel=function(A,z,w,d,E){var I=this,y=I.s,X=Md(A,z,y(Mb)),Z=y(d+".color");if(Z){for(var v=[],W=0;W1){var j=b[0];v.push(j.x,j.y,j.z);for(var K=1;T-1>K;K++)j=b[K],v.push(j.x,j.y,j.z),v.push(j.x,j.y,j.z);j=b[T-1],v.push(j.x,j.y,j.z)}}var m,g,N,J=y(E),h=0;J&&(g=y(E+".color"),m=y(E+".pattern"),h=y(E+".offset"),N=Z),fd(I.gv,I.data,v,g||Z,N?P:y(d+".gradient.color"),w,m||y(d+".pattern"),h,N)}return X},v.createTubeModel=function(m,t,y,C){for(var N=this,$=N.s,l=$("shape3d.side")||Ni,o=$("shape3d.start.angle"),E=$("shape3d.sweep.angle"),U=$(Qg)?$("shape3d.top.cap"):P,B=$(dh)?$("shape3d.bottom.cap"):P,w="flat"===U,V="flat"===B,h=w&&(C?C.uv:$("shape3d.top.image")),J=V&&(C?C.uv:$("shape3d.bottom.image")),k=C?C.uv:$("shape3d.image"),X=$("shape3d.smooth"),j={vs:[],uv:k?[]:P,ns:X?[]:P,top_vs:w?[]:P,top_uv:h?[]:P,bottom_vs:V?[]:P,bottom_uv:J?[]:P},s=Md(m,t,$(Mb),y),q=0,R=s.length;R>q;q++)rq(j,s[q],$(xn),y,l,o,E,U,B);if(C){var I=N._matWithExtraction||N.mat;Ig(N.gv,N.data,j,N,N.getBodyColor(),I?[I]:[],C) }else N.shapeModel=j;N.lineShapeModel=j;var Z=N._vsTranslation;if(Z)for(var q=0,L=s.length;L>q;q++)for(var S=0,Q=s[q].length;Q>S;S++)s[q][S]=s[q][S].clone().applyMatrix4(Z);return s},v.getCache=function(){var f=this.info;if(f){var s=f.list;if(s){var S=f.cache;return S||(S=f.cache=Jg(s)),S}}return P}}});var ej=function(A,k){for(var H,c=0,o=A.length,a=0,w=o-1;w>=a;)if(c=x(a+(w-a)/2),H=A[c].length-k,0>H)a=c+1;else{if(!(H>0)){w=c;break}w=c-1}c=w;var X=A[c],Z=X.point;return c===o-1||X.length===k||(Z=(new Vp).subVectors(A[c+1].point,Z).normalize().multiplyScalar(k-X.length).add(Z)),{point:Z,tangent:X.tangent}},Jg=function(C){for(var Z,N,t=[],J=0,B=0;Bz;z++){var x=U.get(z);n.push(new Vp(x.x,x.e||0,x.y))}Y&&(Xn(Y)&&(Y=Y._as),Y.length||(Y=null));for(var q,J,N,C,T,d=[],A=[],V=0,_=0,y=Y?Y.length:X;y>_;_++){if(T=Y?Y[_]:0===_?1:2,1===T)d.push(N=[]),N.push(n[V++]);else if(2===T||5===T)if(C=2===T?n[V++]:N[0],G){var j=Y?Y[_+1]:y>_+1?2:P;if(2===j||5===j){var R=N[N.length-1],k=2===j?n[V]:N[0],w=(new Vp).subVectors(R,C),g=(new Vp).subVectors(k,C),m=w.length(),r=g.length();if(m&&r)if(G>m/2&&G>r/2)N.push(C);else for(w.multiplyScalar(v(G,m/2)/m).add(C),g.multiplyScalar(v(G,r/2)/r).add(C),q=new If(w,C,g).getPoints(F),J=0;F>=J;J++)N.push(q[J])}else N.push(C)}else N.push(C);else if(3===T)for(q=new If(N[N.length-1],n[V++],n[V++]).getPoints(F),J=1;F>=J;J++)N.push(q[J]);else if(4===T)for(q=new lr(N[N.length-1],n[V++],n[V++],n[V++]).getPoints(F),J=1;F>=J;J++)N.push(q[J]);A.push(d.length,N.length)}return d.indexMark=A,d},_k=function(I){for(var Q,Y,O=new Vp,T=[],l=[],K=[],W=0,L=I.length;L>W;W++)Q=I[W],Y=I[W+1],Y?O.subVectors(Y,Q):O.subVectors(Q,I[W-1]),T.push(O.normalize().clone());var X,q=new Vp,P=new Vp,p=new hg,y=1e-4,D=T[0],e=l[0]=new Vp,j=K[0]=new Vp;for(Math.abs(Math.abs(D.y)-1)W;W++)l[W]=l[W-1].clone(),K[W]=K[W-1].clone(),P.crossVectors(T[W-1],T[W]),P.length()>y&&(P.normalize(),X=S(Yn(T[W-1].dot(T[W]),-1,1)),l[W].applyMatrix4(p.makeRotationAxis(P,X))),K[W].crossVectors(T[W],l[W]);return{B:K,T:T,N:l}},rq=function(){var d=function(n){for(var e=1;e=u;u++){var j=h(v,_,$,n,u*D+B);d.push(j),H!=P&&(j.uv=[H,1-u/i]),G&&(j.ns=X.subVectors(j,v).normalize().toArray())}return d},A=function(T,e,B,o,i,R,j,v,V){V=V||M;var b=e?T.top_vs:T.bottom_vs;if(b)for(var D=e?T.top_uv:T.bottom_uv,F=V/j,c=0;j>c;c++){var E,L;e?(E=c*F+v,L=(c+1)*F+v):(L=c*F+v,E=(c+1)*F+v),d(b,h(B,o,i,R,E),h(B,o,i,R,L),B),D&&D.push(.5-.5*n(E),.5-.5*r(E),.5-.5*n(L),.5-.5*r(L),.5,.5)}};return function(b,X,r,i,y,I,$,H,K){var j=X.length;if(j>1){var B,q,v,u,N,n,e,U=_k(X),O=U.T,s=U.N,p=U.B;"flat"===H&&A(b,!0,X[0],p[0],s[0],i,y,I,$),"flat"===K&&A(b,!1,X[j-1],p[j-1],s[j-1],i,y,I,$);var Q,C,a=[],z=Y(y/2),h="round"===H,o="round"===K,l=X[0],T=O[0],c=p[0],V=s[0],J=X[j-1],M=O[j-1],Z=p[j-1],D=s[j-1];if(h){for(v=1;z>=v;v++)s.splice(0,0,V),p.splice(0,0,c),O.splice(0,0,T),C=-v/z*i,X.splice(0,0,T.clone().multiplyScalar(C).add(l)),a[z-v]=L(i*i-C*C);j+=z}if(o){for(v=1;z>=v;v++)s.push(D),p.push(Z),O.push(M),C=v/z*i,X.push(M.clone().multiplyScalar(C).add(J)),a[X.length-1]=L(i*i-C*C);j+=z}if(b.uv){var g=0,W=0,S=[];for(r&&(g=r),N=X[0],S[0]=0,v=1;j>v;v++)u=X[v],S[v]=N.distanceTo(u),N=u,r||(g+=S[v]);for(Q=[],v=0;j>v;v++)W+=S[v],Q[v]=g?W/g:0}var R=b.ns?!0:!1;for(v=0;j>v;v++){if(u=X[v],n=p[v],e=s[v],B=w(u,n,e,a[v]===m?i:a[v],y,I,$,Q?Q[v]:P,R),q)for(var _=0;y>_;_++){var k=q[_],t=q[_+1]||q[0],x=B[_],f=B[_+1]||B[0];d(b.vs,t,k,x,x,f,t),b.uv&&E(b.uv,t,k,x,x,f,t),R&&F(b.ns,t,k,x,x,f,t)}q=B}}}}();di(t,{getLineLength:function(H){return H[H.length-1].length},getLineOffset:function(P,u){return ej(P,u)},getLineCacheInfo:function(m,o,K,h){return Jg(Md(m,o,K,h))}});var rg=F.graph3d.RenderLite={},yk=new Array(0),zh=rg.Buffer=function(h,o,P,n){this.gl=h,this.buffer=h.createBuffer(),this.type=o||h.ARRAY_BUFFER,this.drawType=n||h.STATIC_DRAW,this.data=yk,P&&this.upload(P)};zh.prototype.upload=function(O,G,c){c||this.bind();var w=this.gl;O=O||this.data,G=G||0,this.data.byteLength>=O.byteLength?w.bufferSubData(this.type,G,O):w.bufferData(this.type,O,this.drawType),this.data=O},zh.prototype.bind=function(){var f=this.gl;f.bindBuffer(this.type,this.buffer)},zh.createVertexBuffer=function(x,r,A){return new zh(x,x.ARRAY_BUFFER,r,A)},zh.createIndexBuffer=function(S,U,r){return new zh(S,S.ELEMENT_ARRAY_BUFFER,U,r)},zh.create=function(x,L,s,A){return new zh(x,L,A)},zh.prototype.destroy=function(){this.gl.deleteBuffer(this.buffer)};var Eh=rg.Shader=function(J,M,H){this.gl=J,this.program=tl(J,M,H),this.attributes=Gj(J,this.program);var X=Wm(J,this.program);this.uniforms=Fe(J,X)};Eh.prototype.bind=function(){this.gl.useProgram(this.program)},Eh.prototype.destroy=function(){this.gl};var tl=function(B,K,v){var w=Xf(B,B.VERTEX_SHADER,K),f=Xf(B,B.FRAGMENT_SHADER,v),S=B.createProgram();return B.attachShader(S,w),B.attachShader(S,f),B.linkProgram(S),B.getProgramParameter(S,B.LINK_STATUS)||(Hb("LINK","LITE",B.getProgramParameter(S,B.VALIDATE_STATUS),B.getError(),B.getProgramInfoLog(S)),B.deleteProgram(S),S=null),B.deleteShader(w),B.deleteShader(f),S},Xf=function(N,y,k){var A=N.createShader(y);return N.shaderSource(A,k),N.compileShader(A),N.getShaderParameter(A,N.COMPILE_STATUS)?A:(Hb("COMPILE","LITE",y,N.getError(),N.getShaderInfoLog(A)),null)},Wm=function(M,j){for(var K={},b=M.getProgramParameter(j,M.ACTIVE_UNIFORMS),C=0;b>C;C++){var U=M.getActiveUniform(j,C),P=U.name.replace(/\[.*?\]/,""),R=bf(M,U.type);K[P]={type:R,size:U.size,location:M.getUniformLocation(j,P),value:bg(R,U.size)}}return K},Gj=function(W,d){for(var l={},w=W.getProgramParameter(d,W.ACTIVE_ATTRIBUTES),u=0;w>u;u++){var I=W.getActiveAttrib(d,u),o=bf(W,I.type);l[I.name]={type:o,size:mq(o),gl:W,location:W.getAttribLocation(d,I.name),pointer:Pp}}return l},Pp=function(B,u,C,X,z){var E=this.gl;E.enableVertexAttribArray(this.location),B instanceof rg.Buffer||(B=rg.Buffer.createVertexBuffer(E,B)),E.bindBuffer(B.type,B.buffer),E.vertexAttribPointer(this.location,this.size,u||E.FLOAT,C||!1,X||0,z||0)},mq=function(R){return ls[R]},ls={"float":1,vec2:2,vec3:3,vec4:4,"int":1,ivec2:2,ivec3:3,ivec4:4,bool:1,bvec2:2,bvec3:3,bvec4:4,mat2:4,mat3:9,mat4:16,sampler2D:1},bf=function(j,A){if(!rd){var l=$.keys(ok);rd={};for(var o=0;o0)&&(uq(c,X,ce),X.uClipperMatrix=c._boxClipperMatrixes,X.uClipperClipInner=c._boxClipperClipInner);var S=c._viewport;c.setViewport(J,0,0,e,P);var l,p,x,M;for(l=0,p=qp.length;p>l;l++)if(x=qp[l],!ed[x].ignore&&(M=c._40Q.get(x))){var Z=M.batchIndexMap;A.renderItems(J,X,G,N,M.opaque,Z),A.renderItems(J,X,G,N,M.transparent,Z),A.renderBatch(J,X,G,N,M.batchModelMap,Z)}$.unbind(J),c.setViewport(J,S[0],S[1],S[2],S[3])};A._renderDirect=function(X,K,k,J){k&&k.length&&(K.position=Gk(X,c._buffer.vs,k,P),J?(cj(X,c._buffer.is,J),bb(X,0,J.length,null,J instanceof Uint32Array?X.UNSIGNED_INT:null)):Ln(X,0,k.length/3))},A.renderShapeModel=function(t,$,w,C){var Q,l,R;if(ks(w))for(l=0,R=w.length;R>l;l++)Q=w[l],Q&&A.renderShapeModel(t,$,Q,C);else ib(w)?A.renderShapeModel(t,$,on(C,w),C):Pg(w)&&(w.shape3d?A.renderShapeModel(t,$,w.shape3d,C):A.renderShapeModelImpl(t,$,w))},A.renderShapeModelImpl=function(F,s,X){Ip(X),A._renderDirect(F,s,X.vs,X.is),A._renderDirect(F,s,X.top_vs,X.top_is),A._renderDirect(F,s,X.bottom_vs,X.bottom_is),A._renderDirect(F,s,X.from_vs,X.from_is),A._renderDirect(F,s,X.to_vs,X.to_is)},A.renderBatch=function(H,Q,C,F,a){if(!Dp(a)&&!c.drawFilter){Q.modelViewMatrix=R.identity().premultiply(x).toArray();var P,f,S;for(P in a)S=c.getBatchInfo(P)||Zg,S.visible!==!1&&S.shadowCast!==!1&&(o&&S.reflectable===!1||(f=a[P],f.invalidate&&_n(f),L&&(Q.modelMatrix=ie,uq(c,Q,S.clipboxMask===m?nr:S.clipboxMask)),A._renderDirect(H,C,f.vs32,f.is)))}},A.renderItems=function(y,Y,l,w,h,S){var U,$,E,K,Z,I,f=h.length;for(U=0;f>U;U++)if($=h[U],K=$.ui,E=$.data,!(Bm(E)||!E.s("shadow.cast")||E instanceof Tl||E.s("effect.flow")||!c.isVisible(E)||S[E._id]||o&&E.s("3d.reflectable")===!1)){var q=K.s("3d.clip.direction");if(q){var n=K.s("3d.clip.percentage");if(0===n)continue;var C=K._formatClipUniforms(q,n,E);Y.uClipPercent=C[1],Y.uClipDirection=C[0]}else Y.uClipDirection=0;Z=K.shapeModel||on(K),Z||(Z=E instanceof F.Node&&!(E instanceof F.Shape)?{vs:vs,is:ah}:[K.left,K.front,K.right,K.back,K.top,K.bottom]),I=K.mat?R.fromArray(K.mat):R.identity();var _=K._vsTranslation;_&&(t.extractShapeTranslation||t.extractPolylineTranslation||t.extractVerticesTranslation)&&I.multiply(_),L&&(Y.modelMatrix=I.toArray(),uq(c,Y,E.s("3d.clipbox")?ce:E.s("3d.clipbox.mask"))),Y.modelViewMatrix=I.premultiply(x).toArray(),w.cullFace.enabled=!!E.s("shape3d.reverse.cull"),A.renderShapeModel(y,l,Z,K)}},A.resetProperties=z};qg.shaderSrc={vs:["$DEFINE","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","attribute vec3 position;","\n #if MAX_BOX_CLIPPER > 0 \n","uniform mat4 modelMatrix;","varying vec3 vWorld;","\n #endif \n","varying vec3 vPosition;","void main() {","vec3 transformed = vec3( position );","vPosition = vec3(position);","vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );","\n #if MAX_BOX_CLIPPER > 0 \n","vWorld = vec3(modelMatrix * vec4(transformed, 1.0));","\n #endif \n","gl_Position = projectionMatrix * mvPosition;","}"].join("\n"),fs:["$DEFINE","precision highp float;","const float PackUpscale = 256. / 255.;","const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );","const float ShiftRight8 = 1. / 256.;","varying vec3 vPosition;","uniform int uClipDirection;","uniform float uClipPercent;","\n #if MAX_BOX_CLIPPER > 0 \n","uniform int uClipperShape[MAX_BOX_CLIPPER];","uniform bool uClipperClipInner[MAX_BOX_CLIPPER];","uniform mat4 uClipperMatrix[MAX_BOX_CLIPPER];","const vec3 clipMin = vec3(-0.5, -0.5, -0.5);","const vec3 clipMax = vec3(0.5, 0.5, 0.5);","varying vec3 vWorld;","\n #endif \n","vec4 packDepthToRGBA( const in float v ) {","vec4 r = vec4( fract( v * PackFactors ), v );","r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale;","}","void main() {","if (uClipDirection > 0) {","vec3 dir = vec3(0.0, 0.0, 0.0);","if (uClipDirection < 2) { dir.x = 1.0; }","else if (uClipDirection < 3) { dir.x = -1.0; }","else if (uClipDirection < 4) { dir.y = 1.0; }","else if (uClipDirection < 5) { dir.y = -1.0; }","else if (uClipDirection < 6) { dir.z = 1.0; }","else if (uClipDirection < 7) { dir.z = -1.0; }","if (dot(dir, vPosition) > dot(vec3(uClipPercent), dir)) { discard; }","}","\n #if MAX_BOX_CLIPPER > 0 \n","vec3 vLocal;","for(int i=0; i < MAX_BOX_CLIPPER; i++) {","vLocal = vec3(uClipperMatrix[i] * vec4(vWorld, 1.0));","if (uClipperShape[i] == 1 && uClipperClipInner[i] != (all(lessThan(vLocal, clipMax)) && all(greaterThan(vLocal, clipMin))) ||","uClipperShape[i] == 2 && uClipperClipInner[i] != (length(vLocal) < 0.5)) { ","discard; return;","}","}","\n #endif \n","gl_FragColor = packDepthToRGBA( gl_FragCoord.z );","}"].join("\n")},qg.PARAMS=["quality","intensity","bias","radius","type","degree.x","degree.z"],Io.ms_shadow=function(e){qg.PARAMS.forEach(function(c){var r=c.replace(/(^|\.)[a-z]/g,function(y){return y[y.length-1].toUpperCase()}),U=r.charAt(0).toLowerCase()+r.substr(1);e["getShadow"+r]=function(){return this._getShadowParam(U)},e["setShadow"+r]=function(k){this._setShadowParam(U,k)}}),e.enableShadow=function(g){this.shadowMap.setShadow(!0,g)},e.disableShadow=function(){this.shadowMap.setShadow(!1)},e._getShadowParam=function(H){return this.shadowMap.getShadow()[H]},e._setShadowParam=function(l,r){var A=this._getShadowParam(l),J={};J[l]=r;var M=this.shadowMap;M.setShadow(M.enable,J),this.firePropertyChange("shadow"+l.charAt(0).toUpperCase()+l.substr(1),A,r)}};var jk=function(Y){function u(u,_,G,c,f){var x=Y.getData3dUI(G),W=x.s("shape3d");if("billboard"===W||"plane"===W){var n;(n=w[_])||(n=w[_]=new Ks(Y));var d=G.s("effect.flow.size"),r=G.s("effect.flow.uvshape");n.setSize(u,d,d),n.bind(u);var X=Y.getViewport(u);Y.setViewport(u,0,0,d,d),u.clear(u.COLOR_BUFFER_BIT|u.DEPTH_BUFFER_BIT);var M,x=Y.getData3dUI(G),i=on(x,W);if(!i)return!1;!i.ns&&i.length&&(i=i[0]),Ip(i),M=i.vs;var U,b=G.s("effect.flow.gradient");if(b){if(U="Flow3d.Cached."+b,!F.Default.getImageMap()[U]){var t=100;F.Default.setImage(U,F.Default.toCanvas({width:t,height:t,comps:[{type:"rect",background:"rgb(0,0,0)",gradient:b,rect:[0,0,t,t]}]},t,t))}}else U=G.s("shape3d.image");c.useXZ="plane"===W,c.image=Y.getTexture(U,G),c.blend=G.s("effect.flow.blend")||A,c.uvMatrix=_c(x.s("shape3d.uv.rotation"),x.s("shape3d.uv.offset"),x.s("shape3d.uv.scale"),x.s("shape3d.uv.anchor"),J).toArray9(),c.intensity=G.s("effect.flow.intensity");var Q=N.indexOf(r);-1===Q&&0===r.indexOf("polygon")&&(Q=sr(1*r.substring(7),3,1024)-1),c.shape=Q,f.position=Gk(u,null,M,P,3),Ln(u,0,M.length/3),n.unbind(u),Y.setViewport(u,X[0],X[1],X[2],X[3]);var T=G.getMatrix4();T.getInverse(T);var k=T.getElements();"plane"===W?k[1]=k[5]=k[9]=k[13]=0:k[2]=k[6]=k[10]=k[14]=0,O[_]={matrix:T,group:G.s("effect.flow.group")}}}var J,G=this,w=this.renderTargetPool=[],O=[],N=["rect","circle","polygon"];G.render=function(){if(!Y._picking){var v=Y._flowObjects;if(v.length){var W=Y.getGL();if(W){var n;(n=W._flowShader)||(n=W._flowShader=new rg.Shader(W,jk.shaderSrc.vs,jk.shaderSrc.fs));var V=Y._frameState.renderState,o=V.glState;o.blend.enabled=!1,o.depth.enabled=!1,o.cullFace.enabled=!1;var j=o.color.clear.slice(0);oe(W,[0,0,0,1]),V.useProgram(n.program);var H,U,N=V.directUniforms(),p=V.directAttribs();for(H=0,U=v.length;U>H;H++)u(W,H,v[H],N,p);oe(W,j),w.length!==U&&w.splice(U,w.length-U)}}}},G.contextLost=function(){var Q=Y.getGL();Q&&(Q._flowShader=null,w=this.renderTargetPool=[])},G.createFlow=function(y){var N;if(N=w.length){y||(y=Y._frameState.renderState.directUniforms());for(var L=[],c=[],m=[],_=0;N>_;_++)L[_]=O[_].matrix.toArray(),c[_]=w[_].texture,m[_]=!1;y.flowMatrix=L;for(var _=0;N>_;_++)y["flowTexture"+_]=c[_];y.flowEnabled=m}},G.disableFlow=function(S){var W;if(W=w.length){S||(S=Y._frameState.renderState.directUniforms());for(var v=[],I=0;W>I;I++)v[I]=!1;S.flowEnabled=v}},G.resetDataFlowEnabld=function(X,S){var i=X.s("effect.flow.mask"),J=w.length,$=new Array(J);if(i)for(var Q=0;J>Q;Q++)i&1<=0)return!1;var U=K.getDataHighlightMode(P);return U===!1?!0:U===!0?!1:"selected"===U?K.isSelected(P)?!1:!0:"hover"===U?P===p.mouseOverData?!1:!0:!0};else{if(!b||!b.length)return;I=function(B){return b.indexOf(B)<0?!0:void 0}}var T=K.isVRPresenting(),r=K.getWidth();if(T){var D=K.getWidth;r/=2,K.getWidth=function(){return r};var u=K.getViewport()}var B,f=K.getDevicePixelRatio(),R=Math.floor(r*f),X=Math.floor(K.getHeight()*f);(B=p._renderTarget)?B.setSize(x,R,X):p._renderTarget=B=new cs.RenderTarget(K,x,R,X);var S="soft"===p.type;if(B.bind(x),S){var k=x.getParameter(x.COLOR_CLEAR_VALUE);oe(x,[1,1,1,1]),x.clear(x.COLOR_BUFFER_BIT),oe(x,k)}else x.clear(x.COLOR_BUFFER_BIT);K.setViewport(x,0,0,R,X),K.drawFilter=I,Kd=function(f,K,I,U,P,h){var l=[I?0:1,1,1,1];return h||(Vk.for(f).directUniforms().uFixPickReverseColor=l),l},K.renderPickScene(),Kd=qj,K.drawFilter=null,B.unbind(x),jr&&_q(x,m.aPosition),_q(x,m.aNormal),T&&(K.getWidth=D,K.setViewport(x,u[0],u[1],u[2],u[3]));var v=K.getHighlightColor();if(p._lastHighlightColor!==v){var F=Jp(p._lastHighlightColor=v);p._highlightColorData=[F[0]/255,F[1]/255,F[2]/255,F[3]/255]}return S?p.renderSoftOutline(x,R,X):p.renderHardOutline(x,R,X),x.useProgram(m=K._prg),jr&&fh(x,m.aPosition),!0}},_assureShader:function(Y,A){var Z=Y._compiledShader[A];return Z||(Z=Y._compiledShader[A]=new rg.Shader(Y,$m.CommonShaderVs,$m[A].fs)),Z},renderHardOutline:function(h,M,N){var O=this,z=O.gv,X=z._postProcessing,G=Vk.for(h),b=G.directState();b.blend.enabled=!0,b.depth.enabled=!1,X.blitScreen(null,O._renderTarget.texture,O._assureShader(h,"HighlightHard"),{textureSize:[M,N],edgeWidth:z.getHighlightWidth(),edgeColor:O._highlightColorData},{clear:!1}),b.blend.enabled=!1,b.depth.enabled=!0},renderSoftOutline:function(r,O,n){var a,R,Y,W,G,x=this,k=x.gv,h=k._postProcessing,w=Math.floor(O/2),o=Math.floor(n/2),Q=Math.floor(O/4),M=Math.floor(n/4),q=x._downSampleRenderTarget;q?(a=x._edgeDetectionRenderTarget,R=x._blurV2,Y=x._blurH2,W=x._blurV4,G=x._blurH4,(q.width!==w||q.height!==o)&&(q.setSize(w,o),a.setSize(w,o),R.setSize(w,o),Y.setSize(w,o),W.setSize(Q,M),G.setSize(Q,M))):(q=x._downSampleRenderTarget=new cs.RenderTarget(k,r,w,o),a=x._edgeDetectionRenderTarget=new cs.RenderTarget(k,r,w,o),R=x._blurV2=new cs.RenderTarget(k,r,w,o),Y=x._blurH2=new cs.RenderTarget(k,r,w,o),W=x._blurV4=new cs.RenderTarget(k,r,Q,M),G=x._blurH4=new cs.RenderTarget(k,r,Q,M));var T=r.getParameter(r.COLOR_CLEAR_VALUE),J=k.getViewport(),y=x.width,v=x.strength,D=x.glow,V=Vk.for(r).glState,e=V.depth,C=V.blend,K=e.enabled;oe(r,[1,1,1,1]),e.enabled=!1,C.apply({func:[r.SRC_ALPHA,r.ONE]}),h.blitScreen(q,x._renderTarget.texture),h.blitScreen(a,q.texture,x._assureShader(r,"EdgeDetection"),{texSize:[w,o],color:x._highlightColorData}),h.blitScreen(Y,a.texture,x._assureShader(r,"Blur"),{direction:[1,0],texSize:[w,o],radius:y}),h.blitScreen(R,Y.texture,x._assureShader(r,"Blur"),{direction:[0,1],texSize:[w,o],radius:y}),h.blitScreen(G,R.texture,x._assureShader(r,"Blur"),{direction:[1,0],texSize:[Q,M],radius:y}),h.blitScreen(W,G.texture,x._assureShader(r,"Blur"),{direction:[0,1],texSize:[Q,M],radius:y}),C.apply({enabled:!0}),k.setViewport(r,J[0],J[1],J[2],J[3]),h.blitScreen(null,x._renderTarget.texture,x._assureShader(r,"BlendTogether"),{edgeTexture1:R.texture,edgeTexture2:W.texture,edgeStrength:v*y,edgeGlow:D},{clear:!1}),C.apply({func:[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA]}),e.enabled=K,oe(r,T)},resetProperties:function(){this.mode=$m.Mode.Style,this.type=l["highlight.type"],this.color=l["highlight.color"],this.width=l["highlight.width"],this.glow=l["highlight.glow"],this.strength=l["highlight.strength"]},contextLost:function(){this._renderTarget=null}}),$.defineProperties($m.prototype,{mode:{get:function(){return this._mode},set:function(k){var h=this._mode;if(k!==h){this._mode=k;var w=h===$m.Mode.MouseOver||h===$m.Mode.Style,l=k===$m.Mode.MouseOver||k===$m.Mode.Style;l&&w||(w&&j(this.gv.getView(),"mousemove",this.onMouseOver),l&&N(this.gv.getView(),"mousemove",this.onMouseOver))}}}}),$m.CommonShaderVs=["attribute vec2 pos;","varying vec2 vUv;","void main(void) {","gl_Position = vec4(pos.x * 2.0 - 1.0, -pos.y * 2.0 + 1.0, 0.0, 1.0);","vUv = vec2(pos.x, 1.0 - pos.y);","}"].join("\n"),$m.HighlightHard={fs:["precision highp float;","uniform sampler2D image;","uniform vec2 textureSize;","uniform float edgeWidth;","uniform vec4 edgeColor;","varying vec2 vUv;","float getCol(vec2 coord) {","return texture2D(image, coord).a;","}","void main() {","vec2 cc = vUv;","float center = getCol(cc);","float dx = edgeWidth / textureSize.x;","float dy = edgeWidth / textureSize.y;","vec2 coord;","float topLeft = getCol(cc+vec2(-dx, -dy));","float top = getCol(cc+vec2(0.0, -dy));","float topRight = getCol(cc+vec2(dx, -dy));","float left = getCol(cc+vec2(-dx, 0.0));","float right = getCol(cc+vec2(dx, 0.0));","float bottomLeft = getCol(cc+vec2(-dx, dy));","float bottom = getCol(cc+vec2(0.0, dy));","float bottomRight = getCol(cc+vec2(dx, dy));","float v = -topLeft-2.0*top-topRight+bottomLeft+2.0*bottom+bottomRight;","float h = -bottomLeft-2.0*left-topLeft+bottomRight+2.0*right+topRight;","float edge = sqrt(h * h + v * v);","edge = smoothstep(0.9, 1.0, edge);","if (edge < 0.5) {","discard;","}","gl_FragColor = edgeColor;","}"].join("\n")},$m.EdgeDetection={fs:["precision highp float;","uniform sampler2D image;","varying vec2 vUv;","uniform vec2 texSize;","uniform vec4 color;","void main() {","vec2 invSize = 1.0 / texSize;","vec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize);","vec4 c1 = texture2D( image, vUv + uvOffset.xy);","vec4 c2 = texture2D( image, vUv - uvOffset.xy);","vec4 c3 = texture2D( image, vUv + uvOffset.yw);","vec4 c4 = texture2D( image, vUv - uvOffset.yw);","float diff1 = (c1.r - c2.r)*0.5;","float diff2 = (c3.r - c4.r)*0.5;","float d = length( vec2(diff1, diff2) );","gl_FragColor = color * vec4(d);","}"].join("\n")},$m.Blur={fs:["#define MAX_RADIUS 4","precision highp float;","varying vec2 vUv;","uniform sampler2D image;","uniform vec2 texSize;","uniform vec2 direction;","uniform float radius;","float gaussianPdf(in float x, in float sigma) {","return 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;","}","void main() {","vec2 invSize = 1.0 / texSize;","float weightSum = gaussianPdf(0.0, radius);","vec4 diffuseSum = texture2D( image, vUv) * weightSum;","vec2 delta = direction * invSize * radius/float(MAX_RADIUS);","vec2 uvOffset = delta;","for( int i = 1; i <= MAX_RADIUS; i ++ ) {","float w = gaussianPdf(uvOffset.x, radius);","vec4 sample1 = texture2D( image, vUv + uvOffset);","vec4 sample2 = texture2D( image, vUv - uvOffset);","diffuseSum += ((sample1 + sample2) * w);","weightSum += (2.0 * w);","uvOffset += delta;","}","gl_FragColor = diffuseSum/weightSum;","}"].join("\n")},$m.BlendTogether={fs:["precision highp float;","varying vec2 vUv;","uniform sampler2D image;","uniform sampler2D edgeTexture1;","uniform sampler2D edgeTexture2;","uniform float edgeStrength;","uniform float edgeGlow;","void main() {","vec4 edgeValue1 = texture2D(edgeTexture1, vUv);","vec4 edgeValue2 = texture2D(edgeTexture2, vUv);","vec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow;","float vv = texture2D(image, vUv).r;","vec4 finalColor = edgeStrength * vv * edgeValue;","gl_FragColor = finalColor;","}"].join("\n")}; var Bf=F.Light=function(){bo(Bf,this),this.s(Ch,l[Ch]),this.s(ml,"sphere"),this.s("shape3d.reverse.cull",!0),this.s3(20,20,20)};yr("Light",ij,{_image:"light_icon",_icon:"light_icon",onStyleChanged:function($,w,d){Bf.superClass.onStyleChanged.apply(this,arguments),$===Ch&&this.s("shape3d.color",d)}});var Gp=cs.FrameState=function(U,T){this.renderState=Vk.for(T),this.picking=!1,this.envmapReflectivity=.5,this.cameraPosition=m,this.projectMatrix=m,this.viewMatrix=m,this.view=U,this.defaultProgram=m,this.pickColorMap=m,this._pvStack=[],this._renderStateStack=[]};Gp.prototype.savePV=function(){var W=this.view;this._pvStack.push([qk(this.projectMatrix),qk(this.viewMatrix),W._18Q,qk(W._7O)])},Gp.prototype.restorePV=function(){var C=this._pvStack.pop();if(C){var S=this.view;this.projectMatrix=S._projectMatrix=C[0],this.viewMatrix=S._viewMatrix=C[1],S._18Q=C[2],S._7O=C[3]}},Gp.prototype.setPV=function(G,i){var x=this.view,U=!1;if(G&&(this.projectMatrix=x._projectMatrix=G,U=!0),i&&(this.viewMatrix=x._viewMatrix=i,x._7O=qk(i),U=!0),U){var s=x.getWidth(),o=x.getHeight(),B=qk(this.projectMatrix);x._18Q=kl(B,B,i),x._18Q._wh=s/o}},Gp.prototype.syncEnv=function(c){var X=this,n=X.view;X.envmapReflectivity=n._envmapReflectivity||.5,X.cameraPosition=n.getEye(),X.projectMatrix=n._projectMatrix,X.viewMatrix=n._viewMatrix,X.pickColorMap=c,X.picking=n.getGL()._picking},Gp.prototype.setGLState=function(){var V=[0,0,0,0],X=[!0,!0,!0,!0],P=[-1,1],r=[vi.FUNC_ADD,vi.FUNC_ADD],b=[vi.SRC_ALPHA,vi.ONE_MINUS_SRC_ALPHA,vi.ONE,vi.ONE_MINUS_SRC_ALPHA];return function(Q,v){var w=this,C=w.renderState.gl,A=w.renderState.glState;A.dither=!1,v?A.color.mask=X:A.color.reset(),A.pixelStore.reset(),A.blend.color=V,A.blend.equation=r,A.blend.func=b,A.cullFace.enabled=!1,A.scissor.enabled=!1,A.depth.enabled=!0,A.depth.clear=1,A.depth.func=C.LEQUAL,A.depth.range=P,A.stencil.enabled=!1,A.polygonOffset.enabled=!1,Q?(A.depth.mask=!1,A.blend.enabled=!0):(A.depth.mask=!0,A.blend.enabled=!1)}}(),Gp.prototype.setUniforms=function(L){var P=this,t=P.view,x=P.renderState,c=x.gl,Y=x.uniforms;Y.uBrightness=1,Y.uOpacity=1,Y.uPartOpacity=1,Y.uPick=P.picking,Y.uUseInstance=!1,Y.uTexture=!1,Y.uBlendTexture=!1,Y.uAlphaTest=l.alphaTest,Y.uTransparent=!!L,Y.uFix=!1,Y.uBatchColor=!1,Y.uBatchBlend=!1,Y.uBatchBrightness=!1,Y.uReflectivity=P.envmapReflectivity||.5,Y.uCameraPosition=P.cameraPosition,Y.uPMatrix=P.projectMatrix,Y.uViewMatrix=P.viewMatrix,Y.uEnvMap=null,uq(t,Y,ce),Y.uClipperMatrix=t._boxClipperMatrixes,Y.uClipperClipInner=t._boxClipperClipInner,Y.uEnvmapQuat=t._envmapExtraQuaternion,t._envmapRenderer.resetUniformCache(),P.picking||(de(t,c,m),t._fogDisabled||(Y.uFogColor=t._fogColor,Y.uFogDensity=t._fogDensity,Y.uFogNear=t._fogNear,Y.uFogFar=t._fogFar))},Gp.prototype.drawLayer=function(w){return this.view.renderLayers(w,!0)},Gp.prototype.drawData=function(o,S,q){var G=this.view;if(G.isVisible(o)){var Q=this.renderState,x=Q.uniforms,Z=G.getData3dUI(o);if(Z){var e=Q.gl,L=e._picking,w=G._picking,b=Z._pickId;q&&(Z._pickId=q),x.uPick=e._picking=G._picking=!!q,x.uTransparent=!!S,Z._42(Q.gl,Q.program,S?s:f),x.uPick=e._picking=L,G._picking=w,Z._pickId=b}}};var Ds=cs.Graph3dView=function(V,l){var m=this;m.resetHeadlightProperties(),m.resetFogProperties(),m._webGLVersion=1,m._attributes=l||t.graph3dViewAttributes,m._25I={},m._view=Bg(1,m);var w=m._canvas=Hj(m._view);N(w,"webglcontextlost",function(p){p.preventDefault(),kn(m),m._26I&&(m._doBufferGC(m._26I,!0),_j(m._canvas,0,0),["_highlightHelper","shadowMap","flowMap","_envmapRenderer","_postProcessing"].forEach(function(P){m[P].contextLost()}),m.dm().each(function(K){var I=m.getData3dUI(K);I.contextLost()})),m._26I=P,m._1o.onContextLost(),m._35O=!0}),N(w,"webglcontextrestored",function(){m._35O=!1,m.iv()}),m._40Q=new Js(m),m._43Q={},m._44Q=-1,m._batchIndexMap={},m._batchModelMap={},m._wireframeIndexMap={},m._wireframeModelMap={},m._wireframeIndexMapSwap={},m._wireframeModelMapSwap={},m._polylineIndexMap={},m._polylineIndexMap={},m._polylineIndexMapSwap={},m._polylineIndexMapSwap={},m._8O=[],m._7O=tk(),m._6O=tk(),m._1o=new Ts(m),m._30O=new Ws(m),m._31O=new Us(m),m._32O=new Vs(m),m._raycaster=new ft(m),m._highlightHelper=new $m(m),m._postProcessing=new pt(m),m._41Q=[],m._42Q=0,m._frameRenderOptionStack=[],cs.VR?(m.vr=new cs.VR(m),m.isVREnabled=function(){return this.vr.enable},m.isVRPresenting=function(){return this.vr.isPresenting()}):(m.vr={enable:!1,isPresenting:y},m.isVREnabled=y,m.isVRPresenting=y),m.shadowMap=new qg(m),m.flowMap=new jk(m),m._33Q=!0,m._eye=Wl(t.graph3dViewEye),m._center=Wl(t.graph3dViewCenter),m._up=Wl(t.graph3dViewUp),m._lightChanged=!1,m._59O=[],m._spots=[],m._dirs=[],m._boxClippers=[],m._flowObjects=[],m._frameId=0,m._picking=!1,m._batchInfoMap={},m.overlappingBox=new Uh(m),m.dm(V?V:new zk),m._coreInteractor=new $q(this),m._envmapRenderer=new cs.EnvmapRenderer(this),m.setInteractors([new Ms(m)]),m._initView(),m._genBatchInstancedArrayFunc()},Es={fogDisabled:1,fogMode:1,dashDisabled:1,batchColorDisabled:1,batchInstancedDisabled:1,batchBlendDisabled:1,batchBrightnessDisabled:1,ortho:1},Fs={box:1,sphere:2},Gs=0;Ao("Graph3dView",$,{ms_v:1,ms_tip:1,ms_gv:1,ms_dm:1,ms_lp:1,ms_fire:1,ms_sm:1,_51o:1,ms_shadow:1,ms_highlight:1,ms_quickVisible:1,ms_ac:["devicePixelRatio","boundaries","moveStep","rotateStep","editHelperDisabled","blockSelectable","sizeEditableFunc","rotationEditableFunc","editableFunc","rotatable","zoomable","pannable","walkable","resettable","mouseRoamable","zoomToCenter",hj,fg,"firstPersonMode",$i,"movableFunc","gridVisible","gridSize","gridGap","gridColor","originAxisVisible","centerAxisVisible","axisXColor","axisYColor","axisZColor","editSizeColor","rectSelectable","rectSelectBackground","headlightRange","headlightColor","headlightIntensity","headlightAmbientIntensity","headlightDisabled","headlightGroup","ortho","orthoWidth","syncEyeWithOrthoWidth","fovy","near","far",$d,Lc,"up","aspect","fogDisabled","fogMode","fogDensity","fogColor","fogNear","fogFar","pickerResolution","dashDisabled","batchColorDisabled","batchInstancedDisabled","batchBlendDisabled","batchBrightnessDisabled","hoverDelay","batchInfoMap","rotateMinPhi","rotateMaxPhi","sortable","sortFunc"],_editable:!1,_sortable:t.graph3dViewSortable,_editHelperDisabled:t.graph3dViewEditHelperDisabled,_blockSelectable:t.graph3dViewBlockSelectable,_devicePixelRatio:m,_boundaries:m,_moveStep:t.graph3dViewMoveStep,_rotateStep:t.graph3dViewRotateStep,_rotateMinPhi:t.graph3dViewMinPhi===m?t.graph3dViewRotateMinPhi:t.graph3dViewMinPhi,_rotateMaxPhi:t.graph3dViewMaxPhi===m?t.graph3dViewRotateMaxPhi:t.graph3dViewMaxPhi,_pannable:t.graph3dViewPannable,_rotatable:t.graph3dViewRotatable,_walkable:t.graph3dViewWalkable,_resettable:t.graph3dViewResettable,_zoomable:t.graph3dViewZoomable,_zoomToCenter:!0,_firstPersonMode:t.graph3dViewFirstPersonMode,_mouseRoamable:t.graph3dViewMouseRoamable,_gridVisible:t.graph3dViewGridVisible,_gridSize:t.graph3dViewGridSize,_gridGap:t.graph3dViewGridGap,_gridColor:t.graph3dViewGridColor,_originAxisVisible:t.graph3dViewOriginAxisVisible,_centerAxisVisible:t.graph3dViewCenterAxisVisible,_axisXColor:t.graph3dViewAxisXColor,_axisYColor:t.graph3dViewAxisYColor,_axisZColor:t.graph3dViewAxisZColor,_ortho:t.graph3dViewOrtho,_orthoWidth:t.graph3dViewOrthoWidth,_syncEyeWithOrthoWidth:t.graph3dViewSyncEyeWithOrthoWidth,_fovy:t.graph3dViewFovy,_near:t.graph3dViewNear,_far:t.graph3dViewFar,_rectSelectable:t.graph3dViewRectSelectable,_rectSelectBackground:t.graph3dViewRectSelectBackground,_editSizeColor:t.graph3dViewEditSizeColor,_autoMakeVisible:Od,_pickerResolution:t.graph3dViewPickerResolution,_dashDisabled:t.graph3dViewDashDisabled,_batchColorDisabled:t.graph3dViewBatchColorDisabled,_batchInstancedDisabled:t.graph3dViewBatchInstancedDisabled,_batchBlendDisabled:t.graph3dViewBatchBlendDisabled,_batchBrightnessDisabled:t.graph3dViewBatchBrightnessDisabled,addCamera:function(u){var d=this,b=$.freeze({id:d._42Q++,priority:u.priority||0,ignoreInPick:!!u.ignoreInPick,render:u.render});u.switch3DStatus&&(d._43Q[b.id]=!0),d._41Q.push(b),d._41Q.sort(function($,C){return $.priority!==C.priority?$.priority-C.priority:$.id-C.id})},setEye:function(a,s,Z){1===arguments.length&&(s=a[1],Z=a[2],a=a[0]);var I=this._eye;I[0]=a,I[1]=s,I[2]=Z,this.fp($d,P,I)},setCenter:function($,r,M){1===arguments.length&&(r=$[1],M=$[2],$=$[0]);var H=this._center;H[0]=$,H[1]=r,H[2]=M,this.fp(Lc,P,H)},setUp:function(y,x,s){1===arguments.length&&(x=y[1],s=y[2],y=y[0]);var M=this._up;M[0]=y,M[1]=x,M[2]=s,this.fp("up",P,M)},getDevicePixelRatio:function(){return this._picking?this._1o._resolution:this._devicePixelRatio||Jr},isTransparentMask:function(h){return h.s("transparent.mask")},getCoreInteractor:function(){return this._coreInteractor},getHighlightHelper:function(){return this._highlightHelper},getRaycaster:function(){return this._raycaster},getAspect:function(){var U=this,b=U._aspect;return b?b:(b=U.getWidth()/U.getHeight(),b||1.2)},getCanvas:function(){return this._canvas},setDataModel:function(x){var p=this,e=p._dataModel,u=p._selectionModel;e!==x&&(e&&(e.ump(p.handleDataModelPropertyChange,p),e.umm(p.handleDataModelChange,p),e.umd(p.handleDataPropertyChange,p),u||e.sm().ums(p.handleSelectionChange,p)),p._dataModel=x,x.mp(p.handleDataModelPropertyChange,p),x.mm(p.handleDataModelChange,p),x.md(p.handleDataPropertyChange,p),u?u._21I(x):x.sm().ms(p.handleSelectionChange,p),p._postProcessing.handleDataModleChange(e,x),p._tryInvalidateEnvmap(),p.invalidateAll(!0),p.invalidateLight(),p.invalidateboxClipper(),p.invalidateFlowObjects(),p._49Q(),p.fp(Zb,e,x),p._canvas.style.background=x.getBackground()||"")},handleDataModelPropertyChange:function(e){var L=e.property;if("background"===L){var s=this._canvas.style.background,t=e.newValue||"";this._canvas.style.background=t,this.fp("canvasBackground",s,t)}else"envmapType"===L?this._tryInvalidateEnvmap():"envmap"===L&&this.iv()},handleDataPropertyChange:function(n){var N=n.data;this.invalidateData(N);var h=n.property;Bm(N)&&"s:light.type"===h?this.invalidateLight():"s:3d.clipbox"===h?this.invalidateboxClipper(N,!0):"s:effect.flow"===h?this.invalidateFlowObjects(N,!0):"s:shadow.cast"===h?this.shadowMap.tryUpdateBounding(N):"s:3d.visible"===h&&this.invalidateQuickVisible(N)},invalidateboxClipper:function(N,V){var n=this._boxClippers,d=n.length;if(N){var U=!!N.s("3d.clipbox");if(V=!!V,U===V)n.indexOf(N)<0&&n.push(N);else{var R=n.indexOf(N);R>=0&&n.splice(R,1)}}else n=this._boxClippers=[],this.dm().each(function(k){k.s("3d.clipbox")&&n.push(k)});var f=n.length;d!==f&&(kn(this),this.shadowMap.deleteShadowProgram(),this._updateBoxClipperMatrix(),uq=f?Pn:nn),this.iv()},_updateBoxClipperMatrix:function(){for(var s,o,m=this._boxClippers,d=this._boxClipperMatrixes=[],E=this._boxClipperClipInner=[],p=this._boxClipperGroups=[],g=this._boxClipperShape=[],u=new hg,D=0,c=m.length;c>D;D++)s=m[D],s.appendAnchorMatrix3d(o=On(s,this.getMat(s))),d.push(u.getInverse(u.fromArray(o)).toArray()),E.push("inner"===s.s("3d.clipbox")),p.push(s.s("3d.clipbox.group")),g.push(Fs[s.s("3d.clipbox.shape")]||1)},_49Q:function(){this._4AQ||this._48Q||this.dm().size()=0&&X.splice(P,1)}}else X=this._flowObjects=[],this.dm().each(function(J){J.s("effect.flow")&&X.push(J)});W!==X.length&&kn(this),this.iv()},invalidateLight:function(){this._lightChanged||(this._lightChanged=!0,this.iv())},onPropertyChanged:function(f){var N=this,w=f.property;if(N.iv(),N._18Q=P,"eye"===w)N._33Q=!0;else if("devicePixelRatio"===w)N._42(N.getDevicePixelRatio());else if(Es[w]&&(kn(N),"batchInstancedDisabled"===w)){N._genBatchInstancedArrayFunc();var o,l=t.getBatchInfoMap();for(o in l)l[o]&&l[o].instanced&&N.invalidateBatch(o);l=N._batchInfoMap;for(o in l)l[o]&&l[o].instanced&&N.invalidateBatch(o)}},_5O:function(A){var t=A._22Q();return t?new t(this,A):P},getData3dUI:function(x){var j=this._25I[x._id];return j===m&&(j=this._5O(x),this._25I[x._id]=j),j},invalidateAll:function(p,$){var e=this;if(p){for(var u in e._25I){var F=e._25I[u];F&&F.dispose()}e._25I={},e.iv(),wo(e)}else wo(e),e.dm().each(function(b){e.invalidateData(b)});e.shadowMap.tryInvalidateLater(p,$)},invalidateSelection:function(){var Q=this;Q.sm().each(function(u){Q.invalidateData(u)})},invalidateData:function(u){var G=this,O=G.getData3dUI(u);O&&(O.iv(),G.iv()),wo(G,u)},getShape3dText:function(M){return M.getStyle("shape3d.text")||this.getLabel(M)},invalidateBatch:function(Y){var r=this,n=r._40Q;n.each(function(i){r._invalidateBatch(Y,i.batchModelMap,i.batchIndexMap),r._invalidateBatch("T"+Y,i.wireframeModelMap,i.wireframeIndexMap),r._invalidateBatch("O"+Y,i.wireframeModelMap,i.wireframeIndexMap),i.markBatchInvalid()}),r.iv()},_invalidateBatch:function(G,l,c){var R=this,C=l[G];C&&(C.ds.forEach(function(F){var Q=R.getData3dUI(F);Q&&Q.iv(),delete c[F._id]}),delete l[G])},handleDataModelChange:function(G){var f=this,c=G.kind,J=G.data;if("add"===c)f.invalidateData(J),lc(J)&&J.getEdgeGroup()&&J.getEdgeGroup().eachSiblingEdge(f.invalidateData,f),Bm(J)&&f.invalidateLight(),J.s("3d.clipbox")&&f.invalidateboxClipper(J,!0),J.s("effect.flow")&&f.invalidateFlowObjects(J,!0),f._49Q();else if(c===xd){var T=J._id,x=f._25I[T];x&&(x.dispose(),delete f._25I[T],f.iv()),J===f._currentSubGraph&&f.setCurrentSubGraph(P),wo(f,J),Bm(J)&&f.invalidateLight(),J.s("3d.clipbox")&&f.invalidateboxClipper(J,!1),J.s("effect.flow")&&f.invalidateFlowObjects(J,!1)}else c===Bh&&(f.invalidateAll(!0),f.setCurrentSubGraph(P),wo(f),f.invalidateLight(),f.invalidateboxClipper(),f.invalidateFlowObjects())},toCanvas:function(E,v,X){var p=this,u=p.getGL();if(p.validate(),E){var k=u.getParameter(u.COLOR_CLEAR_VALUE);oe(u,E)}p._42(1,{renderAxis:!1,renderEdit:!1,renderGrid:!1});var l=p.getWidth()||1,i=p.getHeight()||1,w=new Uint8Array(4*l*i),$=Hj(),Z=$.getContext("2d");u.readPixels(0,0,l,i,u.RGBA,u.UNSIGNED_BYTE,w),_j($,l,i,1);for(var I=Z.getImageData(0,0,l,i),b=I.data,r=0;r=0&&!C._glTempRegisterLimited?(C._glTempRegisterLimited=!0,q.deleteProgram(o),C.acquireProgram()):(Hb("LINK",q.getProgramParameter(o,q.VALIDATE_STATUS),q.getError(),_),q.deleteProgram(o),P)}y.forEach(function(P){o[P]=/^u/.test(P)?q.getUniformLocation(o,P):q.getAttribLocation(o,P)});var W=C._frameState;W.renderState.program=W.defaultProgram=o,C._envmapRenderer.changeEnvmapType(C._lastProgramEnvmapType=j),q.deleteShader(m),q.deleteShader(l)}},isGLTempRegisterLimited:function(){return this._glTempRegisterLimited},getBrightness:function(m){var i=m.s("brightness"),k=this.isSelected(m)?m.s("select.brightness"):P;return i==P?k:k==P?i:i*k},getDataHighlightMode:function(l){return l.s("highlight.mode")},getWireframe:function(K){var s=K.s("wf.visible"),r=K.s("wf.width");return s===!0||r>0&&"selected"===s&&this.isSelected(K)?{color:K.s("wf.color"),width:r,"short":K.s("wf.short"),mat:K.s("wf.mat")}:void 0},_transformPointToViewSpace:function(U){var R=[U[0],U[1],U[2]];return Ae(R,this._viewMatrix),R},_transformDirectionToViewSpace:function(t,d){var m=[t[0],t[1],t[2]];Ae(m,this._viewMatrix);var U=d?[d[0],d[1],d[2]]:[0,0,0];Ae(U,this._viewMatrix);var H=U[0]-m[0],a=U[1]-m[1],Z=U[2]-m[2],Y=Math.sqrt(H*H+a*a+Z*Z);return Y?[H/Y,a/Y,Z/Y]:[H,a,Z]},getWireframeGeometry:function(L){return L.s("wf.geometry")?{color:L.s("wf.color"),width:L.s("wf.width"),mat:L.s("wf.mat"),geometry:!0}:void 0},getBodyColor:function(q){return q.s("body.color")},getMat:function(M){return M.getMat?M.getMat():M.s("mat")},getFaceMat:function(w,p){return w.getFaceMat?w.getFaceMat(p):w.s(p+".mat")},getFaceBlend:function(E,L){return E.s(L+".blend")||E.s("all.blend")},getFaceColor:function(u,n){return u.s(n+".color")||u.s("all.color")},getFaceImage:function(X,g){return X.s(g+".image")||X.s("all.image")},getFaceBlendImage:function(u,B){return u.s(B+".blend.image")||u.s("all.blend.image")},getFaceDiscardSelectable:function(F,e){var V=F.s(e+".discard.selectable");return V==P?F.s("all.discard.selectable"):V},getFaceUv:function(A,C){return A.s(C+".uv")||A.s("all.uv")},getFaceUvOffset:function(L,N){return L.s(N+".uv.offset")||L.s("all.uv.offset")},getFaceUvScale:function(G,S){return G.s(S+".uv.scale")||G.s("all.uv.scale")},getFaceUvRotation:function(q,N){return q.s(N+".uv.rotation")||q.s("all.uv.rotation")},getFaceUvAnchor:function(U,J){return U.s(J+".uv.anchor")||U.s("all.uv.anchor")},getFaceLight:function(z,H){var Q=z.s(H+".light");return Q==P?z.s("all.light"):Q},getFaceVisible:function(k,I){var u=k.s(I+".visible");return u==P?k.s("all.visible"):u},getFaceOpacity:function(p,d){var V=p.s(d+".opacity");return V==P?p.s("all.opacity"):V},getFaceTransparent:function(h,W){var l=h.s(W+".transparent");return l==P?h.s("all.transparent"):l},getFaceReverseColor:function(O,R){return O.s(R+".reverse.color")||O.s("all.reverse.color")},getFaceReverseFlip:function(x,T){var O=x.s(T+".reverse.flip");return O==P?x.s("all.reverse.flip"):O},getFaceReverseCull:function(x,i){var T=x.s(i+".reverse.cull");return T==P?x.s("all.reverse.cull"):T},getTextureMap:function(){return this._2O},_2Oi:function(x,f,o){o=o||"";var k;(k=this._2O[x])||(k=this._2O[x]={}),k[o]=f},deleteTexture:function(g){var C=this,j=C._2O[g];if(j){delete C._2O[g];var w=C.getGL();for(var V in j)w.deleteTexture(j[V])}},renderPickScene:function(){var i=this.getGL();this.syncRenderState(),this._picking=i._picking=!0,this.renderScene(),this._picking=i._picking=!1},invalidateCachedTexture:function(j){var m=this.getData3dUI(j);m.invalidateCachedTexture(this.getGL()),this.invalidateData(j)},invalidateShape3dCachedImage:function(J){this.invalidateCachedTexture(J)},invalidateCachedGeometry:function(q){var O=this.getData3dUI(q);O.invalidateCachedGeometry(),this.invalidateData(q)},isInteractive:function(m){return m.s("interactive")},getTexture:function(f,r,S,g){if(!f)return P;var $,u,E=this,I=E.getGL(),d=E._2O[f];if(d&&(r&&(u=r.s("texture.mipmap.max")),$=d[u||""]||d.default),!$){var p=tc(f);if(g||(g={}),!p)return I._emptyTexture;if(r){g.mipmapMaxLevel=u=r.s("texture.mipmap.max");var C=r.s("texture.wrap");g.clampToEdge="clampToEdge"===C?!0:"repeat"===C?!1:m}if(p.uuid||(p.uuid=F.Math.generateUUID()),p.tagName){if(p.dynamic)return xe(I,p,E._1O,g);$=xe(I,p,m,g),E._2Oi(f,$,u)}else{var M,n=r&&(r.s("texture.cache")||r.s("shape3d.image.cache")||p.textureCache),Z=E.isVRPresenting();if(Z&&(r._textureUpdateFrame===I._renderInfo.frame?n=!0:r._textureUpdateFrame=I._renderInfo.frame),n&&(M=E.getData3dUI(r),$=M.getCachedTexture(S),$&&M.interactiveInfo&&$.interactiveInfo&&(M.interactiveInfo[$.interactiveInfo.key]=$.interactiveInfo.info)),!$){var G=I._renderInfo.textureCache;if(n){if(G.time>t.graph3dMaxVectorCacheTime)return E.redraw(),I._emptyTexture;if(!kj(p,r))return I._emptyTexture}var W;r&&(1!==r.s("texture.scale")?W=r.s("texture.scale"):1!==r.s("shape3d.texture.scale")&&(W=r.s("shape3d.texture.scale"))),W||(W=1);var A=r&&(r.s("fixSizeOnScreen")||r.s("shape3d.fixSizeOnScreen")),i=A?I.NEAREST:I.LINEAR;A?"number"==typeof A&&(W*=0>A?1:A):r&&(r.s("vector.dynamic")||r.s("shape3d.vector.dynamic"))&&(M||(M=E.getData3dUI(r)),A=M.getVectorDynamicSize());var Y,y,q,s=r&&r.s("shape3d");"billboard"===s?q=r.getTall()/r.getWidth():"plane"===s&&(q=r.getHeight()/r.getWidth());var K=zs(p,r);if(A){var e;e=n?E._devicePixelRatio||Jr:E.getDevicePixelRatio(),Y=A[0]>0?A[0]*e:W*K*e,y=A[1]>0?A[1]*e:W*(q?Mc(p,r,E,Math.min(4096,K*q)):Mc(p,r))*e}else Y=W*K,y=W*(q?Mc(p,r,E,Math.min(4096,K*q)):Mc(p,r));if(Y>=1&&y>=1){var V=0;(n||Z)&&(V=Date.now());var U=E._glCapabilities.maxTextureSize;Y=Math.min(Y,U),y=Math.min(y,U);var h=Fn(Y,y);if(!M&&r&&(M=E.getData3dUI(r)),M&&M.interactiveInfo){var R=f;"object"==typeof R&&(R=R.uuid||(R.uuid=F.Math.generateUUID()));var J=M.interactiveInfo[R]={};h.interactiveInfo=J.bodyInfo={compInfos:[],matrix:new Ld,rect:{x:0,y:0,width:Y,height:y}}}vb(h,p,0,0,Y,y,r,E),h.interactiveInfo&&(h.interactiveInfo=null),h.restore(),G.count++,G.pixels+=Y*y,r?(g.minFilter=ye(r.s("texture.filter.min")||r.s("texture.filter"))||i,g.magFilter=ye(r.s("texture.filter.mag")||r.s("texture.filter"))||i):g.minFilter=g.magFilter=i,n||Z?($=xe(I,uf,null,g),M.setCachedTexture($,S),G.time+=Date.now()-V,J&&($.interactiveInfo={key:R,info:J}),uf=null):$=xe(I,uf,E._1O,g)}}}}return $},redraw:function(){this.iv()},validateImpl:function(){var r=this;if(r._lightChanged){r._lightChanged=!1;var T=[],g=[],e=[];r.dm().each(function(I){if(Bm(I)){var G=I.s("light.type");G===Oq?T.push(I):G===gr?g.push(I):G===Cn&&e.push(I)}}),(T.length!==r._59O.length||g.length!==r._spots.length||e.length!==r._dirs.length)&&kn(r),r._59O=T,r._spots=g,r._dirs=e}var P=r.getAspect();P!==r.__cachedAspect__&&(r._updateSkybox({property:"asceptChanged"}),r.__cachedAspect__=P),r._42(),r._1o.iv()},getRenderInfo:function(){var M=this.getGL();return M?M._renderInfo:void 0},getDebugTip:function(){var P=this,X=P.getRenderInfo();if(X){var i=P.getGL()._validBufCount||0,e="Draw Calls: "+X.calls+"
"+"Vertices: "+X.vertices+"
"+"Faces: "+X.faces+"
"+"Lines: "+X.lines+"
"+(X.points?"Points: "+X.points+"
":"")+"Buffers: "+i+"
"+"Cache Models: "+$.keys(sq).length+"
"+"Shape3d Models: "+$.keys(po).length;if(P.isVRPresenting()&&(e+="
VR fps: "+P.vr.getFps()),X.textureCache){var t=X.textureCache.count;if(e+="
2D Dynamic Textures: "+X.textureCache.count,t>0){var y,q=X.textureCache.pixels;y=q>1e6?Math.round(q/1e6)+"M":q>1e3?Math.round(q/1e3)+"K":Math.round(q),e+="
2D Dynamic pixels: "+y}}return e}},getFrameState:function(){return this._frameState},isBoundingBoxInView:function(){var u=new F.Math.Box3,o=new F.Math.Matrix4;return function(G){var e=G;if(e instanceof F.Data&&(e=this.getData3dUI(e)),!e.mat)return!0;var r=e.getBoundingBox();u.copy(r).applyMatrix4(o.fromArray(e.mat));var y=this.getFrustum();return y.intersectsBox(u)}}(),updateScene:function(){var M=this;M._81O=P,M.overlappingBox.clear();var V=M._40Q;V.init();var X=M.getGL(),k=M.dm();if(k.isHierarchicalRendering())k.eachByHierarchical(function(b){var N=M.getData3dUI(b);N&&N.update(M,X,V)});else{var C,u,j,y=k.getDatas().getArray(),_=y.length;for(C=0;_>C;C++)u=y[C],j=M.getData3dUI(u),j&&j.update(M,X,V)}this._updateBoxClipperMatrix(),V.onUpdated()},_pushFrameRenderOptions:function(D){this._frameRenderOptionStack.push(this._currentFrameRenderOptions),this._currentFrameRenderOptions=D},_popFrameRenderOptions:function(){this._currentFrameRenderOptions=this._frameRenderOptionStack.pop()},_getFrameRenderOptions:function(e){var p=this._currentFrameRenderOptions;return p&&p[e]},getRenderLists:function(){return this._40Q},renderScene:function(g){function H(W,M){E.setGLState(W,M),E.setUniforms(W),E.renderState.attribs.disable(),X=$.directUniforms(),d=$.directAttribs(),d.disable()}function B(c){for(var s=!1;w>R;R++){var N=h[R];if(!u||!N.ignoreInPick){if(N.priority>=c)break;(!G._43Q[G._44Q=N.id]||Ad[Sj.length])&&(N.render(C,G,E),H(),s=!0)}}return s}var G=this;G._pushFrameRenderOptions(g),G._getFrameRenderOptions("createShadowMap")!==!1&&G.shadowMap.render(),G.flowMap.render();var C=G.getGL();G._envmapRenderer.onBeforeRender(C),G._44Q=-1;var X,d,E=G._frameState,$=E.renderState,T=$.glState,F=G._prg;G._projectMatrix=te(G),Ok(G,G._7O),G._viewMatrix=qk(G._7O),G.isReflecting(C)||kl(G._projScreenMatrix=tk(),G._projectMatrix,G._viewMatrix),E.syncEnv(this._picking?this.pickColorMap:m),$.useProgram(F),H(!1,!0),C.clear(C.DEPTH_BUFFER_BIT);var u=G._picking,h=this._41Q,R=0,w=h.length;if(B(t.cameraPriority.skybox),u){var M=T.color.clear.slice(0);oe(C,[0,0,0,0])}else oe(C,[0,0,0,0]),T.blend.enabled=!1,T.depth.enabled=!1,T.depth.mask=!1,G._camera&&G._camera.s("camera.renderSky")===!1||G.drawSky(C,F),G._getFrameRenderOptions("renderReflector")!==!1&&G.drawReflectors(C)&&(G._projectMatrix=te(G),Ok(G,G._7O),G._viewMatrix=qk(G._7O),E.syncEnv(),H()),T.blend.enabled=!1,T.depth.enabled=!0,T.depth.mask=!0,X.uTransparent=!1,G._getFrameRenderOptions("renderGrid")!==!1&&G._31O._42(C,F);if(!C.textureBatch||Ad[(ONE_FRAME_TIME-6)/2]){u||(G.shadowMap.enable&&G.shadowMap.createShadow(X),G.flowMap.createFlow(X));for(var z=0,O=qp.length;O>z;z++){var f=qp[z],r=ed[f];if(!(!G._camera&&r.ignore||G._camera&&!G._camera.isLayerVisible(f))){var b=r.priority;B(b)&&(u||(G.shadowMap.enable&&G.shadowMap.createShadow(X),G.flowMap.createFlow(X))),this.renderLayer(f)}}B(t.cameraPriority.infinity),u||G.flowMap.disableFlow(X),il(G,X,0,t.graph3dViewHeadlightAmbientIntensity),X.uHeadlightColor=[1,1,1,0],X.uUseEnvMap=!1,T.depth.enabled=!1,X.uTransparent=!1,X.shadowReceive=!1,uq(G,X,ce),u?G.drawFilter||G._30O._42(C,F):(G._highlightHelper._42(C,F),this._renderAxisAndEditHelper(G._getFrameRenderOptions("renderAxis")!==!1,G._getFrameRenderOptions("renderEdit")!==!1),T.blend.enabled=!1,T.depth.mask=!0),T.depth.enabled=!0,u&&oe(C,M),Vc(C,P),ao(C,P),G._44Q=-1,G._popFrameRenderOptions(null)}},_renderAxisAndEditHelper:function(l,X){if(l||X){var a=this,n=a.getGL(),O=a._prg,o=a._frameState,u=o.renderState,d=u.glState,c=u.directUniforms();o.renderState.attribs.disable(),d.depth.enabled=!1,c.uTransparent=!1,c.shadowReceive=!1,d.blend.enabled=!1,d.depth.mask=!0,c.uPick=a._picking,l&&a._32O._42(n,O),X&&a._30O._42(n,O),Vc(n,P),ao(n,P)}},renderLayers:function(f,h){h&&(f=Nn(f));for(var l=0,s=f.length;s>l;l++)this.renderLayer(f[l])},renderSky:function(){var d=this,F=d._frameState,k=F.renderState,m=k.glState,t=d.getGL(),q=d._prg;d._projectMatrix=te(d),Ok(d,d._7O),d._viewMatrix=qk(d._7O),kl(d._projScreenMatrix=tk(),d._projectMatrix,d._viewMatrix),F.syncEnv(),k.useProgram(q),F.setGLState(!1,!0),F.setUniforms(!1),F.renderState.attribs.disable(),t.clear(t.DEPTH_BUFFER_BIT),oe(t,[0,0,0,0]),m.blend.enabled=!1,m.depth.enabled=!1,m.depth.mask=!1,d.drawSky(t,q),m.depth.mask=!0,m.depth.enabled=!0,Vc(t,P),ao(t,P)},addRenderLayerListener:function(o,b,C){var d=this;d._renderLayerNotifier||(d._renderLayerNotifier=new zf),d._renderLayerNotifier.add(o,b,C)},removeRenderLayerListener:function(g,L){this._renderLayerNotifier&&this._renderLayerNotifier.remove(g,L)},fireRenderLayerEvent:function(d,f){var Q=this._renderLayerNotifier;Q&&Q.fire({layer:d,phase:f})},renderLayer:function(D){var z=this,F=z._picking,A=z._40Q.get(D);if(A){z.fireRenderLayerEvent(D,"prepare");var H=z.getGL(),x=ed[D],K=z._frameState,u=K.renderState,M=u.glState,g=u.directUniforms();!F&&z.isSortable()&&A.sort(z._sortFunc,z._projScreenMatrix);var Z,y,J,a=A.opaque,j=A.transparent,B=A.batchModelMap,T=A.polylineModelMap,w=A.wireframeModelMap,H=z.getGL(),d=z._prg;F||(M.blend.enabled=!1,M.depth.enabled=!0,M.depth.mask=!0),g.uTransparent=!1,x.clearDepth!==!1&&H.clear(H.DEPTH_BUFFER_BIT); var r=this.drawFilter;if(r)for(J=a,Z=0,y=J.length;y>Z;Z++)r(J[Z].data)!==!0&&J[Z].ui._42(H,d,f);else{for(J=a,Z=0,y=J.length;y>Z;Z++)J[Z].ui._42(H,d,f);if(F)for(J=j,Z=0,y=J.length;y>Z;Z++)J[Z].ui._46Q(H);Om(z,B),Ee(z,T),Ee(z,w)}if(F||(M.blend.enabled=!0,M.depth.mask=!1),z._45Q=g.uTransparent=!0,r)for(J=j,Z=0,y=J.length;y>Z;Z++)r(J[Z].data)!==!0&&J[Z].ui._42(H,d,s);else{for(J=j,Z=0,y=J.length;y>Z;Z++)J[Z].ui._42(H,d,s);Om(z,B,null,!0),Ee(z,T,null,!0),Ee(z,w,null,!0)}z._45Q=null,z.fireRenderLayerEvent(D,"post")}},_42:function(z,s){var h=this;if(!h._35O&&(!Qd||Ad(Qd))){var g=h.getWidth(),M=h.getHeight();if(g&&M){var k=h.getGL();if(k){var x,m=h._canvas;if(z?x=!0:z=h.getDevicePixelRatio(),!h._picking&&(x||g!==m.clientWidth||M!==m.clientHeight)){_j(m,g,M,z);var J=z;g&&Math.abs(k.drawingBufferWidth-g*z)>1&&(J=Math.min(J,k.drawingBufferWidth/g)),M&&Math.abs(k.drawingBufferHeight-M*z)>1&&(J=Math.min(J,k.drawingBufferHeight/M)),J!==z&&(h.setDevicePixelRatio(z=J),_j(m,g,M,z)),h._18Q=null}k.clear(k.COLOR_BUFFER_BIT);var I=k._renderInfo;I.calls=0,I.vertices=0,I.faces=0,I.lines=0,I.points=0,I.textureCache={time:0,count:0,pixels:0},I.frame=++h._frameId,I.cacheTimeCost=0,I.reflectDepth=0,g*=z,M*=z,this.syncRenderState();do{if(h.isVREnabled()&&h.vr.render(k,g,M,s))break;if(h.updateScene(),h._postProcessing.render(k,g,M,s))break;h.setViewport(k,0,0,g,M),h.renderScene(s)}while(!1);h._33Q=!1,h.countFrame(),h._doBufferGC(k)}}}},syncRenderState:function(){var F,Y;(F=this._frameState)&&(Y=F.renderState)&&Y.syncLoss()},drawReflectors:function(X){X._renderInfo.reflectDepth++;var i,V,A,t=this,l=t._dataModel.getReflectors(),S=!1;for(i in l)V=l[i],t.isVisible(V)&&(A=t.getData3dUI(V),A&&A.drawReflector&&A.drawReflector(X)&&(S=!0));return X._renderInfo.reflectDepth--,S},isReflecting:function(c){return c._renderInfo.reflectDepth},getPostProcessing:function(){return this._postProcessing},enablePostProcessing:function(d,D){return this._postProcessing.enableModule(d,D)},getPostProcessingModule:function(y){return this._postProcessing.getModule(y)},getPostProcessingValue:function(p,F){var Z=this._postProcessing.getModule(p);return Z?Z[F]:m},setPostProcessingValue:function(Z,C,v){var y=this.getPostProcessingValue(Z,C),z=this._postProcessing.getModule(Z);z&&y!==v&&("enable"===C?this.enablePostProcessing(Z,v):z[C]=v,this.firePropertyChange("postProcessing."+Z+"."+C,y,v))},setDofImageFromGraphView:function(j,Q,r){return this._postProcessing.getModule("Dof").setImageFromGraphView(j,Q,r)},setViewport:function(M,u,D,t,E){this._viewport=[u,D,t,E],Vk.for(M).directState().viewport=this._viewport},getRenderState:function(){return Vk.for(this._26I)},getViewport:function(){return this._viewport},setBufferGCInterval:function(U){this._bufferGCInterval=U},_doBufferGC:function(e,s){var G,x,r=e._bufPool,Z=0,H=0,l=e._renderInfo.frame,P=this._bufferGCInterval||10;for(G in r)Z++,x=r[G],x&&(s||l-x._fid>P?(e.deleteBuffer(x._buf),x._buf=null,r[G]=null):H++);if(Z/2>H&&Z>128){var j={};for(G in r)r[G]&&(j[G]=r[G]);e._bufPool=j}e._validBufCount=H},_swapLineMap:function(){var D=this;jb=D._polylineModelMap,D._polylineModelMap=D._polylineModelMapSwap,D._polylineModelMapSwap=jb,jb=D._wireframeModelMap,D._wireframeModelMap=D._wireframeModelMapSwap,D._wireframeModelMapSwap=jb,jb=D._polylineIndexMap,D._polylineIndexMap=D._polylineIndexMapSwap,D._polylineIndexMapSwap=jb,jb=D._wireframeIndexMap,D._wireframeIndexMap=D._wireframeIndexMapSwap,D._wireframeIndexMapSwap=jb},_updateSkybox:function(b){if(this._skybox&&b){var S=b.property,y=!1,V=this._skybox;if("eye"===S||"forceUpdate"===S){var N=this._eye;V.p3(N[0],N[1],N[2]),y=!0}if("near"===S||"far"===S||"forceUpdate"===S||"asceptChanged"===S){var T=V.__cachedS3__;T||(T=V.__cachedS3__=V.getFinalScale3d());var D=Math.sqrt(3),H=1/0,_=-1/0;T.forEach(function(t){t/=2,H=v(t,H),_=B(t,_)}),_*=D;var r=this._near,j=this._far,i=Math.tan(this.getFovy()/2)*r,k=this.getAspect()*i,M=1.1*Math.sqrt(k*k+i*i+r*r),L=1;if(M>H)L=M/H;else if(_>=j){var I=j*j/(r+j);L=I/_}if(1!==L){V.__updatingSkybox__=!0;var s=T.map(function(k){return L*k});V.s3(s),V.setScale3d(1,1,1),y=!0,delete V.__updatingSkybox__}}y&&this.invalidateData(V)}},getSkyBox:function(){return this.getSkybox()},setSkyBox:function(p){return this.setSkybox(p)},getSkybox:function(){return this._skybox},setSkybox:function(z){var d=this._skybox;if(d===z)return z&&this._updateSkybox({property:"forceUpdate"}),void 0;if(d&&(this._skyboxStyleMap&&d.setStyleMap(this._skyboxStyleMap),this._skyboxStyleMap=null,this._skyboxAnchor3d&&d.setAnchor3d(this._skyboxAnchor3d),this._skyboxAnchor3d=null,this._skyboxP3&&d.p3(this._skyboxP3),this._skyboxP3=null,this.handleDataModelChange({kind:xd,data:d})),this._skybox=z,this.ump(this._updateSkybox,this),z){z.dm()&&z.dm().remove(z),this._skyboxStyleMap=F.Default.clone(z.getStyleMap()),this._skyboxAnchor3d=z.getAnchor3d(),z.setAnchor3d(.5,.5,.5),this._skyboxP3=z.p3().slice(0),z.s({"shape3d.reverse.flip":!0,"shape3d.reverse.cull":!1,"all.reverse.flip":!0,"all.reverse.cull":!1,"front.reverse.flip":!0,"front.reverse.cull":!1,"back.reverse.flip":!0,"back.reverse.cull":!1,"left.reverse.flip":!0,"left.reverse.cull":!1,"right.reverse.flip":!0,"right.reverse.cull":!1,"top.reverse.flip":!0,"top.reverse.cull":!1,"bottom.reverse.flip":!0,"bottom.reverse.cull":!1});var f=z.onPropertyChanged;z.onPropertyChanged=function(X){f.call(z,X),!z.__updatingSkybox__&&["width","height","tall","scale","scaleTall"].indexOf(X.property)>=0&&(z.__cachedS3__=m)},this.mp(this._updateSkybox,this),this._updateSkybox({property:"forceUpdate"})}this.fp("skybox",d,z)},drawSky:function(f,A){var B=this,k=B._skybox;if(k){var l=Vk.for(f).directUniforms(),C=B._headlightIntensity,H=Jh(B._headlightColor),A=B._prg;1!==C&&(H=[H[0]*C,H[1]*C,H[2]*C]),l.uHeadlightColor=[H[0],H[1],H[2],1];var _=B.getData3dUI(k);if(_){var S=B.isOrtho(),u=S||this._computedProjectMatrix;if(u){var J=B._projectMatrix;S&&(B._ortho=!1),l.uPMatrix=B._projectMatrix=te(B,!0)}var v=k.p3(),X=this.getEye();(v[0]!==X[0]||v[1]!==X[1]||v[2]!==X[2])&&(k._position.x=X[0],k._54O=X[1],k._position.y=X[2]),_.validate(),_._42(f,A,G),u&&(S&&(B._ortho=!0),l.uPMatrix=B._projectMatrix=J)}f.clear(f.DEPTH_BUFFER_BIT),l.uHeadlightColor=[H[0],H[1],H[2],B._headlightDisabled?1:0]}},getLogicalPoint:function(p){return gg(p,this._canvas)},isRectOverlapping:function(u){var a=this.getData3dUI(u);return a._rectOverlapping},getHitFaceInfo:function(f){f.target&&(f=this.lp(f));var E=this.getDataInfoAt(f);if(E){var z=this.intersectObject(f,E.data);if(z)return{data:E.data,face:z.part}}return P},unproject:function(E,u){var F=this,O=F.getWidth(),Y=F.getHeight(),V=E.target?F.lp(E):E,Q=V.x-O/2,G=V.y-Y/2,e=2*(Q/O),s=2*(-1*G/Y);u=u||0;var N=tk(),n=te(F),C=Ok(F);kl(N,n,C),hs(N);var l=Nb([e,s,u,1],N);return[l[0]/l[3],l[1]/l[3],l[2]/l[3]]},getDataAt:function(Q){var Z=this.getDataInfoAt(Q);return Z?Z.data:P},getDataInfoAt:function(k,Y,b){return k.target&&(k=this.lp(k)),this._1o.get(ob(k.x,k.y,Y),!0,b)},getDatasInRect:function(n,f){return this._1o.get(n,!1,f)},setEditable:function(O){var y=this,J=y._editable;y._editable=O,this.fp(gj,J,O)},isEditable:function(y){var t=this;return y?t._editable?$n(y)?y.s("3d.editable")?t._editableFunc?t._editableFunc(y):!0:!1:!1:!1:t._editable},isSelectable:function(L){return L.s("3d.selectable")&&this.sm().isSelectable(L)},isMovable:function(r){var a=this;return lc(r)&&r.getStyle(Xd)!==Lb?!1:r.s("3d.movable")?a._movableFunc?a._movableFunc(r):!0:!1},isSizeEditable:function(W){return $n(W)?this._sizeEditableFunc?this._sizeEditableFunc(W):!0:!1},isRotationEditable:function(l){return $n(l)&&l.IRotatable!==!1?this._rotationEditableFunc?this._rotationEditableFunc(l):!0:!1},handleDelete:function(){this._editable&&this.removeSelection()},zoomIn:function(t){this.setZoom(Ie,t)},zoomOut:function(k){this.setZoom(1/Ie,k)},setZoom:function(){var y=new lp,G=new lp,V=new lp,d=new lp;return function(S,D){if(1!==S){var l=this;l._14o&&l._14o.stop(!0);var u,Q=1/S;y.copy(l.getCenter()),G.copy(l.getEye());var F=l._ortho;if(F){if(u=l._orthoWidth,u1)return}else if(y.distanceTo(G)Q)return;var x=!1;return l._zoomToCenter===!1&&l._lastZoomLP&&(V.copy(G).sub(y).normalize(),l._81O=null,d.copy(l.getHitPosition(l._lastZoomLP,y.toArray(),V.toArray())),x=!0,l._lastZoomHit=d),(D=is(D))?(D.action=function(r){l.fi({kind:l._zooming?"betweenZoom":"beginZoom"}),l._zooming=1;var f=(Q-1)*r+1;F&&l.setOrthoWidth(u*f),x?(l.setEye(V.lerpVectors(d,G,f).toArray()),l.setCenter(V.lerpVectors(d,y,f).toArray())):F||l.setEye(V.lerpVectors(y,G,f).toArray())},D._37o=function(){delete l._14o,delete l._zooming,l.fi({kind:"endZoom"}),l.onZoomEnded()},l._14o=df(D)):(F&&l.setOrthoWidth(u*Q),x?(l.setEye(V.lerpVectors(d,G,Q).toArray()),l.setCenter(V.lerpVectors(d,y,Q).toArray())):F||l.setEye(V.lerpVectors(y,G,Q).toArray()),void 0)}}}(),setOrthoZoom:function(K,z){return this.setZoom(K,z)},getPositionInfo:function(g){var s=this,F=s._eye,x=s._center,M=s.getAspect(),Z=g?Ze(se(x,F,!0),se(g,F)):Yh(F,x);if(s._ortho){var p=s._orthoWidth;return{length:Z,height:p/M,width:p}}var S=2*Zh(s._fovy/2)*Z;return{length:Z,height:S,width:S*M}},getCenterInfo:function(){var I=this;return I._81O||(I._81O=I.getPositionInfo()),Wl(I._81O)},rotate:function(b,Y,O,m){var x=this;if(b||Y){m==P&&(m=x._firstPersonMode),x._88O&&x._88O.stop(!0);var X=x._center,H=x._eye,S=x.getCenterInfo().length,w=m?X:H,V=m?H:X,Z=se(w,V),D=Of(Z[0],Z[2]),T=Of(L(Z[0]*Z[0]+Z[2]*Z[2]),Z[1]),v=m?Lc:$d;return m&&(Y=-Y),(O=is(O))?(O.action=function(f){x.fi({kind:x._rotating?"betweenRotate":"beginRotate"}),x._rotating=1;var $=D+b*f,k=T+Y*f;k=m?d-ni(x,d-k):ni(x,k),Z[0]=S*r(k)*r($),Z[1]=S*n(k),Z[2]=S*r(k)*n($),w[0]=V[0]+Z[0],w[1]=V[1]+Z[1],w[2]=V[2]+Z[2],x.fp(v,P,w)},O._37o=function(){delete x._88O,delete x._rotating,x.fi({kind:"endRotate"}),x.onRotateEnded()},x._88O=df(O)):(D+=b,T+=Y,T=m?d-ni(x,d-T):ni(x,T),Z[0]=S*r(T)*r(D),Z[1]=S*n(T),Z[2]=S*r(T)*n(D),w[0]=V[0]+Z[0],w[1]=V[1]+Z[1],w[2]=V[2]+Z[2],x.fp(v,P,w),void 0)}},pan:function(F,N,S,C){if(F||N){var h=this;C==P&&(C=h._firstPersonMode),h._89O&&h._89O.stop(!0);var e=Ok(h),p=[e[0]*F,e[4]*F,e[8]*F],Z=[e[1]*N,e[5]*N,e[9]*N],G=p[0]+Z[0],l=p[1]+Z[1],u=p[2]+Z[2],a=h._center,E=h._eye;if(C){var n=Cr(h.getBoundaries(),E[0],E[2],E[0]+G,E[2]+u,L(G*G+u*u));G=n[0],u=n[1]}if(S=is(S)){var s=Wl(E),g=Wl(a);return S.action=function(U){h.fi({kind:h._panning?"betweenPan":"beginPan"}),h._panning=1,a[0]=g[0]+G*U,a[1]=g[1]+l*U,a[2]=g[2]+u*U,E[0]=s[0]+G*U,E[1]=s[1]+l*U,E[2]=s[2]+u*U,h.fp($d,P,E),h.fp(Lc,P,a)},S._37o=function(){delete h._89O,delete h._panning,h.fi({kind:"endPan"}),h.onPanEnded()},h._89O=df(S)}a[0]+=G,a[1]+=l,a[2]+=u,E[0]+=G,E[1]+=l,E[2]+=u,h.fp($d,P,E),h.fp(Lc,P,a)}},walk:function(t,n,b){if(t){var O=this;b==P&&(b=O._firstPersonMode),O._90O&&O._90O.stop(!0);var T=O._center,K=O._eye,z=se(T,K,!0);if(b){var L=Cr(O.getBoundaries(),K[0],K[2],K[0]+z[0]*t,K[2]+z[2]*t,_(t));if(t=Yh(L),!t)return;z=[L[0]/t,0,L[1]/t]}if(n=is(n)){var e=Wl(K),N=Wl(T);return n.action=function(L){O.fi({kind:O._walking?"betweenWalk":"beginWalk"}),O._walking=1;var V=t*L;K[0]=e[0]+z[0]*V,K[1]=e[1]+z[1]*V,K[2]=e[2]+z[2]*V,T[0]=N[0]+z[0]*V,T[1]=N[1]+z[1]*V,T[2]=N[2]+z[2]*V,O.fp($d,P,K),O.fp(Lc,P,T)},n._37o=function(){delete O._90O,delete O._walking,O.fi({kind:"endWalk"}),O.onWalkEnded()},O._90O=df(n)}K[0]+=z[0]*t,K[1]+=z[1]*t,K[2]+=z[2]*t,T[0]+=z[0]*t,T[1]+=z[1]*t,T[2]+=z[2]*t,O.fp($d,P,K),O.fp(Lc,P,T)}},handleScroll:function(c,v){Nj(c);var t=this,k=t._moveStep,o=t.getDataInfoAt(c);if(o){var q=o.data;if(q&&t.isInteractive(q)){var b=t.intersectObject(c,q);if(b){var J=b.part,K=tc(q.s(J+".image")||q.s("shape3d."+J+".image")||q.s("all.image")||q.s("shape3d.image"));if(K&&Lk(K.scrollable,q,t))return}}}return t.isFirstPersonMode()?(t.isPannable()&&t.pan(0,v>0?k:-k),void 0):(t.isZoomable()&&(t._lastZoomLP=t.lp(c),t.setZoom(0>v?1/Bj:Bj),t._lastZoomLP=t._lastZoomHit=null),void 0)},handlePinch:function(Q,C){if(this.isZoomable()){if(Math.abs(Q-C)Q?1/Fk:Fk)}},reset:function(u){this.setUp(t.graph3dViewUp),this.moveCamera(t.graph3dViewEye,t.graph3dViewCenter,u)},moveSelection:function(T,Z,m){var L=this;L.dm().beginTransaction(),fp(this.sm().toSelection(this.isMovable,this),T,Z,m),L.dm().endTransaction()},getMoveMode:function(k,M){var W=M.s("3d.move.mode");if(W)return W;var g="88",J="89",K="90";return Me(k)||th[g]&&th[J]&&th[K]?"xyz":th[g]&&th[J]?"xy":th[g]&&th[K]?"xz":th[J]&&th[K]?"yz":th[g]?"x":th[J]?"y":th[K]?"z":"xz"},handleTick:function(){var y=this,L=!1,m=y._moveStep,k=m,$=!1,Q=!0,R=y._rotateStep*(Q?-1:1);if(y.isWalkable()||(k=0),y.isPannable()||(m=0),y.isRotatable()||(R=0),y._32Q){var e=(jg()-y._32Q)/50;k*=e,m*=e,R*=e}y._31Q&&(ck(y._31Q),delete y._31Q,delete y._32Q),mg()&&(L=!0,y.pan(-m,0,$,Q)),jp()&&(L=!0,y.pan(m,0,$,Q)),Wk()&&(L=!0,Me()?y.pan(0,m,$,Q):y.walk(k,$,Q)),Nc()&&(L=!0,Me()?y.pan(0,-m,$,Q):y.walk(-k,$,Q)),ab()&&(L=!0,y.rotate(-R,0,$,Q)),Uo()&&(L=!0,y.rotate(R,0,$,Q)),Rk()&&(L=!0,y.rotate(0,-R/2,$,Q)),Dj()&&(L=!0,y.rotate(0,R/2,$,Q)),L&&(y._32Q=jg(),y._31Q=ne(y.handleTick,y))},handleKeyDown:function(H){var g=this;!Hn(H)&&Xb[H.keyCode]?g.handleTick():vh(H)?g.selectAll():vn(H)?g.handleDelete(H):Tq(H)&&this.isResettable()&&g.reset()},checkDoubleClickOnNote:function(O,b,T){var J=this;if(T===Op){if(b.s("note.toggleable"))return b.s(xc,!b.s(xc)),J.fi({kind:"toggleNote",event:O,data:b,part:T}),!0}else if(T===Mi&&b.s("note2.toggleable"))return b.s(Og,!b.s(Og)),J.fi({kind:"toggleNote2",event:O,data:b,part:T}),!0;return!1},checkDoubleClickOnRotation:function(s,X,O){return O===$s?(X.setRotationX(0),!0):O===_s?(X.setRotationY(0),!0):O===at?(X.setRotationZ(0),!0):!1},onRotateEnded:function(){},onWalkEnded:function(){},getViewRatio:function(S){var r=this;if(r.isOrtho())return r.getWidth()/r.getOrthoWidth();var l=r.getCenter(),h=r.getHeight(),J=r.getEye(),s=[l[0]-J[0],l[1]-J[1],l[2]-J[2]],y=[S[0]-J[0],S[1]-J[1],S[2]-J[2]],K=Math.sqrt(s[0]*s[0]+s[1]*s[1]+s[2]*s[2]),i=1/Math.tan(r.getFovy()/2);return h*K*i/(y[0]*s[0]+y[1]*s[1]+y[2]*s[2])},inViewSpace:function(z){var s,d=this,T=d._transformPointToViewSpace(z),n=d.getAspect(),M=d.getNear(),h=d.getFar();return-T[2]h?!1:d.isOrtho()?(s=d.getOrthoWidth()/2,Math.abs(T[0])<=s&&Math.abs(T[1]*n)<=s):(s=Math.sqrt(T[0]*T[0]+T[1]*T[1]+T[2]*T[2])*Math.tan(d.getFovy()/2),Math.abs(T[1]<=s)&&Math.abs(T[0])<=s*n)},getPVMatrix:function(){var l,U=this;return(l=U._18Q)||(l=te(U),U._18Q=kl(l,l,Ok(U)),U._18Q._wh=U.getWidth()/2/U.getHeight()),l},getFrustum:function(){var T=new hg,d=new bs,H=new Array(16);return function(){for(var W=this.getPVMatrix(),V=!1,x=0;16>x;x++)W[x]!==H[x]&&(V=!0,H[x]=W[x]);return V&&d.setFromMatrix(T.fromArray(W)),d}}(),toViewPosition:function(x){var A=this,w=A.getWidth()/2,H=A.getHeight()/2,o=A.getPVMatrix();return x=Nb([x[0],x[1],x[2],1],o),{x:w+w*x[0]/x[3],y:H-H*x[1]/x[3],z:x[2]/x[3]}},getHitPosition:function(A,J,z){var C=this,D=C.getWidth(),b=C.getHeight(),v=A.target?C.lp(A):A,I=v.x-D/2,n=v.y-b/2,d=C.getCenterInfo(),Y=Ok(C);J=J?J:[0,0,0],z=z?z:[0,1,0],I=I/D*d.width,n=-1*n/b*d.height;var V=[Y[0]*I,Y[4]*I,Y[8]*I],L=[Y[1]*n,Y[5]*n,Y[9]*n],t=[V[0]+L[0],V[1]+L[1],V[2]+L[2]],e=C.getCenter(),u=Ol(C,J,z,[t[0]+e[0],t[1]+e[1],t[2]+e[2]]);return u?u:[0,0,0]},intersectObject:function(R,B){return this._raycaster.intersectObject(R,B)},intersectObjects:function(z,x,Q){return this._raycaster.intersectObjects(z,x,Q)},getLineLength:function(M){this.validate();var f=this.getData3dUI(M);if(f&&f.getCache){var j=f.getCache();if(j)return j[j.length-1].length}return 0},getLineOffset:function(b,w){var W=this.getData3dUI(b);if(W&&W.getCache){var h=W.getCache();if(h){var m=ej(h,w);if(b.s("shape3d")!==ei)return m;var g,J;if(b.getScale3d&&(g=b.getScale3d(),1===g[0]&&1===g[1]&&1===g[2]&&(g=null)),b.r3&&(J=b.r3(),0===J[0]&&0===J[1]&&0===J[2]&&(J=null)),!J&&!g)return m;var z=new lp(b.p3()),U=new lp(m.point).sub(z),V=new lp(m.tangent).add(U);if(g&&(g=new lp(g),U.multiply(g),V.multiply(g)),J){var M=(new af).setFromEuler(new Er(J,b.getRotationMode(),!0));U.applyQuaternion(M),V.applyQuaternion(M)}return{point:U.clone().add(z),tangent:V.sub(U).normalize()}}}return P},_genBatchInstancedArrayFunc:function(){var N=this._glCapabilities&&this._glCapabilities.instancedArray&&!this._batchInstancedDisabled,q=N?Ym:Ig;this.batchInstancedModel=function(w,p,x,l,I,V,u){q(this,w,p,x,l,I,V,u)};var d=N?kk:mk;this.batchInstancedShapeFace=function(g,h,Q){d(g,h,Q)};var l=N?Mg:Fp;this.batchInstancedFace=function(W,P,B,_,e){l(this,W,P,B,_,e)}},isLabelVisible:function(){return!0},isNoteVisible:function(){return!0},moveCamera:function(X,_,k){var j=this,n=j.getEye();n=[n[0],n[1],n[2]];var L=j.getCenter();if(L=[L[0],L[1],L[2]],X||(X=n),_||(_=L),j._flyAnim&&j._flyAnim.stop(!0),k=is(k),!k)return j.setEye(X[0],X[1],X[2]),j.setCenter(_[0],_[1],_[2]),delete j._flyAnim,!0;var x=[X[0]-n[0],X[1]-n[1],X[2]-n[2]],l=[_[0]-L[0],_[1]-L[1],_[2]-L[2]];return k.action=function(Y){j.setCenter(L[0]+l[0]*Y,L[1]+l[1]*Y,L[2]+l[2]*Y),j.setEye(n[0]+x[0]*Y,n[1]+x[1]*Y,n[2]+x[2]*Y)},k._37o=function(){delete j._flyAnim},j._flyAnim=df(k)},flyTo:function(){function H(e,r,o){if(o instanceof F.Node){U.fromArray(On(o,r.getMat(o)));var x=o.getAnchor3d();e.push((new lp).set(0-x.x,0-x.y,0-x.z).applyMatrix4(U)),e.push((new lp).set(0-x.x,0-x.y,1-x.z).applyMatrix4(U)),e.push((new lp).set(0-x.x,1-x.y,0-x.z).applyMatrix4(U)),e.push((new lp).set(0-x.x,1-x.y,1-x.z).applyMatrix4(U)),e.push((new lp).set(1-x.x,0-x.y,0-x.z).applyMatrix4(U)),e.push((new lp).set(1-x.x,0-x.y,1-x.z).applyMatrix4(U)),e.push((new lp).set(1-x.x,1-x.y,0-x.z).applyMatrix4(U)),e.push((new lp).set(1-x.x,1-x.y,1-x.z).applyMatrix4(U))}}var k=new lp,Y=new lp,S=new lp,z=new lp,L=new lp,U=new hg,r=new F.Math.Quaternion,i=new Er,j=new Kl;return function(h,O,E){var p=this;"boolean"==typeof O&&(O={animation:O}),O=O||{};var d=O.center,R=O.distance,B=O.direction,K=O.worldDirection,a=E||O.ratio||.8,N=O.xRatio||a,l=O.yRatio||a;(E!==m||O.duration||O.frames)&&(O={animation:O});var _,M,A=[],U=R===m;if(d&&S.fromArray(d),!d||U)if(h||(h=p.dm().getDatas()),1===h.length&&(h=Xn(h)?h.get(0):h[0]),h instanceof F.Node)d||S.fromArray(h.p3()),U&&(H(A,p,h),_=A.length);else{if(!h.length)return;if((U||!d)&&(A=[],h.forEach(function(F){H(A,p,F)}),_=A.length,!_))return;d||(j.setFromPoints(A),S.copy(j.min).add(j.max).multiplyScalar(.5))}if(p._flyAnim&&p._flyAnim.stop(!0),k.fromArray(p.getEye()),Y.fromArray(p.getCenter()),p.setCenter(S.x,S.y,S.z),z.subVectors(k,Y),B||K){!K&&h instanceof F.Node?r.setFromEuler(i.set(h.r3(),h.getRotationMode(),!0)):r.set(0,0,0,1);var T=z.length();z.fromArray(K||B).applyQuaternion(r).setLength(T)}var G=new lp(p.getUp()),s=vj.fequal(G.x,0,1e-5)&&vj.fequal(G.z,0,1e-5);if(s&&0===z.x&&0===z.z){var e=.001,v=z.y;z.y=v*(1-e),z.z=Math.sign(v)*e}var X=0;if(U){var D,q,C,I=N,f=l;if(L.copy(z),p.isOrtho()){var b=-1/0;for(p._eye[0]=z.x+S.x,p._eye[1]=z.y+S.y,p._eye[2]=z.z+S.z,D=te(p),kl(D,D,Ok(p)),M=0;_>M;M++)C=A[M],q=Nb([C.x,C.y,C.z,1],D),b=Math.max(b,Math.max(Math.abs(q[0])/I,Math.abs(q[1])/f));X=p.getOrthoWidth()*b}else{for(var y,u,w=p.getNear(),Q=10;Q--;){for(p._eye[0]=z.x+S.x,p._eye[1]=z.y+S.y,p._eye[2]=z.z+S.z,D=te(p),kl(D,D,Ok(p)),y=!0,u=-1/0,M=0;_>M;M++){if(C=A[M],q=Nb([C.x,C.y,C.z,1],D),q[3] absDirection.z) {","if (absDirection.x > absDirection.y)","face = direction.x > 0.0 ? 0.0 : 3.0;"," else ","face = direction.y > 0.0 ? 1.0 : 4.0;","} else {","if (absDirection.z > absDirection.y) ","face = direction.z > 0.0 ? 2.0 : 5.0;"," else ","face = direction.y > 0.0 ? 1.0 : 4.0;","}","return face;","} ","vec2 getUV(vec3 direction, float face) {","vec2 uv;","if (face == 0.0) {","uv = vec2(direction.z, direction.y) / abs(direction.x);","} else if (face == 1.0) {","uv = vec2(- direction.x, - direction.z) / abs(direction.y);","} else if (face == 2.0) {","uv = vec2(- direction.x, direction.y) / abs(direction.z);","} else if (face == 3.0) {","uv = vec2(- direction.z, direction.y) / abs(direction.x);","} else if (face == 4.0) {","uv = vec2(- direction.x, direction.z) / abs(direction.y);","} else {","uv = vec2(direction.x, direction.y) / abs(direction.z);","}","return 0.5 * (uv + 1.0);","} ","vec3 bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {","float face = getFace(direction);","float filterInt = max(cubeUV_minMipLevel - mipInt, 0.0);","mipInt = max(mipInt, cubeUV_minMipLevel);","float faceSize = exp2(mipInt);","float texelSize = 1.0 / (3.0 * cubeUV_maxTileSize);","vec2 uv = getUV(direction, face) * (faceSize - 1.0);","vec2 f = fract(uv);","uv += 0.5 - f;","if (face > 2.0) {","uv.y += faceSize;","face -= 3.0;","}","uv.x += face * faceSize;","if (mipInt < cubeUV_maxMipLevel) {","uv.y += 2.0 * cubeUV_maxTileSize;","}","uv.y += filterInt * 2.0 * cubeUV_minTileSize;","uv.x += 3.0 * max(0.0, cubeUV_maxTileSize - 2.0 * faceSize);","uv *= texelSize;","vec3 tl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;","uv.x += texelSize;","vec3 tr = envMapTexelToLinear(texture2D(envMap, uv)).rgb;","uv.y += texelSize;","vec3 br = envMapTexelToLinear(texture2D(envMap, uv)).rgb;","uv.x -= texelSize;","vec3 bl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;","vec3 tm = mix(tl, tr, f.x);","vec3 bm = mix(bl, br, f.x);","return mix(tm, bm, f.y);","}","\n #define r0 1.0 \n","#define v0 0.339 \n","#define m0 - 2.0 \n","#define r1 0.8 \n","#define v1 0.276 \n","#define m1 - 1.0 \n","#define r4 0.4 \n","#define v4 0.046 \n","#define m4 2.0 \n","#define r5 0.305 \n","#define v5 0.016 \n","#define m5 3.0 \n","#define r6 0.21 \n","#define v6 0.0038 \n","#define m6 4.0 \n","float roughnessToMip(float roughness) {","float mip = 0.0;","if (roughness >= r1) {","mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0;","} else if (roughness >= r4) {","mip = (r1 - roughness) * (m4 - m1) / (r1 - r4) + m1;","} else if (roughness >= r5) {","mip = (r4 - roughness) * (m5 - m4) / (r4 - r5) + m4;","} else if (roughness >= r6) {","mip = (r5 - roughness) * (m6 - m5) / (r5 - r6) + m5;","} else {","mip = - 2.0 * log2(1.16 * roughness);","}","return mip;","} ","vec4 textureCubeUV(sampler2D envMap, vec3 sampleDir, float roughness) {","float mip = clamp(roughnessToMip(roughness), m0, cubeUV_maxMipLevel);","float mipF = fract(mip);","float mipInt = floor(mip);","vec3 color0 = bilinearCubeUV(envMap, sampleDir, mipInt);","if (mipF == 0.0) {","return vec4(color0, 1.0);","} else {","vec3 color1 = bilinearCubeUV(envMap, sampleDir, mipInt + 1.0);","return vec4(mix(color0, color1, mipF), 1.0);","}","} ","\n #endif \n"].join("")}function G(){return["vec4 sRGBToLinear( in vec4 value ) {","return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );","}","vec4 LinearTosRGB( in vec4 value ) {","return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );","}","vec4 inputTexelToLinear( vec4 value ) { return sRGBToLinear( value ); }","vec4 linearToOutputTexel( vec4 value ) { return LinearTosRGB( value ); }","vec4 envMapTexelToLinear( vec4 color ) { return inputTexelToLinear( color ); }"].join("")}function e(){return["precision mediump float;\n","precision mediump int;\n","attribute vec3 position;","attribute vec2 uv;","attribute float faceIndex;","varying vec3 vOutputDirection;","vec3 getDirection( vec2 uv, float face ) {","uv = 2.0 * uv - 1.0;","vec3 direction = vec3( uv, 1.0 );","if ( face == 0.0 ) { direction = direction.zyx; } ","else if ( face == 1.0 ) { direction = direction.xzy; direction.xz *= -1.0; } ","else if ( face == 2.0 ) { direction.x *= -1.0; }","else if ( face == 3.0 ) { direction = direction.zyx; direction.xz *= -1.0; } ","else if ( face == 4.0 ) { direction = direction.xzy; direction.xy *= -1.0; } ","else if ( face == 5.0 ) { direction.z *= -1.0; }","return direction;","}","void main() {","vOutputDirection = getDirection( uv, faceIndex );","gl_Position = vec4( position, 1.0 );","}"].join("")}function r(){return{vs:e(),fs:["precision mediump float;\n","precision mediump int;\n","varying vec3 vOutputDirection;","uniform samplerCube envMap;\n",G(),"\n void main() {","gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );","gl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3(- vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;","gl_FragColor = linearToOutputTexel( gl_FragColor );","}"].join("")}}function i(){return{vs:e(),fs:["precision mediump float;\n","precision mediump int;\n","varying vec3 vOutputDirection;","uniform sampler2D envMap;","uniform vec2 texelSize;\n",G(),"\n #define RECIPROCAL_PI 0.3183098861837907 \n","\n #define RECIPROCAL_PI2 0.15915494309189535 \n","vec2 equirectUv( in vec3 dir ) {","float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;","float v = 0.5 - asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI;","return vec2( u, v );","}","void main() {","gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );","vec3 outputDirection = normalize( vOutputDirection );","vec2 uv = equirectUv( outputDirection );","vec2 f = fract( uv / texelSize - 0.5 );","uv -= f * texelSize;","vec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;","uv.x += texelSize.x;","vec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;","uv.y += texelSize.y;","vec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;","uv.x -= texelSize.x;","vec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;","vec3 tm = mix( tl, tr, f.x );","vec3 bm = mix( bl, br, f.x );","gl_FragColor.rgb = mix( tm, bm, f.y );","gl_FragColor = linearToOutputTexel( gl_FragColor );","}"].join("")}}function K(T){return{vs:e(),fs:["precision mediump float;\n","precision mediump int;\n","#define n "+T+"\n","varying vec3 vOutputDirection;","uniform sampler2D envMap;","uniform int samples;","uniform float weights[ n ];","uniform bool latitudinal;","uniform float dTheta;","uniform float mipInt;","uniform vec3 poleAxis; \n",G(),"\n #define ENVMAP_TYPE_CUBE_UV \n",M(),"\n vec3 getSample( float theta, vec3 axis ) {","float cosTheta = cos( theta );","vec3 sampleDirection = vOutputDirection * cosTheta + cross(axis, vOutputDirection) * sin(theta) + axis * dot(axis, vOutputDirection) * (1.0 - cosTheta);","return bilinearCubeUV( envMap, sampleDirection, mipInt );","}","void main() {","vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );","if ( all( equal( axis, vec3( 0.0 ) ) ) ) {","axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );","}","axis = normalize( axis );","gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );","gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );","for ( int i = 1; i < n; i++ ) {","if ( i >= samples ) { break; }","float theta = dTheta * float( i );","gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );","gl_FragColor.rgb += weights[ i ] * getSample( theta, axis );","}","gl_FragColor = linearToOutputTexel( gl_FragColor );","}"].join("")}}var D=cs.EnvmapRenderer=function(F){this.gv=F,this._envmaps={},this._envmapHash={},this._probeCaptureTime={},this._pingPongRenderTarget=null,this._equirectShader=null,this._cubemapShader=null,this._blurMaterial=null,this._lastCaptureFrame=0};D.prototype={},D.prototype.constructor=D,D.prototype.changeEnvmapType=function(I){"legacy"===I?(this.setEnvmapByProbeId=this.setEnvmapLegacy,this.onBeforeRender=this.onBeforeRenderLegacy):(this.setEnvmapByProbeId=this.setEnvmap,this.onBeforeRender=this.onBeforeRenderNew)},D.prototype.invalidateEnvmap=function(E){var z=this.gv;if("legacy"!==z.getEnvmapType()){var x=z.getGL();x&&(E?(delete this._envmapHash[E],delete this._probeCaptureTime[E]):(this._envmapHash={},this._probeCaptureTime={}),z.iv())}},D.prototype.contextLost=function(){var Q=this;Q._envmaps={},Q._envmapHash={},Q._pingPongRenderTarget=null,Q._equirectShader=Q._cubemapShader=Q._blurMaterial=null,Q._envmapLegacy=null,Q._lastLegacyImage=null},D.prototype.onBeforeRenderLegacy=function(S){this.assureTextureLegacy(S) },D.prototype.assureTextureLegacy=function(H){var j=this,p=j.gv,w=p.getEnvmap();if(w!==j._lastLegacyImage){if(j._envmapLegacy&&(H.deleteTexture(j._envmapLegacy),j._envmapLegacy=null),!w)return j._lastLegacyImage=w,void 0;var o=t.getImage(w);if(o&&o.tagName){o=t.resizeImagePOT(o,!0);var x=j._envmapLegacy=H.createTexture();H.activeTexture(H.TEXTURE0),H.bindTexture(H.TEXTURE_CUBE_MAP,x),H.texParameteri(H.TEXTURE_CUBE_MAP,H.TEXTURE_MAG_FILTER,H.LINEAR),H.texParameteri(H.TEXTURE_CUBE_MAP,H.TEXTURE_MIN_FILTER,H.LINEAR),H.texImage2D(H.TEXTURE_CUBE_MAP_POSITIVE_X+0,0,H.RGBA,H.RGBA,H.UNSIGNED_BYTE,o),H.texImage2D(H.TEXTURE_CUBE_MAP_POSITIVE_X+1,0,H.RGBA,H.RGBA,H.UNSIGNED_BYTE,o),H.texImage2D(H.TEXTURE_CUBE_MAP_POSITIVE_X+2,0,H.RGBA,H.RGBA,H.UNSIGNED_BYTE,o),H.texImage2D(H.TEXTURE_CUBE_MAP_POSITIVE_X+3,0,H.RGBA,H.RGBA,H.UNSIGNED_BYTE,o),H.texImage2D(H.TEXTURE_CUBE_MAP_POSITIVE_X+4,0,H.RGBA,H.RGBA,H.UNSIGNED_BYTE,o),H.texImage2D(H.TEXTURE_CUBE_MAP_POSITIVE_X+5,0,H.RGBA,H.RGBA,H.UNSIGNED_BYTE,o),H.bindTexture(H.TEXTURE_CUBE_MAP,H._emptyCubeTexture),j._lastLegacyImage=w}}},D.prototype.setEnvmapLegacy=function(A){A.uEnvMap=this._envmapLegacy},D.prototype.onBeforeRenderNew=function(V){this.assureTextureNew(V),this.resetUniformCache()},D.prototype.assureTextureNew=function(r){var s=this,$=s.gv,u=$.getEnvmap(),p=s._envmapHash,T=s._envmaps,n=r._renderInfo.frame;if(!(this._lastCaptureFrame>=n||$._picking))for(var Z in u){var c,M=u[Z],o=M.type;switch(o){case"sphere":c=M.image,c!==p[Z]&&(Ec=t.getImage(c),Ec&&(p[Z]=c,R(T,Z,s.fromEquirectangular(c))));break;case"cube":var d=M.images;if(d&&6===d.length&&(c=d.join(","),c!==p[Z])){for(var U=!0,I=0;6>I;I++)if(!t.getImage(d[I])){U=!1;break}U&&(p[Z]=c,R(T,Z,s.fromCubemap(d)))}break;case"skybox":var J=$.getSkybox();if(J){var K=J.s("shape3d");if(c="sphere"===K?J._id+"_"+J.s("shape3d.image"):J._id+"_"+J.s("front.image"),c!==p[Z]){var U;if("sphere"===K)U=t.getImage(J.s("shape3d.image"));else{U=!0;for(var f=["front","back","left","right","top","bottom"],I=0;6>I;I++)if(!t.getImage(J.s(f[I]+".image"))){U=!1;break}}U&&(p[Z]=c,R(T,Z,s.fromSkybox()))}}break;case"probe":var Y=M.pos,x=M.size;if(c=Y[0]+"_"+Y[1]+"_"+Y[2]+"_"+x,c!==p[Z]){var b=this._probeCaptureTime[c],W=Date.now();b||(this._probeCaptureTime[c]=b=W),W-b>t.envmapProbeMinWaitTime&&!lq&&!Kg||W-b>t.envmapProbeMaxWaitTime?(delete this._probeCaptureTime[c],p[Z]=c,R(T,Z,s.fromSceneProbe(Y,x,M.filter))):$.iv()}}}},D.prototype.resetUniformCache=function(){this._frameUniformCache={}},D.prototype.setEnvmap=function(V,x){var v=V.uuid,c=this._frameUniformCache,B=this._envmaps[x];B&&(B=B.texture),c[v]!==B&&(c[v]=B,V.uEnvMap=B)},D.prototype.fromEquirectangular=function(Q){var M=F.Default.getImage(Q);return this.rectSize=[1/M.width,1/M.height],Q=this.gv.getTexture(Q),this.fromTexture(Q)},D.prototype.fromCubemap=function(E){var l=this.gv.getGL(),d=l.createTexture();l.activeTexture(l.TEXTURE0),l.bindTexture(l.TEXTURE_CUBE_MAP,d),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_MAG_FILTER,l.LINEAR),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_MIN_FILTER,l.LINEAR);for(var i=[],J=W/3,a=0;6>a;a++)i[a]=t.resizeImage(F.Default.getImage(E[a]),J);return l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+0,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,i[0]),l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+1,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,i[1]),l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+2,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,i[2]),l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+3,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,i[3]),l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+4,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,i[4]),l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+5,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,i[5]),l.bindTexture(l.TEXTURE_CUBE_MAP,l._emptyCubeTexture),this.fromTexture(d,!0)},D.prototype.fromTexture=function(R,c){var Z=this._allocateTargets();this._pingPongRenderTarget||(this._pingPongRenderTarget=this._allocateTargets());var k=this.gv,g=k.getGL(),p=Vk.for(g).directState(),F=p.depth.enabled;p.scissor.enabled=!0,p.depth.enabled=!1;var h=k.getViewport(g);return this._textureToCubeUV(R,Z,c),this._applyPMREM(Z),Z.unbind(g),k.setViewport(g,h[0],h[1],h[2],h[3]),p.depth.enabled=F,p.scissor.enabled=!1,Z},D.prototype.fromSkybox=function(){return this._fromCamera(function(M){M.s({"camera.onlySky":!0})})},D.prototype.fromScene=function(U){return this._fromCamera(function(z){z.s({"camera.onlySky":!1}),U&&U(z)})},D.prototype.fromNode=function(e){var h=this.gv.getData3dUI(e),B=h._42;h._42=nn;var o=this.gv.getSkybox(),s=e.p3();if(o){var O=o.p3();o.p3(s)}var P=this.fromScene(function(K){K.p3(s)});return h._42=B,o&&o.p3(O),P},D.prototype.fromSceneProbe=function(D,d,H){var c=this.gv,g=c.getSkybox();if(g){var I=g.p3();g.p3(D)}if(H){var e=c.isVisible;c.isVisible=function(O){var i=H(O);return i!==m?i:e.call(c,O)}}var o=this.fromScene(function(n){n.p3(D),n.s("camera.near",d)});return H&&(c.isVisible=e),g&&g.p3(I),o},D.prototype._fromCamera=function(a){var b=this.gv,D=b.getCamera();a&&a(D);var $=new Ks(b,W,W,{cube:!0}),I=b.getGL(),z=b.getViewport(I),d=this.setEnvmapByProbeId,U=this.onBeforeRender;this.setEnvmapByProbeId=function(O){O.envMap=I._emptyTexture},this.onBeforeRender=nn,D.attachRenderTarget($),D.render(b),D.detachRenderTarget(),this.setEnvmapByProbeId=d,this.onBeforeRender=U,b.setViewport(I,z[0],z[1],z[2],z[3]);var K=this.fromTexture($.texture,!0);return $.releaseTexture(),K},D.prototype._allocateTargets=function(){return new Ks(this.gv,3*J,3*J,{magFilter:vi.NEAREST,minFilter:vi.NEAREST})},D.prototype._textureToCubeUV=function(u,d,k){var G,C=this.gv;k?null==(G=this._cubemapShader)&&(this._cubemapShader=G=this.createShader(r())):null==(G=this._equirectShader)&&(this._equirectShader=G=this.createShader(i()));var g=C.getGL();d.bind(g),this._setViewport(d,0,0,3*J,2*J);var Z=C.getRenderState();Z.useProgram(G);var x=Z.directUniforms(),W=Z.directAttribs();x.envMap=u,k||(x.texelSize=this.rectSize);var Y=T[0];W.position=Gk(g,null,Y.vs,P,3),W.uv=Gk(g,null,Y.uv,P,2),W.faceIndex=Gk(g,null,Y.faceIs,P,1),Ln(g,0,Y.vs.length/3)},D.prototype._applyPMREM=function(c){for(var u,Y,j,u=1;x>u;u++)Y=Math.sqrt(X[u]*X[u]-X[u-1]*X[u-1]),j=v[(u-1)%v.length],this._blur(c,u-1,u,Y,j)},D.prototype._setViewport=function(O,m,q,T,y){var K=this.gv;K.setViewport(K.getGL(),m,q,T,y),K.getRenderState().directState().scissor.box=[m,q,T,y]},D.prototype._blur=function(P,z,V,b,U){var Z=this._pingPongRenderTarget;this._halfBlur(P,Z,z,V,b,"latitudinal",U),this._halfBlur(Z,P,V,V,b,"longitudinal",U)},D.prototype.createShader=function(m){var l=this.gv;return l.getPostProcessing().createShader(l.getGL(),m).program},D.prototype._halfBlur=function(i,h,r,v,k,x,n){var q=this.gv,o=this._blurMaterial;if("latitudinal"===x||"longitudinal"===x){o||(this._blurMaterial=o=this.createShader(K(w)));var g=q.getGL();h.bind(g);var G=3,t=q.getRenderState();t.useProgram(o);var f,C,O,M=t.directUniforms(),H=t.directAttribs(),F=Q[r]-1,A=isFinite(k)?Math.PI/(2*F):2*Math.PI/(2*w-1),N=k/A,$=isFinite(k)?1+Math.floor(G*N):w,R=[],s=0;for(f=0;w>f;++f)C=f/N,O=Math.exp(-C*C/2),R.push(O),0==f?s+=O:$>f&&(s+=2*O);for(f=0;fZ-u?v-Z+u:0);this._setViewport(h,C,W,3*S,2*S);var B=T[v];H.position=Gk(g,null,B.vs,P,3),H.uv=Gk(g,null,B.uv,P,2),H.faceIndex=Gk(g,null,B.faceIs,P,1),Ln(g,0,B.vs.length/3),h.unbind(g)}};var u=4,Z=8,J=Math.pow(2,Z),V=[.125,.215,.35,.446,.526,.582],x=Z-u+1+V.length,w=20,C=(1+Math.sqrt(5))/2,z=1/C,v=[new lp(1,1,1),new lp(-1,1,1),new lp(1,1,-1),new lp(-1,1,-1),new lp(0,C,z),new lp(0,C,-z),new lp(z,0,C),new lp(-z,0,C),new lp(C,z,0),new lp(-C,z,0)],b=function(){for(var c=[],H=[],B=[],F=Z,v=0;x>v;v++){var j=Math.pow(2,F);H.push(j);var A=1/j;v>Z-u?A=V[v-Z+u-1]:0==v&&(A=0),B.push(A);for(var n=1/(j-1),R=-n/2,S=1+n/2,T=6,d=[],b=[],J=[],p=0;T>p;p++){var r=2*(p%3)/3-1,k=p>2?0:-1;d.push(r,k,0,r+2/3,k,0,r+2/3,k+1,0,r,k,0,r+2/3,k+1,0,r,k+1,0),b.push(R,R,S,R,S,S,R,R,S,S,R,S),J.push(p,p,p,p,p,p)}c.push({vs:new ip(d),uv:new ip(b),faceIs:new ip(J)}),F>u&&F--}return{_lodPlanes:c,_sizeLods:H,_sigmas:B}}(),T=b._lodPlanes,Q=b._sizeLods,X=b._sigmas,W=t.EnvmapTextureSize}();var Hs=["left","front","right","back","top","bottom"],Is=cs._RenderList=function(H){function O(){E.length=0,j.length=0,Q={}}function p(g){var W,F,u,s,Z=g.gv,x=g.data,f=g.shapeModel;if(f){var d,C,T,M=x.s("shape3d.transparent")||x.s("points.transparent");for(ks(f)||(d=Lk(f.transparent,x,Z),f=[f]),u=0,s=f.length;s>u;u++)T=f[u],C=Lk(T.transparent,x,Z),C===m&&(C=d),C===m&&(C=M),C?F=!0:W=!0}for(u=0,s=Hs.length;s>u;u++){var q=g[Hs[u]];q&&(q.transparent?F=!0:W=!0)}Z.isLabelVisible(x)&&(g.labelInfo&&(x.s(ng+".transparent")?F=!0:W=!0),g.label2Info&&(x.s(Iq+".transparent")?F=!0:W=!0)),Z.isNoteVisible(x)&&(g.noteInfo&&(x.s(Op+".transparent")?F=!0:W=!0),g.note2Info&&(x.s(Mi+".transparent")?F=!0:W=!0)),g._38o&&(F=W=!0),F||(W=!0),g._renderParams={opaque:W,transparent:F}}function Y(s,F){F&&p(s);var C=s.data,y=C._id;if(!Q[y]){Q[y]=!0;var e=s._renderParams;e&&e.visible!==!1&&(s={ui:s,data:C,z:0,id:y},e.opaque&&E.push(s),e.transparent&&j.push(s))}}function J(Q,d){if(j.length>1){for(var O,b,F=[0,0,0,0],q=0,B=j.length;B>q;q++)O=j[q].data,(b=O._position)?(F[0]=b.x,F[1]=O._54O,F[2]=b.y,F[3]=1,Nb(F,d),j[q].z=F[2]/F[3]):j[q].z=0;j.sort(Q||e)}}function f(t){t?(Rm(R,a,t,H),Rm(L,N,t,H),Rm(X,I,t,H)):(R=this.batchModelMap={},a=this.batchIndexMap={},L=this.polylineModelMap={},N=this.polylineIndexMap={},X=this.wireframeModelMap={},I=this.wireframeIndexMap={}),this.markBatchInvalid()}function q(M){M?Rm(R,a,M,H):(R=this.batchModelMap={},a=this.batchIndexMap={}),this.markBatchInvalid()}function r(h){h?Rm(L,N,h,H):(L=this.polylineModelMap={},N=this.polylineIndexMap={}),this.markBatchInvalid()}function b(N){N?Rm(X,I,N,H):(X=this.wireframeModelMap={},I=this.wireframeIndexMap={}),this.markBatchInvalid()}function M(){return this._batchInvalid}function d(){this._batchInvalid=!0}function A(){this._batchInvalid=null}var E=[],j=[],R={},a={},L={},N={},X={},I={},Q={};return{opaque:E,transparent:j,init:O,push:Y,batchModelMap:R,batchIndexMap:a,polylineModelMap:L,polylineIndexMap:N,wireframeModelMap:X,wireframeIndexMap:I,ivBatch:f,ivModelBatch:q,ivPolylineBatch:r,ivWireframeBatch:b,markBatchInvalid:d,isBatchInvalid:M,onUpdated:A,sort:J}},Js=cs._RenderLists=function(r){function i(){for(var v in Z)Z[v].init()}function X(){for(var G in Z)Z[G].onUpdated()}function U(T,y){T=T||"main";var z=Z[T];return!z&&y&&(z=Z[T]=new Is(r)),z}function u(x,J){var o=x.data.getRenderLayer(),Z=U(o,!0);Z.push(x,J)}function O(X){for(var j in Z)X(Z[j])}var Z={};return{init:i,onUpdated:X,get:U,push:u,each:O,lists:Z}},Ks=cs.RenderTarget=function(Q,E,f,w){var s,W=this;null!=E&&E.canvas?(s=E,E=f,f=w,w=arguments[4]):s=Q.getGL(),w=w||{},w.cube===!!w.cube,w.samples=w.cube?0:Math.min(Q._glCapabilities.maxSamples,w.samples&&w.samples>1&&2===Q._webGLVersion?w.samples:0),W.options=w,W.uuid=F.Math.generateUUID(),W.gv=Q,W.init(Q,s,w),W.format=w.format||vi.RGBA,W.generateMipmaps=!!w.generateMipmaps,w.samples&&!Q._glCapabilities._maxSamplesChecked?W.setSize(s,E||1,f||1):W.setSize(s,E,f)};$.assign(cs.RenderTarget.prototype,{bind:function(O,s){var k=this.options;if(k.autoSize){var I=this.gv,e=I.getDevicePixelRatio(),Q=I.getWidth()*e,x=I.getHeight()*e;this.setSize(O,Q,x)}k.cube?Eo(O,this.frame[s]):Eo(O,this.options.samples?this._MSAAFbo:this.frame)},unbind:function(R){Xk(R),this.options.samples&&(R.bindFramebuffer(R.READ_FRAMEBUFFER,this._MSAAFbo),R.bindFramebuffer(R.DRAW_FRAMEBUFFER,this.frame),R.blitFramebuffer(0,0,this.width,this.height,0,0,this.width,this.height,R.COLOR_BUFFER_BIT,R.NEAREST),R.bindFramebuffer(R.READ_FRAMEBUFFER,null),R.bindFramebuffer(R.DRAW_FRAMEBUFFER,null))},isCube:function(){return this.options.cube},init:function(k,g,P){var O=this,i=P.samples,C=P.cube,B=O.texture=g.createTexture(),w=C?vi.TEXTURE_CUBE_MAP:vi.TEXTURE_2D;g.activeTexture(g.TEXTURE0),g.bindTexture(w,B),g.texParameteri(w,g.TEXTURE_WRAP_S,P.wrapS||g.CLAMP_TO_EDGE),g.texParameteri(w,g.TEXTURE_WRAP_T,P.wrapT||g.CLAMP_TO_EDGE);var D=i?g.NEAREST:g.LINEAR;if(g.texParameteri(w,g.TEXTURE_MIN_FILTER,P.minFilter||D),g.texParameteri(w,g.TEXTURE_MAG_FILTER,P.magFilter||D),g.bindTexture(w,null),C){O.depth=[],O.frame=[];for(var h=0;6>h;h++)O.depth[h]=g.createRenderbuffer(),O.frame[h]=g.createFramebuffer()}else O.depth=g.createRenderbuffer(),O.frame=g.createFramebuffer();O.assureTexture()},assureTexture:function(){var H=this;H.gv._2Oi(H.uuid,H.texture,"default"),F.Default.setImage(H.uuid,null)},releaseTexture:function(){this.gv.deleteTexture(this.uuid)},setSize:function(d,K,k){var G=this;if(K=Math.round(K),k=Math.round(k),K&&k&&(G.width!==K||G.height!==k)){G.width=K,G.height=k;var B=d.RENDERBUFFER,n=d.FRAMEBUFFER,W=G.options.samples,u=G.options.cube,O=u?vi.TEXTURE_CUBE_MAP:vi.TEXTURE_2D;if(W){var y=G.gv._glCapabilities;if(!y._maxSamplesChecked){for(d.bindRenderbuffer(B,G.depth),d.getError();W>1&&(d.renderbufferStorageMultisample(B,W,d.DEPTH_COMPONENT16,K,k),d.getError());)W=Math.floor(W>>1);1>=W&&(W=0,d.texParameteri(O,d.TEXTURE_MIN_FILTER,G.options.minFilter||d.LINEAR),d.texParameteri(O,d.TEXTURE_MAG_FILTER,G.options.magFilter||d.LINEAR),d.renderbufferStorage(B,d.DEPTH_COMPONENT16,K,k)),y._maxSamplesChecked=!0,y.maxSamples=G.options.samples=W,d.bindRenderbuffer(B,P)}}if(W&&(G._MSAAFbo||(G._MSAAFbo=d.createFramebuffer(),G._MSAARbO=d.createRenderbuffer()),d.bindRenderbuffer(B,G._MSAARbO),d.renderbufferStorageMultisample(d.RENDERBUFFER,W,d.RGBA8,K,k),d.bindFramebuffer(n,G._MSAAFbo),d.framebufferRenderbuffer(n,d.COLOR_ATTACHMENT0,B,G._MSAARbO),d.framebufferRenderbuffer(n,d.DEPTH_ATTACHMENT,B,G.depth),d.bindFramebuffer(n,null),d.bindRenderbuffer(B,null)),d.activeTexture(d.TEXTURE0),d.bindTexture(O,G.texture),u)for(var _=d.TEXTURE_CUBE_MAP_POSITIVE_X,V=0;6>V;V++)G.setupFrameBufferTextureAndDepth(d,G.frame[V],G.depth[V],_+V);else G.setupFrameBufferTextureAndDepth(d,G.frame,G.depth,d.TEXTURE_2D);if(G.generateMipmaps&&(2===gv._webGLVersion||vj.isPOT(K)&&vj.isPOT(k))){d.generateMipmap(O);var $=G.options.minFilter||(W?d.NEAREST:d.LINEAR);d.texParameteri(O,d.TEXTURE_MIN_FILTER,$===d.NEAREST?d.NEAREST_MIPMAP_NEAREST:d.LINEAR_MIPMAP_LINEAR)}d.bindTexture(O,null)}},setupFrameBufferTextureAndDepth:function(t,o,c,m){var B=this,w=B.format;t.texImage2D(m,0,w,this.width,this.height,0,w,t.UNSIGNED_BYTE,null),t.bindFramebuffer(t.FRAMEBUFFER,o),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,m,B.texture,0),this.setupRenderBufferStorage(t,c),t.bindFramebuffer(t.FRAMEBUFFER,null)},setupRenderBufferStorage:function(x,c){var q=this,M=x.RENDERBUFFER;x.bindRenderbuffer(M,c);var E=q.options.samples;E?x.renderbufferStorageMultisample(M,E,x.DEPTH_COMPONENT16,q.width,q.height):(x.renderbufferStorage(M,x.DEPTH_COMPONENT16,q.width,q.height),x.framebufferRenderbuffer(x.FRAMEBUFFER,x.DEPTH_ATTACHMENT,M,c)),x.bindRenderbuffer(x.RENDERBUFFER,null)},toCanvas:function(){var A=this,b=A.gv.getGL();Eo(b,A.frame);var n=A.width,R=A.height,h=new Uint8Array(4*n*R);b.readPixels(0,0,n,R,A.format,b.UNSIGNED_BYTE,h),Xk(b);var Z=U.createElement("canvas");Z.width=n,Z.height=R;var v=Z.getContext("2d"),H=v.createImageData(n,R);return H.data.set(h),v.putImageData(H,0,0),Z}});var Ls=cs.Interactor=function(f){this.gv=this.g3d=f};Ao("Interactor",$,{ms_listener:1,getView:function(){return this.gv.getView()},setUp:function(){this.addListeners()},tearDown:function(){this.removeListeners()},fi:function(N){this.gv.fi(N)},startDragging:function(N){$k(this,N)}});var Ms=cs.DefaultInteractor=function(q){bo(Ms,this,[q])};Ao("DefaultInteractor",Ls,{getState:function(){return this._62O},setState:function(c){this._62O=c},getDataInfoAt:function(L,p){var V=this.gv,G=V.getDataInfoAt(L);if(!V.isBlockSelectable()||!G||!G.data)return G;if(!p&&V.isSelected(G.data))return G;for(var D=G.data;(D=D.getParent())&&D instanceof F.Block&&V.isSelectable(D);){var k=V.isSelected(D);if(k&&p)break;if(G={data:D,part:G.part},k&&!p)break}return G},handle_contextmenu:function(k){Nj(k)},handle_mousewheel:function(u){this.gv.handleScroll(u,u.wheelDelta/40)},handle_DOMMouseScroll:function(x){2===x.axis&&this.gv.handleScroll(x,-x.detail)},handle_keydown:function(w){this.gv.handleKeyDown(w)},handle_mousedown:function(h){this.handle_touchstart(h)},handle_touchstart:function(v){Nj(v);var b=this,L=b.gv,E=yn(v),g=b.getDataInfoAt(v),T=g?g.data:P,_=g?g.part:P,f=L.sm(),Q=_r(v),w=um(v);L.setFocus(v)&&(b._62O=P,b._57I=P,b.pendingClickThrough=P,b.__lastClientPoint__=Di(v),T?Hn(v)?f.co(T)?f.rs(T):f.as(T):f.co(T)?T instanceof hf&&T.isClickThroughEnabled()&&yn(v)&&(b.pendingClickThrough=Di(v)):f.ss(T):E&&(Hn(v)?L.isRectSelectable()&&(b._62O=em):b._57I=Di(v)),b._31Q&&(ck(b._31Q),delete b._31Q,delete b._32Q),b._62O||(L.isFirstPersonMode()&&(Me(v)||kq(v)||w>2?b._62O="pan":L.isMouseRoamable()||nf(v)?(b._62O="roaming",b.foward=Q&&yn(v),b._32Q=jg(),b._31Q=ne(b.tick,b)):E||(b._62O="roaming")),b._62O||(E&&Q&&et[_]?(b._62O=_,b.p3=T.p3()):E&&Q&&$n(T)&&L.isSelected(T)?L.isMovable(T)?(b._62O="move",b.p3=T.p3(),b.movedata=T):L._39Q(T)&&(b._62O="none"):nf(v)&&(w>2?b._62O="pan":2===w&&(b.dist=Qk(v),b._62O="pinch")))),b.point=L.lp(v),$k(b,v),De(v)?L.handleDoubleClick(v,T,_):L.handleClick(v,T,_))},tick:function(){var I=this,h=I.gv,Y=h._moveStep;I.point&&h.isWalkable()&&(I._32Q&&(Y*=(jg()-I._32Q)/50),h.walk(I.foward?Y:-Y),I._32Q=jg(),I._31Q=ne(I.tick,I))},handle_mouseup:function(W){this.handle_touchend(W)},handle_touchend:function(x){var N=this._57I;if(N&&(Yh(N,Di(x))<=1&&this.gv.sm().cs(),this._57I=P),N=this.pendingClickThrough){if(Yh(N,Di(x))<=1){var c=this.getDataInfoAt(x);c&&c.data instanceof hf&&c.data.isClickThroughEnabled()&&(c=this.getDataInfoAt(x,!0),c&&(x.clickThrough=!0,this.gv.sm().ss(c.data)))}this.pendingClickThrough=null}},handleWindowMouseMove:function(K){this.handleWindowTouchMove(K)},handleWindowTouchMove:function(i){var g,X,R=this,z=R.gv,$=R._62O,y=R.point,p=z.dm(),e=z.lp(i),w=e.x-y.x,b=e.y-y.y,S=z.getWidth(),s=z.getHeight();if(S&&s){var D=Di(i),G=ql(z,D,R.__lastClientPoint__),n=Yh({x:0,y:0},G),F=-M*w/S,J=-M*b/s;if("roaming"===$)R.rotate(i,F/2,J/2);else if($===$s||$===_s||$===at)z._86O||p.beginTransaction(),z.fi({kind:z._86O?"betweenEditRotation":"beginEditRotation",event:i}),z._86O=1,z.sm().each(function(o){if($n(o)&&z.isRotationEditable(o)){var V=_(F)>_(J)?F:J;$===$s?o.setRotationX(o.getRotationX()+V):$===_s?o.setRotationY(o.getRotationY()+V):$===at&&o.setRotationZ(o.getRotationZ()+V)}});else if("move"===$||et[$]){if($===bt||$===ct||$===dt)z._87O||p.beginTransaction(),z.fi({kind:z._87O?"betweenEditScale":"beginEditScale",event:i}),z._87O=1;else{if(!z._moving){if(n1))return;n.moved=!0}if(!n.preventDefault){n.point=L;var e=n.part;if(et[e]){var s=n.data,Z=U.dm(),S=U.getWidth(),C=U.getHeight(),i=-M*K/S,u=-M*G/C;if(e===$s||e===_s||e===at){U._86O||Z.beginTransaction(),U.fi({kind:U._86O?"betweenEditRotation":"beginEditRotation",event:O}),U._86O=1;var h=_(i)>_(u)?i:u;U.sm().each(function(w){$n(w)&&U.isRotationEditable(w)&&(e===$s?w.setRotationX(w.getRotationX()+h):e===_s?w.setRotationY(w.getRotationY()+h):e===at&&w.setRotationZ(w.getRotationZ()+h))})}else{var g=s.p3(),T=U.getPositionInfo(g);K=K/S*T.width,G=-1*G/C*T.height;var l,c=Ok(U),f=[c[0]*K,c[4]*K,c[8]*K],V=[c[1]*G,c[5]*G,c[9]*G],I=f[0]+V[0],X=f[1]+V[1],r=f[2]+V[2],$=[g[0]+I,g[1]+X,g[2]+r],o=se(U.getEye(),$,!0);if(e===bt||e===ct||e===dt){if(U._87O||Z.beginTransaction(),U.fi({kind:U._87O?"betweenEditScale":"beginEditScale",event:O}),U._87O=1,l=Ol(U,g,o,$)){var a,x=0,m=["X","Y","Tall"];e===bt?a="X":e===ct?(a="Tall",x=1):e===dt&&(a="Y",x=2),m.splice(m.indexOf(a),1);var y=Me(O),j=(l[x]-g[x])/100;U.sm().each(function(I){if($n(I)&&U.isSizeEditable(I)){var b=I["getScale"+a](),t=b+j;if(I["setScale"+a](t),y){var P=t/b;m.forEach(function(x){I["setScale"+x](I["getScale"+x]()*P)})}}})}}else if(e===Xs||e===Ys||e===Zs){if(!U._moving){var D=Di(O),z=ql(U,D,p.__lastClientPoint__),Y=Yh({x:0,y:0},z);if(Y=q)return;var R=O.touches,k={x:R[0].clientX,y:R[0].clientY},N={x:R[1].clientX,y:R[1].clientY},A={x:N.x-k.x,y:N.y-k.y},B=n.lastCenter,F=Math.atan2(A.y,A.x),w=n.theta,J=0;w==P?w=n.theta=F:(J=F-w,n.thetaStarted||Math.abs(J)>p.touchRotateThreshold?(n.thetaStarted=!0,n.theta=F):J=0);var W=d*(k.y+N.y)/2/U.getHeight(),b=n.phi,Q=0;b==P?b=n.phi=W:(Q=W-b,n.phiStarted||Math.abs(Q)>p.touchRotateThreshold?(n.phiStarted=!0,n.phi=W):Q=0);var E,te=Math.sqrt(A.x*A.x+A.y*A.y),ji=n.vlen;if(ji){var Xk=k.x-B.x,cn=k.y-B.y,$g=N.x-B.x,kh=N.y-B.y,Yr=Math.sqrt(Xk*Xk+cn*cn),Km=Math.sqrt($g*$g+kh*kh),Qi=ji/2,Wm=p._sign2(Yr-Qi),br=p._sign2(Km-Qi);0>Wm*br||0===Wm&&0===br?(E=1,n.vlen=te):(E||(E=te/ji),n.scaleStarted||Math.abs(E-1)>p.touchScaleThreshold?(n.vlen=te,n.scaleStarted=!0):E=1)}else ji=n.vlen=te,E=1;1!==E&&U.setZoom(E),(Q||J)&&p.rotate(O,J,-Q),n.lastCenter={x:(N.x+k.x)/2,y:(N.y+k.y)/2}}}else if(n.pan)p.pan(O,K,G);else{var S=U.getWidth(),C=U.getHeight();if(!S||!C)return;var i=-M*K/S,u=-M*G/C;p.rotate(O,i,u)}}}},_sign2:function(i){return Math.abs(i)0?1:-1},handleWindowMouseUp:function(v){this.handleWindowTouchEnd(v)},getDataInfoAt:function(z,v){var m=this.gv,w=m.getDataInfoAt(z);if(!m.isBlockSelectable()||!w||!w.data)return w;if(!v&&m.isSelected(w.data))return w;for(var o=w.data,p=w.part;(o=o.getParent())&&o instanceof F.Block&&m.isSelectable(o);){var Q=m.isSelected(o);if(Q&&v)break;if(w={data:o,part:p},Q&&!v)break}return w},handleWindowTouchEnd:function($){var d=this,X=d.editing;if(d.editing=null,X){var y=d.gv;if(X.moved||!X.clickLeft&&!X.touch)y._panning=null,y._rotating=null,y.fi({kind:X.pan?"endPan":"endRotate",event:$});else{var t=d.getDataInfoAt($),a=t&&t.data;a instanceof hf&&a.isClickThroughEnabled()&&(t=d.getDataInfoAt($,!0),t&&(a=t.data)),a?y.sm().setSelection([a]):y.sm().clearSelection()}var q=y.dm();y._moving&&(delete y._moving,y.fi({kind:"endMove",event:$}),y.onMoveEnded(),q.endTransaction()),y._86O&&(delete y._86O,y.fi({kind:"endEditRotation",event:$}),q.endTransaction()),y._87O&&(delete y._87O,y.fi({kind:"endEditScale",event:$}),q.endTransaction())}},pan:function(W,o,M){var g=this,p=g.gv;if(p.isPannable()){var i=p.getWidth(),l=p.getHeight();if(i&&l){var J=p.getCenterInfo(),x=-o/i*J.width,$=1*M/l*J.height;p.fi({kind:p._panning?"betweenPan":"beginPan",event:W}),p._panning=1;var c=g.keepHorizon,F=g.editing.touch;if((F&&W.touches&&W.touches.length>1||!F&&Me(W))&&(c=!c),!c)return p.pan(x,$);if(x||$){var R=Ok(p),q=[R[0]*x,R[4]*x,R[8]*x],h=[R[1],0,R[9]],T=Math.sqrt(h[0]*h[0]+h[2]*h[2]);T&&(h=[h[0]/T*$,0,h[2]/T*$]);var t=q[0]+h[0],V=q[1]+h[1],B=q[2]+h[2],w=p._center,D=p._eye;w[0]+=t,w[1]+=V,w[2]+=B,D[0]+=t,D[1]+=V,D[2]+=B,p.fp($d,P,D),p.fp(Lc,P,w)}}}},rotate:function($,x,K){var N=this,g=N.gv;if(g.isRotatable()){var b=g._center,X=g._eye,a=se(X,b),E=Of(L(a[0]*a[0]+a[2]*a[2]),a[1]),f=ni(g,E+K);K=f-E,g.fi({kind:g._rotating?"betweenRotate":"beginRotate",event:$}),g._rotating=1,g.rotate(x,K)}}}),$.defineProperties(Ns.prototype,{panButton:{get:function(){return this._panButton},set:function(A){this._panButton=A}},minPhi:{get:function(){return this._minPhi},set:function(D){this.gv.setRotateMinPhi(this._minPhi=D)}},maxPhi:{get:function(){return this._maxPhi},set:function(N){this.gv.setRotateMaxPhi(this._maxPhi=N)}},keepHorizon:{get:function(){return this._keepHorizon},set:function(F){this._keepHorizon=F}},threshold:{get:function(){return this._threshold},set:function(N){this._threshold=N}},touchScaleThreshold:{get:function(){return this._touchScaleThreshold},set:function(u){this._touchScaleThreshold=u}},touchRotateThreshold:{get:function(){return this._touchRotateThreshold},set:function(J){this._touchRotateThreshold=J}}});var Os,Ps="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEyUlEQVRYR62XW0xcVRSG/58cmIG2HmstE9N4SX2xtVqBCISoFS/RmDSpKQSvTWNixUStQSqVyBQYJUGttrQVtYkPatuQPmhivMUHqbUBZ2itl1qjTzZpImNUZhDLsUeWWXgOOd2cgcGyk3mYs/de69trr70uxP8YIlJKMi0i9wIgyf0iEiM5PFdxzGeDiBQAuB7AjQBuALCN5NcGQDmANgBfeL8UyYnZ5M8KICJ3AXgAwAlfOMl/VHAQwPtveYAKuQLA2yQ/ngliRgAR2QogA2AvSdcUZAIE50VEYR4BsIDkC7kgQgFE5GIAuwDsJnkk1+aZAPw9IqLX1gjgcZK/m7KmAXjK4wBaSf4ZplxEIgCuA3Cz3gSAfgDHSf6dY/0FAJ4D0G5ChAEcAPBwmHIRqXNd90nLsiocx/k+k8n8oK/Atu2rIpHIStd1v7QsawfJd0Ouywawh6T609Q4B8C788NhZnddt29sbGxBd3f39q6urtNhJ43H48uam5u3lJSUjFiWdV8IxE0Aqki+6M9NAXjefjnJXsOZogBGBgYGttbU1Hw427PS+cHBwbVVVVUJAItJOoa8xwD8RPIT/T4J4L3zfQAeNL1dRMZra2ur+/v7/8pHub+mvr7+wr6+vs8KCgoWGABFAN4EsEHjhA9QBeA2ks8HF6vZk8nkQL4nNwGTyeTa8vLycsuy7jcg1Mk/IpnyAZoBaOQ6FHg+ddlsdqNt201zObm5NpvN7ly0aNHrJN8LyL4FwGqSr/gAOrnej3C60HXdw/F4PJ7L4fKFSiQSl7W0tLQVFRWtCQDoNRwguZ6aWABcorE9sEDf+QjJ1fkqmmmdiHwHoCToXyKiceR0rkhY5TjOq9FoVLPdeY/x8fG+SCSySe/cFKYWCFOyPJ1Or4zFYh3nrR3A8PBwe2lp6TcAfg4DmBYwAFyRTqdXxWKx9nkE+DYUIEyBiFQ6jvNaNBq9Zz4AZruCGIBlJI8ZXpolee18AORwwgoAp/xnqMmjPuilZ8+ePZRIJNo7OztD436+YB0dHZe2trY+W1hYWGsccD/JOh/gKQBHSWpanRwicnc2m91k2/bmfJWFrRsdHd29cOHCXSTfD8i+FcA1JHcEQ/HtJDVnTw3XdfcPDQ0dra6unto8F5hUKrWurKxslWVZG4L7RGQbgA9IDgWT0VsANprJaGJi4kxDQ8OagwcPjsxFeWNj49Le3l6N91qMTA2vmNnr6fovGXkmvxPAlST3hGz4LZVKbausrMzLEnryioqKNpJLzCpJRJ4AcJLkp6rHLEieBjBA8rB5Wtd1942NjS3p6el5qa2t7VSYNdThmpqaWoqLi38xze4dUku4CpLb/f1hJZnWBY+SzJpKRGSdV5LVOI5zIpPJnNQ1tm2viEQiV7uue8SyrJeDDhew8GIAO0me4w9hABdp8ahNBkktyacNr+Qu84pSndfX81VY6e6dXJV3AoiT/CMoMFcyUogeAG+Q/DyX8+VZlqvZHwKw2VQ+zQdCTL4FwBkPZFrJPUtjoildG5PC4J2bOvJpze7QWhHAj4HWbBImpDXTQsPvH5cDeMf39lxWnBXAU6TNqcZu7fn0lyB53GhOdf6ZQHN6bF6a0xxOuJTkrwbA5LdcJ831/V8SOUYQxYGhRwAAAABJRU5ErkJggg==",Qs=32,Rs=cs.GlobeInteractor=function(u,f){bo(Rs,this,[u]);var c,Q=f.radius||6378137,s=this,g=null;Os||(Os=go(),Os.style.border="",Os.style.backgroundImage="url("+Ps+")");var M=new af,G=new lp,D=new lp,E=new lp,i=new Co,y="number"==typeof Q?{x:Q,y:Q,z:Q}:Q,X={center:new lp(0,0,0),radius:y},A=function(z){u._81O=null;var p=u.getHitPosition(z,u.getCenter(),G.copy(u.getEye()).sub(D.copy(u.getCenter())).toArray());return i.origin.copy(u.getEye()),i.direction.copy(p).sub(i.origin).normalize(),i.intersectEllipsoid(X)},N=function(n,h){u._81O=null,i.origin.copy(u.getEye());for(var M,Z,V=u.getCenter(),A=G.copy(u.getEye()).sub(D.copy(u.getCenter())).toArray(),x=1,t=16,B=0,d=1,v={x:0,y:0};t--;){if(v.x=h.x+(n.x-h.x)*x,v.y=h.y+(n.y-h.y)*x,M=u.getHitPosition(v,V,A),i.direction.copy(M).sub(i.origin).normalize(),Z=i.intersectEllipsoid(X),Z&&1===x)return{hit:Z};Z?B=x:d=x,x=(B+d)/2}return{hit:Z,out:1>x}},C=function($,e){if(g){var X=Date.now(); g.deltaTime=g.lastTime?X-g.lastTime:1e3,g.lastTime=X,g.lastAxis=$,g.lastAngle=e}e&&(M.setFromAxisAngle($,e),u.setEye(G.copy(u.getEye()).applyQuaternion(M).toArray()),u.setCenter(G.copy(u.getCenter()).applyQuaternion(M).toArray()),u.setUp(G.copy(u.getUp()).applyQuaternion(M).toArray()))};s._showCrossIcon=function(m){tg(s.getView(),Os),gb(Os,{x:m.clientX-Qs/2,y:m.clientY-Qs/2,width:Qs,height:Qs})},s._hideCrossIcon=function(){_g(Os)},s._scrollImpl=function(h,U){g={point:u.lp(h),screen:Di(h),hit:A(h),type:"right"},g.hitNormalize=g.hit?g.hit.clone().normalize():new lp;var T={clientX:g.screen.x,clientY:g.screen.y+10*U};s._handleMoveImpl(T),s._endMoveImpl(T)},s._startMoveImpl=function(D){c&&(c.stop(!0),c=null),g={point:u.lp(D),screen:Di(D),hit:A(D)},g.hitNormalize=g.hit?g.hit.clone().normalize():new lp,nf(D)?1===D.touches.length?g.hit&&(g.type="left"):2===D.touches.length&&(g.type="touch2"):(yn(D)?g.hit&&(g.type="left"):Yk(D)?g.type="right":kq(D)&&g.hit&&(g.type="middle"),!g.hit||"right"!==g.type&&"middle"!==g.type||s._showCrossIcon(D)),g.type&&$k(s,D)},s._handleMoveImpl=function(r){if(g)switch(g.type){case"left":return s._handleLeft(r);case"right":return s._handleRight(r);case"middle":return s._handleMiddle(r);case"touch2":return s._handleTouch2(r)}},s._endMoveImpl=function(){if(g){if(this._hideCrossIcon(),"left"===g.type||"middle"===g.type){var G=1e3*(g.lastAngle/(g.deltaTime||30)),h=g.lastAxis,q=g.lastTime,b=function(){var H=Date.now(),S=(H-q)/1e3;return q=H,G*=Math.pow(Math.abs(s.decelerationRate),3*S),Math.abs(G)<.01?(G=0,c&&c.stop(),void 0):(C(h,G*S),void 0)};c=df({action:function(){b(arguments)},duration:5e3})}g=null}},s._handleLeft=function(V){if(!g.finished){var U=Di(V),H=N(U,g.lastScreen||g.screen);if(g.lastScreen=U,!H.hit)return g.finished=!0,s._endMoveImpl(V),void 0;var J=H.hit;J.normalize();var n=g.hitNormalize,S=Math.acos(J.dot(n)),m=J.cross(n).normalize();C(m,S),H.out&&(g.finished=!0,s._endMoveImpl(V))}},s._handleRight=function(X){var c=g.lastScreen||g.screen,j=c.y;c=g.lastScreen=Di(X);var I=c.y,M=I-j;if(M){var o=Math.min(.5,M*s.scaleSpeed);G.copy(u.getEye());var d=g.hit;d||(d=G.clone().divide(y).normalize().multiply(y)),D.copy(G).lerp(d,o),u.setEye(D.toArray()),G.copy(u.getUp()),D.normalize();var Q=G.clone().cross(D).normalize();if(E.copy(u.getCenter()),E.sub(Q.multiplyScalar(E.dot(Q))),u.setCenter(E.toArray()),g.hit){var U=A(g.screen),e=g.hitNormalize;if(U){U.normalize();var W=Math.acos(U.dot(e)),F=U.cross(e).normalize();W&&C(F,W)}}}};var k=function(I){return Math.abs(I)<.01?0:I>0?1:-1};s._handleTouch2=function(S){var z=S.touches.length;if(2===z){var F=S.touches,N={x:F[0].clientX,y:F[0].clientY},b={x:F[1].clientX,y:F[1].clientY},J={x:b.x-N.x,y:b.y-N.y},T=g.lastCenter,R=Math.atan2(J.y,J.x),G=g.theta,c=0;G==P?G=g.theta=R:(c=R-G,g.thetaStarted||Math.abs(c)>.03?(g.thetaStarted=!0,g.theta=R):c=0);var m,$=Math.sqrt(J.x*J.x+J.y*J.y),O=g.vlen;if(O){var n=N.x-T.x,Z=N.y-T.y,a=b.x-T.x,W=b.y-T.y,_=Math.sqrt(n*n+Z*Z),t=Math.sqrt(a*a+W*W),f=O/2,h=k(_-f),i=k(t-f);0>h*i||0===h&&0===i?(m=1,g.vlen=$):(m||(m=$/O),g.scaleStarted||Math.abs(m-1)>.05?(g.vlen=$,g.scaleStarted=!0):m=1)}else O=g.vlen=$,m=1;var J=D.copy(u.getEye()).clone();1!==m&&u.setEye(J.setLength((J.length()-Q)/m+Q).toArray()),c&&C(J.normalize(),c),g.lastCenter={x:(b.x+N.x)/2,y:(b.y+N.y)/2}}},s._handleMiddle=function(J){var c=Di(J),$=g.screen;g.screen=c;var A=(c.y-$.y)/180*Math.PI*s.rollSpeed;D.copy(u.getCenter()).sub(G.copy(u.getEye())).normalize(),G.copy(u.getUp()).cross(D).normalize(),D.copy(u.getEye()).sub(g.hit).applyAxisAngle(G,A).add(g.hit);var t=D.clone();D.copy(u.getCenter()).sub(g.hit).applyAxisAngle(G,A).add(g.hit);var q=D.clone(),W=D.copy(u.getUp()).applyAxisAngle(G,A).clone(),Z=!1;A>0&&(E.copy(W),D.copy(q).sub(t).normalize(),G.copy(t).multiplyScalar(-1).normalize(),G.dot(E)-D.dot(E)>0&&(Z=!0)),Z||E.copy(g.hit).sub(t).dot(g.hitNormalize)>=0&&(Z=!0),Z||(u.setEye(t.toArray()),u.setCenter(q.toArray()),u.setUp(W.toArray()));var i=-(c.x-$.x)/180*Math.PI*s.rotateSpeed;C(g.hitNormalize,i)}};Ao("GlobeInteractor",Ls,{handle_contextmenu:function(f){Nj(f)},handle_mousewheel:function(S){this._scrollImpl(S,S.wheelDelta/40)},handle_DOMMouseScroll:function(k){2===k.axis&&this._scrollImpl(k,-k.detail)},handle_keydown:function(f){this.gv.handleKeyDown(f)},handle_mousedown:function(z){this.handle_touchstart(z)},handle_touchstart:function(u){Nj(u);var V=this.gv;if(V.setFocus(u)){var I=V.getDataInfoAt(u),y=I?I.data:P;y&&V.isInteractive(y)||this._startMoveImpl(u);var s=I?I.part:P;De(u)?V.handleDoubleClick(u,y,s):V.handleClick(u,y,s)}},handle_mouseup:function(q){this.handle_touchend(q)},handle_touchend:function(){},handleWindowMouseMove:function(S){this.handleWindowTouchMove(S)},handleWindowTouchMove:function($){this._handleMoveImpl($)},handleWindowMouseUp:function(H){this.handleWindowTouchEnd(H)},handleWindowTouchEnd:function(O){this._endMoveImpl(O)}}),$.defineProperties(Rs.prototype,{rotateSpeed:{get:function(){return this._rotateSpeed||.3},set:function(N){this._rotateSpeed=N}},rollSpeed:{get:function(){return this._rollSpeed||.1},set:function(u){this._rollSpeed=u}},scaleSpeed:{get:function(){return this._scaleSpeed||.002},set:function(U){this._scaleSpeed=U}},decelerationRate:{get:function(){return this._decelerationRate||.04},set:function(Q){this._decelerationRate=Q}}});var Ss=function(G){var f=2147483648|G;return[(255&f>>16)/255,(255&f>>8)/255,(255&f)/255,(255&f>>24)/255]},Ts=function(o){this.gv=o,this.gv.pickColorMap={_pickIdUsed:2e3}};Ri(Ts,$,{_iv:!0,iv:function(){this._iv=!0},get:function(X,C,M){this.validate();var Q=this,l=Q.gv.getGL();if(!l)return P;var Z,z,d=Q._resolution,m=Math.round(X.x*d),u=Math.ceil(X.width*d),e=Math.ceil(X.height*d),S=Q.height-Math.round(X.y*d)-e,K=x(u/2),q=new Uint8Array(4*u*e),g=0,A=q.length,a=C?P:new Po,h=C?P:{};if(Eo(l,Q.frame),l.readPixels(m,S,u,e,l.RGBA,l.UNSIGNED_BYTE,q),Xk(l),C){for(;K>=g;g++)for(var B=K-g,v=K+g,R=B;v>=R;R++)for(var o=B;v>=o;o++)if((R===B||R===v||o===B||o===v)&&(Z=Q.info(q,4*(R*u+o)))){if(M&&M(Z)===!1)continue;return Z}}else for(;A>g;g+=4)if(Z=Q.info(q,g)){if(M&&M(Z)===!1)continue;z=Z.data,h[z._id]||(a.add(z),h[z._id]=z)}return a},info:function(m,N){return this.gv.pickColorMap[(m[N]<<16)+(m[N+1]<<8)+m[N+2]+((127&m[N+3])<<24)]},getResolution:function(){return this._resolution},onContextLost:function(){this.texture=null,this.width=this.height=-1},validate:function(){var V=this,p=V.gv,t=p.getGL();if(t){var A=V._resolution=p._pickerResolution*p.getDevicePixelRatio(),n=Math.round(A*p.getWidth()),Z=Math.round(A*p.getHeight()),K=t.RGBA,x=t.TEXTURE_2D,e=t.RENDERBUFFER,v=t.FRAMEBUFFER;if(V.texture||(V.texture=xe(t),V.render=t.createRenderbuffer(),V.frame=t.createFramebuffer()),(V.width!==n||V.height!==Z)&&(t.activeTexture(t.TEXTURE0),_p(t,V.texture),t.texImage2D(x,0,K,n,Z,0,K,t.UNSIGNED_BYTE,P),rr(t,t.TEXTURE_MIN_FILTER,t.LINEAR),t.bindRenderbuffer(e,V.render),t.renderbufferStorage(e,t.DEPTH_COMPONENT16,n,Z),Eo(t,V.frame),t.framebufferTexture2D(v,t.COLOR_ATTACHMENT0,x,V.texture,0),t.framebufferRenderbuffer(v,t.DEPTH_ATTACHMENT,e,V.render),_p(t,P),t.bindRenderbuffer(e,P),Xk(t),V.width=n,V.height=Z),V._iv){V._iv=!1;var N=!1;p._40Q.each(function(B){!N&&B.isBatchInvalid()&&(N=!0)}),N&&p.updateScene(),Eo(t,V.frame),t.clear(t.COLOR_BUFFER_BIT),p.overlappingBox.clear(),p.setViewport(t,0,0,n,Z),p.renderPickScene(),Xk(t)}}}});var Us=function(X){this.gv=X};Ri(Us,$,{gap:0,size:0,_42:function(o,M){var C=this,l=C.gv,G=l._gridGap,E=l._gridSize;if(l._gridVisible){if(C.gap!==G||C.size!==E){for(var T=[],g=l._gridSize/2,x=G*g,k=0;2*g+1>k;k++){var I=6*k,Z=6*(2*g+1)+I;T[I]=-x,T[I+1]=0,T[I+2]=-x+k*G,T[I+3]=x,T[I+4]=0,T[I+5]=-x+k*G,T[Z]=-x+k*G,T[Z+1]=0,T[Z+2]=-x,T[Z+3]=-x+k*G,T[Z+4]=0,T[Z+5]=x}C.vs=new ip(T),C.gap=G,C.size=E}Vi(l),En(o,M),Zk(o),mb(o,M,1,l._gridColor,l._buffer.vs,C.vs),Ln(o,0,C.vs.length/3,o.LINES),$h(o),fq(o,M)}else C.vs=C.gap=C.size=P}});var Vs=function(j){this.gv=j};Ri(Vs,$,{_42:function(R,$){var I=this.gv,m=I._buffer.vs,s=I._axisXColor,H=I._axisYColor,g=I._axisZColor,F=I._originAxisVisible,B=I._centerAxisVisible;if(F||B){var V=jr?R.TRIANGLES:R.TRIANGLE_FAN,n=R.LINES;if(Vi(I),En(R,$),Zk(R),F){var a=I.getCenterInfo(),A=v(a.width,a.height)/5,r=.8*A,_=.05*A;mb(R,$,1.5,s,m,new ip([0,0,0,A,0,0,r,_,0,r,0,_,r,-_,0,r,0,-_,r,_,0,0,0,0,0,A,0,_,r,0,0,r,_,-_,r,0,0,r,-_,_,r,0,0,0,0,0,0,A,_,0,r,0,_,r,-_,0,r,0,-_,r,_,0,r])),Ln(R,0,2,n),Ln(R,1,6,V),mb(R,$,P,H),Ln(R,7,2,n),Ln(R,8,6,V),mb(R,$,P,g),Ln(R,14,2,n),Ln(R,15,6,V)}if(B){var Q=I._center,e=Q[0],l=Q[1],z=Q[2],a=I.getPositionInfo(Q);A=v(a.width,a.height)/20,mb(R,$,1.5,s,m,new ip([e,l,z,e+A,l,z,e,l,z,e,l+A,z,e,l,z,e,l,z+A])),Ln(R,0,2,n),mb(R,$,P,H),Ln(R,2,2,n),mb(R,$,P,g),Ln(R,4,2,n)}$h(R),fq(R,$)}}});var Ws=function(R){this.gv=R},Xs="edit_tx",Ys="edit_ty",Zs="edit_tz",$s="edit_rx",_s="edit_ry",at="edit_rz",bt="edit_sx",ct="edit_sy",dt="edit_sz",et={};et[Xs]=101,et[Ys]=102,et[Zs]=103,et[$s]=104,et[_s]=105,et[at]=106,et[bt]=107,et[ct]=108,et[dt]=109,Ri(Ws,$,{_42:function(l,h,Q){var r=this,W=r.gv,H=W.sm().ld();if(H&&W.isEditable(H)&&!W.isEditHelperDisabled()&&$n(H)&&(!W.isFirstPersonMode()||!W.isMouseRoamable()&&!pr)){Vi(W);var U,d=W.isMovable(H),j=W.isRotationEditable(H),p=W.isSizeEditable(H),V=W._axisXColor,m=W._axisYColor,e=W._axisZColor,K=W._editSizeColor,o=H.p3();if(W.isOrtho()){var z=W.getCenterInfo();U=v(z.width,z.height)/8}else U=Yh(W.getEye(),o)/10;var J,G,D=U/(Q?5:10),L=.7*U,B=.4*L,T=o[0],x=o[1],Y=o[2];J=[0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0],d&&r._17O(l,h,H,Q,Xs,V,J,[T,x-D,Y,T+L,x-D,Y,T+L,x,Y,T+L,x,Y,T,x,Y,T,x-D,Y,T,x-D,Y+D,T+L,x-D,Y+D,T+L,x-D,Y,T+L,x-D,Y,T,x-D,Y,T,x-D,Y+D]),G=T+L,p&&r._17O(l,h,H,Q,bt,K,J,[G,x-D,Y,G+B,x-D,Y,G+B,x,Y,G+B,x,Y,G,x,Y,G,x-D,Y,G,x-D,Y+D,G+B,x-D,Y+D,G+B,x-D,Y,G+B,x-D,Y,G,x-D,Y,G,x-D,Y+D]),G+=B,j&&r._17O(l,h,H,Q,$s,V,J,[G,x-D,Y,G+B,x-D,Y,G+B,x,Y,G+B,x,Y,G,x,Y,G,x-D,Y,G,x-D,Y+D,G+B,x-D,Y+D,G+B,x-D,Y,G+B,x-D,Y,G,x-D,Y,G,x-D,Y+D]),J=[0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0],d&&r._17O(l,h,H,Q,Ys,m,J,[T,x,Y,T,x+L,Y,T-D,x+L,Y,T-D,x+L,Y,T-D,x,Y,T,x,Y,T,x,Y,T,x,Y-D,T,x+L,Y-D,T,x+L,Y-D,T,x+L,Y,T,x,Y]),G=x+L,p&&r._17O(l,h,H,Q,ct,K,J,[T,G,Y,T,G+B,Y,T-D,G+B,Y,T-D,G+B,Y,T-D,G,Y,T,G,Y,T,G,Y,T,G,Y-D,T,G+B,Y-D,T,G+B,Y-D,T,G+B,Y,T,G,Y]),G+=B,j&&r._17O(l,h,H,Q,_s,m,J,[T,G,Y,T,G+B,Y,T-D,G+B,Y,T-D,G+B,Y,T-D,G,Y,T,G,Y,T,G,Y,T,G,Y-D,T,G+B,Y-D,T,G+B,Y-D,T,G+B,Y,T,G,Y]),J=[1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0],d&&r._17O(l,h,H,Q,Zs,e,J,[T,x,Y,T,x,Y+L,T,x-D,Y+L,T,x-D,Y+L,T,x-D,Y,T,x,Y,T,x-D,Y,T-D,x-D,Y,T-D,x-D,Y+L,T-D,x-D,Y+L,T,x-D,Y+L,T,x-D,Y]),G=Y+L,p&&r._17O(l,h,H,Q,dt,K,J,[T,x,G,T,x,G+B,T,x-D,G+B,T,x-D,G+B,T,x-D,G,T,x,G,T,x-D,G,T-D,x-D,G,T-D,x-D,G+B,T-D,x-D,G+B,T,x-D,G+B,T,x-D,G]),G+=B,j&&r._17O(l,h,H,Q,at,e,J,[T,x,G,T,x,G+B,T,x-D,G+B,T,x-D,G+B,T,x-D,G,T,x,G,T,x-D,G,T-D,x-D,G,T-D,x-D,G+B,T-D,x-D,G+B,T,x-D,G+B,T,x-D,G])}},_17O:function(A,x,t,S,U,l,C,p){var $=this.gv,F=$._buffer,G=Vk.for(A),z=G.directUniforms(),s=G.directAttribs();if($._picking){S=$.pickColorMap;var H=et[U];S[H]={data:t,part:U},z.uFixPickReverseColor=Ss(H)}Ii(A,x,P,!0,P,!0,P,!1),z.uDiffuse=l,s.aPosition=Vc(A,F.vs,new ip(p),P),s.aNormal=Vc(A,F.ns,new ip(C),P),Zk(A),Ln(A,0,12),$h(A),Cm(A,x)}});var ft=F.Raycaster=function(i){this.gv=i,this.maxTriangleTest=1/0,this.backfaceCulling=!0};yr("Raycaster",$,{intersect:function(p){var M=this,h=M.gv,V=h.getDataAt(p);return V?M.intersectObject(p,V):null},intersectObjects:function(g,X,t){var I,y,f,v,h=this,C=1/0,c=g.origin||(new lp).fromArray(h.gv.getEye()),w=h.maxTriangleTest,H=[];X.forEach(function(G){t&&t(G)===!1||G.s("intersect")!==!1&&H.push(G)});var j=c.distanceToSquared2([0,0,0]);return H.sort(function(Y,M){return(Y.p3?c.distanceToSquared2(Y.p3()):j)-(M.p3?c.distanceToSquared2(M.p3()):j)}),h.countTriangles=0,H.forEach(function(_){h.countTriangles>w||(I=h.intersectObject(g,_),I&&(y=c.distanceToSquared(I.world),C>y&&(f=_,v=I,C=y)))}),h.countTriangles=0,{data:f,intersect:v}},intersectObjectAndRecordTriangle:function(L,$){this._4GQ=!0;var Z=this.intersectObject(L,$);return this._4GQ=!1,Z},intersectLastTriangle:function(b,L){var F=this.getRay(b);F.applyMatrix4(L.inverseMatrix);var n=F.intersectPlane(L.plane);if(!n)return null;var Y=db.uvIntersection(n,L.p1,L.p2,L.p3,L.uv1.clone(),L.uv2.clone(),L.uv3.clone());return{world:n.clone().applyMatrix4(L.matrixWorld),local:n.clone(),uv:Y}},getRay:function(E){if(E instanceof Co)return E;var S=this,o=S.gv,R=o.unproject(E),y=new lp,D=o.getEye(),Z=new lp;if(o.isOrtho()){var J=new lp(D);Z.copy(o.getCenter()).sub(J).normalize();var l=y.copy(R).sub(J).dot(Z);y.copy(Z).setLength(-l).add(J.copy(R))}else y.copy(D),Z.copy(R).sub(y).normalize();return new F.Math.Ray(y,Z)},intersectObject:function(C,o){return this._intersectObjectImpl(this.getRay(C),o)},_intersectObjectImpl:function(){function Y(){var l=new lp;return l.subVectors(i,k),w.subVectors(o,k),l.cross(w).normalize(),l}var A=new hg,I=new hg,n=new Co,e=new lp,U=new lp,D=new lp,H=new lp,v=new lp,o=new lp,k=new lp,i=new lp,B=new ag,P=new ag,c=new ag,w=new lp,m={vs:vs,is:ah,uv:Yj},W=Cs.slice(0);return W.push("csg"),function(G,p){var C=this.gv.getData3dUI(p),E=p.mat||C.mat;E?A.fromArray(E):A.identity(),I.getInverse(A),n.copy(G).applyMatrix4(I);var X,z,a,K="body",O=C.shapeModel;if(!O&&(p instanceof F.Polyline||p instanceof F.Edge)&&C.lineShapeModel&&(O=C.lineShapeModel),O||(O=on(C)),O||(F.CSGNode&&p instanceof F.CSGNode||F.CSGShape&&p instanceof F.CSGShape?(a=!0,O=[C.left,C.front,C.right,C.back,C.top,C.bottom,C.csg]):p instanceof F.Node&&!(p instanceof F.Shape)?(X=!0,O=m):(z=!0,O=[C.left,C.front,C.right,C.back,C.top,C.bottom])),!O)return console.log("Can not find shape model."),null;ks(O)||(O=[O]);var Z,f,l,u,r,T,S,L,x,g,s,M,N,t,V,q,J=1/0,h=["","top_","bottom_"],d=!1,Q=this.backfaceCulling,R=[];for(Dn(O,C,R),Z=0,f=R.length;f>Z;Z++)if(N=R[Z])for(l=0,u=h.length;u>l;l++)if(t=h[l],S=N[t+"vs"],L=N[t+"is"],x=N[t+"uv"]||N[t+"tuv"],S){if(V=N[t+"boundingBox"]){var s=n.intersectBox(V);if(!s)continue;if(n.origin.distanceTo(s)>J)continue;q=!1}else N[t+"boundingBox"]=V=new F.Math.Box3,q=!0;for(r=0,T=L?L.length:S.length/3;T>r;r+=3)this.countTriangles++,L?(U.fromArray(S,3*L[r]),D.fromArray(S,3*L[r+1]),H.fromArray(S,3*L[r+2])):(U.fromArray(S,3*r),D.fromArray(S,3*(r+1)),H.fromArray(S,3*(r+2))),q&&(V.expandByPoint(U),V.expandByPoint(D),V.expandByPoint(H)),g=n.intersectTriangle(U,D,H,Q,e),g&&(M=n.origin.distanceTo(g),J>M&&(J=M,v.copy(g),o.copy(U),k.copy(D),i.copy(H),""!==t?K=t.slice(0,-1):X?K=Cs[Math.floor(r/6)]:z?K=Cs[Z]:a&&(K=W[Z]),x&&(d=!0,L?(B.fromArray(x,2*L[r]),P.fromArray(x,2*L[r+1]),c.fromArray(x,2*L[r+2])):(B.fromArray(x,2*r),P.fromArray(x,2*(r+1)),c.fromArray(x,2*(r+2))))))}if(!isFinite(J))return null;var $,w,j=v.clone().applyMatrix4(A),y=this._4GQ;d&&(y&&(w={inverseMatrix:I.clone(),matrixWorld:A.clone(),p1:o.clone(),p2:k.clone(),p3:i.clone(),uv1:B.clone(),uv2:P.clone(),uv3:c.clone(),plane:(new F.Math.Plane).setFromCoplanarPoints(o,k,i)}),$=db.uvIntersection(v,o,k,i,B,P,c));var _=Y(o,k,i),b=Y(o.applyMatrix4(A),k.applyMatrix4(A),i.applyMatrix4(A)),Lb=n.direction.dot(_);Lb>0&&(_.multiplyScalar(-1),b.multiplyScalar(-1));var nd={world:j,local:v.clone(),worldNormal:b,normal:_,uv:$,part:K};return w&&(nd.triangleInfo=w),nd}}()});var gt=function(_,T){this.gv=_,this.s=function(j,D,W){return D==P&&(D=W),D==P?T.getStyle(j):Lk(D,T,_)},this.data=T};Ri(gt,$,{I3d:!0,ms_icons:1,_iv:!0,_cacheBoundingBox:m,iv:function(){this._iv=!0},update:function(a,y,z){var B=this,S=B.data;if(a||(a=B.gv,y=a.getGL(),z=a._40Q),!B.needValidate(y)||!a.isVisible(S))return z.push(this,!1),void 0;var A,r,p,n,K,k=S._id,q=S._47Q?null:B.s("batch"),$=S.getRenderLayer(),G=z.get($,!0),C=G.batchIndexMap,e=G.batchModelMap,f=a.getBrightness(S),_=f!=P&&1!==f;A=ze(C,e,S,q,a);var g=q?a.getBatchInfo(q)||Zg:P,u=B.validate(A,g);if(A&&(!g.ms||!g.ms.length)&&(r=C[k],p=r.size=A.vs.length/3-r.begin,K=A.rs))for(f=_?f:1,n=0;p>n;n++)K.push(f);var m=a.getWireframeGeometry(S);if(m)Tp(a,S,m);else if($n(S)){var l=a.getWireframe(S);l&&Tp(a,S,l)}B.labelInfo=B.label2Info=B.noteInfo=B.note2Info=B._38o=P,B._24O(ng,"getLabel"),B._24O(Iq,"getLabel2"),B._26O(Op,"getNote"),B._26O(Mi,"getNote2"),B._15O(),B.interactiveInfo=a.isInteractive(S)?{}:P,G.push(this,!0),u!==!1&&(B._iv=!1)},clearWireframeGeometryCache:function(){var E=this;an(E),E.data.iv()},_46Q:function(Q){var C=this,c=C.data,j=C.gv;if(j.isVisible(c)){var h=c._id,s=j._40Q.get(c._renderLayer,!0),T=s.batchIndexMap[h],n=s.polylineIndexMap[h],z=s.wireframeIndexMap[h];if(T||n||z){var A=Kd(Q,j.pickColorMap,j.isSelectable(c),C,Af,!0);A&&(oj(A,T,s.batchModelMap,j),oj(A,n,s.polylineModelMap,j),oj(A,z,s.wireframeModelMap,j))}}},_42:function(e,r,g){function w(r,K,o){var N=K.getBrightness(o),f=o.s("alphaTest"),m=o.s("envmap"),j=Vk.for(r),Z=j.directUniforms();N!=P&&1!==N&&(Z.uBrightness=N),Z.uAlphaTest=f,Z.uUseEnvMap=m?!0:!1,Z.uReflectivity=m||.01,Z.roughness=o.s("roughness"),K._setEnvmapByProbeId(Z,o.s("envmap.probe")),Z.shadowReceive=!q&&o.s("shadow.receive"),Z.shadowCull=!q&&!!o.s("shadow.cull"),uq(K,Z,o.s("3d.clipbox")?ce:o.s("3d.clipbox.mask"));var R=k.s("3d.clip.direction");if(R){var v=k.s("3d.clip.percentage");0===v&&(n=!1);var y=k._formatClipUniforms(R,v,o);Z.uClipPercent=y[1],Z.uClipDirection=y[0]}else Z.uClipDirection=0;r._blooming&&!o.s("bloom")&&(Z.blackout=!0),q||(K._flowObjects.length&&K.flowMap.resetDataFlowEnabld(o,Z),il(K,Z,o.s("light.mask"),o.s("headlight.ambientIntensity")))}var k=this,i=k.data,D=k.gv;if(D.isVisible(i)){var T,q=D._picking;if(q)T=D.pickColorMap;else{if(D.isTransparentMask(i)||D.isReflecting(e)&&i.s("3d.reflectable")===!1)return;T=m}if(gt.getTitle===m){gt.getTitle=0;for(var l in t)if(l.length===Iq.length+1&&l[Iq.length]===nm[4].toUpperCase()&&l[Iq.length-1]===nm[Iq.length+1].toUpperCase()){gt.getTitle=Xo;break}}if(!gt.getTitle||Ad[Iq.length+2]){if(gt.getHead===m){gt.getHead=0;for(var l in K){var j="box-sizing";6===l.length&&l[0]===nm[4]&&l[3]===j[0]&&l[4]===j[1]&&l[5]===j[2]&&(gt.getHead=bk)}}if(!gt.getHead||Ad[Iq.length]){if(gt.getTitle2===m){gt.getTitle2=0;for(var l in K){var M="uv";6===l.length&&l[0]===nj[1].toUpperCase()&&l[1]===M[0]&&(gt.getTitle2=og)}}if(!gt.getTitle2||Ad[Yp.length]){var o,Z,d=i._id,$=D._40Q.get(i._renderLayer,!0),y=$.batchIndexMap,X=$.batchModelMap,a=D.isSelectable(i),x=!1,n=!0,L=y[d];if(q&&(Z=Kd(e,T,a,k,Af,L),Z&&!D._45Q&&(oj(Z,L,X,D),oj(Z,$.polylineIndexMap[d],$.polylineModelMap,D),oj(Z,$.wireframeIndexMap[d],$.wireframeModelMap,D))),L||(x||(x=!0,w(e,D,i)),n&&k._80o(e,r,g)),D.isLabelVisible(i)&&((o=k.labelInfo)&&(q&&Kd(e,T,a,k,ng),x||(x=!0,w(e,D,i)),k._28O(o,ng,g)),(o=k.label2Info)&&(q&&Kd(e,T,a,k,Iq),x||(x=!0,w(e,D,i)),k._28O(o,Iq,g))),D.isNoteVisible(i)&&((o=k.noteInfo)&&(q&&Kd(e,T,a,k,Op),x||(x=!0,w(e,D,i)),k._29O(o,Op,g)),(o=k.note2Info)&&(q&&Kd(e,T,a,k,Mi),x||(x=!0,w(e,D,i)),k._29O(o,Mi,g))),(o=k._38o)&&(x||(x=!0,w(e,D,i)),k._99O(e,r,o,T,a,g)),x){var Q=Vk.for(e).directUniforms();Q.uBrightness=1,Q.uClipDirection=0,e._blooming&&(Q.blackout=!1)}}}}}},_formatClipUniforms:function(h,L,B){switch(h){case"left":h=2;break;case"top":h=3;break;case"bottom":h=4;break;case"front":h=5;break;case"back":h=6;break;case"right":default:h=1}if(0===h%2&&(L=1-L),B instanceof F.Shape){var e=B.s3(),G=B.p3(),T=B.getAnchor3d();L=3>h?(L-T.x)*e[0]+G[0]:5>h?(L-T.y)*e[1]+G[1]:(L-T.z)*e[2]+G[2]}else L-=.5;return[h,L]},prepare:function(){var C=this,x=C.data;if(!(x instanceof hf)){var w,b,n,l,t,y=C.gv,I=y.getGL(),Z=x._id,h=C.s("batch"),X=y._batchIndexMap,A=y._batchModelMap,K=y.getBrightness(x),i=K!=P&&1!==K;if(C.needValidate(I)){w=ze(X,A,x,h,y);var M=h?y.getBatchInfo(h)||Zg:P;if(C.validate(w,M),w&&(!M.ms||!M.ms.length)&&(b=X[Z],n=b.size=w.vs.length/3-b.begin,t=w.rs))for(K=i?K:1,l=0;n>l;l++)t.push(K);if($n(x)){var m=y.getWireframeGeometry(x);if(m)Tp(y,x,m);else{var k=y.getWireframe(x);k&&Tp(y,x,k)}}C.labelInfo=C.label2Info=C.noteInfo=C.note2Info=C._38o=P,C._24O(ng,"getLabel"),C._24O(Iq,"getLabel2"),C._26O(Op,"getNote"),C._26O(Mi,"getNote2"),C._15O(),C.interactiveInfo=y.isInteractive(x)?{}:P,C._iv=!1}}},dispatchBoundingBoxChanged:function(){this._cacheBoundingBox=m},getBoundingBox:function(){var N,c,S,p,l,X;return function(){if(this._cacheBoundingBox)return this._cacheBoundingBox;N||(N={vs:vs,is:ah,uv:Yj},c=new lp,S=new lp,p=new lp,l=new lp,X=new lp);var T=this,i=T.data,q=T.shapeModel;if(q||i instanceof F.Shape||(q=on(T)),!q&&i instanceof F.Shape&&(T.prepare(),q=T.shapeModel),q||(i instanceof F.Node&&!(i instanceof F.Shape)?q=N:(T.left||T.front||T.right||T.back||T.top||T.bottom)&&(q=[T.left,T.front,T.right,T.back,T.top,T.bottom])),!q)return m;ks(q)||(q=[q]);var H,z,u,n,U,A,o,j,w,x,f,R,K=["","top_","bottom_"],I=new F.Math.Box3,V=!1;if(T._needRecoverPosition){l.set.apply(l,i.p3());var L=i.s3();X.set(1/(L[0]||1),1/(L[1]||1),1/(L[2]||1))}else l.set(0,0,0),X.set(1,1,1);for(H=0,z=q.length;z>H;H++)if(w=q[H])for(u=0,n=K.length;n>u;u++)if(x=K[u],o=w[x+"vs"],j=w[x+"is"],o){if(R=x+"boundingBox",f=w[R],!f)for(w[R]=f=new F.Math.Box3,U=0,A=j?j.length:o.length/3;A>U;U+=3)j?(c.fromArray(o,3*j[U]).sub(l).multiply(X),S.fromArray(o,3*j[U+1]).sub(l).multiply(X),p.fromArray(o,3*j[U+2]).sub(l).multiply(X)):(c.fromArray(o,3*U).sub(l).multiply(X),S.fromArray(o,3*(U+1)).sub(l).multiply(X),p.fromArray(o,3*(U+2)).sub(l).multiply(X)),!c.isNaN()&&f.expandByPoint(c),!S.isNaN()&&f.expandByPoint(S),!p.isNaN()&&f.expandByPoint(p);I.expandByBox(f),V=!0}return V?(this._cacheBoundingBox=I,$.freeze(I),$.freeze(I.min),$.freeze(I.max),wo(T.gv,i),I):m}}(),needValidate:function(){return this._iv},validate:function(){},_16O:function(){return Zf},_80o:function(){},dispose:function(){var T=this,$=T._pickId;if($){var J=T.gv.pickColorMap;J[$]&&delete J[$]}},getBodyColor:function(H){var p=this.data,q=this.gv.getBodyColor(p);return q?q:H?p.getStyle(H):P},contextLost:function(){this._cachedTextures&&this.gv.invalidateCachedTexture(this.data)},getCachedTexture:function(s){var j=this._cachedTextures;return j?j[s||"main"]:null},setCachedTexture:function(b,P){var U=this._cachedTextures;return U||(U=this._cachedTextures={}),U[P||"main"]=b,b},invalidateCachedTexture:function(d){var E=this._cachedTextures;if(E){for(var f in E)d.deleteTexture(E[f]);this._cachedTextures={}}},invalidateCachedGeometry:function(){},_24O:function(T,m){var O=this,H=O.data,U=O.gv,I=O.s,Y=U[m](H);if(Y!=P){var d=I(T+".scale"),R=I(T+".max"),n=O[T+"Info"]={label:Y,textureScale:I(T+".texture.scale"),color:U[m+"Color"](H),font:I(T+".font"),align:I(T+".align"),background:U[m+"Background"](H)},r=n.rect=uj(n,Y);R>0&&R0&&Ha;a++)N=j[a],N&&x(N);else ib(j)?x(on(q,j),q):Pg(j)&&(j.shape3d?x(j.shape3d):E(j))}var q=this,g=q.data,O=O||q.shapeModel||on(q);O||(O=g instanceof F.Node&&!(g instanceof F.Shape)?{vs:vs,is:ah}:[q.left,q.front,q.right,q.back,q.top,q.bottom]),x(O)},_28O:function(s,u,w){if(w(this.s(u+".transparent"))){var q=s.rect,l=s.textureScale,O=q.width*l,T=q.height*l;if(O>=1&&T>=1){var Y=Fn(O,T);1!==l&&(Y.translate(q.x,q.y),Y.scale(l,l),Y.translate(-q.x,-q.y)),Fm(Y,s),Y.restore(),Pk(this,u,s.mat,s.vs,!0)}}},_29O:function(J,W,F){if(F(this.s(W+".transparent"))){var o=J.rect,Q=J.textureScale,B=o.x,c=o.y,R=o.width*Q,d=o.height*Q;if(R>=1&&d>=1){o.x=o.y=0;var Z=Fn(R,d);1!==Q&&Z.scale(Q,Q),ar(Z,J),Z.restore(),o.x=B,o.y=c,Pk(this,W,J.mat,J.vs,!1)}}},_99O:function(j,b,F,M,X,L){if(F){var Q=this,O=Q.gv,E=Q.data,c=O._buffer,B=O._1O,Z=F.icons,r=Vk.for(j),q=r.directAttribs();for(var o in Z){var K=Z[o],i=F.rects[o];if(i&&L(Lk(K.transparent,E,O))){O._picking&&Kd(j,M,X,Q,o);var N=Lk(K.shape3d,E,O),x=N?[N]:Lk(K.names,E,O),p=x?x.length:0,T=Lk(K.textureScale,E,O)||1,l=Lk(K.light,E,O);l==P&&(l=N?!0:!1),Ii(j,b,Lk(K.blend,E,O),l,Lk(K.opacity,E,O),Lk(K.reverseFlip,E,O),Lk(K.reverseColor,E,O),Lk(K.reverseCull,E,O));for(var y=0;p>y;y++){var _=x[y],d=i[y];if(gl(Q,d.mat),N)Mj(O,E,on(Q,N),Q);else{var f=tc(_);if(f){var w=d.width*T,J=d.height*T;if(w>=1&&J>=1){var C=Fn(w,J);Ql(C,f,Lk(K.stretch,E,O),0,0,w,J,E,O),C.restore(),xe(j,uf,B),Zk(j,b,B,Lk(K.discardSelectable,E,O),c.uv,$l),q.aPosition=Vc(j,c.vs,d.vs,P),q.aNormal=Gk(j,c.ns,Gc,P),cj(j,c.is,Gq),bb(j,0,Gq.length),$h(j,b,B)}}}yb(O)}Cm(j,b)}}}}});var ht=function(m,b){bo(ht,this,[m,b])};Ri(ht,gt,{_16O:function(I,f,K,i,a,J,q,R,n){var v=this.data,t=v.getFinalScale3d(),O=rp(f,t,K,i,R,n);if(v.hasOwnProperty("_anchor")||v.hasOwnProperty("_anchorElevation")){var b=v.getAnchor3d();O[0]-=(b.x-.5)*t[0],O[1]-=(b.y-.5)*t[1],O[2]-=(b.z-.5)*t[2]}return aj(tk(),O,v.p3(),i,a,J,q,I,v.getFinalRotation3d(),v.getRotationMode())},clear:function(){var w=this;w.faceMat=w.mat=w.shapeModel=w.left=w.right=w.front=w.back=w.top=w.bottom=w.csg=P},needValidate:function(D){if(this._iv)return this._validateFrameId=D._renderInfo.frame,!0;if(this.data._47Q){var O=D._renderInfo.frame;if(this._validateFrameId!==O)return this._validateFrameId=O,!0}return!1},validate:function(T,w){var D=this,s=D.gv,y=D.data,S=D.shapeName=D.s(ml),i=on(D,S);if(D._updateAutoRotation(),D._updateFixSize2d(),D._updateOverlapping(),D.dispatchBoundingBoxChanged(),y._47Q){var O=y.getRenderLayer(),g=s._40Q.get(O);g&&g.ivWireframeBatch(y)}var j=On(y,s.getMat(y),i?D.s("shape3d.scaleable"):!0);if(y.appendAnchorMatrix3d(j),D.clear(),D.mat=y.mat=j,i||!S)if(D.shapeModel=i,T)if(i)w.instanced?s.batchInstancedModel(y,i,D,D.getBodyColor(),[j],T):Ig(s,y,i,D,D.getBodyColor(),[j],T);else{var W=rk(j);w.instanced?s.batchInstancedFace(y,T,w,j,W):Fp(s,y,T,w,j,W)}else i||(D._cubeUvs=null,D.vf(dk,0),D.vf(ge,16),D.vf(Nl,8),D.vf(tp,24),D.vf(lh,32),D.vf(Li,40))},_updateAutoRotation:function(){var $=new Er,p=new hg,U=new lp,i=new lp,d=new lp;return function(){var u=this,t=u.data,V=u.s("autorotate")||u.s("shape3d.autorotate");if(!V)return t._dynamicRotation&&delete t._dynamicRotation,void 0;var E=u.gv;d.copy(u.s("shape3d.autorotate.up")||E._up);var W;W="string"==typeof V?[V.indexOf("x")<0?E._eye[0]:E._center[0],V.indexOf("y")<0?E._eye[1]:E._center[1],V.indexOf("z")<0?E._eye[2]:E._center[2]]:E._eye;var x=E._center,a=t.p3();U.copy(a),i.set(W[0]-x[0],W[1]-x[1],W[2]-x[2]).add(U),p.lookAt(i,U,d),$.set(0,0,0,t.getRotationMode(),!0).setFromRotationMatrix(p);var C=t._dynamicRotation;C&&Math.abs(C[0]-$.x)<1e-5&&Math.abs(C[1]-$.y)<1e-5&&Math.abs(C[2]-$.z)<1e-5||(t._dynamicRotation=[$.x,$.y,$.z])}}(),_updateFixSize2d:function(){var y=this,z=y.data,m=y.s("fixSizeOnScreen")||y.s("shape3d.fixSizeOnScreen");if(!m)return z._dynamicScale3d&&delete z._dynamicScale3d,void 0;var N=y.gv,d=On(z,N.getMat(z)),M=Ae([0,0,0],d),w=N.toViewPosition(M);if(!isNaN(w.x)&&!isNaN(w.y)){var b=Ae([1,0,0],d),l=N.toViewPosition(b),o=Ae([0,1,0],d),H=N.toViewPosition(o),W=l.x-w.x,k=H.y-w.y;if(W&&k){var t,Y,C=z._dynamicScale3d||[1,1,1],A=tc(z.s("shape3d.image"));if(m[0]>0&&(t=m[0]),m[1]>0&&(Y=m[1]),!t||!Y){var R=m>0?m:1;t||(t=(zs(A,z)||z.getWidth())*R),Y||(Y=(Mc(A,z)||z.getTall())*R)}var $=Math.abs(W/t),Z=Math.abs(k/Y);Math.abs($-1)<.001&&Math.abs(Z-1)<.001||(z._dynamicScale3d=[C[0]/$,C[1]/Z,C[2]])}}},_updateOverlapping:function(){var t=this,k=t.s("hide.overlapping.group");if(!k)return t._rectOverlapping&&(t._rectOverlapping=m),void 0;var H,M,$,f=t.gv,B=t.data,R=On(B,f.getMat(B)),J=1/0,E=1/0,w=-1/0,Q=-1/0,e=B.getAnchor3d(),h=e.x,g=e.y,r=e.z;for(H=0;8>H;H++){if(M=Ae([(H>>2)-h,(1&H>>1)-g,(1&H)-r],R),$=f.toViewPosition(M),isNaN($.x)||isNaN($.y))return;J=Math.min(J,$.x),w=Math.max(w,$.x),E=Math.min(E,$.y),Q=Math.max(Q,$.y)}var c={x:J,y:E,w:w-J,h:Q-E};t._rectOverlapping=f.overlappingBox.isOverlapping(k,c)},getVectorDynamicSize:function(){var _,K=this,V=K.s("shape3d"),G=K.data;if("billboard"===V||"plane"===V||(_=G._currentCubeElementId)!=P){var i,W,c=K.gv,N=On(G,c.getMat(G)),Q=G.getAnchor3d(),Z=.5-Q.x,q=.5-Q.y,B=.5-Q.z,f=Math.min(K.s("vector.dynamic.maxsize"),c._glCapabilities.maxTextureSize)/c.getDevicePixelRatio(),E=function(V,p){V[0]+=Z,V[1]+=q,V[2]+=B,p[0]+=Z,p[1]+=q,p[2]+=B;var b=c.toViewPosition(Ae(V,N)),i=c.toViewPosition(Ae(p,N)),R=b.x-i.x,n=b.y-i.y;return Math.min(f,Math.sqrt(R*R+n*n))};if("billboard"===V)i=E([-.5,0,0],[.5,0,0]),W=E([0,-.5,0],[0,.5,0]);else if("plane"===V)i=E([-.5,0,0],[.5,0,0]),W=E([0,0,-.5],[0,0,.5]);else if(G._currentCubeElementId!=P){var a=3*ah[_+1],J=3*ah[_],v=3*ah[_+2];i=E([vs[a],vs[a+1],vs[a+2]],[vs[v],vs[v+1],vs[v+2]]),W=E([vs[a],vs[a+1],vs[a+2]],[vs[J],vs[J+1],vs[J+2]])}return[i,W]}},vf:function(H,K){var w=this;if(w.gv.getFaceVisible(w.data,H)){var d=dm(w,H);d.mat&&(w.faceMat=!0);var M=d.uv;if(M){var $=w._cubeUvs;$||($=w._cubeUvs=new ip([0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0]));for(var D=0;8>D;D++)$[K+D]=M[D]}return d}},_billboardInView:function(){var Z=[-.5,-.5,0,-.5,.5,0,.5,-.5,0,.5,.5,0],j=[-.5,0,-.5,-.5,0,.5,.5,0,-.5,.5,0,.5],r=new Kl,b=new lp,i=new hg;return function(E){var L=this;if(!L.mat)return!0;var K=L.gv.getFrustum(),G="billboard"===E?Z:j;r.makeEmpty(),i.fromArray(L.mat);for(var m=0,v=G.length;v>m;m+=3)r.expandByPoint(b.fromArray(G,m).applyMatrix4(i));return K.intersectsBox(r)}}(),_80o:function(I,H,q){var L=this;if(L._rectOverlapping)return!0;var T=L.shapeModel;if(T||!L.shapeName){var r=L.s("shape3d");if(("billboard"===r||"plane"===r)&&!L._billboardInView(r))return!0;var Z=L.gv,w=L.data,Y=Z._cube,b=Vk.for(I),a=b.directAttribs();if(io&&!Dq){var N=L.mat;if(N)for(var p=0;p0)return!1;G.reflect(N).negate(),G.add(R),X.copy(b.getCenter()).negate().add(R),X.reflect(N).negate(),X.add(R),S.copy(b.getUp()),S.reflect(N);var l=[0,0,0,0,0,0,0,0,0];Y(l,b),o(b._eye,G.toArray()),o(b._center,X.toArray()),o(b._up,S.toArray()),b._18Q=P;var h=b._skybox;h&&(h.p3(b._eye),b.getData3dUI(h).iv()),Eo(Q,D.frame),b.setViewport(Q,0,0,D.width,D.height);var g=f.s("shape3d.reflector.background");if(g){var M=Q.getParameter(Q.COLOR_CLEAR_VALUE);oe(Q,g)}else oe(Q,[0,0,0,1]);Vk.for(Q).glState.depth.mask=!0,Q.clear(Q.COLOR_BUFFER_BIT|Q.DEPTH_BUFFER_BIT);var A=f.s("shape3d.reflector.clip"),r=A===m?.003:A,a=te(b),y=Ok(b);q.setFromNormalAndCoplanarPoint(N,R.add(N.clone().multiplyScalar(r))),q.applyMatrix4(j.fromArray(y)),s.set(q.normal.x,q.normal.y,q.normal.z,q.constant),j.fromArray(a).getInverse(j),T.set(Math.sign(s.x),Math.sign(s.y),1,1).applyMatrix4(j),s.multiplyScalar(2/s.dot(T)),a[2]=s.x-a[3],a[6]=s.y-a[7],a[10]=s.z-a[11],a[14]=s.w-a[15];var $=b._computedProjectMatrix;b._computedProjectMatrix=a,f._reflecting=!0;var Z=f.s("shape3d.reflector.shadow"),C={renderAxis:!1,renderEdit:!1,renderGrid:!1};"disabled"===Z?(C.createShadowMap=!1,C.renderShadow=!1):"scene"===Z?C.createShadowMap=!1:C.useReflectorSelfShadowMap=!0,b.renderScene(C),b._computedProjectMatrix=$,W.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),W.multiply(j.fromArray(b._projectMatrix)),W.multiply(j.fromArray(b._viewMatrix)),g&&oe(Q,M),Xk(Q),w(l,b);var _=f.s("shape3d.reflector.blur");if(_){var J=b.getPostProcessingModule("Blur");J&&J.drawImpl(Q,D,_,_>=3,f.s("shape3d.reflector.blur.iterations"))}var v=b.getPostProcessingModule("Glitch");v&&v.enable&&v.onlyReflector&&(D=v._42(Q,D));var K=Q._compiledShader.reflector;K||(K=Q._compiledShader.reflector=new rg.Shader(Q,Rf.Reflector.vs,Rf.Reflector.fs)),K.bind(),Q.activeTexture(Q.TEXTURE0),_p(Q,D.texture),K.uniforms.tDiffuse=0,K.uniforms.color=Jh(f.s("shape3d.reflector.color")||"rgb(128,128,128)"),K.uniforms.textureMatrix=W.toArray(),K.uniforms.modelMatrix=p?z:On(f),K.uniforms.viewMatrix=Ok(b),K.uniforms.projectionMatrix=te(b);var H=U._reflectorVbuffer;H.upload(),K.attributes.pos.pointer(H);var O=this.s("shape3d.transparent");if(O){var k=Vk.for(Q).glState,x=k.depth.mask;k.depth.mask=!1}return Q.drawArrays(Q.TRIANGLES,0,H.data.length/3),O&&(k.depth.mask=x),f._reflecting=!1,Q.useProgram(b._prg),_p(Q,P),!0}}()}),Rf.Reflector={vs:["attribute vec3 pos;","uniform mat4 textureMatrix;","uniform mat4 modelMatrix;","uniform mat4 viewMatrix;","uniform mat4 projectionMatrix;","varying vec4 vUv;","void main() {"," vUv = textureMatrix * modelMatrix * vec4( pos, 1.0 );"," gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4( pos, 1.0 );","}"].join("\n"),fs:["precision highp float;","uniform vec3 color;","uniform sampler2D tDiffuse;","varying vec4 vUv;","float blendOverlay( float base, float blend ) {"," return( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );","}","vec3 blendOverlay( vec3 base, vec3 blend ) {"," return vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );","}","void main() {"," vec4 base = texture2DProj( tDiffuse, vUv );"," vec2 tUv = vUv.xy / vUv.w;"," if (tUv.x < .0 || tUv.y < .0 || tUv.x > 1. || tUv.y > 1.) discard;"," gl_FragColor = vec4( blendOverlay( base.rgb, color ), base.a );","}"].join("\n")};var it=function(i,l){bo(it,this,[i,l])};Ri(it,ht,{_80o:function(){}});var jt=function(D,o){bo(jt,this,[D,o])};Ri(jt,gt,{_25Q:1,validate:function(f){var F=this;if(!F.s("geometry.cache")||!F.info){var b=F.gv,r=F.data,_=F.s,M=_("edge.width"),Y=r._40I,s=r._41I;if(F.shapeModel=F.info=F.lineShapeModel=P,Y&&s){var T,Z,$,X,g,a,z,O,p,H,S=r.isLooped(),e=_(Xd),d=t.getEdgeType(e);if(d){var K=d(r,Aj(F,b,r,S,e),b,F._19Q);if(!K.points||K.points.isEmpty())return;a=F.info={},z=K.segments,g=K.points,O=g.size();for(var E=Y.getElevation(),J=s.getElevation(),o=0;O>o;o++){var A=g.get(o);A.e==P&&(A.e=E+(J-E)*o/(O-1))}p=Rc(g.get(0)),H=Rc(g.get(O-1));var w=O%2;0===w?(a.c1=Rc(g.get(O/2-1)),a.c2=Rc(g.get(O/2))):a.p3=Rc(g.get((O-w)/2)),a.s1=p,a.s2=Rc(g.get(1)),a.t1=Rc(g.get(O-2)),a.t2=H}else{g=new Po,a=F.info={};var L=_("edge.offset"),V=_("edge.center"),h=_("edge.source.t3"),m=_("edge.target.t3"),Q=fk(b,r,"source"),N=fk(b,r,"target");if(!Q||!N)return b.invalidateData(r),delete F.info,!1;if(h&&(Q[0]+=h[0],Q[1]+=h[1],Q[2]+=h[2]),m&&(N[0]+=m[0],N[1]+=m[1],N[2]+=m[2]),e===Lb){z=_("edge.segments");var B=a.points=_(ke)||rh;if(O=B.size()){p=Rc(B.get(0)),H=Rc(B.get(O-1)),!V&&L&&($=se(p,Q,!0),L=v(L,Yh(Q,p)),Q=[Q[0]+$[0]*L,Q[1]+$[1]*L,Q[2]+$[2]*L],$=se(N,H,!0),L=v(L,Yh(H,N)),N=[N[0]-$[0]*L,N[1]-$[1]*L,N[2]-$[2]*L]);var w=O%2;0===w?(T=Rc(B.get(O/2-1)),Z=Rc(B.get(O/2))):a.p3=Rc(B.get((O-w)/2)),a.s1=Q,a.s2=p,a.t1=H,a.t2=N}else!V&&L&&($=se(N,Q,!0),X=Yh(Q,N),L=Oo(L,X),Q=[Q[0]+$[0]*L,Q[1]+$[1]*L,Q[2]+$[2]*L],N=[N[0]-$[0]*L,N[1]-$[1]*L,N[2]-$[2]*L]),T=Q,Z=N;g.add({x:Q[0],y:Q[2],e:Q[1]}),g.addAll(B),g.add({x:N[0],y:N[2],e:N[1]})}else{var k=Aj(F,b,r,S,e);if(F._19Q||(k=-k),S){var c=Q[0],D=Q[1],n=Q[2],u=Y.getTall()/2+k;T=[c-k,D+u,n],Z=[c+k,D+u,n],g.add({x:c-k,y:n,e:D}),g.add({x:c-k,y:n,e:D+u}),g.add({x:c+k,y:n,e:D+u}),g.add({x:c+k,y:n,e:D})}else{$=se(N,Q,!0),X=Yh(Q,N);var j={x:Q[0],y:Q[2]},x={x:N[0],y:N[2]},G=hd(P,j,x,k),l=G.x-j.x,R=G.y-j.y;L=Oo(L,X),$[0]*=L,$[1]*=L,$[2]*=L,T=[Q[0]+$[0]+l,Q[1]+$[1],Q[2]+$[2]+R],Z=[N[0]-$[0]+l,N[1]-$[1],N[2]-$[2]+R],V?(g.add({x:Q[0],y:Q[2],e:Q[1]}),g.add({x:T[0],y:T[2],e:T[1]}),g.add({x:Z[0],y:Z[2],e:Z[1]}),g.add({x:N[0],y:N[2],e:N[1]})):(g.add({x:T[0],y:T[2],e:T[1]}),g.add({x:Z[0],y:Z[2],e:Z[1]}))}}a.c1=T,a.c2=Z}a._lastPointsSegments={points:g,segments:z},a.list=_(ml)===ei?F.createTubeModel(g,z,M/2,f):F.createLineModel(g,z,M,"edge","edge.dash")}}},invalidateCachedGeometry:function(){this.info=P}});var kt=function(J,z){bo(kt,this,[J,z]),this._needRecoverPosition=!0};Ri(kt,ht,{_80o:function(l,u,k){var K=this,O=K._matWithExtraction||K.mat;if(O&&(!K.s("shape3d.reflector")||l._picking)){var P=K.gv,h=K.shapeModel;Vi(P,O),h?Mj(P,K.data,h,K,K.getBodyColor(),k):(Be(K,l,u,"left",k),Be(K,l,u,"front",k),Be(K,l,u,"right",k),Be(K,l,u,"back",k),Be(K,l,u,"top",k),Be(K,l,u,"bottom",k)),yb(P)}},validate:function(Y,Z){var f,w,u=this,v=u.s,U=u.data,R=U._thickness/2,b=U.isClosePath(),y=U.getPoints(),e=U.getSegments(),k=v(Mb),p=Y&&Y.uv;if(u.clear(),u.dispatchBoundingBoxChanged(),t.extractShapeTranslation||t.extractVerticesTranslation){var H=new vj.Vector3(U.p3());y=Wl(y),y.forEach(function(N){N.x-=H.x,N.y-=H.z}),u._vsTranslation=(new vj.Matrix4).setPosition(H);var E=U.getShapeElevation;U.getShapeElevation=function(){return-(this.getTall()||0)*(this._anchorElevation-.5)}}else u._vsTranslation=null;if(0>R){u.s("shape3d.reflector")&&(u._reflectNormal=null);try{var g=v("shape3d.image.projection");if(g&&g[4]){var J=U.p3(),h=J[0],r=J[2];g=[h+g[0],g[1]+r,h+g[2],g[3]+r]}w=u.shapeModel=Nm(y,e,v(Qg),v(dh),k,v(xn),U.getTall(),U.getShapeElevation(),b,g)}catch(T){w=u.shapeModel={}}v(qr)?v("shape3d.image")||delete w.uv:(delete w.vs,delete w.ns,delete w.uv),v("shape3d.top.image")||delete w.top_uv,v("shape3d.bottom.image")||delete w.bottom_uv}else if(v(ml)===ei)f=xb(y,e,k,b),w=u.shapeModel={vs:[]},v("shape3d.image")&&(w.uv=[],w.sum=v(xn)||vc(f)||1,w.len=0),v(Qg)&&!b&&(w.top_vs=[],v("shape3d.top.image")&&(w.top_uv=[])),v(dh)&&!b&&(w.bottom_vs=[],v("shape3d.bottom.image")&&(w.bottom_uv=[])),u._12O(f,R);else{var x,K,c,s,$,i,_,d,M,n;if(f=xb(y,e,k,b),$=u.vf(Nl,p,!1,Z),R&&(i=u.vf(tp,p,!1,Z),_=b?P:u.vf(dk,p,!1,Z),d=b?P:u.vf(ge,p,!1,Z),M=u.vf(lh,p,!1,Z),n=u.vf(Li,p,!1,Z)),R){for(var F=0,l=f.length;l>F;F++)f[F]=u._tryRemoveBezierPoints(f[F],R);u._12O(f,R)}else $&&f.forEach(function(t){if(s=t.length,s>0)for(x=t[0],c=1;s>c;c++)K=t[c],u.addV($.vs,x,K),x=K});u._20Q(f),Y||($&&($.ns=eq($.vs),Tm($,"vs"),Tm($,kg)),R&&(i&&(i.ns=eq(i.vs),Tm(i,"vs"),Tm(i,kg)),_&&(_.ns=eq(_.vs),Tm(_,"vs"),Tm(_,kg)),d&&(d.ns=eq(d.vs),Tm(d,"vs"),Tm(d,kg)),M&&(M.ns=eq(M.vs),Tm(M,"vs"),Tm(M,kg)),n&&(n.ns=eq(n.vs),Tm(n,"vs"),Tm(n,kg))))}var O=u.mat=U.getPointsMatrix3d().getElements();u._vsTranslation?O=u._matWithExtraction=(new vj.Matrix4).fromArray(O).multiply(u._vsTranslation).toArray():u._matWithExtraction=null,Y&&(jf(u,O,Y,w,Z),u.clear()),E!=P&&(U.getShapeElevation=E)},_20Q:function(t){var x,O,b,p,j,z,l,m=this,R=m.front,k=m.back,B=m.top,I=m.bottom,f=R?R.tuv:P,V=k?k.tuv:P,N=B?B.tuv:P,d=I?I.tuv:P,J=0;(f||V||N||d)&&(x=m.s(xn)||vc(t)||1,t.forEach(function(y){if(O=y.length,O>0)for(z=y[0],b=1;O>b;b++)l=y[b],p=J/x,J+=Yh(z,l),j=J/x,m._14O(R,p,j),m._14O(k,1-j,1-p),m._14O(B,p,j),m._14O(I,p,j),z=l}))},_14O:function(I,g,x){if(I){var D=I.uv,B=I.tuv;if(B){if(D)var c=D[0]+(D[6]-D[0])*g,o=D[1]+(D[7]-D[1])*g,d=D[2]+(D[4]-D[2])*g,L=D[3]+(D[5]-D[3])*g,w=D[2]+(D[4]-D[2])*x,e=D[3]+(D[5]-D[3])*x,i=D[0]+(D[6]-D[0])*x,M=D[1]+(D[7]-D[1])*x;else c=g,o=0,d=g,L=1,w=x,e=1,i=x,M=0;B.push(d,L,w,e,i,M,i,M,c,o,d,L)}}},_13O:function(l){var P=l.uv,u=l.tuv;u&&(P?u.push(P[2],P[3],P[4],P[5],P[6],P[7],P[6],P[7],P[0],P[1],P[2],P[3]):u.push(0,1,1,1,1,0,1,0,0,0,0,1))},_tryRemoveBezierPoints:function(C,G){var I=C.length;if(4>I)return C;var N,r,g,U,K,z,m=!1,d=function(j){return C[j]},h=function(n){return C[I-1-n]};for(K=0;1>=K;K++)for(z=K?h:d,r=z(0),g=z(1),N=2;I-1>N;N++)if(U=z(N),!U.remove)if(U.b){var H=hd(r,g,U,G);H.adjust?(U.remove=!0,m=!0):(r=g,g=U)}else r=g,g=U;if(!m)return C;var V=[];for(N=0;I>N;N++)C[N].remove||V.push(C[N]);return V},_12O:function(D,J){var R,I,c,Q,s,u=this.s("shape3d.point.epsilon"),E=this;D.forEach(function($){if(s=$.length,s>0)for(R={p:$[0],n:!0},Q=1;s>Q;Q++)I=$[Q],c=s-1>Q?$[Q+1]:P,c&&Math.abs(I.x-c.x)2?hd(z[z.length-2],n,T,b):hd(P,n,T,b),L=nl(n,I),C?C.top_vs&&d._10O(L,I,K,h,x,C.top_vs,C.top_uv):(v=d.left)&&(d.addV(v.vs,L,I),d._13O(v))),c=O?hd(n,T,O,b):f&&z.length>2?hd(n,T,z[1],b):hd(n,T,P,b),y=nl(T,c),C){var _,k,q=C.vs,F=C.uv,Q=C.sum;for(F&&(_=C.len/Q,C.len+=Yh(n,T),k=C.len/Q),j=d._9O(L,I,K,h,x),Y=d._9O(y,c,K,h,x),J=0;K>J;J++)W=J+1,rl(q,j[W]),rl(q,Y[J]),rl(q,j[J]),rl(q,Y[J]),rl(q,j[W]),rl(q,Y[W]),F&&(H=J/K,S=W/K,F.push(_,S,k,H,_,H,k,H,_,S,k,S));!O&&C.bottom_vs&&d._10O(y,c,K,h,x,C.bottom_vs,C.bottom_uv,!0)}else!O&&(v=d.right)&&(d.addV(v.vs,c,y),d._13O(v)),(v=d.front)&&d.addV(v.vs,I,c),(v=d.back)&&d.addV(v.vs,y,L),(v=d.top)&&d.addH(v.vs,I,c,y,L,!0),(v=d.bottom)&&d.addH(v.vs,L,y,c,I);Z.p=T,Z.f=c,Z.b=y},_10O:function(K,J,E,g,O,o,N,H){var i,w,R=this,X=R.data,Y=R._9O(K,J,E,g,O),p=(K.x+J.x)/2,v=(K.y+J.y)/2,S=X.getShapeElevation(),P=0;for(P=0;E>P;P++)H?(rl(o,Y[P]),rl(o,Y[P+1])):(rl(o,Y[P+1]),rl(o,Y[P])),rl(o,[p,S,v]),N&&(H?(i=M*(P+1)/E+g,w=M*P/E+g):(i=M*P/E+g,w=M*(P+1)/E+g),N.push(.5-.5*n(w),.5-.5*r(w),.5-.5*n(i),.5-.5*r(i),.5,.5))},_9O:function(b,s,Q,z,g){var A,K,Y=this,I=Y.data,F=[],G=(b.x+s.x)/2,V=(b.y+s.y)/2,N=I.getTall()/2,O=I.getShapeElevation(),d=0;for(g==P&&(g=M);Q>=d;d++)A=g*d/Q+z,K=n(A),F.push([G+(b.x-G)*K,O+N*r(A),V+(b.y-V)*K]);return F},addV:function(H,Q,M){var e=Q.x,Y=Q.y,f=M.x,O=M.y,D=this.data,$=D.getShapeElevation(),K=D.getTall()/2;H.push(e,$-K,Y,f,$-K,O,f,$+K,O,f,$+K,O,e,$+K,Y,e,$-K,Y)},addH:function(B,t,Z,n,G,Q){var z=this.data,j=z.getTall()/2,L=z.getShapeElevation()+(Q?j:-j);B.push(t.x,L,t.y,Z.x,L,Z.y,n.x,L,n.y,n.x,L,n.y,G.x,L,G.y,t.x,L,t.y)},vf:function(K,O,t,I){var w,$=this,n=$.gv.getFaceVisible($.data,K);return(t||n)&&(w=dm($,K,I),w.vs=[],w.tuv=n&&(w.texture||O)?[]:P,w.visible=n),w}});var lt=function(e,M){bo(lt,this,[e,M])},mt={},nt=function(u){return/\.(png|jpg|gif|jpeg|bmp|svg)$/i.test(u)};Ri(lt,ht,{validate:function(){var z=this,T=z.gv,D=z.data,F=z.s,B=Jh(F("points.color")),C=F("points.size"),o=F("points.uv.offset"),h=F("points.image");!h||nt(h)||cd.test(h)||(mt[h]||(mt[h]=z._createCachedImage(h)),h=mt[h]);var p,A,O=D._modelDirty,t=F("points.model");if(t){if(z._lastShapeModel!==t||!z.shapeModel){var y=on(z,t);if(!y)return;var r=[],L={};z.eachShapeModel(function(t){for(var i=0,H=t.length;H>i;i+=3){var R=t[i],u=t[i+1],x=t[i+2],Z=""+R+"_"+u+"_"+x;L[Z]||(L[Z]=!0,r.push(R,u,x))}},y),z._setShapeModelPoints(new ip(r)),z._lastShapeModel=t,O=!0}p=z.shapeModel.vs.length,A=p/3}else{var k=D.getPoints();if(A=p=k.length,O||D._pointsDirty||!z.shapeModel){for(var X=[],l=0;A>l;l++){var c=k[l];c&&X.push(c.x,c.e,c.y)}z._setShapeModelPoints(new ip(X)),D._pointsDirty=!1,z._lastShapeModel=null,O=!0}}if(z.info={mat:On(D),size:C,diffuse:B,opacity:F("points.opacity"),texture:h,alphaTest:F("points.transparent")?0:F("alphaTest"),uvScale:F("points.uv.scale"),uvOffset:o,discardSelectable:F("points.discard.selectable")},O||D._colorsDirty){var R=!1,V=D.getColors();if(V&&V.length>0)for(var S=[],l=0;A>l;l++)for(var P=V[l],K=P?(R=!0,Jh(P)):B,U=4*l,M=0;4>M;M++)S[U+M]=K[M];z.shapeModel.cs=R?new ip(S):null,D._colorsDirty=!1}if(O||D._sizesDirty){var Y=!1,q=D.getSizes();if(q&&q.length>0)for(var f,j=[],l=0;A>l;l++)f=q[l],f>=0?(j.push(f),Y=!0):j.push(C);z.shapeModel.ss=Y?new ip(j):null,D._sizesDirty=!1}if(O||D._offsetsDirty){var v=!1,i=D.getUvoffsets();if(i&&i.length>0)for(var J,d,I,b=[],l=0;A>l;l++)J=2*l,d=i[J],I=i[J+1],d!=m&&I!=m?(b.push(d,I),v=!0):b.push(o[0],o[1]);z.shapeModel.os=v?new ip(b):null,D._offsetsDirty=!1}if(O||z._lastPointNumber!==A){this.dispose();var u=T.pickColorMap,H=z._startPickId=u._pickIdUsed;u._pickIdUsed=H+A;for(var X=[],l=0;A>l;l++){var g=H+l,G=Ss(g);X.push(G[0],G[1],G[2],G[3]),u[g]||(u[g]={data:D,part:l})}z.shapeModel.ps=new ip(X),z._lastPointNumber=A}D._modelDirty=!1,this.dispatchBoundingBoxChanged()},_setShapeModelPoints:function(p){var K=this,O=K.shapeModel,R=K.shapeModel={vs:p};if(!O)return R;var n=p.length,V=Math.round(n/3);return O.cs&&O.cs.length==4*V&&(R.cs=O.cs),O.ss&&O.ss.length==V&&(R.ss=O.ss),O.os&&O.os.length==2*V&&(R.os=O.os),O.ps&&O.ps.length==4*V&&(R.ps=O.ps),R},_createCachedImage:function(J){var L=128,u=Hj(),E=u.getContext("2d");_j(u,L,L,1),vb(E,{width:L,height:L,comps:[{type:J,background:"white",borderWidth:0,rect:[0,0,L,L]}]},0,0,L,L);var O=F.Math.generateUUID();return Tr[O]=u,O},_80o:function(K,U){var S=this,D=S.gv,N=D._picking;if(!N||D.isSelectable(S.data)){var y=S.shapeModel,T=S.info;if(y&&y.vs&&y.vs.length){var I=Vk.for(K);I.useProgram(S._asureProgram(K));var n=I.directUniforms(),l=I.directAttribs();n.modelMatrix=T.mat,n.modelViewMatrix=kl([],D._viewMatrix,T.mat),n.projectionMatrix=D._projectMatrix,n.viewMatrix=D._viewMatrix,n.scale=D.getHeight()/2,n.size=T.size,n.diffuse=T.diffuse,n.opacity=T.opacity,n.map=D.getTexture(T.texture,S.data),n.alphaTest=T.alphaTest,n.resolution=D.getDevicePixelRatio(),n.discardSelectable=T.discardSelectable,n.uvScale=T.uvScale,l.uvOffset=!N&&y.os?Gk(K,D._buffer.os,y.os,P):T.uvOffset,n.blackout=K._blooming&&!S.data.s("bloom"),l.position=Gk(K,D._buffer.vs,y.vs,P),N?(n.picking=!0,l.pickColor=Gk(K,D._buffer.ps,y.ps,P),n.useColor=!1,l.color=null):(n.picking=!1,l.pickColor=null,y.cs?(n.useColor=!0,l.color=Gk(K,D._buffer.cs,y.cs,P)):(n.useColor=!1,l.color=null)),y.ss?(n.useSizeArray=!0,l.sizeArray=Gk(K,D._buffer.ss,y.ss,P)):(n.useSizeArray=!1,l.sizeArray=null),Ln(K,0,y.vs.length/3,K.POINTS),I.useProgram(U),l.disable(),D.shadowMap.enable&&D.shadowMap.createShadow(),D.flowMap.createFlow(n)}}},_asureProgram:function(H){return H._pointsShader||(H._pointsShader=this.gv._postProcessing.createShader(H,lt.shaderSrc)),H._pointsShader.program},dispose:function(){lt.superClass.dispose.call(this);var h=this._startPickId,E=this._lastPointNumber;if(h&&E){for(var $=this.gv.pickColorMap,x=0;E>x;x++){var C=h+x;$[C]&&delete $[C]}delete this._startPickId,delete this._lastPointNumber}}}),lt.shaderSrc="! !~v!o jp+s!nf!{njbTuu5o!jnppQe`fmmhW!j*f!xfNwbjuusdjfyqj>p!o^N!b4u!s]j^y!<3 !!]vyojjsgupbsNno!pnjbuud5f!kwpjsfqx!N)b!u>s!jfywt!jfu{jjpToup!mfp{sj!!woPpgjgutjftupw!fodp5j!uqjjtdplQDwpnm!p s<<* ! 1!/v2o!j-gepfsnns!pggmtpobbus!ut!j){5fdo!jogppjsunj!tgpmQpwbnu!!5sdfftwp!m vm!!evftnfsTpjg{tfoBbsssub!z4f!Busfstbgzgq!fsdpumjpwDfwN!b u|s!j*ys)p!mnpbDuf5t!vn)!!*g!j|! f!tsmffu!v s~o!! n<]s!p3m!p^D]l!d4j!q^!!>>!>s!p.m!p2D/w1!< |!!~* h o!jwlpdjjeq!)n!bgjjo!) *|!^#! !~q s~f!d jb!us!!esjpgmgpvDthfbu>z!m+!!esjptmdpbDsfetTvfgmgfjdeu!b cg,p!swnv!!c pd!3w!vv!w3Tddfbwm!f <| !!*wfbmsczbjuodhf!mwffTde3s!bwdPtgjgetaf!u}<} ! h$ojjgl!dejfqgaj)o!fgej)!! V*T!FQ`BNNB`QF!T*V !!)veofjogjpgsfne!!tgbjn$q!m f~s!3 E!!|s!phmmp`DGfstbvhgDgpjmep!s !|>!!fwtfmdf5!)~1!/ 1<-*!!1z/u1j-d!b1q/p1!-+!!2b//1s*pt!fsDppmmppDsf1)){var w=p.info={},W=a.getSegments(),G=a.getThickness(),x=Rc(E.get(0)),R=Rc(E.get(B-1)),h=B%2;if(0===h?(w.c1=Rc(E.get(B/2-1)),w.c2=Rc(E.get(B/2))):w.p3=Rc(E.get((B-h)/2)),w.s1=x,w.s2=Rc(E.get(1)),w.t1=Rc(E.get(B-2)),w.t2=R,s(ml)===ei){if(t.extractPolylineTranslation||t.extractVerticesTranslation){var y=new vj.Vector3(a.p3());E=Wl(E),E.forEach(function(p){p.x-=y.x,p.e-=y.y,p.y-=y.z}),p._vsTranslation=(new vj.Matrix4).setPosition(y),p._matWithExtraction=(new vj.Matrix4).fromArray(D).multiply(p._vsTranslation).toArray()}else p._vsTranslation=null,p._matWithExtraction=null;w.list=p.createTubeModel(E,W,G/2,O)}else w.list=p.createLineModel(E,W,G,"shape.border","shape.dash")}},invalidateCachedGeometry:function(){this.shapeModel=this.info=this.lineShapeModel=P},_80o:function(n,V,H){var x=this,K=x.shapeModel;if(K){var q=x.mat;(t.extractPolylineTranslation||t.extractVerticesTranslation)&&x._matWithExtraction&&(q=x._matWithExtraction);var W=x.gv;Vi(W,q),Mj(W,x.data,K,x,x.getBodyColor(),H),yb(W)}}});var pt=F.graph3d.PostProcessing=function(k){var A,b,s,X,Z=this,S={},i=!1,B=!1;!function(){$.keys(pt).forEach(function(V){S[V]=new pt[V](k)})}(),Z.getModule=function(w){return w?S[w]:Z},Z.getModuleList=function(){return $.keys(S)},Z._serializable=!0,Z.handleDataModleChange=function(M,x){M&&(Z._serializable&&M.setPostProcessingData(Z.serialize()),M.removeSerializeListener(Z.onDataModelSerialize,Z)),x&&(x.addSerializeListener(Z.onDataModelSerialize,Z),Z.deserialize(x))},Z.onDataModelSerialize=function(t){"serialize"===t.type?Z._serializable&&(k.dm()._postProcessingData=Z.serialize()):"deserialize"===t.type&&Z.deserialize(k.dm())},Z.isDeserializeDisabled=function(X){return!Z._serializable||X.a("sceneBloom")!==m},Z.isSerializable=function(){return Z._serializable},Z.setSerializable=function(z){Z._serializable=z,z||k.dm().setPostProcessingData(m)},Z.serialize=function(){var u,N,g,G,_={};for(N in S)if(g=S[N],G=g.serializeProperties){u={},g.enable&&(u.enable=!0);for(var t in G){var E=g[t];E!=G[t]&&(u[t]=E)}$.keys(u).length&&(_[N.toLowerCase()]=u)}return _},Z.deserialize=function(B){var r,U,i,h,z,n={},s={};for(r in S){i=S[r],h=i.serializeProperties;var T={},W="scene"+r,F=B.a(W);F!==m&&(T.enable=F);for(var z in h)F=B.a(W+z[0].toUpperCase()+z.slice(1)),F!==m&&F!==h[z]&&(T[z]=F);Dp(T)||(s[r[0].toLowerCase()+r.slice(1)]=T)}if(Dp(s)&&(s=B.getPostProcessingData()),s)for(U in s)if(U&&(r=U[0].toUpperCase()+U.slice(1),i=S[r])){n[r]=!0,h=s[U];var O=!!h.enable;Z.enableModule(r,O),r="scene"+r,B.a(r,O),i.resetProperties&&i.resetProperties();for(z in h)if("enable"!==z){var F=h[z];i[z]=F,B.a(r+z[0].toUpperCase()+z.slice(1),F)}}for(r in S)n[r]||(i=S[r],i.enable=!1,i.resetProperties&&i.resetProperties())},Z.getRenderTarget=function(){return A},Z.blitScreen=function(I,S,n,$,J){var U=k.getGL();if(U&&(B||G())){I&&(I.bind(U),k.setViewport(U,0,0,I.width,I.height)),J&&J.clear===!1||U.clear(U.COLOR_BUFFER_BIT|U.DEPTH_BUFFER_BIT),n||(n=b),n.bind(),U.activeTexture(U.TEXTURE0+0),_p(U,S||U._emptyTexture);var d=n.uniforms;d.image=0;var q=1;if($)for(var V in $){var r=$[V];r instanceof WebGLTexture&&(U.activeTexture(U.TEXTURE0+q),_p(U,r),r=q,q++),d[V]=r}if(s.upload(),X.upload(),n.attributes.pos.pointer(X),U.drawElements(U.TRIANGLES,6,U.UNSIGNED_SHORT,0),q>1)for(;--q>=0;)U.activeTexture(U.TEXTURE0+q),_p(U,null);else _p(U,null);I&&I.unbind(U)}},Z.decodeShader=function(R){var v,g,m,_="",j="";for(m=0;mx;x++)L=G[x].trim(),S[L]&&(S[L].enable=a);i=!1;for(L in S)if(S[L].enable){i=!0;break}};var G=function(){if(B)return!1;var d=k.getGL();return d?(A=new cs.RenderTarget(k,d,null,null,{samples:l.renderTextureSamples||1,minFilter:d.LINEAR,magFilter:d.LINEAR}),b=new rg.Shader(d,Y.vs,Y.fs),s=rg.Buffer.createIndexBuffer(d,new Uint16Array([0,2,1,1,2,3])),X=rg.Buffer.createVertexBuffer(d,new Float32Array([0,0,1,0,0,1,1,1])),B=!0):!1},Y=Z.blitScreenShaderSrc={vs:["attribute vec2 pos;","varying vec2 vUv;","void main(void) {","gl_Position = vec4(pos.x * 2.0 - 1.0, -pos.y * 2.0 + 1.0, 0.0, 1.0);","vUv = vec2(pos.x, 1.0 - pos.y);","}"].join("\n"),fs:["precision highp float;","uniform sampler2D image;","varying vec2 vUv;","void main() {","gl_FragColor = texture2D(image, vUv);","}"].join("\n")};Z.contextLost=function(){B=!1;for(var X in S)S[X].contextLost&&S[X].contextLost()},Z.render=function(D,q,r,J){if(i&&(B||G())){A.setSize(D,q,r),A.bind(D);var d=D.getParameter(D.COLOR_CLEAR_VALUE);d&&0===d[0]&&0===d[1]&&0===d[2]&&0===d[3]?d=null:oe(D,[0,0,0,0]),D.clear(D.COLOR_BUFFER_BIT|D.DEPTH_BUFFER_BIT),k.setViewport(D,0,0,q,r),J=J||{};var R=J.renderAxis!==!1,Q=J.renderEdit!==!1;J.renderAxis=J.renderEdit=!1,k.renderScene(J),A.unbind(D);for(var C=0,e=k._glCapabilities.maxAttributes;e>C;C++)D.disableVertexAttribArray(C);var m,j=A;for(m in S)j=S[m]._42(D,j)||j;k.setViewport(D,0,0,q,r),d&&oe(D,d);var l=Z.getModule("Fxaa");return l&&l.enable?Z.blitScreen(null,j.texture,l.getShader(D),{resolution:[1/q,1/r]}):Z.blitScreen(null,j.texture),D.useProgram(k._prg),k._renderAxisAndEditHelper(R,Q),!0}}},qt=F.graph3d.PostProcessing.HueSaturation=function(u){function F(){var k=u.getGL();return k?(c=new cs.RenderTarget(u,k),n=u._postProcessing.createShader(k,qt.hueSaturationShader),l=rg.Buffer.createIndexBuffer(k,new Uint16Array([0,2,1,1,2,3])),E=rg.Buffer.createVertexBuffer(k,new Float32Array([0,0,1,0,0,1,1,1])),t=!0):!1}var l,E,n,c,z=this,L=!1,t=!1,H=[],S=[],o=[];this.serializeProperties={hue:[0,0,0,0,0,0,0],saturation:[0,0,0,0,0,0,0],lightness:[0,0,0,0,0,0,0]},this.resetProperties=function(){var g=this.serializeProperties;for(var m in g)this[m]=g[m]},this.resetProperties(),$.defineProperties(z,{enable:{get:function(){return L},set:function(Q){!!L!=!!Q&&(L=Q,u.iv())}},hue:{get:function(){return H.map(function(X){return x(180*X)})},set:function(r){if(H!==r&&7===r.length){for(var c=0;7>c;c++)H[c]=r[c]/180;u.iv()}}},saturation:{get:function(){return S.map(function(o){return x(100*o)})},set:function(E){if(S!==E&&7===E.length){for(var h=0;7>h;h++)S[h]=E[h]/100;u.iv()}}},lightness:{get:function(){return o.map(function(u){return x(100*u)})},set:function(i){if(o!==i&&7===i.length){for(var q=0;7>q;q++)o[q]=i[q]/100;u.iv()}}}}),z.contextLost=function(){t=!1},z._42=function(s,x){if(L&&(t||F())){var a=x.width,M=x.height;if(a&&M){c.setSize(s,a,M),Eo(s,c.frame),u.setViewport(s,0,0,c.width,c.height),s.clear(s.COLOR_BUFFER_BIT|s.DEPTH_BUFFER_BIT),n.bind(),s.activeTexture(s.TEXTURE0+0),_p(s,x.texture);var f=n.uniforms;return f.image=0,f.hue=H,f.saturation=S,f.lightness=o,l.upload(),E.upload(),n.attributes.pos.pointer(E),s.drawElements(s.TRIANGLES,6,s.UNSIGNED_SHORT,0),_p(s,null),Xk(s),c}}}};qt.hueSaturationShader="!! b~u!u sf!dw3V!ww!V w<<* 1 /!2w!p-j1e/!1n!b-j1o/)2w!p,j!e1*/!3|! +!!hzm/`tQppqt.j!u-j1p/o2!!>.!!w1f/d35!)+q!pyt/^#!! q~s!f db!nsqpmmfpsD3hEb!sjGn`bmhhf!< f!tmtt]iN!B Y `~S!B O~H!F ^<!!gfmhpobbuS!titvffoBumimh-j!mg!m pv!ff!h>o!bjSooWpbjmuvbfs!v,u!b)ti!v f3!/f1h1>*!!ssffuuovvspod!`wfbvmiv)f!!g,j!!2 /|1!<* ,!,fsmftufo!vjpgd!`)fwvbim!v !!sffmutofv!psdf`ufvvsio!!uwobjm)v!fst!bfuhvosbbsu!j pm!pfbhuo!bjso!W*b7m!v>f?-!!fghmopbbsu)!!tgbju!v s~b!u j~p!o Bb!ofhhfo*b!s|! !|g!m*p6b/u1!!w,b!m*vsff!u>o!vjpodW`bfmvvif)!u+b!p)m2g/!1=!!,i!)t!bgujv!s b|u!j*p,o,Bsmfmu!o,v!ptdb`ufvvsib!uv!fs-f!u1o/v1p-d!`2f/v1i*!u!!fmhjohbisu!oufotjt!S bp!mmgj!h ih!iiu!oufbtptmSgb!o hu!vmstoi!!j4odWfbwm!v fu!vsspom!pjdo!W5bdmfvwf!! ,|!!)*w)!o+j!b)n2!/e1j!p.w!!j o W~b!m vp!biu!! g~3!- !!,i!vif!* !||! *!1j/g1!!)=i!vif)!!=g!j1!/ 1 *~ !! iE!d2!/01!<* h!!f.m!tsf)!!j,g!!1)/i5v!f>!!?i!!2 /|1!*f t!mifv!f~!!. >7!/i1!! +|!!i*vyfb*N!d=!!>2>/!1h*) !!gsjf!tf!t>m!fg!2~!!, !<)bgu3m!f.E!dg!20*!!*+c!!7./!1h!)+!!>i!vif!< |!!f*mytbfN!dj!g>!>)!)s3)/!1g!j+!! i v.!!g13/<3 )!!f0m!tbfu!mjfgE!d)!);4!/*1o!j+N!di!v,f!*y!b=N!d3)/!10*! b!usmfftE!d>!!@g!26!/,1!!)=g!3m!!.>!!gt2!* ! +!!.b!uimvffE*d!!+u!b7p/m1gb!Ngd2)3!smh!c ) wc!*>c!!1-/h1)*o!j|n !!-ssh)co!j>n!!w>f!do4j)Nidt!mu/b{p*m!!|c !!ugbmppmbgu!! g<3hj!gh!!)uibtpmm/g{!! = !!sg!3u!b>p!migt!m /<{1!/+1!!)>2!/m1!!u,b!pimtgm!/ z<*1m!ttf! u!bgp3m!g>!! i!!iit!mu/bzp!m.g!!i t|m!/*zd!!+4!diftwm)/m{t~!!3 /<1c!h+s!!iotsmv/u{f!s.!! g~3!< < *!*s1h/c4/0s1!/>2!)i!v.f!3ys/hmct)ig!2--3!gg!3--2!gi)tcmh/sy3!f,v!i)!2>/!1c0/4c/h1s*!* << *!ys/hmct/ih!!->3!gi!v-f23gs)hc";var rt=F.graph3d.PostProcessing.Bloom=function(j){function w(){var F=j.getGL();if(F)for(var N=j._postProcessing,h=0;L>h;h++)Y[h]=N.createShader(F,rt._35Q,function(b,t){return{fs:t.replace(/DEFINE_VALUE/g,J[h]).replace("%OVERRIDE_ALPHA_DEFINE%",o?"#define OVERRIDE_ALPHA":"")}})}function v(){var o=j.getWidth(),P=j.getHeight();if(!o||!P)return!1;var W=j.getGL();if(!W)return!1;l=[o,P];var y,n=Math.round(l[0]/2),m=Math.round(l[1]/2);for(p=new cs.RenderTarget(j,W,n,m),a=[],O=[],y=0;L>y;y++)a.push(new cs.RenderTarget(j,W,n,m)),O.push(new cs.RenderTarget(j,W,n,m)),n=Math.round(n/2),m=Math.round(m/2);var _=j._postProcessing;return N=_.createShader(W,rt._34Q),w(),f=_.createShader(W,rt._36Q,function(Q,Y){return{fs:Y.replace(/NUM_MIPS/g,L)}}),E=_.createShader(W,rt.finalShader),V=rg.Buffer.createIndexBuffer(W,new Uint16Array([0,2,1,1,2,3])),G=rg.Buffer.createVertexBuffer(W,new Float32Array([0,0,1,0,0,1,1,1])),C=!0}var q,u,y,o,Z,V,G,B,c=this,s=!1,C=!1;this.serializeProperties={strength:1.5,threshold:.55,radius:.4,overrideAlpha:!0,selective:!1},this.resetProperties=function(){var N=this.serializeProperties;for(var X in N)this[X]=N[X]},$.defineProperties(c,{enable:{get:function(){return s},set:function(u){!!s!=!!u&&(s=u,j.iv())}},strength:{get:function(){return q},set:function(U){q!==U&&(q=U,j.iv())}},threshold:{get:function(){return u},set:function(q){u!==q&&(u=q,j.iv())}},radius:{get:function(){return y},set:function(r){y!==r&&(y=r,j.iv())}},overrideAlpha:{get:function(){return o},set:function(N){!!o!=!!N&&(o=N,C&&w(),j.iv())}},selective:{get:function(){return Z},set:function(K){!!Z!=!!K&&(Z=!!K,j.iv())}}}),this.resetProperties();var p,N,f,E,l=[256,256],a=[],O=[],L=5,J=[3,5,7,9,11],Y=[];c.contextLost=function(){C=!1,B=null},c._42=function(w,r){function x(C,l,x,L){Eo(w,l.frame),j.setViewport(w,0,0,l.width,l.height),L?L(w):w.clear(w.COLOR_BUFFER_BIT|w.DEPTH_BUFFER_BIT),T!==C&&C.bind();var D=0;for(var b in x){var Q=x[b];Q instanceof WebGLTexture&&(w.activeTexture(w.TEXTURE0+D),_p(w,Q),Q=D,D++),C.uniforms[b]=Q}for(T!==C&&(V.upload(),G.upload(),C.attributes.pos.pointer(G),T=C),w.drawElements(w.TRIANGLES,6,w.UNSIGNED_SHORT,0);D--;)w.activeTexture(w.TEXTURE0+D),_p(w,null);Xk(w)}if(s&&(C||v())){var T;if(Z){B||(B=new cs.RenderTarget(j,w)),B.setSize(w,r.width,r.height),B.bind(w);var k=w.getParameter(w.COLOR_CLEAR_VALUE);k&&0===k[0]&&0===k[1]&&0===k[2]&&1===k[3]?k=null:oe(w,[0,0,0,1]),w.clear(w.COLOR_BUFFER_BIT|w.DEPTH_BUFFER_BIT),j.setViewport(w,0,0,r.width,r.height),w._blooming=!0,j.syncRenderState(),j.renderScene({renderAxis:!1,renderGrid:!1,renderEdit:!1}),w._blooming=!1,k&&oe(w,k),B.unbind(w) }x(N,p,{smoothWidth:.01,luminosityThreshold:u,tDiffuse:Z?B.texture:r.texture});var Q,X=p,z=Math.round(l[0]/2),$=Math.round(l[1]/2);for(Q=0;L>Q;Q++)x(Y[Q],a[Q],{colorTexture:X.texture,direction:[1,0],texSize:[z,$]}),x(Y[Q],O[Q],{colorTexture:a[Q].texture,direction:[0,1],texSize:[z,$]}),z=Math.round(z/2),$=Math.round($/2),X=O[Q];return x(f,a[0],{blurTexture1:O[0].texture,blurTexture2:O[1].texture,blurTexture3:O[2].texture,blurTexture4:O[3].texture,blurTexture5:O[4].texture,bloomStrength:q,bloomRadius:y,bloomTintColor:[1,1,1]}),x(E,r,{image:a[0].texture},function(p){Vk.for(p).glState.blend.apply({enabled:!0,equation:p.FUNC_ADD,func:[p.SRC_ALPHA,p.ONE]})}),Vk.for(w).glState.blend.apply({equation:w.FUNC_ADD,func:[w.SRC_ALPHA,w.ONE_MINUS_SRC_ALPHA,w.ONE,w.ONE_MINUS_SRC_ALPHA]}),r}}};rt._34Q="~b uw!fwdV3w! w!!.w!f1d/53)!q+p!ty/^#~q sf!ss3pEm!puDEhjbgsgGv`tmfh< 3!!bwiVqwm1!)u5fdyfuwv!s>f!3sEp)m!puDEujvgqguvvtpf!-5!dwfVww !<**f!ywffud!4))u!p1e/!3>:!:w-!!u1b/p6m9g8 -w!fwdV3w! w!!.w!f1d/53)!q+p!ty/^#~q sgfjdejotfj$p on!qsmpfmsp3DEh!bdspGm`pmshU ffytumvfs$f << *v1o/j2g!p-snnv!Twufidh3j!fuxf0ynTvjT{fftd!3s!pemjpsDfhdbusjGp`om ,$!enfvgTjuoifh!jTfJxH NB,M!QnIvBT`fEtFvGgJgOjFe& |! 3sffmuqvnsbot!!14/d4f:w9 :<5c!h+s!/f*yuqf)t!g.g1P/w6v!!+,!!yw!V+w!!y-0f)s!vtujyhfnUbs!p+m!ptdj!h)nEb3*f*s0vtujyhfnub!<> !~2 fwmpqjneb!tn!b4jdof)w* !<|y !w+f!df3{!jjTowwoTjj!{+f!!o>p!j2u/d1f!s0j!eu!f>y!Tujf{tfgj!Tggm!p-byu))gTeJQHoNbBj*tu!!xx!fujbhpimugT v)!uhbbpvmtgt!j>b!oyQ!eugb)p1m/g1 -|!!g*T!j,h,n!bj*!<< TwVfJdE5B!Su`fMyFuOvSsFfLQ!j=y!!j>!!u!vjs!fu3oEj)!!)dsppmgp sv!n",rt._36Q="~b uw!fwdV3w! w!!.w!f1d/53)!q+p!ty/^#~q sp!p2m/c3)!5.d!fgwb!d+u!p*s1p!nsSpbmepjDvhtb*sw!fwdV3w! w!!.w!f1d/53)!q+p!ty/^#~q sj!gsppsmnp!DthbbnsqGm`fmsh3 E|!!j*n)bohjfbn||i>n){var x=n/Math.max(C,i);C=Math.round(C*x),i=Math.round(i*x),c||(c=Hj()),F=t.resizeImage(F,C,i,c)}var o=f.getGL();if(w||(w=o.createTexture()),O=xe(o,F,w),S=q||.01,U=!0,f.iv(),$--){if(D)return;D=t.callLater(function(){Z(v,q,n,$)})}}var G,A,P,j,O,y,J,p,c,w,D,L=this,k=!1,g=!1,S=0,U=!1,o=vj.generateUUID();this.serializeProperties={aperture:.025,maxblur:1,image:null},this.resetProperties=function(){var z=this.serializeProperties;for(var L in z)this[L]=z[L]},$.defineProperties(L,{enable:{get:function(){return k},set:function(F){!!k!=!!F&&(k=F,F||(U=!1),f.iv())}},image:{get:function(){return y},set:function(L){y!==L&&(y=L,U=!1,O&&(f.deleteTexture(o),O=null),f.iv())}},maxblur:{get:function(){return J},set:function(W){J!==W&&(J=W,f.iv())}},aperture:{get:function(){return p},set:function(l){p!==l&&(p=l,f.iv())}}}),this.resetProperties(),L.contextLost=function(){g=!1,O&&(f.deleteTexture(o),O=null)},L.setImageFromGraphView=function(w,P,j){this.image=null,Z(w,P,j,2)},L._42=function(m,z){function N(s,e,d,O){Eo(m,e.frame),f.setViewport(m,0,0,e.width,e.height),O?O(m):m.clear(m.COLOR_BUFFER_BIT|m.DEPTH_BUFFER_BIT),u!==s&&s.bind();var H=0;for(var p in d){var K=d[p];K instanceof WebGLTexture&&(m.activeTexture(m.TEXTURE0+H),_p(m,K),K=H,H++),s.uniforms[p]=K}for(u!==s&&(P.upload(),j.upload(),s.attributes.pos.pointer(j),u=s),m.drawElements(m.TRIANGLES,6,m.UNSIGNED_SHORT,0);H--;)m.activeTexture(m.TEXTURE0+H),_p(m,null);Xk(m)}if(k&&(g||Y())){var u;if(!O){var i=tc(this.image);if(!i||!i.comps&&!i.tagName)return z;F.Default.setImage(o,i),O=f.getTexture(o)}var b=z.width,r=z.height;if(b&&r)return G.setSize(m,b,r),N(A,G,{tColor:z.texture,tDepth:O,aspect:b/r,aperture:this.aperture,maxblur:this.maxblur,useG2d:U,threshold:S}),G}}};st._38Q="~b uw!fwdV3w! w!!.w!f1d/53)!q+p!ty/^#~q sp!ob!/isjphmipqD!hgbmspGb`umw!Vswpt,f!Hm3ped< b,u!!mopfdb sp,b!um!pVdo q*!!3u6d6f/s!s0p!d3u6d7f/qs,t!!m>p!dw f3!fVsovqubydfluE!p>x,o!tmdpbdm fp,u!)m!pwd- !b,d!lmSpHdC Bd,p!omtpud! jg,b!sm!p*d! 0f,u!vmspod! q<, !wmfpdd3 !!!uwdffds3s)p!d2u/d1f-q!tbbt!q+f!d*u!!:*3p!Dhuf!u)WEj3ffxs[v)u!yhffuu!E>f,q!umip)d! wu!d)f!qgtpbd!v+t!!*,!!5w/j1f.x![-!1*/<1 !!)e3pdgfcwm!v)s!!,>!!zwyf/dw3V!w)!!-dsmpbmnpqD)u!!g)bEd3ufpssv!u+y!fbuq!f>s,u!vmspfd- !<.*n!b8yscvmmvcsg-p!en!b+y!c*m!vusd!f*s!s*p1!!u)f3ydufvws!f)3!E,)!!zuyE/fwqVuwi!--!swpfmdp3D)uw!V)wE/3yf-s!v2u/y1f!u.!!>w,V!wm/pzd* !<**!!-t1n5p/p1u!i)t3udffqw)!!)u!i,s!fztyi/pwmVew-!!-usipsmfptDiup!m)eE!3,f!s1v/u1y2f-u!!u>f,y!fmmp/db !<**s!supfdyufdmf/qbt3!/w1f!d)33!d)f!wd!m)b!n,q!)z!yb/mwqViwb!!-+s!pbmqpfDsuu!v)sEf3-f!s.vnubyyfcum!v>s,-!!mnpbdy cq!tebp!g+c!m*v!s8!4+/!11./!:-<6 2w/f1d!3)!3edpfgwc!m)v!s,8!!z>y!/ewpVgwc!m-vssp!m+p!D1u/!8)m,v!sm5p!d> !f!qwtfbd!5+)!!*1!/612!/*1<. !d-p8m4!/,1>.!!u)f3ydufvws!f)3!E,)!!zuyD/pwmVpws!--!swpVmwp/Dyuz!!)*E<3 fdspvmu!y,f>u!!u>f,y!umvpsdf 3u!yuffuy!u>v,s!fm3pEd) !s!vuufyyfuuv!s>f,3!Em)p!du DE!3uffsyvuuvysffu3!E>),!!umDppdm p)!Eu3ffysuvvusyff3uE!)>!,u!Dmppmdp s<-*!!w:Vswv/myczg!p,e!!)+!!w*f!du3d)f!s1s/p5d1u-d!f1q/t1b!!*+!!+*!!b6t2q/f1d!u-d8p4s/s1f.d!u)!3*d!f+w!!e)p!g,c!mzvys/!w*VD!uu!f)yEu3vfssfv3uEy)f!uu!D>p,m!pmsp-d! wD!uu!f)yEu3vfssfv3uEy)f!uu!D>p,m!pmsp-d! wD!uu!f)yEu3vfssfv3uEy)f!uu!D>p,m!pmsp-d! wD!uu!f)yEu3vfssfv3uEy)f!uu!D>p,m!pmsp-d! wp!mupfDyuu!v)sEf33fEs)v!uuyDfpum!p>s,-!!mwpVdw /p!Duuf!y)uEv3sffs3vEu)y!fuuD!p>m,p!sm-p!dw VD!uu!f)yEu3vfs";var tt=F.graph3d.PostProcessing.Blur=function(r){function m(){var K=r.getGL();return K?(G=new cs.RenderTarget(r,K),j=r._postProcessing.createShader(K,tt.hBlurShader),F=r._postProcessing.createShader(K,tt.vBlurShader),R=!0):!1}var j,F,G,s,z,y,b,H,g,u=this,S=!1,R=!1;this.serializeProperties={value:0,downSample:!1,iterations:1,layer:"main"},this.resetProperties=function(){var V=this.serializeProperties;for(var D in V)this[D]=V[D]},$.defineProperties(u,{enable:{get:function(){return S},set:function(K){!!S!=!!K&&(S=K,K?r.addRenderLayerListener(h,this):r.removeRenderLayerListener(h,this),r.iv())}},downSample:{get:function(){return b},set:function(B){b!==B&&(b=B,r.iv)}},value:{get:function(){return y},set:function(o){y!==o&&(y=o,r.iv())}},iterations:{get:function(){return H},set:function(f){H!==f&&(H=f,r.iv())}},layer:{get:function(){return g},set:function(v){g!==v&&(g=v,r.iv())}}}),this.resetProperties();var h=function(v){if(S&&v.layer===g&&"post"===v.phase){var G=r.getGL();if(!r._picking&&!r.isReflecting(G)){var R=r._postProcessing.getRenderTarget();R.unbind(G);for(var a=0,q=r._glCapabilities.maxAttributes;q>a;a++)G.disableVertexAttribArray(a);u.drawImpl(G,R),R.bind(G),G.useProgram(r._prg)}}};u._42=function(){},u.contextLost=function(){R=!1,s=null},u.drawImpl=function(e,q,i,T,A){if(R||m()){var I,h;if(q?(I=q.width,h=q.height):(I=r._viewport[2],h=r._viewport[3]),I&&h){var w=r._postProcessing;"boolean"!=typeof T&&(T=b),i==P&&(i=y),A==P&&(A=H),A=Math.max(1,Math.round(A));var B=Vk.for(e).glState.depth,l=B.enabled;if(B.enabled=!1,T){i/=2;var W=[I,h];I/=2,h/=2,s||(s=new cs.RenderTarget(r,e),z=w.createShader(e,tt.downSampleShader)),s.setSize(e,I,h),w.blitScreen(s,q.texture,z,{texelSize:[1/W[0],1/W[1]]}),q.setSize(e,I,h)}else s&&s.setSize(0,0);G.setSize(e,I,h);for(var Y=[],Z=0;A>Z;Z++)Y.push(i),i=Math.max(1,Math.floor(i/2));for(var Z=0;A>Z;Z++){var c=Y[A-Z-1],g=T&&0===Z?s.texture:q.texture;w.blitScreen(G,g,j,{value:c/I}),T&&Z===A-1&&q.setSize(e,W[0],W[1]),w.blitScreen(q,G.texture,F,{value:c/h})}return B.enabled=l,q}}}};tt.hBlurShader="!! b~u!u sf!dw3V!ww!V w<<* 1 /!2w!p-j1e/!1n!b-j1o/)2w!p,j!e1*/!3|! +!!hzm/`tQppqt.j!u-j1p/o2!!>.!!w1f/d35!)+q!pyt/^#!! q~s!f d!!isjphmipqD!hgbmspGb`um ,!!wnpvjte!! n!!-wffvdm5b)w!!1+/!11!/*4)!3udffywu!v-sffh3bEn)j!!j)nEb3hffs-v!uwyffdu3!)>!,w!Vnwv/ty!! .w!!u)f3ydufvws!f-3fEh)b!njjn!b)hEf3-f!swvfudy3f)u!!w>V,w!/nyv!t.!! 4w!!u)f3ydufvws!f-3fEh)b!njjn!b)hEf3-f!swvfudy3f)u!!w>V,w!/nyv!t.!! 3)!Eu3ffysuvvusyff3uE!)>!,j!nnbvhtf!- !l;l+=2)S.push((l>1?S[S.length-1]:0)+r*d[l]/z)}}function B(){F.redraw()}function l(){var Q=F.getGL();if(!Q)return!1;I=new cs.RenderTarget(F,Q),v=F._postProcessing.createShader(Q,ut.Shader);for(var Y=U*U,m=Fn(U,U),$=m.getImageData(0,0,U,U),x=$.data,G=0;Y>G;G++)x[3*G+0]=H(256),x[3*G+1]=H(256),x[3*G+2]=H(256),x[3*G+3]=H(256);return m.putImageData($,0,0),O=xe(Q,uf),M=!0}var I,v,r,w,G,S,O,q,h,d,J=this,Q=!1,M=!1,C=vj.randomFloat,H=vj.randomInt,z=0,U=64;this.serializeProperties={onlyReflector:!1,period:[2,3],intensity:[3,.3,1,.1,0,.4]},this.resetProperties=function(){var Y=this.serializeProperties;for(var q in Y)this[q]=Y[q]},$.defineProperties(J,{enable:{get:function(){return Q},set:function(B){!!Q!=!!B&&(Q=B,B&&V(),F.iv())}},onlyReflector:{get:function(){return q},set:function(A){!!q!=!!A&&(q=A,F.iv())}},period:{get:function(){return h},set:function(o){h=o,V(),F.iv()}},intensity:{get:function(){return d},set:function(B){B||(B=[1,1]),d=B,z=0;for(var f=1,b=B.length;b>f;f+=2)z+=B[f];V(),F.iv()}}}),this.resetProperties(),J.contextLost=function(){M=!1},J._42=function(z,J){if(Q&&(M||l())){var A=!!F.isReflecting(z);if(A===!!q){var H=J.width,R=J.height;if(H&&R){var T=F._postProcessing,o=Vk.for(z).glState.depth,N=o.enabled;o.enabled=!1,I.setSize(z,H,R);var k,E=Date.now();E-w>S[G]&&(G++,G>=S.length&&V()),k=d[2*G];var g={seed:Math.random(),byp:k?0:1,tDisp:O};return k&&(g.angle=C(-Math.PI,Math.PI),g.distortion_x=C(0,1),g.distortion_y=C(0,1),g.amount=Math.random()/30*k,g.seed_x=C(-1,1)*k,g.seed_y=C(-1,1)*k),T.blitScreen(I,J.texture,v,g),o.enabled=N,requestAnimationFrame(B),I}}}}};ut.Shader="!! b~u!u sf!dw3V!ww!V w<<* 1 /!2w!p-j1e/!1n!b-j1o/)2w!p,j!e1*/!3|! +!!hzm/`tQppqt.j!u-j1p/o2!!>.!!w1f/d35!)+q!pyt/^#!! q~s!f d~j!t jns!pjmopuD!hcbzsqG<` m!hv!o j|g!pfstnm!ft!b n~q!m ft!bsnpqmmpfDsh3bEs!Gu`Emjht!q << * 3!/v1o+j*g*p/s1n6!+gemfpfbtu!!+b!ntpzv-oeufb!ux!ptoftf!e5j!gsppsmnp!DghmbpsbGu`!mehj!t us!ucjdp!o5`dzf!!wbbhsdz!j5odhf!ww!f d<3*!uwfVtwgo!tsddb!m5fd!f>w!!3 6<6*/*!f0m!h3o6b7)/on!bw!f>d!4u)f!t3g6g7p/!!3+d!f3w6!7 /s!f+e!b3i6t7!/u-g!j3i6t7!/C!H+S!!3n6p7s/g-!!f3t6b7c/0!0*!< t,!z>/!qV!o ql,Gyb/dqu!p s~t!- !~2!/ !<**)!!yd/pqo!t u|!!jfot!mwff!d 5~!!w !<*y!`|o p!jsufsupvustoj!ee>pyu/)q!!w -|!*V/o1q?bzd`leGfbfdtu)pgsjt!! *|!!5z4/8q6!9 /|6!5f6t4m*f !!zw/fqd!3 !|q*!/>1!?wyV`wef!fgtm+ptp`sm)phdm.`yG`sobphjDupsppsuet/jye!?0z!/1q/!6%*%u!sgpmuptpjse)=hzm/`qG)sgbjh!D py!fvuo)qibudqlfSEHpCUB";var vt=F.graph3d.PostProcessing.Fxaa=function(n){var K,A=this,s=!1;$.defineProperties(A,{enable:{get:function(){return s},set:function(C){!!s!=!!C&&(s=C,n.iv())}}}),A.contextLost=function(){K=null},A.getShader=function(g){if(K)return K;var r=n.getPostProcessingModule();return K=r.createShader(g,{vs:r.blitScreenShaderSrc.vs,fs:r.decodeShader(vt.ShaderSourceFs)})},A._42=function(){}};vt.ShaderSourceFs="~ !! qobj/gsppsmnp!DthbbnsqGm`fmsh3!E !!s5p/m1p D!h$besfGg`jmohf!! G|Y!B*B)`oRjVbBnM!JeUjZp`wQ!5 !~2!3 /<1* N!b$nevfmg!j-o{fz!yG/y*bNbtCppqp!m-!ycfpup)mq p U!y$feUfbgbjyoGf)!5GuybbpbmGGmbpbbyuG!!gomspvbuuf s!!$ eG,yzb/bNGtmppqb!u*4o!bwqfTd{4s p!i$!e)fggjj!o fT,byu/)Nyt*p!qd!m*bonbqq)Ty{-s!p1i/a1)-g!j2!/ 1<** I!y$jeqfcgvjto!f-!eGpypbHbuUfftyg!gtPbmnfqymjfqs)3yEb n!>$yejfqgcjvoTfu!fGtygbgbPUmffyyUjpqq!)uub-p!mqG*b!buyfGy!u vUefpypPHgugf)tug-g!Pqm-f!ypj-q!!su*b!pumfGybubvysGf!3 E<)yuj-q!cqv,T)zpu!j+m!bsv*R-b!b1y/g1!*+ !!HGyyjbqbcGvmtp>bIuy!jGqycbvbtM!vunbbp)mGGybbbbyGGm!p bGuyfbtbgGgmPpmbfuy5j!qG!yubbbpQmjGybfbmyTGi!b etH-y j!qGcyvbtb!GumbppbmuG5b!bgyyGb!b Dyo!bgqyTbebpDppho!tmppmpfC4b7b1yUGf!y FyubtbeU!fuyb!pgmyGbbbbDypGo!t pjObotpOjfuhdUfxspj-e !!mGpypbCbbGbmypGb!u 3GqsdbSnifu-h o!fGMyobbbqGtm!pubbup5m!GgbybbybGD!p oqau!-* 1!/G1y!b=b!GQmepobFub5n!vgmy)b>bQDopboqtTpempfpShd!qmGpspbCnbfbPyqGu!3 -< *!OGuytbeb,GQmuptbeu)5>!iguyhbobfDMpoobtqptm!fu4b7p1mSGdbqbGysGb!n fpab!u*!1g/y1b!b=R!vObemojFubznTvvmc)q>jOyo-b q!TGeypbpbhG!mmppbpuC!bgbyybGb!R viQpumtee-! *!oGbyqbTb{Gsmppibau)!ggjy!b bfOtuitpem!e*Nojboq-T {!sGpyibab)Ggmjp!b uhQfuTtieb!suqbopfmtGtb-b y!GG!y btOpumtfeF!euhbfpUmiGsbfbtyiGp!m e~-! !~G!y b~b!G mm,ezN/jQot-p q!!G*yQbfboGpmepab)ug5j!!g y!,Gyy/bQbtGpmqp!b*uQ3f!oqppetaN)pqepat)/!y}<} !!*qOpftoNp/eza>)q>pQtO/fzoGG!y+b!bzU/fQyOUgpgqp)>u.fzy/-O!tqppqt!N**Ov.nyb/TO>tGpyqb!b*MOvfnobp)eGay)bgbjU!f yy?b!b*GQmepobFub3n)v!m1)/t1c-b!>2Q/f1o*p-e!!g yf?/!y*zO*e*obOuf!ompven!b F<>6G/y1b!b+M!vOnObb)nGvymb.bQUefoyFPbgngv)mu>fQye-o!FqbpntvNm-!!*GQyfbobpGemap)bguj3!) !<26//11-!!+1!/O1O*b-n!vgmy.bObeRovFbbmnjvumz>SOdeqoGFsbbnnvfm/!y*zO*f*o!G-yybfbuM)vqnpbU)yGfyUbbbbUyfGy)Pbgngv)Mubfbyy-G!>qQpetoNF-b!nGvymb!b*GQmfpobpue3a))!g1j/!1 -<.*2*/z1y*/-O!tgpyqb!b-Ryvfbum)jqupzUSydfqUGbsbbynGf)/bynzv*M*byObeboGFmbpnbvum!!m*vOnfboXp>eGay)bgbjM!v n|b!)*GQyObfboUpfey)Pggjg!) u!,1z//1Q*t-p!qg!y*bQbfRovpbemaj)ugzjS!d qT,Ny>/nQbtyp)qm!v*nQbfTo-p!emav)ngbjN!* << *!QGfyobpbeGam)p!b}u}!!n*jOofToNp>enaj)o>)QmOvfnobpTe-!! mpn>b.yz)/mOvtnpbqF!-*!OnfboypTeNa*)Gn!j+o!)ym/vQnObgFg-p!>n.jyo/TONt*pbndbTyu)omfvjnebbOs-h!!m>v?n!b*XQ*euQ!fnojpoeX!O >*?oOhffoNpbey!> nbQbeGomFpbbnuv!ms!b*oQhffoNpjeoa>)ngjjo!) npObeuo!Fsbbnovhmf!N*bOyfTodpbemaf)eg>js!b oGQyebobFGbmnpvbmu!!*sQbfoohpfe>as)bgojh!f NnOqefoeF>bnnbvym)!g*yObfboRpvebam)jgujz!F e|h!f*UQiOsffotpiep)mgejN!j o<-3!Qs`bZoUhJfMNBbVyRT`dBbBmYfGe!*+p,mz!/fQbtspmqz!F*yQjfuo>psebao)hgfj!!= !F,yyj/uQ*t p!qs!f*uQvfsoop!esah)cgzjN!< eGay)b>bQMOvfnobp)eG!y bb.uz3/)O.t2p/q1!-*.O2f/o1p*e-a!)ggyjb!b RG.myp/bOut!pmqv!n*bOTfFo>pGeyab)bgMjv!n b<)eGfymbbbdUTfuyoPfgjge)busfhy!->!?q!p*tQNe-o!FGbynbvbmG)mtpcbbu>3Q)f!o2p/e1!- !<2e/f1m*b-d!TguyobfbjRevbbsmhj!u>z?S!d*qOGesobFnbfn/vymz)*t*c!OGfyobpbeG!m pnGvymb.bQMevonFbb)nGvymb>bQUefoyFPbgngv)mu!f*yQ-f!oqppetaN)-g!jG!y bbObeRovFbbmnjvumz!S*dOqfGospbenaf)/gyjz!* *<<* *!zGyy/bQbtGpmqp!b-uy!fmuv)nqbpTUXy>fGUybbbbyMGv)nbbn)vGMybbbbyUGf>yQPegogF)bunfvym-!!*qQpftoNp-e!aG)ygbjb!G mfO/eyozF*b*nOmfvonpbeO),gmjv!n bQmOvgngbpX>,,mzv/nQbtFpB2Y/G1!0+s!byo/hQfOy,byb/GQmtppbqu!!*tQvfcoqpjeyaO)TgXjF!> mpQbOuf!ofpeeh!fmIpppsC{b2b>y)G.!3 /<12!Q+`!ZmUvJnMbBNV*R,`mBvBnYbGO!T+p.bzu/!Oftephqf!W*fOsfuo2p>e)a.)3g/j1!! +!.myv/nObtOpFqT!F*>OmfvonpbeOaF),gmjv!n bv?n!b*OQXeOoFF>bmnvvnmb)OtXc,bm>vQnfboOpFee)b.s3h/!1>!?+!!*mOvenobFFb*n,vmmv)ntbcObF>TOFfO)b.n3v/m1>!.+Q!emovFnbbnOv*m,!m vG.mOpebouF!bmnvvnmb!O X1m!v=n!bNONXb,nmvvmn>bpTsXf<[ U!MGNybbnbvGmm!pmbpup!CmbvbnybGT!X TymjvqncbvTtX!,+m!vEnybjTqFcGGyybjbqGcmvptb!uu!bfpemhGfbIbpysG{!5 ><)6b/c1t!)+f!eOhOfbInpvsm{.2N*b!n+v!m3>/N1N*b,nbvcmt!)ufbephmfGIbpbsy{G3!* << 1!/G5y0b1b/G2m!p+b!uu!offejhefbWsfhs>ue5f>m)bbdcTtu)offejhefbWsfhs!uu2b*p!m+G!b3b/y1G*!, bWOfOsbun3v*my)f.u3)/q1p!U+y!fmUvbnbbyXG*),bmnvvnMbbObXyTGX>y)j.q3c/v1t!!++!!mDvynjbqTc*v,tm>vFnybjTqXcTvFtybfcut))qfpeUhyffIUpbsb{y4G*),bfnevhMfbIbpysG{>5O/b4c,t*)DfyejhqfcWvfts+u*41*/,3f.e)h)f>WEfysjuq5cBmYvGn!b+O!XzT/XQ,Omgvgnpb,OzF/TCFtGzy/bQbtGpmqp!b uBgByYbGb!R+v!bym/jQuOzgSgdpq,Gys/bCntfp/qy>bfbeyhGf!I pU!JfMeBhVfRW`fBsBuYBz>/tOvtcpqqj!y Osy{/TOqtbpoq*!! m!m3vunbbpXmfmmv>n,bzF/!goyhbjbTRivubhmojfumz>S,dyq/GCstbpnqf!/*zoG)qtdvSczqujjymBb!v+R!b)b2y/g1!0;2!31//11*!*@.!m*vonbbqNT<{ s!pGiy!b)b>Gzm/pQbOug!ghps!b esmGvqndbSOz.umjvmnbbvNRam)v>nyb/TQ.Omgvgnpb!N << Q!OGgygbpb!G3mupbbpum!GmbvbnybGO!O >vzn/bCNt!ym/vCntbpTqT!> mybjcqtc)vhts!b+e!j*fCoyujOq*c!v?t>)!tbccbt))uhbsTbbebjyfGo>uDTy*jinubhyo)fbmc.t>)ohhsjbTeijufhooufOm*!-*!Obscjtb)qh)sgbje!j f=E||0>=Z||(Q._90I||(R=Q._90I={}),R[i]||(R[i]=new Po),gb(P,Q.tx()+x,Q.ty()+H,E,Z),tg(P,l),Q._view.insertBefore(P,Q._79O),l.onParentAdded&&l.onParentAdded(P),R[i].add(P))}},J._76o=function(){var W=this,$=W._90I;if($){for(var x in $)$[x].each(function(Y){_g(Y)});delete W._90I}},J._77o=function(I){var W=this;if(W._90I){var V=W._90I[I];V&&(V.each(function(u){_g(u)}),delete W._90I[I])}}},_47o:function(Q){Q.getValue=function(i,x){return x.getValue?x.getValue(i,x,this):Xo(i,x.getAccessType(),x.getName())},Q.setValue=function(q,M,r){if(M.isEmptiable(q)||""!==r||(r=m),M.isNullable(q)||r!=P){var C=this,T=M.getName(q),w=M.getAccessType(q),I=M.getValueType(q);I===wp&&ib(r)?r=vr(r):I===mc&&ib(r)?r=parseFloat(r):I===Pd&&ib(r)&&(r="true"===r),C._batchEditable&&M._batchEditable&&C.isSelected(q)?C.sm().each(function(F){M.setValue?M.setValue(F,M,r,C):tf(F,w,T,r)}):M.setValue?M.setValue(q,M,r,C):tf(q,w,T,r)}},Q.setCurrentEditor=function(Q){this.endEditing(),this._currentEditor=Q,this.redraw()},Q.isEditing=function(V,z){var E=this,b=E._currentEditor;if(!b)return!1;if(z){var t=b.info;return t?(t.column||t.property)===z&&t.data===V:!1}return!0},Q.endEditing=function(O){var D=this,L=D._currentEditor;L&&(delete D._currentEditor,L.commitValue&&L.commitValue(L.info,O),D.redraw(),D.getDataModel().endTransaction())},Q.beginEditing=function(h){this.endEditing();var g=this,v=h.column||h.property;if(v.beginEditing)v.beginEditing(h);else{var t=h.data,Z=h.value,G=g.getSelectBackground(t),w=v.getEnumValues(t),l=v.getSlider(t),b=v.getColorPicker(t);if(l){var V=Cg(Ft.Slider,l);return V.setValue(Z),V.getView().onblur=function(){g.endEditing()},V.isInstant()&&(V.onValueChanged=function(){g.setValue(t,v,V.getValue())}),Dt(V,h),void 0}if(b||v.getValueType(t)===kh){var M=Cg(Ft.ColorPicker,b);return M.setValue(Z),M.onClosed=function(){g.endEditing()},M.isInstant()&&(M.onValueChanged=function(D,O){g.setValue(t,v,O)}),Dt(M,h),M.open(),void 0}if(w){if(Ft.ComboBox){var k=new Ft.ComboBox;k.setValue(Z),k.setValues(w),k.setLabels(v.getEnumLabels(t)),k.setIcons(v.getEnumIcons(t)),k.setEditable(v.isEnumEditable(t)),k.setStrict(v.isEnumStrict(t)),k.setMaxHeight(v.getEnumMaxHeight(t)),k.setDropDownWidth(v.getEnumDropDownWidth(t)),k.onClosed=function(){g.endEditing()},Dt(k,h),k.open()}else Et(em,h,G,w,v);return}var U=v.getValueType(t);if(U===Pd||cg(Z))return g.setValue(t,v,!Z),void 0;if(v.getItemEditor(t)){var F=Wc(v.getItemEditor(t)),j=new F(t,v,g,h),f=j.getView();return f._17Q=j,j.setValue(Z),vm(f),Dt(f,h),j.editBeginning&&j.editBeginning(),void 0}Et("input",h,G,P,v)}}},_44o:function(E){E.init=function(u){var U=this,s=U.th=new Vt(u),k=U._view=Bg(1,U);U.tv=U._tableView=u,tg(k,s.getView()),tg(k,u.getView()),s.mp(function(G){G.property===pc&&U.iv()}),U.iv()},E.getTableView=function(){return this.tv},E.getTableHeader=function(){return this.th},E.getDataModel=function(){return this.tv.dm()},E.getColumnModel=function(){return this.tv.getColumnModel()},E.setColumns=function(J){this.tv.setColumns(J)},E.addColumns=function(y){this.tv.addColumns(y)},E.endEditing=function(){this.tv.endEditing()},E.validateImpl=function(){var g=this,k=g.th,n=ap(k),M={x:0,y:0,width:g.getWidth(),height:n};gb(k,M),M.y=n,M.height=B(0,g.getHeight()-n),gb(g.tv,M)}},ms_vs:function(t){t._41o=function(){return this._29I.height=xh?(delete Z._58I,Z.iv()):Zr(function(){Z._94O()},xh)}},t._93I=function(){var z=this,B=z._27I;if(z._58I||!z._autoHideScrollBar){B||tg(z._79O,B=z._27I=go());var s=z._29I,A=s.height,Z=z._59I,U=z.getScrollBarSize(),W=s.width-U-2,T=A*(-z.ty()/Z),I=A*(A/Z),P=B.style;Z>A?(bn>I&&(T=T+I/2-bn/2,0>T&&(T=0),T+bn>A&&(T=A-bn),I=bn),P.visibility=Ro,P.background=z.getScrollBarColor(),P.borderRadius=U/2+Lq,gb(B,W,T,U,I)):P.visibility=gn}else B&&(B.style.visibility=gn)}},ms_hs:function(R){R._40o=function(){return this._29I.width=xh?(delete x._95O,x.iv()):Zr(function(){x._94I()},xh)}},R._92I=function(){var t=this,B=t._28I;if(t._95O||!t._autoHideScrollBar){B||tg(t._79O,B=t._28I=go());var w=t._29I,s=w.width,q=t._91I,Q=t.getScrollBarSize(),o=w.height-Q-2,z=s*(-t.tx()/q),h=s*(s/q),J=B.style;q>s?(bn>h&&(z=z+h/2-bn/2,0>z&&(z=0),z+bn>s&&(z=s-bn),h=bn),J.visibility=Ro,J.background=t.getScrollBarColor(),J.borderRadius=Q/2+Lq,gb(B,z,o,h,Q)):J.visibility=gn}else B&&(B.style.visibility=gn)}}}),Yc(qd,$j(16,16,[{type:Pj,rect:[1,1,14,14],background:Gh},{type:cn,rect:[1,1,14,14],width:1,color:os},{type:Ce,points:[13,3,7,12,4,8],borderWidth:2,borderColor:"#FFF"}])),Yc(am,$j(16,16,{type:cn,rect:[1,1,14,14],width:1,color:os})),Yc(Xp,$j(16,16,[{type:Xg,rect:[2,2,12,12],borderWidth:1,borderColor:os,background:"#FFF"},{type:Xg,rect:[4,4,8,8],background:Gh}])),Yc(Xl,$j(16,16,{type:Xg,rect:[2,2,12,12],borderWidth:1,borderColor:os})),Io._15Q=function(i){i._29I=Mk,i._59I=0,i._91I=0,i._5o=function(S){var D=this;D._30I=new Po,D._rows=new Po,D._rowMap={},D._31I=0,D._14I=0,D._view=Bg(1,D),D._canvas=Hj(D._view),tg(D._view,D._79O=go()),D.dm(S?S:new zk)},i.getCheckIcon=function(v){var s=this.sm(),o=s.co(v);return s.sg()?tc(o?Xp:Xl):tc(o?qd:am)},i.checkData=function(K){var T=this.sm(),q=T.co(K);T.sg()&&q||(this._32o=1,q?T.rs(K):T.as(K),delete this._32o)},i.getDataAt=function(Y){Y.target&&(Y=this.lp(Y));var O=x(Y.y/this._rowHeight),l=this._rows;return 0>O||O>=l.size()?P:l.get(O)},i.onDataDoubleClicked=function(){},i.onDataClicked=function(){},i.adjustTranslateX=function(){return 0},i.adjustTranslateY=function(S){var M=this.getHeight()-this._59I;return M>S&&(S=M),S>0?0:W(S)},i.onPropertyChanged=function(F){var Q=this,h=F.property;zt[h]?Q.ivm():yt[h]||Q.redraw(),h===zn?Q._42o():h===wc&&Q._43o()},i.getLabel=function(j){return j.toLabel()},i.getLabelFont=function(){return this._labelFont},i.getLabelColor=function(j){var c=this;if(c.isCheckMode()){if(c._focusData===j)return c._labelSelectColor}else if(c.isSelected(j))return c._labelSelectColor;return c._labelColor},i.getStartRowIndex=function(){return this._31I},i.getEndRowIndex=function(){return this._14I},i.getRowDatas=function(){return this._rows},i.getRowIndex=function(R){return this._rowMap[R._id]},i.getRowSize=function(){return this._rows.size()},i.getViewRect=function(){return Wl(this._29I)},i.isVisible=function(p){return this._visibleFunc?this._visibleFunc(p):!0},i.getCurrentSortFunc=function(){return this._sortFunc},i.setDataModel=function(j){var G=this,c=G._dataModel,W=G._selectionModel;c!==j&&(c&&(c.umm(G.handleDataModelChange,G),c.umd(G.handleDataPropertyChange,G),c.umh(G.handleHierarchyChange,G),W||c.sm().ums(G.handleSelectionChange,G)),G._dataModel=j,j.mm(G.handleDataModelChange,G),j.md(G.handleDataPropertyChange,G),j.mh(G.handleHierarchyChange,G),W?W._21I(j):j.sm().ms(G.handleSelectionChange,G),G.fp("dataModel",c,j))},i.validateModel=function(){var Z=this;Z._rows.clear(),Z._rowMap={},Z.buildChildren(Z._dataModel._roots);var o=Z._rows=Z._rows.toList(Z.isVisible,Z),h=0,k=Z.getCurrentSortFunc(),A=o.size();for(k&&o.sort(k);A>h;h++)Z._rowMap[o.get(h)._id]=h},i.buildChildren=function(W){var Y=this;W.each(function(n){Y._rows.add(n),Y.buildChildren(n._children)})},i.handleDataModelChange=function(){this.ivm()},i.handleDataPropertyChange=function(H){"parent"===H.property?this.ivm():this.invalidateData(H.data)},i.handleHierarchyChange=function(){this.ivm()},i.handleSelectionChange=function(u){u.datas.each(this.invalidateData,this),this.onSelectionChanged(u)},i.onSelectionChanged=function(h){var l=this,z=l.sm();!l.isAutoMakeVisible()||1!==z.size()||"set"!==h.kind&&"append"!==h.kind||l._32o||l.makeVisible(z.ld())},i.handleBackgroundClick=function(b){yn(b)&&!this.isCheckMode()&&this.sm().cs()},i.makeVisible=function(z){z&&(this._23I=z,this.iv())},i.scrollToIndex=function(i){var x=this,Z=x._29I,E=Z.height,T=x._rowHeight,Q=T*i;i>=0&&i0&&(Q+T>Z.y+E?x.ty(-Q+E-T):Q0&&k&&(h.x-k.x_&&(y._14I=_),y._99I&&m&&y._99I();var C=y.tx(),a=y.ty();(y._40o()||y._41o())&&(y._59I+=y.getScrollBarSize(),y._99I&&m&&(y._91I+=y.getScrollBarSize())),io&&!Dq&&(X.save(),Ag(X,o/ei.length,O/ei.length,1)),Ag(X,C,a,1),m?y._12I(X):y._24I&&y._13I(X),y._93I(),y._92I(),X.restore(),y._32I=y._24I=y._96I=P,s&&(y.scrollToIndex(y.getRowIndex(s)),delete y._23I),y.tx(y.tx()),y.ty(y.ty())},i.canHandleSelectMode=function(){return!0}},Io._48o=function(X){X._rootVisible=!0,X._rootData=P,X._35o=function(){this._expandMap={},this._levelMap={}},X.validateModel=function(){var $=this,S=$._rootData;$._rows.clear(),$._levelMap={},$._rowMap={},$._currentLevel=0,S?$._rootVisible?$.isVisible(S)&&$.buildData(S):$.buildChildren(S):$.buildChildren(),delete $._currentLevel},X.buildData=function(n){var $=this,Z=n._id,A=$._rows;$._rowMap[Z]=A.size(),A.add(n),$._levelMap[Z]=$._currentLevel,$.isExpanded(n)&&($._currentLevel++,$.buildChildren(n),$._currentLevel--)},X.buildChildren=function(p){var l=this,W=p?p._children:l._dataModel._roots,c=l.getCurrentSortFunc();c&&l.isChildrenSortable(p)?W.toList(l.isVisible,l).sort(c).each(l.buildData,l):W.each(function(y){l.isVisible(y)&&l.buildData(y)})},X.getLevel=function(G){return this._levelMap[G._id]},X.getToggleIcon=function(p){var w=this,j=w._loader,h=w._collapseIcon;return j&&!j.isLoaded(p)?h:p.hasChildren()?w.isExpanded(p)?w._expandIcon:h:P},X.isCheckMode=function(){return this._checkMode!=P},X.isChildrenSortable=function(){return!0},X.handleDataModelChange=function(C){var v=this;C.kind===xd?delete v._expandMap[C.data._id]:C.kind===Bh&&(v._expandMap={}),v.ivm()},X.toggle=function(X){var D=this;D.isExpanded(X)?D.collapse(X):D.expand(X)},X.isExpanded=function(e){return 1===this._expandMap[e._id]},X.expand=function(F){var Z=this,i=Z._loader;Z.isExpanded(F)||(i&&!i.isLoaded(F)&&i.load(F),Z._expandMap[F._id]=1,Z.ivm(),Z.onExpanded(F))},X.onExpanded=function(){},X.collapse=function(j){var _=this;_.isExpanded(j)&&(delete _._expandMap[j._id],_.ivm(),_.onCollapsed(j))},X.onCollapsed=function(){},X.expandAll=function(G){if(G)this.expand(G),G.eachChild(function(S){this.expandAll(S)},this);else{var O=this;O._dataModel.each(function(y){y.hasChildren()&&(O._expandMap[y._id]=1)}),O.ivm()}},X.collapseAll=function(){this._expandMap={},this.ivm()},X.makeVisible=function($){if($){var k=this;if(!k._rootData||$.isDescendantOf(k._rootData)){for(var y=$._parent;y;)k.expand(y),y=y._parent;k._23I=$,k.iv()}}},X.checkData=function(N){var O,H=this,w=H._checkMode,v=H.sm(),h=v.co(N);if(!v.sg()||!h){if(H._32o=1,w===br)h?v.rs(N):v.as(N);else if(w===ff)O=new Po(N),O.addAll(N._children);else if("descendant"===w)O=new Po,Bt(N,O);else if("all"===w&&(O=new Po,Bt(N,O),!h))for(var g=N._parent;g;)O.add(g),g=g._parent;O&&(h?v.rs(O):v.as(O)),delete H._32o}},X.drawTree=function(v,B,j,h,F,c,E){var T=this,e=T._indent,g=T._levelMap[B._id],$=T.getIconWidth(B),D=tc(T.getToggleIcon(B));D?(h+=e*g,yl(v,D,h+e/2,F+E/2,B,T),h+=e):h+=e*(g+1),T._checkMode&&(yl(v,T.getCheckIcon(B),h+e/2,F+E/2,B,T),h+=e),T.drawIcon(v,B,h,F,$,E),T.drawLabel(v,B,h+$,F,E)}},Io._14Q=function(A){A.getIcon=function(X){return X.getIcon()},A.getIconWidth=function(K){return this.getIcon(K)?this._indent:0},A.drawIcon=function(J,w,S,C,K,M){if(K){var f=this,o=f.getBodyColor(w),p=tc(f.getIcon(w),o);p&&(M-=f.isRowLineVisible()?1:0,Ql(J,p,Jk,S,C,K,M,w,f,o),qc(J,f.getBorderColor(w),S,C,K,M))}},A.drawLabel=function(k,C,v,c,F){var z=this;hp(k,z.getLabel(C),z.getLabelFont(C),z.getLabelColor(C),v,c,0,F)}},Io._50o=function(v){v._98I=function(){var c=this,W=c._39o=new zk;c._60I=new Po,W.mm(c._17o,c),W.md(c._18o,c),W.mh(c._19o,c)},v.setColumns=function(D){this._39o.clear(),this.addColumns(D)},v.addColumns=function(X){var n=this._39o;X.forEach(function(p){if(!(p instanceof It)){var m=Wc(p.className);p=Cg(m?m:It,p)}n.add(p)})},v.onColumnClicked=function(){},v.onCheckColumnClicked=function(){},v._3Q=function(L){for(var D,S=0,r=this._60I,K=r.size();K>S;S++)if(D=r.get(S),D.column===L)return D;return P},v.getColumnAt=function(w){var O=this._4Q(w);return O?O.column:P},v._4Q=function(U){for(var $=this,K=U.target?$.lp(U).x:U.x,C=$._60I,G=0;G=F&&Kw&&(w=n),w>0?0:W(w)},v._99I=function(){var w=this,W=w._29I,o=w._60I;o.clear(),w._91I=0,w._39o._roots.each(function(k){if(k.isVisible()){var U=w._91I+k.getWidth();w._91I<=W.x+W.width&&U>=W.x&&o.add({column:k,startX:w._91I}),w._91I=U}})},v.drawData=function(P,y,h){var F=this,j=F._rowHeight,s=j*h,A=F.isSelected(y),u=F._29I,U=u.x,m=u.width;F.drawRowBackground(P,y,A,U,s,m,j),F._60I.each(function(H){var f=H.column,q=H.startX,I=f.getWidth();I>0&&!F.isEditing(y,f)&&(P.save(),P.beginPath(),P.rect(q,s,I,j),P.clip(),F._87o(F.drawCell(P,y,A,f,q,s,I,j),h,q,s,I,j),F._columnLineVisible&&_l(P,q+I-1,s,1,j,F._columnLineColor),P.restore())}),F._rowLineVisible&&_l(P,U,s+j-1,m,1,F._rowLineColor)},v.drawCell=function(U,D,v,u,w,b,H,f){var C=this;if(u.drawCell)return u.drawCell(U,D,v,u,w,b,H,f,C);var i=C.getValue(D,u);Ct(U,i,u,C.getLabelFont(D,u,i),C.getLabelColor(D,u,i),w,b,H,f,D,C)},v.getColumnModel=function(){return this._39o},v._17o=function(){this.redraw()},v._18o=function(A){var j=this;A.data===j._sortColumn&&xt[A.property]?j.ivm():(j._42o(),j.redraw())},v._19o=function(){this.redraw()},v.getCurrentSortFunc=function(){var y=this,i=y._sortColumn;if(i&&i.isSortable()){var M=i.getSortFunc(),G=Ji===i.getSortOrder()?1:-1;return M||(M=ub),function(t,T){return M.call(y,y.getValue(t,i),y.getValue(T,i),t,T)*G}}return y._sortFunc},v.isCellEditable=function(G,I,k){return I.isEditable()&&this.isEditable()?I.isCellEditable?I.isCellEditable(G,I,k,this):!0:!1},v._37O=function(Q,z){if(yn(z))for(var $=this,O=$.lp(z),j=$._60I,i=$._rowHeight,U=$._29I,K=U.x,n=U.y,M=U.width,k=U.height,V=0;V=F&&O.xK+M&&(W=H.x+H.width-K-M),W&&($.tx($.tx()-W),c.x-=W),H.yn+k&&(h=H.y+i-n-k),h&&($.ty($.ty()-h),c.y-=h),$.beginEditing({data:Q,column:v,value:$.getValue(Q,v),event:z,rect:H,editorRect:c,view:$}),void 0}}}},Ft.BaseItemEditor=function(K,w,j,t){this._data=K,this._column=w,this._master=j,this._editInfo=t},Gt("BaseItemEditor",$,{ms_ac:["data","column","master","editInfo"],editBeginning:function(){},getView:function(){},getValue:function(){},setValue:function(){}});var Ht=F.Tab=function(){bo(Ht,this)};yr("Tab",Pi,{ms_ac:["view","closable","disabled","visible"],_icon:P,_closable:!1,_disabled:!1,_visible:!0,setParent:Ik});var It=F.Column=function(){bo(It,this)};yr("Column",Pi,{_46o:1,ms_ac:["accessType","valueType",Ro,gj,Mn,Ng,"align",kh,"sortOrder",kb,"sortable","clickable","nullable","emptiable","slider","colorPicker","itemEditor"],_visible:!0,_width:80,_sortOrder:Ji,_sortFunc:P,_sortable:!0,_clickable:!0,setWidth:function(n){16>n&&(n=16);var o=this._width;this._width=n,this.fp(Ng,o,n)},getToolTip:function(X,k){return this.formatValue(k.getValue(X,this))}});var Jt=F.Property=function(){bo(Jt,this)};yr("Property",Pi,{_46o:1,ms_ac:["accessType","valueType",gj,Mn,"categoryName",kh,"align","nullable","emptiable","slider","itemEditor","colorPicker"],_categoryName:P,getToolTip:function(G,Y,M){var d=this;return Y?d.formatValue(M.getValue(G,d)):M.getPropertyName(d)}}),Ft.AccordionView=function(){var i=this;i._20o={},i._21o=new Po,i._10o=P,i._9o=P,i._11o=P,i._view=Bg(0,i),i.iv()},Gt("AccordionView",$,{ms_v:1,ms_fire:1,ms_ac:[Jl,Rp,"titleHeight",wd,Em,"titleBackground","selectWidth",Tn,"orientation","separatorColor"],_expandIcon:t.accordionViewExpandIcon,_collapseIcon:t.accordionViewCollapseIcon,_titleHeight:Rr,_labelColor:t.accordionViewLabelColor,_labelFont:t.accordionViewLabelFont,_titleBackground:t.accordionViewTitleBackground,_selectBackground:t.accordionViewSelectBackground,_selectWidth:t.accordionViewSelectWidth,_orientation:"v",_separatorColor:t.accordionViewSeparatorColor,onPropertyChanged:function(){this.iv()},getView:function(){return this._view},getTitles:function(){return this._21o},getCurrentTitle:function(){return this._10o},add:function(i,f,S,u){var p=this,c=go(),U={content:f,div:c,canvas:Hj(c),icon:u};if(p._20o[i])throw i+" already exists";var M=U.downEventFunc=function(H){Nj(H)},j=U.upEventFunc=function(F){Nj(F),yn(F)&&(p._10o===i?p.collapse():p.expand(i))};[uc,gf].forEach(function(e){N(c,e,M)}),[Ef,$g].forEach(function(r){N(c,r,j)}),c.style.cursor=Eb,tg(p._view,c),p._20o[i]=U,p._21o.add(i),S&&p.expand(i),p.iv()},remove:function(H){var i=this,I=i._20o[H];if(I){var R=I.div;_g(R),[uc,gf].forEach(function(P){j(R,P,I.downEventFunc)}),[Ef,$g].forEach(function(K){j(R,K,I.upEventFunc)}),delete i._20o[H],i._21o.remove(H),i.iv()}},clear:function(){var w=this;w._21o.toArray().forEach(w.remove,w),w._20o={},w._21o.clear(),w.iv()},isExpanded:function(g){return this._10o===g},expand:function(r){var s=this;s._20o[r]&&s._10o!==r&&(s._10o=r,s.onExpanded(r),s.iv())},onExpanded:function(){},collapse:function(){var P=this;P._10o&&(P.onCollapsed(P._10o),delete P._10o,P.iv())},onCollapsed:function(){},initCanvas:function(b,I,E){_j(b,I,E);var X=Lh(b);return Ag(X,0,0,1),X.clearRect(0,0,I,E),X},drawTitle:function(L,P,N,O,p){var i=this,h=tc(p.icon),I=i.isExpanded(P),A=i._titleHeight,z=i._titleBackground,X=i._selectWidth,Q=i._separatorColor,c=tc(I?i._expandIcon:i._collapseIcon),R=X+4;_l(L,0,0,N,O,z),I&&X&&_l(L,0,0,X,O,i._selectBackground),(I||i._21o.get(i._21o.size()-1)!==P)&&_l(L,0,O-1,N,1,Q?Q:pp(z)),h&&(yl(L,h,R+zs(h)/2,A/2),R+=zs(h)+2),hp(L,P,i.getLabelFont(P),i.getLabelColor(P),R,0,0,A),c&&yl(L,c,N-zs(c)/2-4,A/2)},validateImpl:function(){var Z=this,J=Z._view,X=0,V=0,C=Z.getWidth(),A=Z.getHeight(),R=Z._titleHeight,P=Z._21o.size()*R,D=Z._11o,j=Z._9o;delete Z._11o,delete Z._9o,Z._21o.each(function(E){var F,z,y=Z._20o[E],c=y.content,p=Z._10o===E;Sn(Z)?(gb(y.div,X,0,R,A),F=Z.initCanvas(y.canvas,R,A),Oc(F,0,A),tb(F,-pn),Z.drawTitle(F,E,A,R,y),F.restore(),p?(z=B(0,C-P),c&&(Z._11o=c,Z._9o=Mh(c),gb(c,X+R,0,z,A)),X+=R+z):X+=R):(gb(y.div,0,V,C,R),F=Z.initCanvas(y.canvas,C,R),Z.drawTitle(F,E,C,R,y),F.restore(),p?(z=B(0,A-P),c&&(Z._11o=c,Z._9o=Mh(c),gb(c,0,V+R,C,z)),V+=R+z):V+=R)});var T=Z._9o;D&&D!==Z._11o&&D.endEditing&&D.endEditing(),T&&T!==j&&tg(J,T),j&&j!==T&&_g(j)}}),Ft.SplitView=function(S,R,p,Z){var r=this,n=r._dividerDiv=go(),T=r._60O=Hj(),l=r._61O=Hj(),u=T.style,m=l.style;r._view=Bg(1,r),tg(r._view,n),u.msTouchAction=wl,u.pointerEvents=wl,u.cursor=Eb,m.msTouchAction=wl,m.pointerEvents=wl,m.cursor=Eb,S&&r.setLeftView(S),R&&r.setRightView(R),p&&r.setOrientation(p),Z!=P&&r.setPosition(Z),r.setStatus(xr),new Kt(r)},Gt("SplitView",$,{ms_v:1,ms_fire:1,ms_ac:["continuousLayout","dividerSize","dividerBackground","toggleIcon","togglable","dragOpacity","orientation","draggable","status"],_continuousLayout:!1,_position:.5,_togglable:!0,_orientation:"h",_draggable:!0,_dividerSize:t.splitViewDividerSize,_dividerBackground:t.splitViewDividerBackground,_dragOpacity:t.splitViewDragOpacity,_toggleIcon:t.splitViewToggleIcon,onPropertyChanged:function(){this.iv()},getDividerDiv:function(){return this._dividerDiv},getPosition:function(){return this._position},setPosition:function($,u){var m=this,s=m._position;isNaN($)||(u||(m._82O=0>$?-1:$>1?1:0),m._position=$,m.fp(od,s,$))},getLeftView:function(){return this._leftView},setLeftView:function(f){var w=this,Z=w._leftView,n=w._view;if(w._leftView!==f){if(Z&&Z!==w._rightView){var z=Mh(Z);z.parentNode===n&&_g(z)}if(w._leftView=f,f){var d=Mh(f);d.parentNode!==n&&n.insertBefore(d,w._dividerDiv)}w.fp("leftView",Z,f)}},getRightView:function(){return this._rightView},setRightView:function(K){var b=this,J=b._rightView,n=b._view;if(b._rightView!==K){if(J&&J!==b._leftView){var Y=Mh(J);Y.parentNode===n&&_g(Y)}if(b._rightView=K,K){var I=Mh(K);I.parentNode!==n&&n.insertBefore(I,b._dividerDiv)}b.fp("rightView",J,K)}},validateImpl:function(){var $=this,S=$._draggable,Q=$._position,P=$.getWidth(),X=$.getHeight(),J=$._dividerSize,e=$._dividerBackground,n=pr?18:8,R=$._dividerDiv,t=$._82O,Z=$._60O,i=$._61O,q=$._toggleIcon,o=$._status,z=R.style,u=null,M=pr?20:4,I=q.comps[0];J>=n||0===J?$._coverDiv&&(_g($._coverDiv),delete $._coverDiv):$._coverDiv||($._coverDiv=go(),jr&&($._coverDiv.style.background=Uk),tg(R,$._coverDiv)),$._togglable?Z.parentNode||(tg(R,Z),tg(R,i)):(_g(Z),_g(i));var N=$._coverDiv,m=$._leftView,y=$._rightView;if(Sn($)){if(J>P&&(J=P),o===xr)if(1===t)var F=v(Q,P),L=B(0,P-J-F);else-1===t?(L=v(-Q,P),F=B(0,P-J-L)):(F=W((P-J)*Q),L=B(0,P-J-F));else"cl"===o?(F=0,L=B(0,P-J)):"cr"===o&&(L=0,F=B(0,P-J));m&&gb(m,0,0,F,X),y&&gb(y,F+J,0,L,X),gb(R,F,0,J,X),$._22o=F,N&&(gb(N,J/2-n/2,0,n,X),N.style.cursor=S?cp:""),R.style.cursor=S?cp:"";var A=R.clientHeight/2,O=R.clientWidth;_j(Z,O,O),gb(Z,0,A-O-M,O,O),u=Lh(Z),Ag(u,0,0,1),I.rotation=-pn,vb(u,q,0,0,O,O),u.restore(),_j(i,O,O),gb(i,0,A+M,O,O),u=Lh(i),Ag(u,0,0,1),I.rotation=pn,vb(u,q,0,0,O,O),u.restore()}else{if(J>X&&(J=X),o===xr)if(1===t)var x=v(Q,X),D=B(0,X-J-x);else-1===t?(D=v(-Q,X),x=B(0,X-J-D)):(x=W((X-J)*Q),D=B(0,X-J-x));else"cl"===o?(x=0,D=B(0,X-J)):"cr"===o&&(D=0,x=B(0,X-J));m&&gb(m,0,0,P,x),y&&gb(y,0,x+J,P,D),gb(R,0,x,P,J),$._22o=x,N&&(gb(N,0,J/2-n/2,P,n),N.style.cursor=S?Fd:""),z.cursor=S?Fd:"";var l=R.clientWidth/2,O=R.clientHeight;_j(Z,O,O),gb(Z,l-O-M,0,O,O),u=Lh(Z),Ag(u,0,0,1),I.rotation=0,vb(u,q,0,0,O,O),u.restore(),_j(i,O,O),gb(i,l+M,0,O,O),u=Lh(i),Ag(u,0,0,1),I.rotation=d,vb(u,q,0,0,O,O),u.restore()}z.background=e}});var Kt=function(n){this.sv=n,this.addListeners()};Ri(Kt,$,{ms_listener:1,getView:function(){return this.sv.getView()},handle_touchstart:function(p){var e=this,Q=e.sv,u=Q._dividerDiv,U=Q._60O,r=Q._61O,D=Q._status,O=p.target;if(O===U)D===xr?Q.setStatus("cl"):"cr"===D&&Q.setStatus(xr);else if(O===r)D===xr?Q.setStatus("cr"):"cl"===D&&Q.setStatus(xr);else if(_r(p)&&(O===u||O===Q._coverDiv)&&(Nj(p),Q.isDraggable())){Q.getLeftView(),Q.getRightView();var t=e.maskDiv=go();if(t.style.left=0,t.style.top=0,t.style.width=Q.getWidth()+"px",t.style.height=Q.getHeight()+"px",Q.getView().appendChild(t),!Q.isContinuousLayout()){var T=e.resizeDiv=go();T.style.left=u.style.left,T.style.top=u.style.top,T.style.width=u.style.width,T.style.height=u.style.height,T.style.opacity=Q.getDragOpacity(),T.style.background=Q.getDividerBackground(),tg(e.getView(),T)}e._lastAbsPosition=Q._22o,e._86o=Sn(Q)?Di(p).x:Di(p).y,$k(e,p)}},handleWindowTouchMove:function(k){_r(k)&&this.update(k,this.sv.isContinuousLayout())},handleWindowTouchEnd:function(t){var o=this;o.update(t,!0),o.sv.setStatus(xr),o.maskDiv&&_g(o.maskDiv),o.resizeDiv&&_g(o.resizeDiv),o.maskDiv=o.resizeDiv=P},handle_mousedown:function(r){yn(r)&&this.handle_touchstart(r)},handleWindowMouseMove:function(N){this.handleWindowTouchMove(N)},handleWindowMouseUp:function(J){this.handleWindowTouchEnd(J)},update:function(J,q){var Y=this,i=Y.sv,U=Sn(i)?i.getWidth():i.getHeight(),r=i._dividerSize,n=Y._lastAbsPosition-Y._86o;Sn(i)?(n+=Di(J).x,n>U-r&&(n=U-r),0>n&&(n=0),Y.resizeDiv&&(Y.resizeDiv.style.left=n+Lq)):(n+=Di(J).y,n>U-r&&(n=U-r),0>n&&(n=0),Y.resizeDiv&&(Y.resizeDiv.style.top=n+Lq)),q&&U!==r&&(1===i._82O?i.setPosition(n,1):-1===i._82O?i.setPosition(n-U+r,1):i.setPosition(n/(U-r),1))}}),Ft.TabView=function(){var f=this,J=f._view=Bg(1,f),D=f._91O=go(1),I=f._tabModel=new zk,O=I.sm(),s=f.invalidate;f._7o=new Po,f._canvas=Hj(D),tg(J,D),tg(J,f._92O=go(1)),O.setSelectionMode(Ei),O.ms(f.handleSelectionChange,f),I.mm(s,f),I.mh(s,f),I.md(s,f),f._interactor=new Lt(f),f.iv()},Gt("TabView",$,{ms_v:1,ms_fire:1,ms_tx:1,ms_ty:1,ms_lp:1,ms_ac:["movable","tabGap","tabHeight","tabPosition",wd,Em,"tabHPadding","tabBackground","selectWidth",Tn,"moveBackground","insertColor"],_tabHPadding:0,_tabPosition:lh,_tabHeight:Rr,_tabGap:t.tabViewTabGap,_labelColor:t.tabViewLabelColor,_labelFont:t.tabViewLabelFont,_tabBackground:t.tabViewTabBackground,_selectWidth:t.tabViewSelectWidth,_selectBackground:t.tabViewSelectBackground,_moveBackground:t.tabViewMoveBackground,_insertColor:t.tabViewInsertColor,_movable:!0,handleSelectionChange:function(){this._selectionChanged=!0,this.invalidate()},getContentDiv:function(){return this._92O},getTitleDiv:function(){return this._91O},getTabModel:function(){return this._tabModel},add:function(c,K,s){var v,S=this._tabModel;return c instanceof Ht?(v=c,K&&v.setView(K)):(v=new Ht,v.setName(c),v.setView(K)),S.add(v),s&&S.sm().ss(v),v},getLabel:function(j){return j.toLabel()},onPropertyChanged:function(){this.iv()},_7Q:function(L){this._23o=L,this.iv()},get:function(S){var R=this,G=R._tabModel;if(Ll(S))return G._roots.get(S);if(ib(S)){var v;return G.each(function(o){S===R.getLabel(o)&&(v=o)}),v}return S instanceof Ht?S:P},select:function(O){this._tabModel.sm().ss(this.get(O))},remove:function(N){var h=this;if(N=h.get(N)){var B=h._tabModel,E=B._roots.indexOf(N);h._tabModel.remove(N),h.selectByIndex(--E)}},getCurrentTab:function(){return this._8o},hideTabView:function(r,a){a.parentNode===this._92O&&(or(a)?(a.style.display=Ho,a._tab_=r):_g(a),Re())},showTabView:function(e,l){or(l)&&(l.style.display="block",l._tab_=e),l.parentNode!==this._92O&&(tg(this._92O,l),Re())},_24o:function(){var u,O=this,I=O._8o,j=O._9o,t=O._tabModel.sm().ld();t&&(u=Mh(t.getView())),u!==j&&(j&&(I.getView()&&I.getView().endEditing&&I.getView().endEditing(),O.hideTabView(I,j)),u&&O.showTabView(t,u)),O._8o=t,O._9o=u,I!==t&&O.onTabChanged(I,t)},onTabClosing:function(){return!0},onTabChanged:function(){},onTabClosed:function(J,H){this.selectByIndex(--H)},selectByIndex:function(V){var F=this,G=F._tabModel,W=G.size();if(W&&!G.sm().ld()){V==P&&(V=0),V>=W&&(V=W-1),0>V&&(V=0);for(var C=V;C>=0;C--){var y=F.get(C);if(!y.isDisabled())return F.select(y),y}for(C=V+1;W>C;C++)if(y=F.get(C),!y.isDisabled())return F.select(y),y}},getTabWidth:function(T){var B=this.getTabHPadding(),p=4+2*B,C=tc(T.getIcon());C&&(p+=zs(C,T)+4);var K=this.getLabel(T);return K&&(p+=Dd(this.getLabelFont(T),K).width+4),T.isClosable()&&(p+=10),p},drawTab:function(s,w,Q,H,c,p,C){var e,l=this,u=l._tabPosition,W=this.getTabHPadding(),T=Q+4+W,k=l._selectWidth,K=tc(w.getIcon()),B=w.isDisabled(),j=l.getLabelColor(w),z=l.getLabelFont(w),q=l.getLabel(w),X=l._selectBackground,V=u===dk+"-vertical",r=u===ge+"-vertical";(V||r)&&(T=H+4+W),B&&(s.globalAlpha=Yb),_l(s,Q,H,c,p,C),w===l._8o&&k&&(u===lh?_l(s,Q,H+p-k,c,k,X):u===dk?_l(s,Q+c-k,H,k,p,X):u===ge?_l(s,Q,H,k,p,X):V?_l(s,Q+c-k,H,k,p,X):r?_l(s,Q,H,k,p,X):_l(s,Q,H,c,k,X));var G=c/2;if(V&&(Oc(s,G,H+p/2),tb(s,d),Oc(s,-G,-H-p/2)),K){var F=Mc(K,w),t=zs(K,w);if(V||r){var R=Q+c/2,M=T+F/2;Oc(s,R,M),tb(s,pn),Oc(s,-R,-M),yl(s,K,Q+c/2,T+F/2,w,l),Oc(s,R,M),tb(s,-pn),Oc(s,-R,-M),T+=F+4}else yl(s,K,T+t/2,H+p/2,w,l),T+=t+4}return V||r?(Oc(s,c/2,T+c/2),tb(s,pn),Oc(s,-c/2,-T-c/2),hp(s,q,z,j,Q,T,p,c),Oc(s,c/2,T+c/2),tb(s,-pn),Oc(s,-c/2,-T-c/2)):hp(s,q,z,j,T,H,c,p),V&&(Oc(s,G,H+p/2),tb(s,-d),Oc(s,-G,-H-p/2)),w.isClosable()&&(e=r?{x:Q+c-12,y:H+p-12,width:12,height:12}:{x:Q+c-12,y:H+2,width:12,height:12},this.drawCloseIcon(w,s,j,e)),B&&(s.globalAlpha=1),e },drawCloseIcon:function(I,k,w,z){var Y=z.x,W=z.y;k.strokeStyle=w,k.lineWidth=1,k.beginPath(),k.moveTo(Y+2,W+8),k.lineTo(Y+8,W+2),k.moveTo(Y+8,W+8),k.lineTo(Y+2,W+2),k.stroke()},getTabAt:function(z){var b=this._interactor._8Q(z);return b?b.tab:null},validateImpl:function(){var z=this;z._24o();var D,r=z._canvas,C=z._tabPosition,h=z._91O,K=z._92O,t=z._tabModel,U=z.getWidth(),F=z.getHeight(),o=z._tabHeight,X=z._7o,$=z._tabGap,d=C===lh,n=C===dk,e=C===ge,y=C===dk+"-vertical",c=C===ge+"-vertical",f=z._23o,M=0;if((n||e)&&t._roots.each(function(_){M=B(z.getTabWidth(_),M)}),d?(gb(h,0,0,U,o),D={x:0,y:o,width:U,height:B(0,F-o)}):n?(gb(h,0,0,M,F),D={x:M,y:0,width:B(0,U-M),height:F}):e?(gb(h,U-M,0,M,F),D={x:0,y:0,width:B(0,U-M),height:F}):y?(gb(h,0,0,o,F),D={x:o,y:0,width:B(0,U-o),height:F}):c?(gb(h,U-o,0,o,F),D={x:0,y:0,width:B(0,U-o),height:F}):(gb(h,0,F-o,U,o),D={x:0,y:0,width:U,height:B(0,F-o)}),gb(K,D),y||c){z._9o&&(D.x=0,gb(z._8o.getView(),D)),_j(r,o,F);var x=Lh(r),E=0;if(Ag(x,0,z.ty(),1),x.clearRect(0,0,o,F),X.clear(),t._roots.each(function(U){if(U.isVisible()){var c,w=z.getTabWidth(U);if(!f||f.tab!==U){var j=z.getTabBackground(U);c=z.drawTab(x,U,0,E,o,w,j)}X.add({_75o:c,tab:U,startY:E,endY:E+w,height:w}),E+=w+$}}),z._23Q=B(0,E-$),f){var v=f.position;z.drawTab(x,f.tab,0,f.startY,o,f.height,z._moveBackground),_l(x,0,v,o,1,z._insertColor)}if(x.restore(),z._selectionChanged){z._selectionChanged=!1;for(var k=z.ty(),I=0;IF){z.ty(F-u.endY);break}}}}z.ty(z.ty())}else if(n||e){z._9o&&(D.x=0,gb(z._8o.getView(),D)),_j(r,M,F);var x=Lh(r),E=0;if(Ag(x,0,z.ty(),1),x.clearRect(0,0,M,F),X.clear(),t._roots.each(function(G){if(G.isVisible()){var m;if(!f||f.tab!==G){var b=z.getTabBackground(G);m=z.drawTab(x,G,0,E,M,o,b)}X.add({_75o:m,tab:G,startY:E,endY:E+o,height:o}),E+=o+$}}),z._23Q=B(0,E-$),f){var v=f.position;z.drawTab(x,f.tab,0,f.startY,M,f.height,z._moveBackground),_l(x,0,v,M,1,z._insertColor)}if(x.restore(),z._selectionChanged){z._selectionChanged=!1;for(var k=z.ty(),I=0;IF){z.ty(F-u.endY);break}}}}z.ty(z.ty())}else{z._9o&&(D.y=0,gb(z._8o.getView(),D)),_j(r,U,o);var x=Lh(r),_=0;if(Ag(x,z.tx(),0,1),x.clearRect(0,0,U,o),X.clear(),t._roots.each(function(N){if(N.isVisible()){var m,G=z.getTabWidth(N);if(!f||f.tab!==N){var F=z.getTabBackground(N);m=z.drawTab(x,N,_,0,G,o,F)}X.add({_75o:m,tab:N,startX:_,endX:_+G,width:G}),_+=G+$}}),z._64I=B(0,_-$),f){var v=f.position;z.drawTab(x,f.tab,f.startX,0,f.width,o,z._moveBackground),Je(x,z._insertColor,v,0,o)}if(x.restore(),z._selectionChanged){z._selectionChanged=!1;for(var P=z.tx(),I=0;IU){z.tx(U-u.endX);break}}}}z.tx(z.tx())}for(var p=[],g=K.children,I=0;I2&&(H._40o()&&!Hn(m)?t._25o=1:V&&H.isMovable()&&(t.moving=1)),t._25o)H.tx(t.tx+A);else if(t.moving){var l=t.lp.x+A,R=H._tabGap/2;H._7o.each(function(F){var E=F.endX,i=l-F.startX=F.startX&&E>=l&&H._7Q({tab:V.tab,startX:V.startX+A,width:V.width,front:i,insertTab:F.tab,position:i?B(0,F.startX-R):v(H._64I,E+R)})})}}else if(A=Di(m).y-t.y,!t._25o&&!t.moving&&_(A)>2&&(H._41o()&&!Hn(m)?t._25o=1:V&&H.isMovable()&&(t.moving=1)),t._25o)H.ty(t.ty+A);else if(t.moving){var K=t.lp.y+A,R=H._tabGap/2;H._7o.each(function(a){var x=a.endY,r=K-a.startY=a.startY&&x>=K&&H._7Q({tab:V.tab,startY:V.startY+A,height:V.height,front:r,insertTab:a.tab,position:r?B(0,a.startY-R):v(H._23Q,x+R)})})}},handleWindowMouseUp:function(D){this.handleWindowTouchEnd(D)},handleWindowTouchEnd:function(){var X=this,u=X.tv,w=u._tabPosition,h=u.getTabModel(),i=h._roots,G=X._73o;if(X.moving){var q=u._23o;if(q&&q.insertTab!==q.tab){var _=q.tab,V=i.remove(_),k=i.indexOf(q.insertTab);k>=0&&(q.front||k++,k<=i.size()&&(i.add(_,k),h._38I(_,V,k)))}u._7Q(P),delete X.moving}else if(!X._25o&&G){_=G.tab;var F=X._74o;if(!F||F.tab===_)if(!_.isDisabled()&&kf(G._75o,X.lp)){var W=function(){var e=i.indexOf(_);h.remove(_),u.onTabClosed(_,e)};u.onTabClosing(_,W)&&W()}else _.isDisabled()||u._8o===_||h.sm().ss(_)}X._25o=X._73o=X._74o=w===lh||w===Li?X.x=X.lp=X.tx=P:X.y=X.lp=X.ty=P}}),Ft.PropertyView=function(F){var H=this;H._view=Bg(1,H),H._canvas=Hj(H._view),tg(H._view,H._79O=go()),H._rows=new Po,H._28o=new Po,H._26o={},H._26Q={};var e=H._propertyModel=new zk,D=H.ivm;e.mm(D,H),e.md(D,H),e.mh(D,H),H.dm(F?F:new zk),new Mt(H)},Gt("PropertyView",$,{ms_ac:[wd,eg,Em,gj,Mn,"categorizable",Ko,kb,$i,Jl,Rp,ai,Df,Yg,"selectRowIndex",Tn,"background",yq,ik,Zi,xo,nm],ms_v:1,ms_dm:1,ms_fire:1,ms_sm:1,_49o:1,ms_txy:1,ms_lp:1,ms_vs:1,_45o:1,_47o:1,ms_tip:1,_29I:Mk,_59I:0,_9I:0,_selectRowIndex:-1,_editable:!0,_batchEditable:!0,_categorizable:!0,_indent:rc,_background:t.propertyViewBackground,_expandIcon:t.propertyViewExpandIcon,_collapseIcon:t.propertyViewCollapseIcon,_scrollBarColor:Zm,_scrollBarSize:Yi,_autoHideScrollBar:Vf,_selectBackground:t.propertyViewSelectBackground,_rowHeight:oi,_rowLineVisible:t.propertyViewRowLineVisible,_rowLineColor:t.propertyViewRowLineColor,_10I:.5,_columnLineVisible:t.propertyViewColumnLineVisible,_columnLineColor:t.propertyViewColumnLineColor,_labelColor:t.propertyViewLabelColor,_labelSelectColor:t.propertyViewLabelSelectColor,_labelFont:t.propertyViewLabelFont,getRows:function(){return this._rows},getColumnPosition:function(){return this._10I},setColumnPosition:function(h){0>h&&(h=0),h>1&&(h=1);var L=this,B=L._10I;L._10I=h,L.fp("columnPosition",B,h)},getPropertyName:function(H){return H.toLabel()},getLabelFont:function(){return this._labelFont},getLabelColor:function(j,C,V){return V===this._selectRowIndex?this._labelSelectColor:this._labelColor},getPropertyFont:function(){return this._labelFont},getPropertyColor:function(U,u){return u===this._selectRowIndex?this._labelSelectColor:U.getColor()||this._labelColor},getCategoryFont:function(){return this._labelFont},getCategoryColor:function(){return this._labelColor},adjustTranslateX:function(){return 0},adjustTranslateY:function(b){var d=this.getHeight()-this._59I;return d>b&&(b=d),b>0?0:W(b)},isExpanded:function(g){if(!g)return!0;var _=this._26o[g];return _?_.isExpanded:!(this._26Q[g]===!1)},toggle:function(R){var v=this;v.isExpanded(R)?v.collapse(R):v.expand(R)},expandAll:function(){this.validate();for(var f in this._26o)this.expand(f)},expand:function(W){if(W&&W!==Ho){var o=this,x=o._26o[W];x&&!x.isExpanded&&(x.isExpanded=!0,o.onExpanded(W),o.ivm())}},onExpanded:function(){},collapseAll:function(){this.validate();for(var a in this._26o)this.collapse(a)},collapse:function(R){if(R&&R!==Ho){var l=this,M=l._26o[R];M&&M.isExpanded&&(M.isExpanded=!1,l.onCollapsed(R),l.ivm())}},onCollapsed:function(){},getCategoryName:function(h){if(!this.isCategorizable())return Ho;var W=h.getCategoryName();return W?W:Ho},getPropertyModel:function(){return this._propertyModel},handleSelectionChange:function(){this.ivm()},setDataModel:function(g){var w=this,D=w._dataModel;D!==g&&(D&&(D.umd(w.handlePropertyChange,w),w._selectionModel||D.sm().ums(w.handleSelectionChange,w)),w._dataModel=g,g.md(w.handlePropertyChange,w),w._selectionModel?w._selectionModel._21I(g):g.sm().ms(w.handleSelectionChange,w),w.fp(Zb,D,g))},isVisible:function(o){return this._visibleFunc?this._visibleFunc(o):!0},onPropertyChanged:function(o){var e=this,j=o.property;At[j]?e.ivm():e.iv(),j===wc&&e._43o()},getCurrentData:function(){return this._27o},updateCurrentData:function(){this._27o=this.sm().ld()},getRawProperties:function(){return this._27o?this._propertyModel._roots:rh},handlePropertyChange:function(v){this._27o===v.data&&this.iv()},ivm:function(){this.invalidateModel()},invalidateModel:function(){var I=this;I._96I||(I.setSelectRowIndex(-1),I._96I=1,I.iv())},redraw:function(){this.iv()},validateModel:function(){var Y=this,K=Y._rows,c=Y._28o,L={},p=new Po,D=Y._27o;Y.updateCurrentData(),D!==Y._27o&&Y.endEditing(),K.clear(),c.clear(),Y.getRawProperties().each(function(g){if(Y.isVisible(g)){p.add(g);var K=Y.getCategoryName(g);L[K]||(c.add(K,K===Ho?0:m),L[K]={isExpanded:Y.isExpanded(K),properties:new Po})}}),Y._sortFunc&&p.sort(Y._sortFunc);for(var Q in Y._26o)Y._26Q[Q]=Y.isExpanded(Q);Y._26o=L,c.each(function(s){s!==Ho&&K.add(s);var h=L[s];h.isExpanded&&p.each(function(B){Y.getCategoryName(B)===s&&(h.properties.add(B),K.add({property:B,data:Y._27o}))},Y)})},validateImpl:function(){var V=this;V._76o(),V._96I&&(V.validateModel(),delete V._96I);var l=V._canvas,w=V.getWidth(),n=V.getHeight(),I=-V.ty(),_=V._rowHeight,M=V._indent,e=w-M,A=V._rows,R=A.size(),C=V._9I=M+e*V._10I,W=V._59I=R*_;_j(l,w,n),V._29I={x:0,y:I,width:w,height:n},V._31I=x(I/_),V._14I=Y((I+n)/_),V._31I<0&&(V._31I=0),V._14I>R&&(V._14I=R);var z,h=Lh(l),m=V._background;Ag(h,0,-I,1),h.beginPath(),h.rect(0,I,w,n),h.clip(),h.clearRect(0,I,w,n),V._93db(h),m&&_l(h,0,0,M,W,m);for(var L=V._31I;L=0&&h=0?g._rows.get(u).property:P},getToolTip:function(u){var J=this,c=J.getPropertyAt(u),y=J._27o;return c&&y?c.getToolTip(y,J._9I=0){var r=$._rowHeight,X=r*q,a=$._rows.get(q),u=a.property;if(ib(a))tc($.isExpanded(a)?$._expandIcon:$._collapseIcon)&&z>=0&&W>=z&&S>=X&&X+r>=S?$.toggle(a):De(R)&&$.toggle(a);else if(z>y&&$.isPropertyEditable(u,R)){var G={x:y+1,y:X,width:$.getWidth()-y-1,height:r},C={x:G.x+$.tx(),y:G.y+$.ty(),width:G.width,height:G.height},O=0,j=$._29I;G.yj.y+j.height&&(O=G.y+r-j.y-j.height),O&&($.ty($.ty()-O),C.y-=O),$.beginEditing({data:a.data,property:u,value:$.getValue(a.data,u),event:R,rect:G,editorRect:C,view:$})}}$.setSelectRowIndex(q)}K.clear()},handleWindowMouseMove:function(V){this.handleWindowTouchMove(V)},handleWindowTouchMove:function(r){var Z=this,R=Z.pv,h=Z.ty,f=Z.cp,x=Di(r),V=Z._62O;if("p"===V)R.setTranslateY(h+x.y-f.y);else if("c"===V){var w=R.getWidth()-R._indent;if(w>16){var W=Z.p-(f.x-x.x)/w,Q=16/w;Q>W&&(W=Q),W>1-Q&&(W=1-Q),R.setColumnPosition(W)}}else"s"===V&&R.setTranslateY(h+(f.y-x.y)*R._59I/R._29I.height)},handle_mousemove:function(k){this.handle_touchmove(k)},handle_touchmove:function(p){if(!gk&&yn(p)){var s=this,r=s.pv,g=_(r.lp(p).x-r._9I)<=(pr?8:3);s.cp?s._62O||(g?(s._62O="c",$k(s,p)):_(Di(p).y-s.cp.y)>=2&&(s._62O=s.isV(p)?"s":"p",$k(s,p))):(g?s.setCursor(cp):s.setCursor(br),s.isV(p)&&r._43o())}},isV:function(X){var Q=this.pv,n=Q._29I;return Q._41o()&&n.x+n.width-Q.lp(X).xH&&(H=0),H>=I&&(H=I-1),E.setSelectRowIndex(H))}}),Ft.ListView=function(z){this._5o(z),new Nt(this)},Gt("ListView",$,{ms_ac:[wd,eg,Em,yq,Ko,ik,Zi,kb,$i,ai,Df,Yg,fg,Tn],ms_v:1,ms_bnb:1,ms_tip:1,ms_fire:1,ms_sm:1,_49o:1,ms_txy:1,ms_lp:1,ms_vs:1,ms_hs:1,_15Q:1,_14Q:1,ms_dm:1,_45o:1,_checkMode:!1,_indent:rc,_rowHeight:oi,_rowLineVisible:t.listViewRowLineVisible,_rowLineColor:t.listViewRowLineColor,_scrollBarColor:Zm,_scrollBarSize:Yi,_autoMakeVisible:Od,_autoHideScrollBar:Vf,_selectBackground:t.listViewSelectBackground,_labelColor:t.listViewLabelColor,_labelSelectColor:t.listViewLabelSelectColor,_labelFont:t.listViewLabelFont,isCheckMode:function(){return this._checkMode},setCheckMode:function(W){var u=this,t=u._checkMode;u._checkMode=W,u.fp(Yp,t,W)},drawRow:function(l,E,B,Y,X,Z,S){var y=this,R=0,r=y._indent,$=y.getIconWidth(E);y.drawRowBackground(l,E,B,Y,X,Z,S),y._checkMode&&(yl(l,tc(y.getCheckIcon(E)),R+r/2,X+S/2,E,y),R+=r),y.drawIcon(l,E,R,X,$,S),y.drawLabel(l,E,R+$,X,S)}});var Nt=function(L){this.list=L,this.addListeners()};Ri(Nt,$,{ms_listener:1,getView:function(){return this.list._view},clear:function(Z){var n=this,K=n.list;Z&&"d"===n._62O&&!n.dragCancel&&K.handleDragAndDrop(Z,"end"),K.draggingData&&(K.draggingData=null,K.redraw()),n.dragCancel=n._62O=n._isV=n._isH=n.cp=n.tx=n.ty=P},handle_mousedown:function(N){this.handle_touchstart(N)},handle_touchstart:function(T){var f=this,M=f.list;if(Nj(T),M.setFocus(T)){var z=M.getDataAt(T);f.cp=Di(T),f.tx=M.tx(),f.ty=M.ty(),yn(T)?z&&M.handleDragAndDrop&&!f.isV(T)&&!f.isH(T)&&(M.draggingData=z,M.redraw(),M.handleDragAndDrop(T,"prepare")):(z?f._33o(T,z):this._cancelDataDoubleSelect(),f.clear(T))}},handleWindowMouseUp:function(P){this.clear(P)},handleWindowTouchEnd:function(B){this.clear(B)},handle_mouseup:function(R){this.handle_touchend(R)},handle_touchend:function(z){var R=this,a=R.list;if(!R._isV&&!R._isH&&R.cp&&!R._62O){var U=a.getDataAt(z);U?(a.isCheckMode()?R._34o(z,U):R._33o(z,U),De(z)?a.onDataDoubleClicked(U,z):a.onDataClicked(U,z)):(R._cancelDataDoubleSelect(),a.handleBackgroundClick(z))}R.clear(z)},handleWindowMouseMove:function(O){this.handleWindowTouchMove(O)},handleWindowTouchMove:function(y){var z=this,L=z.list,M=z._62O,R=z.tx,r=z.ty,H=z.cp,V=Di(y),Y=L._29I;"p"===M?L.setTranslate(R+V.x-H.x,r+V.y-H.y):"v"===M?L.ty(r+(H.y-V.y)*L._59I/Y.height):"h"===M?L.tx(R+(H.x-V.x)*L._91I/Y.width):"d"===M&&(z.dragCancel||L.handleDragAndDrop(y,"between"))},handle_mousemove:function(f){this.handle_touchmove(f)},handle_touchmove:function(s){if(!gk&&yn(s)){var M=this,t=M.list;if(M._isV=M.isV(s),M._isH=M.isH(s),M.cp){if(!M._62O){if(Yh(Di(s),M.cp)<2)return;M._isV?M._62O="v":M._isH?M._62O="h":t.draggingData&&!this.dragCancel?(M._62O="d",t.handleDragAndDrop(s,"begin")):M._62O="p",M._62O&&"d"!==M._62O&&t.draggingData&&(t.draggingData=null,t.redraw()),$k(M,s)}}else M._isV&&t._43o(),M._isH&&t._42o()}},isV:function(L){var j=this.list,q=j._29I;return j._41o()&&q.x+q.width-j.lp(L).x=0&&(Rk(Y)?0!==T&&(y=D.get(T-1),j?N.setFocusData(y):B.ss(y)):T!==E-1&&(y=D.get(T+1),j?N.setFocusData(y):B.ss(y)))}else E>0&&(y=D.get(0),j?N.setFocusData(y):B.ss(y))}}},_34o:function(u,q){var y=this.list,Q=y.lp(u).x;return Q>=0&&Q<=y._indent?(y.checkData(q),void 0):(y.setFocusData(q),void 0)},_33o:function(S,t){var u=this.list,G=u.sm(),l=G.ld();if(!u.canHandleSelectMode(S,t))return this._cancelDataDoubleSelect(),void 0;if(Hn(S))u.isSelected(t)?G.rs(t):G.as(t);else if(Me(S))if(l)for(var c=u.getRowIndex(l),C=u.getRowIndex(t);c!==C;)c+=C>c?1:-1,G.as(u._rows.get(c));else G.ss(t);else yn(S)?(G.contains(t)?u.handleDataDoubleSelect&&(this._handleDataDoubleSelect(S,t),De(S)&&this._cancelDataDoubleSelect()):this._cancelDataDoubleSelect(),G.ss(t)):G.contains(t)||G.ss(t)},_handleDataDoubleSelect:function(k,y){this._cancelDataDoubleSelect(),this._doubleSelectTimer=Zr(function(){this.list.handleDataDoubleSelect(k,y),this._doubleSelectTimer=m}.bind(this),t.doubleClickSpeed)},_cancelDataDoubleSelect:function(){this._doubleSelectTimer&&(Nq(this._doubleSelectTimer),this._doubleSelectTimer=m)}}),Ft.TreeView=function(A){var X=this;X._35o(),X._5o(A),new Ot(X)},Gt("TreeView",$,{ms_ac:[wd,eg,Em,"rootVisible",Yp,"rootData",kb,$i,ai,Df,Yg,Ko,yq,ik,Zi,Jl,Rp,fg,Tn,"loader","doubleClickToToggle"],ms_v:1,ms_bnb:1,ms_tip:1,ms_fire:1,ms_sm:1,_49o:1,ms_txy:1,ms_lp:1,ms_vs:1,ms_hs:1,_15Q:1,ms_dm:1,_48o:1,_14Q:1,_45o:1,_checkMode:P,_indent:rc,_rowHeight:oi,_rowLineVisible:t.treeViewRowLineVisible,_rowLineColor:t.treeViewRowLineColor,_scrollBarColor:Zm,_scrollBarSize:Yi,_autoHideScrollBar:Vf,_expandIcon:t.treeViewExpandIcon,_collapseIcon:t.treeViewCollapseIcon,_autoMakeVisible:Od,_selectBackground:t.treeViewSelectBackground,_labelColor:t.treeViewLabelColor,_labelSelectColor:t.treeViewLabelSelectColor,_labelFont:t.treeViewLabelFont,_doubleClickToToggle:t.treeViewDoubleClickToToggle,drawRow:function(P,e,v,w,Y,I,D){var $=this;$.drawRowBackground(P,e,v,w,Y,I,D),$.drawTree(P,e,v,0,Y,I,D)},isOnToggleIcon:function(E){var K=this.getDataAt(E);if(K){var F=this.getIndent(),N=this.lp(E).x;if(tc(this.getToggleIcon(K))){var u=F*this.getLevel(K);if(N>=u&&u+F>=N)return!0}}return!1}});var Ot=function(v){bo(Ot,this,[v])};Ri(Ot,Nt,{toggle:function(N,b,G,v){var X=this.list,w=X.lp(N).x;if(tc(X.getToggleIcon(b))){var i=G*v;if(w>=i&&i+G>=w)return X.toggle(b),!0}return X.isDoubleClickToToggle()&&De(N)?(X.toggle(b),!0):!1},_34o:function(a,j){var S=this.list,f=S.lp(a).x,R=S._levelMap[j._id],n=S._indent,A=n*(R+1);return f>=A&&A+n>=f?(S.checkData(j),void 0):(this.toggle(a,j,n,R)||S.setFocusData(j),void 0)},_33o:function(o,V){var D=this,c=D.list;if(!D.toggle(o,V,c._indent,c.getLevel(V)))if(Me(o)){var M=c.sm();if(M.size()>0){for(var u=c._rows,b=null,l=0,F=u.size();F>l;l++)if(c.isSelected(u.get(l))){b=l;break}for(var I=null,l=u.size()-1;l>=0;l--)if(c.isSelected(u.get(l))){I=l;break}var t,m,r=c.getRowIndex(V);for(b>r?(t=r-1,m=b):r>I?(t=I,m=r):(t=b,m=I);t!==m;)t++,M.as(c._rows.get(t))}else M.ss(V)}else Ot.superClass._33o.call(D,o,V)},handle_keydown:function(q){if(ab(q)||Uo(q)){var k=this.list,s=k._rows,v=k.isCheckMode(),T=k.sm(),C=v?k.getFocusData():T.ld();C?C.hasChildren()&&(ab(q)?k.collapse(C):k.expand(C)):s.size()>0&&(C=s.get(0),v?k.setFocusData(C):T.ss(C))}else Ot.superClass.handle_keydown.call(this,q)}});var Pt=Ft.TableView=function(T){this._98I(),this._5o(T),new Qt(this)};Gt("TableView",$,{ms_ac:[wd,eg,Em,"sortMode",gj,Mn,yq,ik,Zi,xo,nm,"sortColumn",kb,$i,ai,Df,Yg,fg,Tn],ms_v:1,ms_fire:1,ms_sm:1,_49o:1,ms_txy:1,ms_lp:1,ms_vs:1,ms_hs:1,_15Q:1,ms_dm:1,ms_tip:1,_50o:1,_45o:1,_47o:1,_sortMode:ec,_editable:!0,_batchEditable:!1,_rowHeight:oi,_rowLineVisible:t.tableViewRowLineVisible,_rowLineColor:t.tableViewRowLineColor,_columnLineVisible:t.tableViewColumnLineVisible,_columnLineColor:t.tableViewColumnLineColor,_scrollBarColor:Zm,_scrollBarSize:Yi,_autoHideScrollBar:Vf,_autoMakeVisible:Od,_selectBackground:t.tableViewSelectBackground,_labelColor:t.tableViewLabelColor,_labelSelectColor:t.tableViewLabelSelectColor,_labelFont:t.tableViewLabelFont,getCheckColumn:function(){var l=this;if(!l._31o){var e=l._31o=new It;e.setEditable(!0),e.setWidth(40),e.getValue=l.getCheckColumValue,e.drawCell=l.drawCheckColumnCell}return l._31o},isCheckMode:function(){return this._39o.contains(this._31o)},setCheckMode:function(A){var L=this,j=L._39o,G=L.getCheckColumn();A!==L.isCheckMode()&&(A?j.add(G,0):j.remove(G),L.fp(Yp,!A,A))},getCheckColumValue:function(M,u,W){return W.isSelected(M)},drawCheckColumnCell:function(z,X,W,m,u,q,w,T,f){yl(z,f.getCheckIcon(X),u+w/2,q+T/2,X,f)}});var Qt=function(U){bo(Qt,this,[U])};Ri(Qt,Nt,{_34o:function(v,s){var A=this.list,g=A._31o;if(A.isCellEditable(s,g,v)){var Y=A._3Q(g),I=A.lp(v).x;if(Y&&I>=Y.startX&&I=w&&w+Y>=L)return J.toggle(P),void 0;if(J.isCellEditable(P,S)&&(w+=Y,L>=w&&w+Y>=L))return J.checkData(P),void 0}J._37O(P,M),J.setFocusData(P)},_33o:function(P,l){var d=this.list,g=d.lp(P).x;if(tc(d.getToggleIcon(l))){var q=d._3Q(d._4o);if(q){var U=d._indent,A=q.startX+U*d.getLevel(l);if(g>=A&&A+U>=g)return d.toggle(l),void 0}}d._37O(l,P),Ut.superClass._33o.apply(this,arguments)}});var Vt=Ft.TableHeader=function(f){var F=this,h=F._view=Bg(1,F),$=F._39o=f.getColumnModel(),B=F.iv;F.tv=F._tableView=f,F._60I=new Po,F._canvas=Hj(h),h.style.background=t.tableHeaderBackground||"",h.style.height=je+Lq,$.mm(B,F),$.md(B,F),$.mh(B,F),f.mp(function(w){wt[w.property]&&F.iv()},F),new Wt(F),F.iv()};Gt("TableHeader",$,{ms_v:1,ms_lp:1,ms_fire:1,ms_ac:["checkIcon","sortDescIcon","sortAscIcon",wd,Em,Ko,"moveBackground","insertColor",xo,nm,"resizable","movable"],_checkIcon:am,_movable:!0,_resizable:!0,_labelColor:t.tableHeaderLabelColor,_labelFont:t.tableHeaderLabelFont,_columnLineColor:t.tableHeaderColumnLineColor,_columnLineVisible:t.tableHeaderColumnLineVisible,_sortDescIcon:t.tableHeaderSortDescIcon,_sortAscIcon:t.tableHeaderSortAscIcon,_moveBackground:t.tableHeaderMoveBackground,_insertColor:t.tableHeaderInsertColor,_indent:rc,getCheckIcon:function(){return this._checkIcon},getTableView:function(){return this.tv},getLabel:function(X){return X.toLabel()},getLabelFont:function(){return this._labelFont},getLabelColor:function(J){return J.getColor()||this._labelColor},getLabelAlign:function(E){return E._align},onPropertyChanged:function(){this.iv()},_5Q:function(b){this._61I=b,this.iv()},getLogicalPoint:function(k){return gg(k,this._canvas,this.tv.tx())},validateImpl:function(){var k=this,L=k._canvas,s=k.getWidth(),y=k.getHeight(),O=k.tv,r=k._60I,J=k._61I,U=-O.tx(),d=0;(s!==L.clientWidth||y!==L.clientHeight)&&_j(L,s,y),r.clear(),k._39o._roots.each(function(P){if(P.isVisible()){var $=d+P.getWidth();U+s>=d&&$>=U&&r.add({column:P,startX:d}),d=$}});var i=Lh(L);if(Ag(i,-U,0,1),i.beginPath(),i.rect(U,0,s,y),i.clip(),i.clearRect(U,0,s,y),r.each(function(j){var K=j.column,Z=j.startX,o=K.getWidth();o>0&&(i.save(),i.beginPath(),i.rect(Z,0,o,y),i.clip(),J&&J.column===K||k.drawColumn(i,K,Z,0,o,y),k._columnLineVisible&&_l(i,Z+o-1,0,1,y,k._columnLineColor),i.restore())}),J){var h=J.column,d=J.startX,x=J.position,S=h.getWidth();i.save(),i.beginPath(),i.rect(d,0,S,y),i.clip(),i.fillStyle=k._moveBackground,i.fill(),k.drawColumn(i,h,d,0,S,y),i.restore(),Je(i,k._insertColor,x,0,y)}i.restore()},_6Q:function(J){var n=this.tv;return n._31o===J&&n.sm().getSelectionMode()===fr},drawColumn:function(W,f,t,i,s,g){var Y=this,Q=Y.tv,o=tc(f.getIcon()),T=Y.getLabelAlign(f);if(Y._6Q(f)){var M=tc(Y._checkIcon);yl(W,M,t+s/2,i+g/2,f,Y)}else{var X=Y.getLabel(f),w=Y.getLabelFont(f),q=Y.getLabelColor(f),D=Dd(w,X).width,x=o?Y._indent:0;T===dk?(o&&Ql(W,o,Jk,t,i,x,g),hp(W,X,w,q,t+x,i,s,g,dk)):T===ge?(o&&Ql(W,o,Jk,t+s-D-x,i,x,g),hp(W,X,w,q,t,i,s,g,ge)):(o&&Ql(W,o,Jk,t+(s-D-x)/2,i,x,g),hp(W,X,w,q,t+(s-D+x)/2,i,0,g,dk))}if(f.isSortable()&&Q.getSortColumn()===f&&(o=tc(f.getSortOrder()===Ji?Y._sortAscIcon:Y._sortDescIcon))){var S=zs(o,f)/2+2;yl(W,o,T===ge?t+S:t+s-S,i+g/2,f,Q)}}});var Wt=function(D){var d=this;d.th=D,d.tv=D._tableView,d.addListeners()};Ri(Wt,$,{ms_listener:1,getView:function(){return this.th.getView()},setCursor:function(I){this.getView().style.cursor=I},handle_mousemove:function(d){if(!gk){var J=this;delete J._29o,J.setCursor(br);for(var B=J.th,W=B._60I,R=B.lp(d).x,V=W.size()-1;V>=0;V--){var Z=W.get(V),$=Z.column,X=Z.startX+$.getWidth();if(B.isResizable()&&_(X-R)<=(pr?10:3))return J._29o=Z,J.setCursor(cp),void 0;R>Z.startX&&X>R&&(J._29o=Z),($.isClickable()||$.isSortable()||B.isMovable()||J.tv.getCheckColumn&&$===J.tv.getCheckColumn())&&R>Z.startX&&X>R&&J.setCursor(Eb)}}},handle_mousedown:function(X){this.handle_touchstart(X)},handle_touchstart:function(D){var K=this;Nj(D),K.tv.endEditing(),K.handle_mousemove(D),K._29o&&(K.x=Di(D).x,K.lx=K.th.lp(D).x,K.w=K._29o.column.getWidth(),$k(K,D))},handleWindowMouseMove:function(J){this.handleWindowTouchMove(J)},handleWindowTouchMove:function(Z){var f=this,i=f.th,P=f.getView().style.cursor,W=f._29o,N=Di(Z).x-f.x;if(f.resizing||f.moving||(P===cp?f.resizing=1:i.isMovable()&&P===Eb&&_(N)>2&&(f.moving=1)),f.resizing)W.column.setWidth(f.w+N);else if(f.moving){var x=f.lx+N;i._60I.each(function(D){var S=D.startX,y=S+D.column.getWidth();if(x>=S&&y>=x){var f={column:W.column,startX:W.startX+N,front:y-x>x-S,insertColumn:D.column};f.position=f.front?S:y,i._5Q(f)}})}},_16Q:function(L,t){var P=this,S=P.tv,O=P.th,y=O._checkIcon;if(O._6Q(L)){var o=tc(y),d=P.lx,K=L.getWidth(),I=zs(o,L);if(d>=t+K/2-I&&t+K/2+I>=d){O.setCheckIcon(y===qd?am:qd);var k=S.sm(),B=S._rows;return y===qd?k.rs(B):k.ss(B),S.onCheckColumnClicked(L),!0}}return!1},handleWindowMouseUp:function(p){this.handleWindowTouchEnd(p)},handleWindowTouchEnd:function(m){var K=this,B=K.tv,r=K.th,M=K._29o;if(K.moving){var E=r._61I;if(E&&E.insertColumn!==E.column){var y=E.column,k=B.getColumnModel()._roots,O=k.remove(y),D=k.indexOf(E.insertColumn);D>=0&&(E.front||D++,D<=k.size()&&(k.add(y,D),B.getColumnModel()._38I(y,O,D)))}r._5Q(P),delete K.moving}else if(!K.resizing&&M){y=M.column;var l=r.lp(m).x,S=M.startX,j=!0;if(r.onColumnClicked){var p=r.onColumnClicked(y,m,S);p===!1&&(j=!1)}if(j&&l>=S&&l<=S+y.getWidth()&&!K._16Q(y,S)){if(y.isSortable()){var U=B.getSortMode(),C=y.getSortOrder();U===ec?B.getSortColumn()===y?(C===gd&&B.setSortColumn(P),y.setSortOrder(C===Ji?gd:Ji)):B.setSortColumn(y):"bistate"===U&&(B.getSortColumn()===y?y.setSortOrder(C===Ji?gd:Ji):B.setSortColumn(y))}B.onColumnClicked(y,m,S)}}K._29o=K.resizing=K.x=K.lx=K.w=P}}),Ft.TablePane=function(d){this.init(new Pt(d))},Gt("TablePane",$,{ms_v:1,_44o:1}),Ft.TreeTablePane=function(P){this.init(new Rt(P))},Gt("TreeTablePane",$,{ms_v:1,_44o:1}),Ft.Toolbar=function(C){var r=this,E=r._view=Bg(1,r),X=E.style;X.background=t.toolbarBackground||"",X.height=Rr+Lq,r._canvas=Hj(E),r._30o=new Po,r._90I=new Po,r.setItems(C||[]),E.handleGroupSelectedChanged=function(H){if(H.isSelected()){var p=H.getGroupId();null!=p&&r._items.forEach(function(Q){var x=Q.element;x&&x!==H&&x.setSelected&&x.getGroupId&&x.getGroupId()===p&&x.setSelected(!1)})}},new Xt(r)},Gt("Toolbar",$,{ms_v:1,ms_fire:1,ms_tx:1,ms_lp:1,ms_tip:1,ms_value:1,ms_ac:[Ek,wd,Em,eg,Tn,"itemGap","separatorColor","currentItem","stickToRight"],_labelColor:t.toolbarLabelColor,_labelSelectColor:t.toolbarLabelSelectColor,_labelFont:t.toolbarLabelFont,_selectBackground:t.toolbarSelectBackground,_itemGap:t.toolbarItemGap,_separatorColor:t.toolbarSeparatorColor,_stickToRight:!1,getSumWidth:function(){return this._64I },getToolTip:function(Q){var z=this.getItemInfoAt(Q);return z?z.item.toolTip:P},getLabelColor:function(x){return x&&x.selected&&x.type!==qd&&x.type!==Gd?this._labelSelectColor:this._labelColor},onPropertyChanged:function(I){this.iv(),I.property===Ek&&this._items.forEach(function(K){Hc(K)})},redraw:function(){this.iv()},addItem:function(e,H){var $=this._items;H==P?$.push(e):$.splice(H,0,e),this.fp(Ek,P,$)},removeItem:function(H){if(H)for(var g=this._items,E=0;E=0&&d<=S.getHeight())for(;l2&&U.isScrollable()&&(z._25o=1),z._25o&&U.tx(z.tx+n)}},handleWindowMouseUp:function(B){this.handleWindowTouchEnd(B)},handleWindowTouchEnd:function(J){var u=this,r=u.tb,C=u.info,E=u.tb.getItemInfoAt(J);if(!u._25o&&C){var W=C.item;E&&E.item===W&&r.handleClick(W,J)}u._25o=u.x=u.tx=P,u.setItem()},setItem:function(Y,H){var C=this,Q=C.tb,m=C.info=Y?Q.getItemInfoAt(Y):P,j=m?m.item:P;Q.setCurrentItem(j),H&&j&&ns(j.onDown)&&j.onDown(Y)}}),Ft.BorderPane=function(){this._view=Bg(1,this),this.iv()},Gt("BorderPane",$,{ms_v:1,ms_ac:["topHeight","bottomHeight","leftWidth","rightWidth"],ms_fire:1,getLeftView:function(){return this._leftView},setLeftView:function(r,Q){this._12o("leftView",r),Q!=P&&this.setLeftWidth(Q)},getRightView:function(){return this._rightView},setRightView:function(d,V){this._12o("rightView",d),V!=P&&this.setRightWidth(V)},getTopView:function(){return this._topView},setTopView:function(x,M){this._12o("topView",x),M!=P&&this.setTopHeight(M)},getBottomView:function(){return this._bottomView},setBottomView:function(A,k){this._12o("bottomView",A),k!=P&&this.setBottomHeight(k)},getCenterView:function(){return this._centerView},setCenterView:function(B){this._12o("centerView",B)},_12o:function(b,J){var O=this,Q="_"+b,Z=O._view,V=O[Q];V!==J&&(V&&(V.getView?_g(V.getView()):_g(V)),O[Q]=J,J&&(J.getView?tg(Z,J.getView(),1):tg(Z,J,1)),O.fp(b,V,J))},onPropertyChanged:function(){this.iv()},validateImpl:function(){var h=this,J=h._topView,b=h._bottomView,a=h._leftView,o=h._rightView,m=h._centerView,K=h.getWidth(),T=h.getHeight(),k=0,n=0,w=K,y=T,R=0,l=0,d=0,N=0;J&&(R=h._topHeight==P?ap(J):h._topHeight,n=R),b&&(l=h._bottomHeight==P?ap(b):h._bottomHeight,y=T-l),a&&(d=h._leftWidth==P?Jq(a):h._leftWidth,k=d),o&&(N=h._rightWidth==P?Jq(o):h._rightWidth,w=K-N);var Z=B(0,w-k),u=B(0,y-n);J&&gb(J,0,0,K,R),b&&gb(b,0,y,K,l),a&&gb(a,0,n,d,u),o&&gb(o,w,n,N,u),m&&gb(m,k,n,Z,u)}})}}("undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:(0,eval)("this"),Object);