mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 19:08:35 +08:00
2 lines
222 KiB
JavaScript
2 lines
222 KiB
JavaScript
var Oe=Object.defineProperty;var xe=Object.getOwnPropertySymbols;var Me=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable;var we=(xt,K,c)=>K in xt?Oe(xt,K,{enumerable:!0,configurable:!0,writable:!0,value:c}):xt[K]=c,Ae=(xt,K)=>{for(var c in K||(K={}))Me.call(K,c)&&we(xt,c,K[c]);if(xe)for(var c of xe(K))Te.call(K,c)&&we(xt,c,K[c]);return xt};import{a7 as jt,h as Le,r as ve,i as Ie,I as ke,o as Fe,t as Re,k as me,l as Zt,m as Lt,x as pe,y as ge,z as Ne,X as be,W as ye,J as _e,b as Ge,n as Be,a8 as He,C as Jt,p as re,q as Ue}from"./vendor.14d7a511.js";import{S as Ye}from"./sortable.esm.31e56bbd.js";import{_ as Xe,u as Ve}from"./index.c04616ec.js";import We from"./index.c2008091.js";import ze from"./index.628a8ca7.js";var Pe={};(function(xt){(function(){typeof Math.sgn=="undefined"&&(Math.sgn=function(p){return p==0?0:p>0?1:-1});var K={subtract:function(p,E){return{x:p.x-E.x,y:p.y-E.y}},dotProduct:function(p,E){return p.x*E.x+p.y*E.y},square:function(p){return Math.sqrt(p.x*p.x+p.y*p.y)},scale:function(p,E){return{x:p.x*E,y:p.y*E}}},c=64,X=Math.pow(2,-c-1),Z=function(p,E){for(var B=[],U=tt(p,E),Y=E.length-1,n=2*Y-1,o=h(U,n,B,0),t=K.subtract(p,E[0]),g=K.square(t),m=0,F=0;F<o;F++){t=K.subtract(p,v(E,Y,B[F],null,null));var I=K.square(t);I<g&&(g=I,m=B[F])}return t=K.subtract(p,E[Y]),I=K.square(t),I<g&&(g=I,m=1),{location:m,distance:g}},$=function(p,E){var B=Z(p,E);return{point:v(E,E.length-1,B.location,null,null),location:B.location}},tt=function(p,E){for(var B=E.length-1,U=2*B-1,Y=[],n=[],o=[],t=[],g=[[1,.6,.3,.1],[.4,.6,.6,.4],[.1,.3,.6,1]],m=0;m<=B;m++)Y[m]=K.subtract(E[m],p);for(var m=0;m<=B-1;m++)n[m]=K.subtract(E[m+1],E[m]),n[m]=K.scale(n[m],3);for(var F=0;F<=B-1;F++)for(var I=0;I<=B;I++)o[F]||(o[F]=[]),o[F][I]=K.dotProduct(n[F],Y[I]);for(m=0;m<=U;m++)t[m]||(t[m]=[]),t[m].y=0,t[m].x=parseFloat(m)/U;for(var V=B,G=B-1,W=0;W<=V+G;W++){var at=Math.max(0,W-G),st=Math.min(W,V);for(m=at;m<=st;m++){var it=W-m;t[m+it].y+=o[it][m]*g[it][m]}}return t},h=function(p,E,B,U){var Y=[],n=[],o,t,g=[],m=[];switch(T(p,E)){case 0:return 0;case 1:{if(U>=c)return B[0]=(p[0].x+p[E].x)/2,1;if(a(p,E))return B[0]=i(p,E),1;break}}v(p,E,.5,Y,n),o=h(Y,E,g,U+1),t=h(n,E,m,U+1);for(var F=0;F<o;F++)B[F]=g[F];for(var F=0;F<t;F++)B[F+o]=m[F];return o+t},T=function(p,E){var B=0,U,Y;U=Y=Math.sgn(p[0].y);for(var n=1;n<=E;n++)U=Math.sgn(p[n].y),U!=Y&&B++,Y=U;return B},a=function(p,E){var B,U,Y,n,o,t,g,m,F,I,V,G,W,at,st,it;t=p[0].y-p[E].y,g=p[E].x-p[0].x,m=p[0].x*p[E].y-p[E].x*p[0].y;var rt,pt;rt=pt=0;for(var dt=1;dt<E;dt++){var lt=t*p[dt].x+g*p[dt].y+m;lt>rt?rt=lt:lt<pt&&(pt=lt)}return V=0,G=1,W=0,at=t,st=g,it=m-rt,F=V*st-at*G,I=1/F,U=(G*it-st*W)*I,at=t,st=g,it=m-pt,F=V*st-at*G,I=1/F,Y=(G*it-st*W)*I,n=Math.min(U,Y),o=Math.max(U,Y),B=o-n,B<X?1:0},i=function(p,E){var B=1,U=0,Y=p[E].x-p[0].x,n=p[E].y-p[0].y,o=p[0].x-0,t=p[0].y-0,g=Y*U-n*B,m=1/g,F=(Y*t-n*o)*m;return 0+B*F},v=function(p,E,B,U,Y){for(var n=[[]],o=0;o<=E;o++)n[0][o]=p[o];for(var t=1;t<=E;t++)for(var o=0;o<=E-t;o++)n[t]||(n[t]=[]),n[t][o]||(n[t][o]={}),n[t][o].x=(1-B)*n[t-1][o].x+B*n[t-1][o+1].x,n[t][o].y=(1-B)*n[t-1][o].y+B*n[t-1][o+1].y;if(U!=null)for(o=0;o<=E;o++)U[o]=n[o][0];if(Y!=null)for(o=0;o<=E;o++)Y[o]=n[E-o][o];return n[E][0]},D={},L=function(p){var E=D[p];if(!E){E=[];var B=function(){return function(I){return Math.pow(I,p)}},U=function(){return function(I){return Math.pow(1-I,p)}},Y=function(I){return function(V){return I}},n=function(){return function(I){return I}},o=function(){return function(I){return 1-I}},t=function(I){return function(V){for(var G=1,W=0;W<I.length;W++)G=G*I[W](V);return G}};E.push(new B);for(var g=1;g<p;g++){for(var m=[new Y(p)],F=0;F<p-g;F++)m.push(new n);for(var F=0;F<g;F++)m.push(new o);E.push(new t(m))}E.push(new U),D[p]=E}return E},C=function(p,E){for(var B=L(p.length-1),U=0,Y=0,n=0;n<p.length;n++)U=U+p[n].x*B[n](E),Y=Y+p[n].y*B[n](E);return{x:U,y:Y}},f=function(p,E){return Math.sqrt(Math.pow(p.x-E.x,2)+Math.pow(p.y-E.y,2))},e=function(p){return p[0].x===p[1].x&&p[0].y===p[1].y},j=function(p,E,B){if(e(p))return{point:p[0],location:E};for(var U=C(p,E),Y=0,n=E,o=B>0?1:-1,t=null;Y<Math.abs(B);)n+=.005*o,t=C(p,n),Y+=f(t,U),U=t;return{point:t,location:n}},M=function(p){var E=new Date().getTime();if(e(p))return 0;for(var B=C(p,0),U=0,Y=0,n=1,o=null;Y<1;)Y+=.005*n,o=C(p,Y),U+=f(o,B),B=o;return console.log("length",new Date().getTime()-E),U},R=function(p,E,B){return j(p,E,B).point},N=function(p,E,B){return j(p,E,B).location},P=function(p,E){var B=C(p,E),U=C(p.slice(0,p.length-1),E),Y=U.y-B.y,n=U.x-B.x;return Y===0?1/0:Math.atan(Y/n)},A=function(p,E,B){var U=j(p,E,B);return U.location>1&&(U.location=1),U.location<0&&(U.location=0),P(p,U.location)},r=function(p,E,B,U){U=U==null?0:U;var Y=j(p,E,U),n=P(p,Y.location),o=Math.atan(-1/n),t=B/2*Math.sin(o),g=B/2*Math.cos(o);return[{x:Y.point.x+g,y:Y.point.y+t},{x:Y.point.x-g,y:Y.point.y-t}]},d=function(p,E,B,U,Y){var n=U-E,o=p-B,t=p*(E-U)+E*(B-p),g=u(Y),m=[n*g[0][0]+o*g[1][0],n*g[0][1]+o*g[1][1],n*g[0][2]+o*g[1][2],n*g[0][3]+o*g[1][3]+t],F=y.apply(null,m),I=[];if(F!=null)for(var V=0;V<3;V++){var G=F[V],W=Math.pow(G,2),at=Math.pow(G,3),st=[g[0][0]*at+g[0][1]*W+g[0][2]*G+g[0][3],g[1][0]*at+g[1][1]*W+g[1][2]*G+g[1][3]],it;B-p!=0?it=(st[0]-p)/(B-p):it=(st[1]-E)/(U-E),G>=0&&G<=1&&it>=0&&it<=1&&I.push(st)}return I},l=function(p,E,B,U,Y){var n=[];return n.push.apply(n,d(p,E,p+B,E,Y)),n.push.apply(n,d(p+B,E,p+B,E+U,Y)),n.push.apply(n,d(p+B,E+U,p,E+U,Y)),n.push.apply(n,d(p,E+U,p,E,Y)),n},_=function(p,E){var B=[];return B.push.apply(B,d(p.x,p.y,p.x+p.w,p.y,E)),B.push.apply(B,d(p.x+p.w,p.y,p.x+p.w,p.y+p.h,E)),B.push.apply(B,d(p.x+p.w,p.y+p.h,p.x,p.y+p.h,E)),B.push.apply(B,d(p.x,p.y+p.h,p.x,p.y,E)),B};function x(p,E){return[-p[0][E]+3*p[1][E]+-3*p[2][E]+p[3][E],3*p[0][E]-6*p[1][E]+3*p[2][E],-3*p[0][E]+3*p[1][E],p[0][E]]}function u(p){return[x(p,"x"),x(p,"y")]}function k(p){return p<0?-1:p>0?1:0}function y(p,E,B,U){var Y=E/p,n=B/p,o=U/p,t=(3*n-Math.pow(Y,2))/9,g=(9*Y*n-27*o-2*Math.pow(Y,3))/54,m=Math.pow(t,3)+Math.pow(g,2),F,I,V=[];if(m>=0)F=k(g+Math.sqrt(m))*Math.pow(Math.abs(g+Math.sqrt(m)),1/3),I=k(g-Math.sqrt(m))*Math.pow(Math.abs(g-Math.sqrt(m)),1/3),V[0]=-Y/3+(F+I),V[1]=-Y/3-(F+I)/2,V[2]=-Y/3-(F+I)/2,Math.abs(Math.sqrt(3)*(F-I)/2)!==0&&(V[1]=-1,V[2]=-1);else{var G=Math.acos(g/Math.sqrt(-Math.pow(t,3)));V[0]=2*Math.sqrt(-t)*Math.cos(G/3)-Y/3,V[1]=2*Math.sqrt(-t)*Math.cos((G+2*Math.PI)/3)-Y/3,V[2]=2*Math.sqrt(-t)*Math.cos((G+4*Math.PI)/3)-Y/3}for(var W=0;W<3;W++)(V[W]<0||V[W]>1)&&(V[W]=-1);return V}var w=this.jsBezier={distanceFromCurve:Z,gradientAtPoint:P,gradientAtPointAlongCurveFrom:A,nearestPointOnCurve:$,pointOnCurve:C,pointAlongCurveFrom:R,perpendicularToCurveAt:r,locationAlongCurveFrom:N,getLength:M,lineIntersection:d,boxIntersection:l,boundingBoxIntersection:_,version:"0.9.0"};xt.jsBezier=w}).call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.Biltong={version:"0.4.0"};xt.Biltong=c;var X=function(a){return Object.prototype.toString.call(a)==="[object Array]"},Z=function(a,i,v){return a=X(a)?a:[a.x,a.y],i=X(i)?i:[i.x,i.y],v(a,i)},$=c.gradient=function(a,i){return Z(a,i,function(v,D){return D[0]==v[0]?D[1]>v[1]?1/0:-1/0:D[1]==v[1]?D[0]>v[0]?0:-0:(D[1]-v[1])/(D[0]-v[0])})};c.normal=function(a,i){return-1/$(a,i)},c.lineLength=function(a,i){return Z(a,i,function(v,D){return Math.sqrt(Math.pow(D[1]-v[1],2)+Math.pow(D[0]-v[0],2))})};var tt=c.quadrant=function(a,i){return Z(a,i,function(v,D){return D[0]>v[0]||D[0]==v[0]?D[1]>v[1]?2:1:D[1]>v[1]?3:4})};c.theta=function(a,i){return Z(a,i,function(v,D){var L=$(v,D),C=Math.atan(L),f=tt(v,D);return(f==4||f==3)&&(C+=Math.PI),C<0&&(C+=2*Math.PI),C})},c.intersects=function(a,i){var v=a.x,D=a.x+a.w,L=a.y,C=a.y+a.h,f=i.x,e=i.x+i.w,j=i.y,M=i.y+i.h;return v<=f&&f<=D&&L<=j&&j<=C||v<=e&&e<=D&&L<=j&&j<=C||v<=f&&f<=D&&L<=M&&M<=C||v<=e&&f<=D&&L<=M&&M<=C||f<=v&&v<=e&&j<=L&&L<=M||f<=D&&D<=e&&j<=L&&L<=M||f<=v&&v<=e&&j<=C&&C<=M||f<=D&&v<=e&&j<=C&&C<=M},c.encloses=function(a,i,v){var D=a.x,L=a.x+a.w,C=a.y,f=a.y+a.h,e=i.x,j=i.x+i.w,M=i.y,R=i.y+i.h,N=function(P,A,r,d){return v?P<=A&&r>=d:P<A&&r>d};return N(D,e,L,j)&&N(C,M,f,R)};var h=[null,[1,-1],[1,1],[-1,1],[-1,-1]],T=[null,[-1,-1],[-1,1],[1,1],[1,-1]];c.pointOnLine=function(a,i,v){var D=$(a,i),L=tt(a,i),C=v>0?h[L]:T[L],f=Math.atan(D),e=Math.abs(v*Math.sin(f))*C[1],j=Math.abs(v*Math.cos(f))*C[0];return{x:a.x+j,y:a.y+e}},c.perpendicularLineTo=function(a,i,v){var D=$(a,i),L=Math.atan(-1/D),C=v/2*Math.sin(L),f=v/2*Math.cos(L);return[{x:i.x+f,y:i.y+C},{x:i.x-f,y:i.y-C}]}}.call(typeof window!="undefined"?window:jt),function(){function K(n,o,t,g,m,F,I,V){return new Touch({target:o,identifier:Y(),pageX:t,pageY:g,screenX:m,screenY:F,clientX:I||m,clientY:V||F})}function c(){var n=[];return Array.prototype.push.apply(n,arguments),n.item=function(o){return this[o]},n}function X(n,o,t,g,m,F,I,V){return c(K.apply(null,arguments))}var Z=this,$=function(n,o,t){t=t||n.parentNode;for(var g=t.querySelectorAll(o),m=0;m<g.length;m++)if(g[m]===n)return!0;return!1},tt=function(n){return typeof n=="string"||n.constructor===String?document.getElementById(n):n},h=function(n){return n.srcElement||n.target},T=function(n,o,t,g){if(g){if(typeof n.path!="undefined"&&n.path.indexOf)return{path:n.path,end:n.path.indexOf(t)};var m={path:[],end:-1},F=function(I){m.path.push(I),I===t?m.end=m.path.length-1:I.parentNode!=null&&F(I.parentNode)};return F(o),m}else return{path:[o],end:1}},a=function(n,o){for(var t=0,g=n.length;t<g&&n[t]!=o;t++);t<n.length&&n.splice(t,1)},i=1,v=function(n,o,t){var g=i++;return n.__ta=n.__ta||{},n.__ta[o]=n.__ta[o]||{},n.__ta[o][g]=t,t.__tauid=g,g},D=function(n,o,t){if(n.__ta&&n.__ta[o]&&delete n.__ta[o][t.__tauid],t.__taExtra){for(var g=0;g<t.__taExtra.length;g++)B(n,t.__taExtra[g][0],t.__taExtra[g][1]);t.__taExtra.length=0}t.__taUnstore&&t.__taUnstore()},L=function(n,o,t,g){if(n==null)return t;var m=n.split(","),F=function(I){F.__tauid=t.__tauid;var V=h(I),G=V,W=T(I,V,o,n!=null);if(W.end!=-1)for(var at=0;at<W.end;at++){G=W.path[at];for(var st=0;st<m.length;st++)$(G,m[st],o)&&t.apply(G,arguments)}};return C(t,g,F),F},C=function(n,o,t){n.__taExtra=n.__taExtra||[],n.__taExtra.push([o,t])},f=function(n,o,t,g){if(P&&r[o]){var m=L(g,n,t,r[o]);E(n,r[o],m,t)}o==="focus"&&n.getAttribute("tabindex")==null&&n.setAttribute("tabindex","1"),E(n,o,L(g,n,t,o),t)},e=function(n,o,t,g){if(n.__taSmartClicks==null){var m=function(V){n.__tad=x(V)},F=function(V){n.__tau=x(V)},I=function(V){if(n.__tad&&n.__tau&&n.__tad[0]===n.__tau[0]&&n.__tad[1]===n.__tau[1])for(var G=0;G<n.__taSmartClicks.length;G++)n.__taSmartClicks[G].apply(h(V),[V])};f(n,"mousedown",m,g),f(n,"mouseup",F,g),f(n,"click",I,g),n.__taSmartClicks=[]}n.__taSmartClicks.push(t),t.__taUnstore=function(){a(n.__taSmartClicks,t)}},j={tap:{touches:1,taps:1},dbltap:{touches:1,taps:2},contextmenu:{touches:2,taps:1}},M=function(n,o){return function(t,g,m,F){if(g=="contextmenu"&&A)f(t,g,m,F);else{if(t.__taTapHandler==null){var I=t.__taTapHandler={tap:[],dbltap:[],contextmenu:[],down:!1,taps:0,downSelectors:[]},V=function(st){for(var it=h(st),rt=T(st,it,t,F!=null),pt=!1,dt=0;dt<rt.end;dt++){if(pt)return;it=rt.path[dt];for(var lt=0;lt<I.downSelectors.length;lt++)if(I.downSelectors[lt]==null||$(it,I.downSelectors[lt],t)){I.down=!0,setTimeout(W,n),setTimeout(at,o),pt=!0;break}}},G=function(st){if(I.down){var it=h(st),rt,pt;I.taps++;var dt=p(st);for(var lt in j)if(j.hasOwnProperty(lt)){var bt=j[lt];if(bt.touches===dt&&(bt.taps===1||bt.taps===I.taps))for(var gt=0;gt<I[lt].length;gt++){pt=T(st,it,t,I[lt][gt][1]!=null);for(var J=0;J<pt.end;J++)if(rt=pt.path[J],I[lt][gt][1]==null||$(rt,I[lt][gt][1],t)){I[lt][gt][0].apply(rt,[st]);break}}}}},W=function(){I.down=!1},at=function(){I.taps=0};f(t,"mousedown",V),f(t,"mouseup",G)}t.__taTapHandler.downSelectors.push(F),t.__taTapHandler[g].push([m,F]),m.__taUnstore=function(){a(t.__taTapHandler[g],m)}}}},R=function(n,o,t,g){for(var m in t.__tamee[n])t.__tamee[n].hasOwnProperty(m)&&t.__tamee[n][m].apply(g,[o])},N=function(){var n=[];return function(o,t,g,m){if(!o.__tamee){o.__tamee={over:!1,mouseenter:[],mouseexit:[]};var F=function(V){var G=h(V);(m==null&&G==o&&!o.__tamee.over||$(G,m,o)&&(G.__tamee==null||!G.__tamee.over))&&(R("mouseenter",V,o,G),G.__tamee=G.__tamee||{},G.__tamee.over=!0,n.push(G))},I=function(V){for(var G=h(V),W=0;W<n.length;W++)G==n[W]&&!$(V.relatedTarget||V.toElement,"*",G)&&(G.__tamee.over=!1,n.splice(W,1),R("mouseexit",V,o,G))};E(o,"mouseover",L(m,o,F,"mouseover"),F),E(o,"mouseout",L(m,o,I,"mouseout"),I)}g.__taUnstore=function(){delete o.__tamee[t][g.__tauid]},v(o,t,g),o.__tamee[t][g.__tauid]=g}},P="ontouchstart"in document.documentElement||navigator.maxTouchPoints,A="onmousedown"in document.documentElement,r={mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove"},d=function(){var n=-1;if(navigator.appName=="Microsoft Internet Explorer"){var o=navigator.userAgent,t=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");t.exec(o)!=null&&(n=parseFloat(RegExp.$1))}return n}(),l=d>-1&&d<9,_=function(n,o){if(n==null)return[0,0];var t=w(n),g=y(t,0);return[g[o+"X"],g[o+"Y"]]},x=function(n){return n==null?[0,0]:l?[n.clientX+document.documentElement.scrollLeft,n.clientY+document.documentElement.scrollTop]:_(n,"page")},u=function(n){return _(n,"screen")},k=function(n){return _(n,"client")},y=function(n,o){return n.item?n.item(o):n[o]},w=function(n){return n.touches&&n.touches.length>0?n.touches:n.changedTouches&&n.changedTouches.length>0?n.changedTouches:n.targetTouches&&n.targetTouches.length>0?n.targetTouches:[n]},p=function(n){return w(n).length},E=function(n,o,t,g){if(v(n,o,t),g.__tauid=t.__tauid,n.addEventListener)n.addEventListener(o,t,!1);else if(n.attachEvent){var m=o+t.__tauid;n["e"+m]=t,n[m]=function(){n["e"+m]&&n["e"+m](window.event)},n.attachEvent("on"+o,n[m])}},B=function(n,o,t){t!=null&&U(n,function(){var g=tt(this);if(D(g,o,t),t.__tauid!=null){if(g.removeEventListener)g.removeEventListener(o,t,!1),P&&r[o]&&g.removeEventListener(r[o],t,!1);else if(this.detachEvent){var m=o+t.__tauid;g[m]&&g.detachEvent("on"+o,g[m]),g[m]=null,g["e"+m]=null}}t.__taTouchProxy&&B(n,t.__taTouchProxy[1],t.__taTouchProxy[0])})},U=function(n,o){if(n!=null){n=typeof Window!="undefined"&&typeof n.top!="unknown"&&n==n.top?[n]:typeof n!="string"&&n.tagName==null&&n.length!=null?n:typeof n=="string"?document.querySelectorAll(n):[n];for(var t=0;t<n.length;t++)o.apply(n[t])}},Y=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var o=Math.random()*16|0,t=n=="x"?o:o&3|8;return t.toString(16)})};Z.Mottle=function(n){n=n||{};var o=n.clickThreshold||250,t=n.dblClickThreshold||450,g=new N,m=new M(o,t),F=n.smartClicks,I=function(V,G,W,at){W!=null&&U(V,function(){var st=tt(this);F&&G==="click"?e(st,G,W,at):G==="tap"||G==="dbltap"||G==="contextmenu"?m(st,G,W,at):G==="mouseenter"||G=="mouseexit"?g(st,G,W,at):f(st,G,W,at)})};this.remove=function(V){return U(V,function(){var G=tt(this);if(G.__ta){for(var W in G.__ta)if(G.__ta.hasOwnProperty(W))for(var at in G.__ta[W])G.__ta[W].hasOwnProperty(at)&&B(G,W,G.__ta[W][at])}G.parentNode&&G.parentNode.removeChild(G)}),this},this.on=function(V,G,W,at){var st=arguments[0],it=arguments.length==4?arguments[2]:null,rt=arguments[1],pt=arguments[arguments.length-1];return I(st,rt,pt,it),this},this.off=function(V,G,W){return B(V,G,W),this},this.trigger=function(V,G,W,at){var st=A&&(typeof MouseEvent=="undefined"||W==null||W.constructor===MouseEvent),it=P&&!A&&r[G]?r[G]:G,rt=!(P&&!A&&r[G]),pt=x(W),dt=u(W),lt=k(W);return U(V,function(){var bt=tt(this),gt;W=W||{screenX:dt[0],screenY:dt[1],clientX:lt[0],clientY:lt[1]};var J=function(vt){at&&(vt.payload=at)},q={TouchEvent:function(vt){var St=X(window,bt,0,pt[0],pt[1],dt[0],dt[1],lt[0],lt[1]),Ot=vt.initTouchEvent||vt.initEvent;Ot(it,!0,!0,window,null,dt[0],dt[1],lt[0],lt[1],!1,!1,!1,!1,St,St,St,1,0)},MouseEvents:function(vt){vt.initMouseEvent(it,!0,!0,window,0,dt[0],dt[1],lt[0],lt[1],!1,!1,!1,!1,1,bt)}};if(document.createEvent){var Q=!rt&&!st&&P&&r[G],ut=Q?"TouchEvent":"MouseEvents";gt=document.createEvent(ut),q[ut](gt),J(gt),bt.dispatchEvent(gt)}else document.createEventObject&&(gt=document.createEventObject(),gt.eventType=gt.eventName=it,gt.screenX=dt[0],gt.screenY=dt[1],gt.clientX=lt[0],gt.clientY=lt[1],J(gt),bt.fireEvent("on"+it,gt))}),this}},Z.Mottle.consume=function(n,o){n.stopPropagation?n.stopPropagation():n.returnValue=!1,!o&&n.preventDefault&&n.preventDefault()},Z.Mottle.pageLocation=x,Z.Mottle.setForceTouchEvents=function(n){P=n},Z.Mottle.setForceMouseEvents=function(n){A=n},Z.Mottle.version="0.8.0",xt.Mottle=Z.Mottle}.call(typeof window=="undefined"?jt:window),function(){var K=this,c=function(n,o,t){return n.indexOf(o)===-1?(t?n.unshift(o):n.push(o),!0):!1},X=function(n,o){var t=n.indexOf(o);t!==-1&&n.splice(t,1)},Z=function(n,o){for(var t=[],g=0;g<n.length;g++)o.indexOf(n[g])===-1&&t.push(n[g]);return t},$=function(n){return n==null?!1:typeof n=="string"||n.constructor===String},tt=function(n){var o=n.getBoundingClientRect(),t=document.body,g=document.documentElement,m=window.pageYOffset||g.scrollTop||t.scrollTop,F=window.pageXOffset||g.scrollLeft||t.scrollLeft,I=g.clientTop||t.clientTop||0,V=g.clientLeft||t.clientLeft||0,G=o.top+m-I,W=o.left+F-V;return{top:Math.round(G),left:Math.round(W)}},h=function(n,o,t){t=t||n.parentNode;for(var g=t.querySelectorAll(o),m=0;m<g.length;m++)if(g[m]===n)return!0;return!1},T=function(n,o,t){if(h(o,t,n))return o;for(var g=o.parentNode;g!=null&&g!==n;){if(h(g,t,n))return g;g=g.parentNode}},a=function(n,o,t){for(var g=null,m=o.getAttribute("katavorio-draggable"),F=m!=null?"[katavorio-draggable='"+m+"'] ":"",I=0;I<n.length;I++)if(g=T(o,t,F+n[I].selector),g!=null){if(n[I].filter){var V=h(t,n[I].filter,g),G=n[I].filterExclude===!0;if(G&&!V||V)return null}return[n[I],g]}return null},i=function(){var n=-1;if(navigator.appName==="Microsoft Internet Explorer"){var o=navigator.userAgent,t=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");t.exec(o)!=null&&(n=parseFloat(RegExp.$1))}return n}(),v=10,D=10,L=i>-1&&i<9,C=i===9,f=function(n){if(L)return[n.clientX+document.documentElement.scrollLeft,n.clientY+document.documentElement.scrollTop];var o=j(n),t=e(o,0);return C?[t.pageX||t.clientX,t.pageY||t.clientY]:[t.pageX,t.pageY]},e=function(n,o){return n.item?n.item(o):n[o]},j=function(n){return n.touches&&n.touches.length>0?n.touches:n.changedTouches&&n.changedTouches.length>0?n.changedTouches:n.targetTouches&&n.targetTouches.length>0?n.targetTouches:[n]},M={delegatedDraggable:"katavorio-delegated-draggable",draggable:"katavorio-draggable",droppable:"katavorio-droppable",drag:"katavorio-drag",selected:"katavorio-drag-selected",active:"katavorio-drag-active",hover:"katavorio-drag-hover",noSelect:"katavorio-drag-no-select",ghostProxy:"katavorio-ghost-proxy",clonedDrag:"katavorio-clone-drag"},R="katavorio-drag-scope",N=["stop","start","drag","drop","over","out","beforeStart"],P=function(){},A=function(){return!0},r=function(n,o,t){for(var g=0;g<n.length;g++)n[g]!=t&&o(n[g])},d=function(n,o,t,g){r(n,function(m){m.setActive(o),o&&m.updatePosition(),t&&m.setHover(g,o)})},l=function(n,o){if(n!=null){n=!$(n)&&n.tagName==null&&n.length!=null?n:[n];for(var t=0;t<n.length;t++)o.apply(n[t],[n[t]])}},_=function(n){n.stopPropagation?(n.stopPropagation(),n.preventDefault()):n.returnValue=!1},x="input,textarea,select,button,option",u=function(n,o,t){var g=n.srcElement||n.target;return!h(g,t.getInputFilterSelector(),o)},k=function(n,o,t,g){this.params=o||{},this.el=n,this.params.addClass(this.el,this._class),this.uuid=B();var m=!0;return this.setEnabled=function(F){m=F},this.isEnabled=function(){return m},this.toggleEnabled=function(){m=!m},this.setScope=function(F){this.scopes=F?F.split(/\s+/):[g]},this.addScope=function(F){var I={};l(this.scopes,function(G){I[G]=!0}),l(F?F.split(/\s+/):[],function(G){I[G]=!0}),this.scopes=[];for(var V in I)this.scopes.push(V)},this.removeScope=function(F){var I={};l(this.scopes,function(G){I[G]=!0}),l(F?F.split(/\s+/):[],function(G){delete I[G]}),this.scopes=[];for(var V in I)this.scopes.push(V)},this.toggleScope=function(F){var I={};l(this.scopes,function(G){I[G]=!0}),l(F?F.split(/\s+/):[],function(G){I[G]?delete I[G]:I[G]=!0}),this.scopes=[];for(var V in I)this.scopes.push(V)},this.setScope(o.scope),this.k=o.katavorio,o.katavorio},y=function(){return!0},w=function(){return!1},p=function(n,o,t,g){this._class=t.draggable;var m=k.apply(this,arguments);this.rightButtonCanDrag=this.params.rightButtonCanDrag;var F=[0,0],I=null,V=null,G=[0,0],W=!1,at=[0,0],st=this.params.consumeStartEvent!==!1,it=this.el,rt=this.params.clone;this.params.scroll;var pt=o.multipleDrop!==!1,dt=!1,lt,bt,gt=null,J=[],q=null,Q=o.ghostProxyParent,ut,vt,St,Ot;if(o.ghostProxy===!0?lt=y:o.ghostProxy&&typeof o.ghostProxy=="function"?lt=o.ghostProxy:lt=function(et,_t){return q&&q.useGhostProxy?q.useGhostProxy(et,_t):!1},o.makeGhostProxy?bt=o.makeGhostProxy:bt=function(et){return q&&q.makeGhostProxy?q.makeGhostProxy(et):et.cloneNode(!0)},o.selector){var Rt=n.getAttribute("katavorio-draggable");Rt==null&&(Rt=""+new Date().getTime(),n.setAttribute("katavorio-draggable",Rt)),J.push(o)}var Gt=o.snapThreshold,Bt=function(et,_t,Pt,yt,Et){var wt=Math.floor(et[0]/_t),s=_t*wt,S=s+_t,b=Math.abs(et[0]-s)<=yt?s:Math.abs(S-et[0])<=yt?S:et[0],O=Math.floor(et[1]/Pt),H=Pt*O,z=H+Pt,nt=Math.abs(et[1]-H)<=Et?H:Math.abs(z-et[1])<=Et?z:et[1];return[b,nt]};this.posses=[],this.posseRoles={},this.toGrid=function(et){if(this.params.grid==null)return et;var _t=this.params.grid?this.params.grid[0]/2:Gt||v/2,Pt=this.params.grid?this.params.grid[1]/2:Gt||D/2;return Bt(et,this.params.grid[0],this.params.grid[1],_t,Pt)},this.snap=function(et,_t){if(it!=null){et=et||(this.params.grid?this.params.grid[0]:v),_t=_t||(this.params.grid?this.params.grid[1]:D);var Pt=this.params.getPosition(it),yt=this.params.grid?this.params.grid[0]/2:Gt,Et=this.params.grid?this.params.grid[1]/2:Gt,wt=Bt(Pt,et,_t,yt,Et);return this.params.setPosition(it,wt),wt}},this.setUseGhostProxy=function(et){lt=et?y:w};var Ht,oe=function(et){return o.allowNegative===!1?[Math.max(0,et[0]),Math.max(0,et[1])]:et},ae=function(et){Ht=typeof et=="function"?et:et?function(_t,Pt,yt,Et){return oe([Math.max(0,Math.min(yt.w-Et[0],_t[0])),Math.max(0,Math.min(yt.h-Et[1],_t[1]))])}.bind(this):function(_t){return oe(_t)}}.bind(this);ae(typeof this.params.constrain=="function"?this.params.constrain:this.params.constrain||this.params.containment),this.setConstrain=function(et){ae(et)};var le=function(et,_t,Pt,yt){return q!=null&&q.constrain&&typeof q.constrain=="function"?q.constrain(et,_t,Pt,yt):Ht(et,_t,Pt,yt)},Ut;this.setRevert=function(et){Ut=et},this.params.revert&&(Ut=this.params.revert);var Qt=function(et){return typeof et=="function"?(et._katavorioId=B(),et._katavorioId):et},Yt={},te=function(et){for(var _t in Yt){var Pt=Yt[_t],yt=Pt[0](et);if(Pt[1]&&(yt=!yt),!yt)return!1}return!0},ee=this.setFilter=function(et,_t){if(et){var Pt=Qt(et);Yt[Pt]=[function(yt){var Et=yt.srcElement||yt.target,wt;return $(et)?wt=h(Et,et,n):typeof et=="function"&&(wt=et(yt,n)),wt},_t!==!1]}};this.addFilter=ee,this.removeFilter=function(et){var _t=typeof et=="function"?et._katavorioId:et;delete Yt[_t]},this.clearAllFilters=function(){Yt={}},this.canDrag=this.params.canDrag||A;var ne,kt=[],Xt=[];this.addSelector=function(et){et.selector&&J.push(et)},this.downListener=function(et){if(!et.defaultPrevented){var _t=this.rightButtonCanDrag||et.which!==3&&et.button!==2;if(_t&&this.isEnabled()&&this.canDrag()){var Pt=te(et)&&u(et,this.el,this.k);if(Pt){if(q=null,gt=null,J.length>0){var yt=a(J,this.el,et.target||et.srcElement);if(yt!=null&&(q=yt[0],gt=yt[1]),gt==null)return}else gt=this.el;if(rt)if(it=gt.cloneNode(!0),this.params.addClass(it,M.clonedDrag),it.setAttribute("id",null),it.style.position="absolute",this.params.parent!=null){var Et=this.params.getPosition(this.el);it.style.left=Et[0]+"px",it.style.top=Et[1]+"px",this.params.parent.appendChild(it)}else{var wt=tt(gt);it.style.left=wt.left+"px",it.style.top=wt.top+"px",document.body.appendChild(it)}else it=gt;st&&_(et),F=f(et),it&&it.parentNode&&(at=[it.parentNode.scrollLeft,it.parentNode.scrollTop]),this.params.bind(document,"mousemove",this.moveListener),this.params.bind(document,"mouseup",this.upListener),m.markSelection(this),m.markPosses(this),this.params.addClass(document.body,t.noSelect),Vt("beforeStart",{el:this.el,pos:I,e:et,drag:this})}else this.params.consumeFilteredEvents&&_(et)}}}.bind(this),this.moveListener=function(et){if(F){if(!W){var _t=Vt("start",{el:this.el,pos:I,e:et,drag:this});if(_t!==!1){if(!F)return;this.mark(!0),W=!0}else this.abort()}if(F){Xt.length=0;var Pt=f(et),yt=Pt[0]-F[0],Et=Pt[1]-F[1],wt=this.params.ignoreZoom?1:m.getZoom();it&&it.parentNode&&(yt+=it.parentNode.scrollLeft-at[0],Et+=it.parentNode.scrollTop-at[1]),yt/=wt,Et/=wt,this.moveBy(yt,Et,et),m.updateSelection(yt,Et,this),m.updatePosses(yt,Et,this)}}}.bind(this),this.upListener=function(et){F&&(F=null,this.params.unbind(document,"mousemove",this.moveListener),this.params.unbind(document,"mouseup",this.upListener),this.params.removeClass(document.body,t.noSelect),this.unmark(et),m.unmarkSelection(this,et),m.unmarkPosses(this,et),this.stop(et),m.notifyPosseDragStop(this,et),W=!1,Xt.length=0,rt?(it&&it.parentNode&&it.parentNode.removeChild(it),it=null):Ut&&Ut(it,this.params.getPosition(it))===!0&&(this.params.setPosition(it,I),Vt("revert",it)))}.bind(this),this.getFilters=function(){return Yt},this.abort=function(){F!=null&&this.upListener()},this.getDragElement=function(et){return et?gt||this.el:it||this.el};var Tt={start:[],drag:[],stop:[],over:[],out:[],beforeStart:[],revert:[]};o.events.start&&Tt.start.push(o.events.start),o.events.beforeStart&&Tt.beforeStart.push(o.events.beforeStart),o.events.stop&&Tt.stop.push(o.events.stop),o.events.drag&&Tt.drag.push(o.events.drag),o.events.revert&&Tt.revert.push(o.events.revert),this.on=function(et,_t){Tt[et]&&Tt[et].push(_t)},this.off=function(et,_t){if(Tt[et]){for(var Pt=[],yt=0;yt<Tt[et].length;yt++)Tt[et][yt]!==_t&&Pt.push(Tt[et][yt]);Tt[et]=Pt}};var Vt=function(et,_t){var Pt=null;if(q&&q[et])Pt=q[et](_t);else if(Tt[et])for(var yt=0;yt<Tt[et].length;yt++)try{var Et=Tt[et][yt](_t);Et!=null&&(Pt=Et)}catch{}return Pt};this.notifyStart=function(et){Vt("start",{el:this.el,pos:this.params.getPosition(it),e:et,drag:this})},this.stop=function(et,_t){if(_t||W){var Pt=[],yt=m.getSelection(),Et=this.params.getPosition(it);if(yt.length>0)for(var wt=0;wt<yt.length;wt++){var s=this.params.getPosition(yt[wt].el);Pt.push([yt[wt].el,{left:s[0],top:s[1]},yt[wt]])}else Pt.push([it,{left:Et[0],top:Et[1]},this]);Vt("stop",{el:it,pos:qt||Et,finalPos:Et,e:et,drag:this,selection:Pt})}},this.mark=function(et){I=this.params.getPosition(it),V=this.params.getPosition(it,!0),G=[V[0]-I[0],V[1]-I[1]],this.size=this.params.getSize(it),kt=m.getMatchingDroppables(this),d(kt,!0,!1,this),this.params.addClass(it,this.params.dragClass||t.drag);var _t;this.params.getConstrainingRectangle?_t=this.params.getConstrainingRectangle(it):_t=this.params.getSize(it.parentNode),ne={w:_t[0],h:_t[1]},St=0,Ot=0,et&&m.notifySelectionDragStart(this)};var qt;this.unmark=function(et,_t){if(d(kt,!1,!0,this),dt&<(gt,it)?(qt=[it.offsetLeft-St,it.offsetTop-Ot],it.parentNode.removeChild(it),it=gt):qt=null,this.params.removeClass(it,this.params.dragClass||t.drag),kt.length=0,dt=!1,!_t){Xt.length>0&&qt&&o.setPosition(gt,qt),Xt.sort(U);for(var Pt=0;Pt<Xt.length;Pt++){var yt=Xt[Pt].drop(this,et);if(yt===!0)break}}},this.moveBy=function(et,_t,Pt){Xt.length=0;var yt=this.toGrid([I[0]+et,I[1]+_t]),Et=le(yt,it,ne,this.size);if(lt(this.el,it))if(yt[0]!==Et[0]||yt[1]!==Et[1]){if(!dt){var wt=bt(gt);o.addClass(wt,M.ghostProxy),Q?(Q.appendChild(wt),ut=o.getPosition(gt.parentNode,!0),vt=o.getPosition(o.ghostProxyParent,!0),St=ut[0]-vt[0],Ot=ut[1]-vt[1]):gt.parentNode.appendChild(wt),it=wt,dt=!0}Et=yt}else dt&&(it.parentNode.removeChild(it),it=gt,dt=!1,ut=null,vt=null,St=0,Ot=0);var s={x:Et[0],y:Et[1],w:this.size[0],h:this.size[1]},S={x:s.x+G[0],y:s.y+G[1],w:s.w,h:s.h},b=null;this.params.setPosition(it,[Et[0]+St,Et[1]+Ot]);for(var O=0;O<kt.length;O++){var H={x:kt[O].pagePosition[0],y:kt[O].pagePosition[1],w:kt[O].size[0],h:kt[O].size[1]};this.params.intersects(S,H)&&(pt||b==null||b===kt[O].el)&&kt[O].canDrop(this)?(b||(b=kt[O].el),Xt.push(kt[O]),kt[O].setHover(this,!0,Pt)):kt[O].isHover()&&kt[O].setHover(this,!1,Pt)}Vt("drag",{el:this.el,pos:Et,e:Pt,drag:this})},this.destroy=function(){this.params.unbind(this.el,"mousedown",this.downListener),this.params.unbind(document,"mousemove",this.moveListener),this.params.unbind(document,"mouseup",this.upListener),this.downListener=null,this.upListener=null,this.moveListener=null},this.params.bind(this.el,"mousedown",this.downListener),this.params.handle?ee(this.params.handle,!1):ee(this.params.filter,this.params.filterExclude)},E=function(n,o,t,g){this._class=t.droppable,this.params=o||{},this.rank=o.rank||0,this._activeClass=this.params.activeClass||t.active,this._hoverClass=this.params.hoverClass||t.hover,k.apply(this,arguments);var m=!1;this.allowLoopback=this.params.allowLoopback!==!1,this.setActive=function(F){this.params[F?"addClass":"removeClass"](this.el,this._activeClass)},this.updatePosition=function(){this.position=this.params.getPosition(this.el),this.pagePosition=this.params.getPosition(this.el,!0),this.size=this.params.getSize(this.el)},this.canDrop=this.params.canDrop||function(F){return!0},this.isHover=function(){return m},this.setHover=function(F,I,V){(I||this.el._katavorioDragHover==null||this.el._katavorioDragHover===F.el._katavorio)&&(this.params[I?"addClass":"removeClass"](this.el,this._hoverClass),this.el._katavorioDragHover=I?F.el._katavorio:null,m!==I&&this.params.events[I?"over":"out"]({el:this.el,e:V,drag:F,drop:this}),m=I)},this.drop=function(F,I){return this.params.events.drop({drag:F,e:I,drop:this})},this.destroy=function(){this._class=null,this._activeClass=null,this._hoverClass=null,m=null}},B=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var o=Math.random()*16|0,t=n==="x"?o:o&3|8;return t.toString(16)})},U=function(n,o){return n.rank<o.rank?1:n.rank>o.rank?-1:0},Y=function(n){return n==null||(n=typeof n=="string"||n.constructor===String?document.getElementById(n):n,n==null)?null:(n._katavorio=n._katavorio||B(),n)};K.Katavorio=function(n){var o=[],t={};this._dragsByScope={},this._dropsByScope={};var g=1,m=function(J,q){l(J,function(Q){for(var ut=0;ut<Q.scopes.length;ut++)q[Q.scopes[ut]]=q[Q.scopes[ut]]||[],q[Q.scopes[ut]].push(Q)})},F=function(J,q){var Q=0;return l(J,function(ut){for(var vt=0;vt<ut.scopes.length;vt++)if(q[ut.scopes[vt]]){var St=n.indexOf(q[ut.scopes[vt]],ut);St!==-1&&(q[ut.scopes[vt]].splice(St,1),Q++)}}),Q>0};this.getMatchingDroppables=function(J){for(var q=[],Q={},ut=0;ut<J.scopes.length;ut++){var vt=this._dropsByScope[J.scopes[ut]];if(vt)for(var St=0;St<vt.length;St++)vt[St].canDrop(J)&&!Q[vt[St].uuid]&&(vt[St].allowLoopback||vt[St].el!==J.el)&&(Q[vt[St].uuid]=!0,q.push(vt[St]))}return q.sort(U),q};var I=function(J){J=J||{};var q={events:{}},Q;for(Q in n)q[Q]=n[Q];for(Q in J)q[Q]=J[Q];for(Q=0;Q<N.length;Q++)q.events[N[Q]]=J[N[Q]]||P;return q.katavorio=this,q}.bind(this),V=function(J,q){for(var Q=0;Q<N.length;Q++)q[N[Q]]&&J.on(N[Q],q[N[Q]])}.bind(this),G={},W=n.css||{},at=n.scope||R;for(var st in M)G[st]=M[st];for(var st in W)G[st]=W[st];var it=n.inputFilterSelector||x;this.getInputFilterSelector=function(){return it},this.setInputFilterSelector=function(J){return it=J,this},this.draggable=function(J,q){var Q=[];return l(J,function(ut){if(ut=Y(ut),ut!=null)if(ut._katavorioDrag==null){var vt=I(q);ut._katavorioDrag=new p(ut,vt,G,at),m(ut._katavorioDrag,this._dragsByScope),Q.push(ut._katavorioDrag),n.addClass(ut,vt.selector?G.delegatedDraggable:G.draggable)}else V(ut._katavorioDrag,q)}.bind(this)),Q},this.droppable=function(J,q){var Q=[];return l(J,function(ut){if(ut=Y(ut),ut!=null){var vt=new E(ut,I(q),G,at);ut._katavorioDrop=ut._katavorioDrop||[],ut._katavorioDrop.push(vt),m(vt,this._dropsByScope),Q.push(vt),n.addClass(ut,G.droppable)}}.bind(this)),Q},this.select=function(J){return l(J,function(){var q=Y(this);q&&q._katavorioDrag&&(t[q._katavorio]||(o.push(q._katavorioDrag),t[q._katavorio]=[q,o.length-1],n.addClass(q,G.selected)))}),this},this.deselect=function(J){return l(J,function(){var q=Y(this);if(q&&q._katavorio){var Q=t[q._katavorio];if(Q){for(var ut=[],vt=0;vt<o.length;vt++)o[vt].el!==q&&ut.push(o[vt]);o=ut,delete t[q._katavorio],n.removeClass(q,G.selected)}}}),this},this.deselectAll=function(){for(var J in t){var q=t[J];n.removeClass(q[0],G.selected)}o.length=0,t={}},this.markSelection=function(J){r(o,function(q){q.mark()},J)},this.markPosses=function(J){J.posses&&l(J.posses,function(q){J.posseRoles[q]&&bt[q]&&r(bt[q].members,function(Q){Q.mark()},J)})},this.unmarkSelection=function(J,q){r(o,function(Q){Q.unmark(q)},J)},this.unmarkPosses=function(J,q){J.posses&&l(J.posses,function(Q){J.posseRoles[Q]&&bt[Q]&&r(bt[Q].members,function(ut){ut.unmark(q,!0)},J)})},this.getSelection=function(){return o.slice(0)},this.updateSelection=function(J,q,Q){r(o,function(ut){ut.moveBy(J,q)},Q)};var rt=function(J,q){q.posses&&l(q.posses,function(Q){q.posseRoles[Q]&&bt[Q]&&r(bt[Q].members,function(ut){J(ut)},q)})};this.updatePosses=function(J,q,Q){rt(function(ut){ut.moveBy(J,q)},Q)},this.notifyPosseDragStop=function(J,q){rt(function(Q){Q.stop(q,!0)},J)},this.notifySelectionDragStop=function(J,q){r(o,function(Q){Q.stop(q,!0)},J)},this.notifySelectionDragStart=function(J,q){r(o,function(Q){Q.notifyStart(q)},J)},this.setZoom=function(J){g=J},this.getZoom=function(){return g};var pt=function(J,q,Q,ut){l(J,function(vt){F(vt,Q),vt[ut](q),m(vt,Q)})};l(["set","add","remove","toggle"],function(J){this[J+"Scope"]=function(q,Q){pt(q._katavorioDrag,Q,this._dragsByScope,J+"Scope"),pt(q._katavorioDrop,Q,this._dropsByScope,J+"Scope")}.bind(this),this[J+"DragScope"]=function(q,Q){pt(q.constructor===p?q:q._katavorioDrag,Q,this._dragsByScope,J+"Scope")}.bind(this),this[J+"DropScope"]=function(q,Q){pt(q.constructor===E?q:q._katavorioDrop,Q,this._dropsByScope,J+"Scope")}.bind(this)}.bind(this)),this.snapToGrid=function(J,q){for(var Q in this._dragsByScope)r(this._dragsByScope[Q],function(ut){ut.snap(J,q)})},this.getDragsForScope=function(J){return this._dragsByScope[J]},this.getDropsForScope=function(J){return this._dropsByScope[J]};var dt=function(J,q,Q){if(J=Y(J),J[q]){var ut=o.indexOf(J[q]);ut>=0&&o.splice(ut,1),F(J[q],Q)&&l(J[q],function(vt){vt.destroy()}),delete J[q]}},lt=function(J,q,Q,ut){J=Y(J),J[q]&&J[q].off(Q,ut)};this.elementRemoved=function(J){J._katavorioDrag&&this.destroyDraggable(J),J._katavorioDrop&&this.destroyDroppable(J)},this.destroyDraggable=function(J,q,Q){arguments.length===1?dt(J,"_katavorioDrag",this._dragsByScope):lt(J,"_katavorioDrag",q,Q)},this.destroyDroppable=function(J,q,Q){arguments.length===1?dt(J,"_katavorioDrop",this._dropsByScope):lt(J,"_katavorioDrop",q,Q)},this.reset=function(){this._dragsByScope={},this._dropsByScope={},o=[],t={},bt={}};var bt={},gt=function(J,q,Q){var ut=$(q)?q:q.id,vt=$(q)?!0:q.active!==!1,St=bt[ut]||function(){var Ot={name:ut,members:[]};return bt[ut]=Ot,Ot}();return l(J,function(Ot){if(Ot._katavorioDrag){if(Q&&Ot._katavorioDrag.posseRoles[St.name]!=null)return;c(St.members,Ot._katavorioDrag),c(Ot._katavorioDrag.posses,St.name),Ot._katavorioDrag.posseRoles[St.name]=vt}}),St};this.addToPosse=function(J,q){for(var Q=[],ut=1;ut<arguments.length;ut++)Q.push(gt(J,arguments[ut]));return Q.length===1?Q[0]:Q},this.setPosse=function(J,q){for(var Q=[],ut=1;ut<arguments.length;ut++)Q.push(gt(J,arguments[ut],!0).name);return l(J,function(vt){if(vt._katavorioDrag){var St=Z(vt._katavorioDrag.posses,Q),Ot=[];Array.prototype.push.apply(Ot,vt._katavorioDrag.posses);for(var Rt=0;Rt<St.length;Rt++)this.removeFromPosse(vt,St[Rt])}}.bind(this)),Q.length===1?Q[0]:Q},this.removeFromPosse=function(J,q){if(arguments.length<2)throw new TypeError("No posse id provided for remove operation");for(var Q=1;Q<arguments.length;Q++)q=arguments[Q],l(J,function(ut){if(ut._katavorioDrag&&ut._katavorioDrag.posses){var vt=ut._katavorioDrag;l(q,function(St){X(bt[St].members,vt),X(vt.posses,St),delete vt.posseRoles[St]})}})},this.removeFromAllPosses=function(J){l(J,function(q){if(q._katavorioDrag&&q._katavorioDrag.posses){var Q=q._katavorioDrag;l(Q.posses,function(ut){X(bt[ut].members,Q)}),Q.posses.length=0,Q.posseRoles={}}})},this.setPosseState=function(J,q,Q){var ut=bt[q];ut&&l(J,function(vt){vt._katavorioDrag&&vt._katavorioDrag.posses&&(vt._katavorioDrag.posseRoles[ut.name]=Q)})}},K.Katavorio.version="1.0.0",xt.Katavorio=K.Katavorio}.call(typeof window!="undefined"?window:jt),function(){var K=this;K.jsPlumbUtil=K.jsPlumbUtil||{};var c=K.jsPlumbUtil;xt.jsPlumbUtil=c;function X(n){return Object.prototype.toString.call(n)==="[object Array]"}c.isArray=X;function Z(n){return Object.prototype.toString.call(n)==="[object Number]"}c.isNumber=Z;function $(n){return typeof n=="string"}c.isString=$;function tt(n){return typeof n=="boolean"}c.isBoolean=tt;function h(n){return n==null}c.isNull=h;function T(n){return n==null?!1:Object.prototype.toString.call(n)==="[object Object]"}c.isObject=T;function a(n){return Object.prototype.toString.call(n)==="[object Date]"}c.isDate=a;function i(n){return Object.prototype.toString.call(n)==="[object Function]"}c.isFunction=i;function v(n){return i(n)&&n.name!=null&&n.name.length>0}c.isNamedFunction=v;function D(n){for(var o in n)if(n.hasOwnProperty(o))return!1;return!0}c.isEmpty=D;function L(n){if($(n))return""+n;if(tt(n))return!!n;if(a(n))return new Date(n.getTime());if(i(n))return n;if(X(n)){for(var o=[],t=0;t<n.length;t++)o.push(L(n[t]));return o}else if(T(n)){var g={};for(var m in n)g[m]=L(n[m]);return g}else return n}c.clone=L;function C(n,o,t,g){var m={},F,I,V={};for(t=t||[],g=g||[],I=0;I<t.length;I++)m[t[I]]=!0;for(I=0;I<g.length;I++)V[g[I]]=!0;var G=L(n);for(I in o)if(G[I]==null||V[I])G[I]=o[I];else if($(o[I])||tt(o[I]))m[I]?(F=[],F.push.apply(F,X(G[I])?G[I]:[G[I]]),F.push.apply(F,tt(o[I])?o[I]:[o[I]]),G[I]=F):G[I]=o[I];else if(X(o[I]))F=[],X(G[I])&&F.push.apply(F,G[I]),F.push.apply(F,o[I]),G[I]=F;else if(T(o[I])){T(G[I])||(G[I]={});for(var W in o[I])G[I][W]=o[I][W]}return G}c.merge=C;function f(n,o,t){if(n!=null){var g=n,m=g;return o.replace(/([^\.])+/g,function(F,I,V,G){var W=F.match(/([^\[0-9]+){1}(\[)([0-9+])/),at=V+F.length>=G.length,st=function(){return m[W[1]]||function(){return m[W[1]]=[],m[W[1]]}()};if(at)W?st()[W[3]]=t:m[F]=t;else if(W){var it=st();m=it[W[3]]||function(){return it[W[3]]={},it[W[3]]}()}else m=m[F]||function(){return m[F]={},m[F]}();return""}),n}}c.replace=f;function e(n,o,t){for(var g=0;g<t.length;g++){var m=t[g][0][t[g][1]].apply(t[g][0],t[g][2]);if(m===o)return m}return n}c.functionChain=e;function j(n,o,t,g){var m=function(I){var V=I.match(/(\${.*?})/g);if(V!=null)for(var G=0;G<V.length;G++){var W=o[V[G].substring(2,V[G].length-1)]||"";W!=null&&(I=I.replace(V[G],W))}return I},F=function(I){if(I!=null){if($(I))return m(I);if(i(I)&&!g&&(t==null||(I.name||"").indexOf(t)===0))return I(o);if(X(I)){for(var V=[],G=0;G<I.length;G++)V.push(F(I[G]));return V}else if(T(I)){var W={};for(var at in I)W[at]=F(I[at]);return W}else return I}};return F(n)}c.populate=j;function M(n,o){if(n){for(var t=0;t<n.length;t++)if(o(n[t]))return t}return-1}c.findWithFunction=M;function R(n,o){var t=M(n,o);return t>-1&&n.splice(t,1),t!==-1}c.removeWithFunction=R;function N(n,o){var t=n.indexOf(o);return t>-1&&n.splice(t,1),t!==-1}c.remove=N;function P(n,o,t){M(n,t)===-1&&n.push(o)}c.addWithFunction=P;function A(n,o,t,g){var m=n[o];return m==null&&(m=[],n[o]=m),m[g?"unshift":"push"](t),m}c.addToList=A;function r(n,o,t){return n.indexOf(o)===-1?(t?n.unshift(o):n.push(o),!0):!1}c.suggest=r;function d(n,o,t){var g;o=X(o)?o:[o];var m=function(G){for(var W=G.__proto__;W!=null;)if(W.prototype!=null){for(var at in W.prototype)W.prototype.hasOwnProperty(at)&&!n.prototype.hasOwnProperty(at)&&(n.prototype[at]=W.prototype[at]);W=W.prototype.__proto__}else W=null};for(g=0;g<o.length;g++){for(var F in o[g].prototype)o[g].prototype.hasOwnProperty(F)&&!n.prototype.hasOwnProperty(F)&&(n.prototype[F]=o[g].prototype[F]);m(o[g])}var I=function(G,W){return function(){for(g=0;g<o.length;g++)o[g].prototype[G]&&o[g].prototype[G].apply(this,arguments);return W.apply(this,arguments)}},V=function(G){for(var W in G)n.prototype[W]=I(W,G[W])};if(arguments.length>2)for(g=2;g<arguments.length;g++)V(arguments[g]);return n}c.extend=d;for(var l=[],_=0;_<256;_++)l[_]=(_<16?"0":"")+_.toString(16);function x(){var n=Math.random()*4294967295|0,o=Math.random()*4294967295|0,t=Math.random()*4294967295|0,g=Math.random()*4294967295|0;return l[n&255]+l[n>>8&255]+l[n>>16&255]+l[n>>24&255]+"-"+l[o&255]+l[o>>8&255]+"-"+l[o>>16&15|64]+l[o>>24&255]+"-"+l[t&63|128]+l[t>>8&255]+"-"+l[t>>16&255]+l[t>>24&255]+l[g&255]+l[g>>8&255]+l[g>>16&255]+l[g>>24&255]}c.uuid=x;function u(n){if(n==null)return null;for(var o=n.replace(/^\s\s*/,""),t=/\s/,g=o.length;t.test(o.charAt(--g)););return o.slice(0,g+1)}c.fastTrim=u;function k(n,o){n=n.length==null||typeof n=="string"?[n]:n;for(var t=0;t<n.length;t++)o(n[t])}c.each=k;function y(n,o){for(var t=[],g=0;g<n.length;g++)t.push(o(n[g]));return t}c.map=y;function w(n,o,t){t=t||"parent";var g=function(G){return G?o[G]:null},m=function(G){return G?g(G[t]):null},F=function(G,W){if(G==null)return W;var at=["anchor","anchors","cssClass","connector","paintStyle","hoverPaintStyle","endpoint","endpoints"];W.mergeStrategy==="override"&&Array.prototype.push.apply(at,["events","overlays"]);var st=C(G,W,[],at);return F(m(G),st)},I=function(G){if(G==null)return{};if(typeof G=="string")return g(G);if(G.length){for(var W=!1,at=0,st=void 0;!W&&at<G.length;)st=I(G[at]),st?W=!0:at++;return st}},V=I(n);return V?F(m(V),V):{}}c.mergeWithParents=w,c.logEnabled=!0;function p(){for(var n=[],o=0;o<arguments.length;o++)n[o]=arguments[o];if(c.logEnabled&&typeof console!="undefined")try{var t=arguments[arguments.length-1];console.log(t)}catch{}}c.log=p;function E(n,o,t){return function(){var g=null;try{o!=null&&(g=o.apply(this,arguments))}catch(m){p("jsPlumb function failed : "+m)}if(n!=null&&(t==null||g!==t))try{g=n.apply(this,arguments)}catch(m){p("wrapped function failed : "+m)}return g}}c.wrap=E;var B=function(){function n(){var o=this;this._listeners={},this.eventsSuspended=!1,this.tick=!1,this.eventsToDieOn={ready:!0},this.queue=[],this.bind=function(t,g,m){var F=function(V){A(o._listeners,V,g,m),g.__jsPlumb=g.__jsPlumb||{},g.__jsPlumb[x()]=V};if(typeof t=="string")F(t);else if(t.length!=null)for(var I=0;I<t.length;I++)F(t[I]);return o},this.fire=function(t,g,m){if(this.tick)this.queue.unshift(arguments);else{if(this.tick=!0,!this.eventsSuspended&&this._listeners[t]){var F=this._listeners[t].length,I=0,V=!1,G=null;if(!this.shouldFireEvent||this.shouldFireEvent(t,g,m))for(;!V&&I<F&&G!==!1;){if(this.eventsToDieOn[t])this._listeners[t][I].apply(this,[g,m]);else try{G=this._listeners[t][I].apply(this,[g,m])}catch(W){p("jsPlumb: fire failed for event "+t+" : "+W)}I++,(this._listeners==null||this._listeners[t]==null)&&(V=!0)}}this.tick=!1,this._drain()}return this},this._drain=function(){var t=o.queue.pop();t&&o.fire.apply(o,t)},this.unbind=function(t,g){if(arguments.length===0)this._listeners={};else if(arguments.length===1){if(typeof t=="string")delete this._listeners[t];else if(t.__jsPlumb){var m=void 0;for(var F in t.__jsPlumb)m=t.__jsPlumb[F],N(this._listeners[m]||[],t)}}else arguments.length===2&&N(this._listeners[t]||[],g);return this},this.getListener=function(t){return o._listeners[t]},this.setSuspendEvents=function(t){o.eventsSuspended=t},this.isSuspendEvents=function(){return o.eventsSuspended},this.silently=function(t){o.setSuspendEvents(!0);try{t()}catch(g){p("Cannot execute silent function "+g)}o.setSuspendEvents(!1)},this.cleanupListeners=function(){for(var t in o._listeners)o._listeners[t]=null}}return n}();c.EventGenerator=B;function U(n,o,t){var g=[n[0]-o[0],n[1]-o[1]],m=Math.cos(t/360*Math.PI*2),F=Math.sin(t/360*Math.PI*2);return[g[0]*m-g[1]*F+o[0],g[1]*m+g[0]*F+o[1],m,F]}c.rotatePoint=U;function Y(n,o){var t=U(n,[0,0],o);return[Math.round(t[0]),Math.round(t[1])]}c.rotateAnchorOrientation=Y}.call(typeof window!="undefined"?window:jt),function(){var K=this;K.jsPlumbUtil.matchesSelector=function(c,X,Z){Z=Z||c.parentNode;for(var $=Z.querySelectorAll(X),tt=0;tt<$.length;tt++)if($[tt]===c)return!0;return!1},K.jsPlumbUtil.consume=function(c,X){c.stopPropagation?c.stopPropagation():c.returnValue=!1,!X&&c.preventDefault&&c.preventDefault()},K.jsPlumbUtil.sizeElement=function(c,X,Z,$,tt){c&&(c.style.height=tt+"px",c.height=tt,c.style.width=$+"px",c.width=$,c.style.left=X+"px",c.style.top=Z+"px")}}.call(typeof window!="undefined"?window:jt),function(){var K={deriveAnchor:function($,tt,h,T){return{top:["TopRight","TopLeft"],bottom:["BottomRight","BottomLeft"]}[$][tt]}},c=this,X=function($,tt){this.count=0,this.instance=$,this.lists={},this.options=tt||{},this.instance.addList=function(h,T){return this.listManager.addList(h,T)},this.instance.removeList=function(h){this.listManager.removeList(h)},this.instance.bind("manageElement",function(h){for(var T=this.instance.getSelector(h.el,"[jtk-scrollable-list]"),a=0;a<T.length;a++)this.addList(T[a])}.bind(this)),this.instance.bind("unmanageElement",function(h){this.removeList(h.el)}),this.instance.bind("connection",function(h,T){T==null&&(this._maybeUpdateParentList(h.source),this._maybeUpdateParentList(h.target))}.bind(this))};c.jsPlumbListManager=X,X.prototype={addList:function($,tt){var h=this.instance.extend({},K);this.instance.extend(h,this.options),tt=this.instance.extend(h,tt||{});var T=[this.instance.getInstanceIndex(),this.count++].join("_");this.lists[T]=new Z(this.instance,$,tt,T)},removeList:function($){var tt=this.lists[$._jsPlumbList];tt&&(tt.destroy(),delete this.lists[$._jsPlumbList])},_maybeUpdateParentList:function($){for(var tt=$.parentNode,h=this.instance.getContainer();tt!=null&&tt!==h;){if(tt._jsPlumbList!=null&&this.lists[tt._jsPlumbList]!=null){tt._jsPlumbScrollHandler();return}tt=tt.parentNode}}};var Z=function($,tt,h,T){tt._jsPlumbList=T;function a(L,C,f,e){return h.anchor?h.anchor:h.deriveAnchor(L,C,f,e)}function i(L,C,f,e){return h.deriveEndpoint?h.deriveEndpoint(L,C,f,e):h.endpoint?h.endpoint:f.type}function v(L){for(var C=L.parentNode,f=$.getContainer();C!=null&&C!==f;){if($.hasClass(C,"jtk-managed")){$.recalculateOffsets(C);return}C=C.parentNode}}var D=function(L){for(var C=$.getSelector(tt,".jtk-managed"),f=$.getId(tt),e=0;e<C.length;e++){if(C[e].offsetTop<tt.scrollTop)C[e]._jsPlumbProxies||(C[e]._jsPlumbProxies=C[e]._jsPlumbProxies||[],$.select({source:C[e]}).each(function(M){$.proxyConnection(M,0,tt,f,function(){return i("top",0,M.endpoints[0],M)},function(){return a("top",0,M.endpoints[0],M)}),C[e]._jsPlumbProxies.push([M,0])}),$.select({target:C[e]}).each(function(M){$.proxyConnection(M,1,tt,f,function(){return i("top",1,M.endpoints[1],M)},function(){return a("top",1,M.endpoints[1],M)}),C[e]._jsPlumbProxies.push([M,1])}));else if(C[e].offsetTop+C[e].offsetHeight>tt.scrollTop+tt.offsetHeight)C[e]._jsPlumbProxies||(C[e]._jsPlumbProxies=C[e]._jsPlumbProxies||[],$.select({source:C[e]}).each(function(M){$.proxyConnection(M,0,tt,f,function(){return i("bottom",0,M.endpoints[0],M)},function(){return a("bottom",0,M.endpoints[0],M)}),C[e]._jsPlumbProxies.push([M,0])}),$.select({target:C[e]}).each(function(M){$.proxyConnection(M,1,tt,f,function(){return i("bottom",1,M.endpoints[1],M)},function(){return a("bottom",1,M.endpoints[1],M)}),C[e]._jsPlumbProxies.push([M,1])}));else if(C[e]._jsPlumbProxies){for(var j=0;j<C[e]._jsPlumbProxies.length;j++)$.unproxyConnection(C[e]._jsPlumbProxies[j][0],C[e]._jsPlumbProxies[j][1],f);delete C[e]._jsPlumbProxies}$.revalidate(C[e])}v(tt)};$.setAttribute(tt,"jtk-scrollable-list","true"),tt._jsPlumbScrollHandler=D,$.on(tt,"scroll",D),D(),this.destroy=function(){$.off(tt,"scroll",D),delete tt._jsPlumbScrollHandler;for(var L=$.getSelector(tt,".jtk-managed"),C=$.getId(tt),f=0;f<L.length;f++)if(L[f]._jsPlumbProxies){for(var e=0;e<L[f]._jsPlumbProxies.length;e++)$.unproxyConnection(L[f]._jsPlumbProxies[e][0],L[f]._jsPlumbProxies[e][1],C);delete L[f]._jsPlumbProxies}}}}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumbUtil,X=function(f){if(f._jsPlumb.paintStyle&&f._jsPlumb.hoverPaintStyle){var e={};C.extend(e,f._jsPlumb.paintStyle),C.extend(e,f._jsPlumb.hoverPaintStyle),delete f._jsPlumb.hoverPaintStyle,e.gradient&&f._jsPlumb.paintStyle.fill&&delete e.gradient,f._jsPlumb.hoverPaintStyle=e}},Z=["tap","dbltap","click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","contextmenu"],$=function(f,e,j,M){var R=f.getAttachedElements();if(R)for(var N=0,P=R.length;N<P;N++)(!M||M!==R[N])&&R[N].setHover(e,!0,j)},tt=function(f){return f==null?null:f.split(" ")},h=function(f,e,j){for(var M in e)f[M]=j},T=function(f,e,j){if(f.getDefaultType){var M=f.getTypeDescriptor(),R={},N=f.getDefaultType(),P=c.merge({},N);h(R,N,"__default");for(var A=0,r=f._jsPlumb.types.length;A<r;A++){var d=f._jsPlumb.types[A];if(d!=="__default"){var l=f._jsPlumb.instance.getType(d,M);if(l!=null){var _=["anchor","anchors","connector","paintStyle","hoverPaintStyle","endpoint","endpoints","connectorOverlays","connectorStyle","connectorHoverStyle","endpointStyle","endpointHoverStyle"],x=[];l.mergeStrategy==="override"?Array.prototype.push.apply(_,["events","overlays","cssClass"]):x.push("cssClass"),P=c.merge(P,l,x,_),h(R,l,d)}}}e&&(P=c.populate(P,e,"_")),f.applyType(P,j,R),j||f.repaint()}},a=K.jsPlumbUIComponent=function(f){c.EventGenerator.apply(this,arguments);var e=this,j=arguments,M=e.idPrefix,R=M+new Date().getTime();this._jsPlumb={instance:f._jsPlumb,parameters:f.parameters||{},paintStyle:null,hoverPaintStyle:null,paintStyleInUse:null,hover:!1,beforeDetach:f.beforeDetach,beforeDrop:f.beforeDrop,overlayPlacements:[],hoverClass:f.hoverClass||f._jsPlumb.Defaults.HoverClass,types:[],typeCache:{}},this.cacheTypeItem=function(x,u,k){this._jsPlumb.typeCache[k]=this._jsPlumb.typeCache[k]||{},this._jsPlumb.typeCache[k][x]=u},this.getCachedTypeItem=function(x,u){return this._jsPlumb.typeCache[u]?this._jsPlumb.typeCache[u][x]:null},this.getId=function(){return R};var N=f.overlays||[],P={};if(this.defaultOverlayKeys){for(var A=0;A<this.defaultOverlayKeys.length;A++)Array.prototype.push.apply(N,this._jsPlumb.instance.Defaults[this.defaultOverlayKeys[A]]||[]);for(A=0;A<N.length;A++){var r=C.convertToFullOverlaySpec(N[A]);P[r[1].id]=r}}var d={overlays:P,parameters:f.parameters||{},scope:f.scope||this._jsPlumb.instance.getDefaultScope()};if(this.getDefaultType=function(){return d},this.appendToDefaultType=function(x){for(var u in x)d[u]=x[u]},f.events)for(var l in f.events)e.bind(l,f.events[l]);this.clone=function(){var x=Object.create(this.constructor.prototype);return this.constructor.apply(x,j),x}.bind(this),this.isDetachAllowed=function(x){var u=!0;if(this._jsPlumb.beforeDetach)try{u=this._jsPlumb.beforeDetach(x)}catch(k){c.log("jsPlumb: beforeDetach callback failed",k)}return u},this.isDropAllowed=function(x,u,k,y,w,p,E){var B=this._jsPlumb.instance.checkCondition("beforeDrop",{sourceId:x,targetId:u,scope:k,connection:y,dropEndpoint:w,source:p,target:E});if(this._jsPlumb.beforeDrop)try{B=this._jsPlumb.beforeDrop({sourceId:x,targetId:u,scope:k,connection:y,dropEndpoint:w,source:p,target:E})}catch(U){c.log("jsPlumb: beforeDrop callback failed",U)}return B};var _=[];this.setListenerComponent=function(x){for(var u=0;u<_.length;u++)_[u][3]=x}},i=function(f,e){var j=f._jsPlumb.types[e],M=f._jsPlumb.instance.getType(j,f.getTypeDescriptor());M!=null&&M.cssClass&&f.canvas&&f._jsPlumb.instance.removeClass(f.canvas,M.cssClass)};c.extend(K.jsPlumbUIComponent,c.EventGenerator,{getParameter:function(f){return this._jsPlumb.parameters[f]},setParameter:function(f,e){this._jsPlumb.parameters[f]=e},getParameters:function(){return this._jsPlumb.parameters},setParameters:function(f){this._jsPlumb.parameters=f},getClass:function(){return C.getClass(this.canvas)},hasClass:function(f){return C.hasClass(this.canvas,f)},addClass:function(f){C.addClass(this.canvas,f)},removeClass:function(f){C.removeClass(this.canvas,f)},updateClasses:function(f,e){C.updateClasses(this.canvas,f,e)},setType:function(f,e,j){this.clearTypes(),this._jsPlumb.types=tt(f)||[],T(this,e,j)},getType:function(){return this._jsPlumb.types},reapplyTypes:function(f,e){T(this,f,e)},hasType:function(f){return this._jsPlumb.types.indexOf(f)!==-1},addType:function(f,e,j){var M=tt(f),R=!1;if(M!=null){for(var N=0,P=M.length;N<P;N++)this.hasType(M[N])||(this._jsPlumb.types.push(M[N]),R=!0);R&&T(this,e,j)}},removeType:function(f,e,j){var M=tt(f),R=!1,N=function(r){var d=this._jsPlumb.types.indexOf(r);return d!==-1?(i(this,d),this._jsPlumb.types.splice(d,1),!0):!1}.bind(this);if(M!=null){for(var P=0,A=M.length;P<A;P++)R=N(M[P])||R;R&&T(this,e,j)}},clearTypes:function(f,e){for(var j=this._jsPlumb.types.length,M=0;M<j;M++)i(this,0),this._jsPlumb.types.splice(0,1);T(this,f,e)},toggleType:function(f,e,j){var M=tt(f);if(M!=null){for(var R=0,N=M.length;R<N;R++){var P=this._jsPlumb.types.indexOf(M[R]);P!==-1?(i(this,P),this._jsPlumb.types.splice(P,1)):this._jsPlumb.types.push(M[R])}T(this,e,j)}},applyType:function(f,e){if(this.setPaintStyle(f.paintStyle,e),this.setHoverPaintStyle(f.hoverPaintStyle,e),f.parameters)for(var j in f.parameters)this.setParameter(j,f.parameters[j]);this._jsPlumb.paintStyleInUse=this.getPaintStyle()},setPaintStyle:function(f,e){this._jsPlumb.paintStyle=f,this._jsPlumb.paintStyleInUse=this._jsPlumb.paintStyle,X(this),e||this.repaint()},getPaintStyle:function(){return this._jsPlumb.paintStyle},setHoverPaintStyle:function(f,e){this._jsPlumb.hoverPaintStyle=f,X(this),e||this.repaint()},getHoverPaintStyle:function(){return this._jsPlumb.hoverPaintStyle},destroy:function(f){(f||this.typeId==null)&&(this.cleanupListeners(),this.clone=null,this._jsPlumb=null)},isHover:function(){return this._jsPlumb.hover},setHover:function(f,e,j){if(this._jsPlumb&&!this._jsPlumb.instance.currentlyDragging&&!this._jsPlumb.instance.isHoverSuspended()){this._jsPlumb.hover=f;var M=f?"addClass":"removeClass";this.canvas!=null&&(this._jsPlumb.instance.hoverClass!=null&&this._jsPlumb.instance[M](this.canvas,this._jsPlumb.instance.hoverClass),this._jsPlumb.hoverClass!=null&&this._jsPlumb.instance[M](this.canvas,this._jsPlumb.hoverClass)),this._jsPlumb.hoverPaintStyle!=null&&(this._jsPlumb.paintStyleInUse=f?this._jsPlumb.hoverPaintStyle:this._jsPlumb.paintStyle,this._jsPlumb.instance.isSuspendDrawing()||(j=j||jsPlumbUtil.uuid(),this.repaint({timestamp:j,recalc:!1}))),this.getAttachedElements&&!e&&$(this,f,jsPlumbUtil.uuid(),this)}}});var v=0,D=function(){var f=v+1;return v++,f},L=K.jsPlumbInstance=function(f){this.version="2.15.6",this.Defaults={Anchor:"Bottom",Anchors:[null,null],ConnectionsDetachable:!0,ConnectionOverlays:[],Connector:"Bezier",Container:null,DoNotThrowErrors:!1,DragOptions:{},DropOptions:{},Endpoint:"Dot",EndpointOverlays:[],Endpoints:[null,null],EndpointStyle:{fill:"#456"},EndpointStyles:[null,null],EndpointHoverStyle:null,EndpointHoverStyles:[null,null],HoverPaintStyle:null,LabelStyle:{color:"black"},ListStyle:{},LogEnabled:!1,Overlays:[],MaxConnections:1,PaintStyle:{"stroke-width":4,stroke:"#456"},ReattachConnections:!1,RenderMode:"svg",Scope:"jsPlumb_DefaultScope"},f&&C.extend(this.Defaults,f),this.logEnabled=this.Defaults.LogEnabled,this._connectionTypes={},this._endpointTypes={},c.EventGenerator.apply(this);var e=this,j=D(),M=e.bind,R={},N=1,P=function(s){if(s==null)return null;if(s.nodeType===3||s.nodeType===8)return{el:s,text:!0};var S=e.getElement(s);return{el:S,id:c.isString(s)&&S==null?s:lt(S)}};this.getInstanceIndex=function(){return j},this.setZoom=function(s,S){return N=s,e.fire("zoom",N),S&&e.repaintEverything(),!0},this.getZoom=function(){return N};for(var A in this.Defaults)R[A]=this.Defaults[A];var r,d=[];this.unbindContainer=function(){if(r!=null&&d.length>0)for(var s=0;s<d.length;s++)e.off(r,d[s][0],d[s][1])},this.setContainer=function(s){this.unbindContainer(),s=this.getElement(s),this.select().each(function(ct){ct.moveParent(s)}),this.selectEndpoints().each(function(ct){ct.moveParent(s)});var S=r;r=s,d.length=0;for(var b={endpointclick:"endpointClick",endpointdblclick:"endpointDblClick"},O=function(ct,ht,Ct){var mt=ht.srcElement||ht.target,Dt=(mt&&mt.parentNode?mt.parentNode._jsPlumb:null)||(mt?mt._jsPlumb:null)||(mt&&mt.parentNode&&mt.parentNode.parentNode?mt.parentNode.parentNode._jsPlumb:null);if(Dt){Dt.fire(ct,Dt,ht);var At=Ct&&b[Ct+ct]||ct;e.fire(At,Dt.component||Dt,ht)}},H=function(ct,ht,Ct){d.push([ct,Ct]),e.on(r,ct,ht,Ct)},z=function(ct){H(ct,".jtk-connector",function(ht){O(ct,ht)}),H(ct,".jtk-endpoint",function(ht){O(ct,ht,"endpoint")}),H(ct,".jtk-overlay",function(ht){O(ct,ht)})},nt=0;nt<Z.length;nt++)z(Z[nt]);for(var ft in y){var ot=y[ft].el;ot.parentNode===S&&(S.removeChild(ot),r.appendChild(ot))}},this.getContainer=function(){return r},this.bind=function(s,S){s==="ready"&&_?S():M.apply(e,[s,S])},e.importDefaults=function(s){for(var S in s)e.Defaults[S]=s[S];return s.Container&&e.setContainer(s.Container),e},e.restoreDefaults=function(){return e.Defaults=C.extend({},R),e};var l=null,_=!1,x=[],u={},k={},y={},w={},p={},E=!1,B=[],U=!1,Y=null,n=this.Defaults.Scope,o=1,t=function(){return""+o++},g=function(s,S){r?r.appendChild(s):S?this.getElement(S).appendChild(s):this.appendToRoot(s)}.bind(this),m=function(s,S,b,O){var H={c:[],e:[]};if(!U&&(s=e.getElement(s),s!=null)){var z=lt(s),nt=s.querySelectorAll(".jtk-managed");b==null&&(b=jsPlumbUtil.uuid()),kt({elId:z,offset:S,recalc:!1,timestamp:b});for(var ft=0;ft<nt.length;ft++)kt({elId:nt[ft].getAttribute("id"),recalc:!0,timestamp:b});var ot=e.router.redraw(z,S,b,null,O);if(Array.prototype.push.apply(H.c,ot.c),Array.prototype.push.apply(H.e,ot.e),nt)for(var ct=0;ct<nt.length;ct++)ot=e.router.redraw(nt[ct].getAttribute("id"),null,b,null,O,!0),Array.prototype.push.apply(H.c,ot.c),Array.prototype.push.apply(H.e,ot.e)}return H},F=function(s){return k[s]},I=function(s,S){for(var b=s.scope.split(/\s/),O=S.scope.split(/\s/),H=0;H<b.length;H++)for(var z=0;z<O.length;z++)if(O[z]===b[H])return!0;return!1},V=function(s,S){var b=C.extend({},s);for(var O in S)S[O]&&(b[O]=S[O]);return b},G=function(s,S){var b=C.extend({},s);if(S&&C.extend(b,S),b.source&&(b.source.endpoint?b.sourceEndpoint=b.source:b.source=e.getElement(b.source)),b.target&&(b.target.endpoint?b.targetEndpoint=b.target:b.target=e.getElement(b.target)),s.uuids&&(b.sourceEndpoint=F(s.uuids[0]),b.targetEndpoint=F(s.uuids[1])),b.sourceEndpoint&&b.sourceEndpoint.isFull()){c.log(e,"could not add connection; source endpoint is full");return}if(b.targetEndpoint&&b.targetEndpoint.isFull()){c.log(e,"could not add connection; target endpoint is full");return}if(!b.type&&b.sourceEndpoint&&(b.type=b.sourceEndpoint.connectionType),b.sourceEndpoint&&b.sourceEndpoint.connectorOverlays){b.overlays=b.overlays||[];for(var O=0,H=b.sourceEndpoint.connectorOverlays.length;O<H;O++)b.overlays.push(b.sourceEndpoint.connectorOverlays[O])}b.sourceEndpoint&&b.sourceEndpoint.scope&&(b.scope=b.sourceEndpoint.scope),!b["pointer-events"]&&b.sourceEndpoint&&b.sourceEndpoint.connectorPointerEvents&&(b["pointer-events"]=b.sourceEndpoint.connectorPointerEvents);var z=function(ft,ot,ct){var ht=V(ot,{anchor:b.anchors?b.anchors[ct]:b.anchor,endpoint:b.endpoints?b.endpoints[ct]:b.endpoint,paintStyle:b.endpointStyles?b.endpointStyles[ct]:b.endpointStyle,hoverPaintStyle:b.endpointHoverStyles?b.endpointHoverStyles[ct]:b.endpointHoverStyle});return e.addEndpoint(ft,ht)},nt=function(ft,ot,ct,ht){if(b[ft]&&!b[ft].endpoint&&!b[ft+"Endpoint"]&&!b.newConnection){var Ct=lt(b[ft]),mt=ct[Ct];if(mt=mt?mt[ht]:null,mt){if(!mt.enabled)return!1;var Dt=C.extend({},mt.def);delete Dt.label;var At=mt.endpoint!=null&&mt.endpoint._jsPlumb?mt.endpoint:z(b[ft],Dt,ot);if(At.isFull())return!1;b[ft+"Endpoint"]=At,!b.scope&&Dt.scope&&(b.scope=Dt.scope),mt.uniqueEndpoint?mt.endpoint?At.finalEndpoint=mt.endpoint:(mt.endpoint=At,At.setDeleteOnEmpty(!1)):At.setDeleteOnEmpty(!0),ot===0&&mt.def.connectorOverlays&&(b.overlays=b.overlays||[],Array.prototype.push.apply(b.overlays,mt.def.connectorOverlays))}}};if(nt("source",0,this.sourceEndpointDefinitions,b.type||"default")!==!1&&nt("target",1,this.targetEndpointDefinitions,b.type||"default")!==!1)return b.sourceEndpoint&&b.targetEndpoint&&(I(b.sourceEndpoint,b.targetEndpoint)||(b=null)),b}.bind(e),W=function(s){var S=e.Defaults.ConnectionType||e.getDefaultConnectionType();s._jsPlumb=e,s.newConnection=W,s.newEndpoint=st,s.endpointsByUUID=k,s.endpointsByElement=u,s.finaliseConnection=at,s.id="con_"+t();var b=new S(s);return b.isDetachable()&&(b.endpoints[0].initDraggable("_jsPlumbSource"),b.endpoints[1].initDraggable("_jsPlumbTarget")),b},at=e.finaliseConnection=function(s,S,b,O){if(S=S||{},s.suspendedEndpoint||x.push(s),s.pending=null,s.endpoints[0].isTemporarySource=!1,O!==!1&&e.router.newConnection(s),m(s.source),!S.doNotFireConnectionEvent&&S.fireEvent!==!1){var H={connection:s,source:s.source,target:s.target,sourceId:s.sourceId,targetId:s.targetId,sourceEndpoint:s.endpoints[0],targetEndpoint:s.endpoints[1]};e.fire("connection",H,b)}},st=function(s,S){var b=e.Defaults.EndpointType||C.Endpoint,O=C.extend({},s);O._jsPlumb=e,O.newConnection=W,O.newEndpoint=st,O.endpointsByUUID=k,O.endpointsByElement=u,O.fireDetachEvent=J,O.elementId=S||lt(O.source);var H=new b(O);return H.id="ep_"+t(),ne(O.elementId,O.source),C.headless||e.getDragManager().endpointAdded(O.source,S),H},it=function(s,S,b){var O=u[s];if(O&&O.length)for(var H=0,z=O.length;H<z;H++){for(var nt=0,ft=O[H].connections.length;nt<ft;nt++){var ot=S(O[H].connections[nt]);if(ot)return}b&&b(O[H])}},rt=function(s,S,b){S=S==="block";var O=null;b&&(O=function(z){z.setVisible(S,!0,!0)});var H=P(s);it(H.id,function(z){if(S&&b){var nt=z.sourceId===H.id?1:0;z.endpoints[nt].isVisible()&&z.setVisible(!0)}else z.setVisible(S)},O)},pt=function(s,S){var b=null;S&&(b=function(O){var H=O.isVisible();O.setVisible(!H)}),it(s,function(O){var H=O.isVisible();O.setVisible(!H)},b)},dt=function(s){var S=w[s];return S?{o:S,s:B[s]}:kt({elId:s})},lt=function(s,S,b){if(c.isString(s))return s;if(s==null)return null;var O=e.getAttribute(s,"id");return(!O||O==="undefined")&&(arguments.length===2&&arguments[1]!==void 0?O=S:(arguments.length===1||arguments.length===3&&!arguments[2])&&(O="jsPlumb_"+j+"_"+t()),b||e.setAttribute(s,"id",O)),O};this.setConnectionBeingDragged=function(s){E=s},this.isConnectionBeingDragged=function(){return E},this.getManagedElements=function(){return y},this.connectorClass="jtk-connector",this.connectorOutlineClass="jtk-connector-outline",this.connectedClass="jtk-connected",this.hoverClass="jtk-hover",this.endpointClass="jtk-endpoint",this.endpointConnectedClass="jtk-endpoint-connected",this.endpointFullClass="jtk-endpoint-full",this.endpointDropAllowedClass="jtk-endpoint-drop-allowed",this.endpointDropForbiddenClass="jtk-endpoint-drop-forbidden",this.overlayClass="jtk-overlay",this.draggingClass="jtk-dragging",this.elementDraggingClass="jtk-element-dragging",this.sourceElementDraggingClass="jtk-source-element-dragging",this.targetElementDraggingClass="jtk-target-element-dragging",this.endpointAnchorClassPrefix="jtk-endpoint-anchor",this.hoverSourceClass="jtk-source-hover",this.hoverTargetClass="jtk-target-hover",this.dragSelectClass="jtk-drag-select",this.Anchors={},this.Connectors={svg:{}},this.Endpoints={svg:{}},this.Overlays={svg:{}},this.ConnectorRenderers={},this.SVG="svg",this.addEndpoint=function(s,S,b){b=b||{};var O=C.extend({},b);C.extend(O,S),O.endpoint=O.endpoint||e.Defaults.Endpoint,O.paintStyle=O.paintStyle||e.Defaults.EndpointStyle;for(var H=[],z=c.isArray(s)||s.length!=null&&!c.isString(s)?s:[s],nt=0,ft=z.length;nt<ft;nt++){O.source=e.getElement(z[nt]),te(O.source);var ot=lt(O.source),ct=st(O,ot),ht=ne(ot,O.source,null,!U).info.o;c.addToList(u,ot,ct),U||ct.paint({anchorLoc:ct.anchor.compute({xy:[ht.left,ht.top],wh:B[ot],element:ct,timestamp:Y,rotation:this.getRotation(ot)}),timestamp:Y}),H.push(ct)}return H.length===1?H[0]:H},this.addEndpoints=function(s,S,b){for(var O=[],H=0,z=S.length;H<z;H++){var nt=e.addEndpoint(s,S[H],b);c.isArray(nt)?Array.prototype.push.apply(O,nt):O.push(nt)}return O},this.animate=function(s,S,b){if(!this.animationSupported)return!1;b=b||{};var O=e.getElement(s),H=lt(O),z=C.animEvents.step,nt=C.animEvents.complete;b[z]=c.wrap(b[z],function(){e.revalidate(H)}),b[nt]=c.wrap(b[nt],function(){e.revalidate(H)}),e.doAnimate(O,S,b)},this.checkCondition=function(s,S){var b=e.getListener(s),O=!0;if(b&&b.length>0){var H=Array.prototype.slice.call(arguments,1);try{for(var z=0,nt=b.length;z<nt;z++)O=O&&b[z].apply(b[z],H)}catch(ft){c.log(e,"cannot check condition ["+s+"]"+ft)}}return O},this.connect=function(s,S){var b=G(s,S),O;if(b){if(b.source==null&&b.sourceEndpoint==null){c.log("Cannot establish connection - source does not exist");return}if(b.target==null&&b.targetEndpoint==null){c.log("Cannot establish connection - target does not exist");return}te(b.source),O=W(b),at(O,b)}return O};var bt=[{el:"source",elId:"sourceId",epDefs:"sourceEndpointDefinitions"},{el:"target",elId:"targetId",epDefs:"targetEndpointDefinitions"}],gt=function(s,S,b,O){var H,z=bt[b],nt=s[z.elId];s[z.el];var ft,ot,ct=s.endpoints[b],ht={index:b,originalSourceId:b===0?nt:s.sourceId,newSourceId:s.sourceId,originalTargetId:b===1?nt:s.targetId,newTargetId:s.targetId,connection:s};if(S.constructor===C.Endpoint)H=S,H.addConnection(s),S=H.element;else if(ft=lt(S),ot=this[z.epDefs][ft],ft===s[z.elId])H=null;else if(ot)for(var Ct in ot){if(!ot[Ct].enabled)return;H=ot[Ct].endpoint!=null&&ot[Ct].endpoint._jsPlumb?ot[Ct].endpoint:this.addEndpoint(S,ot[Ct].def),ot[Ct].uniqueEndpoint&&(ot[Ct].endpoint=H),H.addConnection(s)}else H=s.makeEndpoint(b===0,S,ft);return H!=null&&(ct.detachFromConnection(s),s.endpoints[b]=H,s[z.el]=H.element,s[z.elId]=H.elementId,ht[b===0?"newSourceId":"newTargetId"]=H.elementId,q(ht),O||s.repaint()),ht.element=S,ht}.bind(this);this.setSource=function(s,S,b){var O=gt(s,S,0,b);this.router.sourceOrTargetChanged(O.originalSourceId,O.newSourceId,s,O.el,0)},this.setTarget=function(s,S,b){var O=gt(s,S,1,b);this.router.sourceOrTargetChanged(O.originalTargetId,O.newTargetId,s,O.el,1)},this.deleteEndpoint=function(s,S,b){var O=typeof s=="string"?k[s]:s;return O&&e.deleteObject({endpoint:O,dontUpdateHover:S,deleteAttachedObjects:b}),e},this.deleteEveryEndpoint=function(){var s=e.setSuspendDrawing(!0);for(var S in u){var b=u[S];if(b&&b.length)for(var O=0,H=b.length;O<H;O++)e.deleteEndpoint(b[O],!0)}u={},y={},k={},w={},p={},e.router.reset();var z=e.getDragManager();return z&&z.reset(),s||e.setSuspendDrawing(!1),e};var J=function(s,S,b){var O=e.Defaults.ConnectionType||e.getDefaultConnectionType(),H=s.constructor===O,z=H?{connection:s,source:s.source,target:s.target,sourceId:s.sourceId,targetId:s.targetId,sourceEndpoint:s.endpoints[0],targetEndpoint:s.endpoints[1]}:s;S&&e.fire("connectionDetached",z,b),e.fire("internal.connectionDetached",z,b),e.router.connectionDetached(z)},q=e.fireMoveEvent=function(s,S){e.fire("connectionMoved",s,S)};this.unregisterEndpoint=function(s){s._jsPlumb.uuid&&(k[s._jsPlumb.uuid]=null),e.router.deleteEndpoint(s);for(var S in u){var b=u[S];if(b){for(var O=[],H=0,z=b.length;H<z;H++)b[H]!==s&&O.push(b[H]);u[S]=O}u[S].length<1&&delete u[S]}};var Q="isDetachAllowed",ut="beforeDetach",vt="checkCondition";this.deleteConnection=function(s,S){return s!=null&&(S=S||{},S.force||c.functionChain(!0,!1,[[s.endpoints[0],Q,[s]],[s.endpoints[1],Q,[s]],[s,Q,[s]],[e,vt,[ut,s]]]))?(s.setHover(!1),J(s,!s.pending&&S.fireEvent!==!1,S.originalEvent),s.endpoints[0].detachFromConnection(s),s.endpoints[1].detachFromConnection(s),c.removeWithFunction(x,function(b){return s.id===b.id}),s.cleanup(),s.destroy(),!0):!1},this.deleteEveryConnection=function(s){s=s||{};var S=x.length,b=0;return e.batch(function(){for(var O=0;O<S;O++)b+=e.deleteConnection(x[0],s)?1:0}),b},this.deleteConnectionsForElement=function(s,S){S=S||{},s=e.getElement(s);var b=lt(s),O=u[b];if(O&&O.length)for(var H=0,z=O.length;H<z;H++)O[H].deleteEveryConnection(S);return e},this.deleteObject=function(s){var S={endpoints:{},connections:{},endpointCount:0,connectionCount:0},b=s.deleteAttachedObjects!==!1,O=function(ht){ht!=null&&S.connections[ht.id]==null&&(!s.dontUpdateHover&&ht._jsPlumb!=null&&ht.setHover(!1),S.connections[ht.id]=ht,S.connectionCount++)},H=function(ht){if(ht!=null&&S.endpoints[ht.id]==null&&(!s.dontUpdateHover&&ht._jsPlumb!=null&&ht.setHover(!1),S.endpoints[ht.id]=ht,S.endpointCount++,b))for(var Ct=0;Ct<ht.connections.length;Ct++){var mt=ht.connections[Ct];O(mt)}};s.connection?O(s.connection):H(s.endpoint);for(var z in S.connections){var nt=S.connections[z];if(nt._jsPlumb){c.removeWithFunction(x,function(ht){return nt.id===ht.id}),J(nt,s.fireEvent===!1?!1:!nt.pending,s.originalEvent);var ft=s.deleteAttachedObjects==null?null:!s.deleteAttachedObjects;nt.endpoints[0].detachFromConnection(nt,null,ft),nt.endpoints[1].detachFromConnection(nt,null,ft),nt.cleanup(!0),nt.destroy(!0)}}for(var ot in S.endpoints){var ct=S.endpoints[ot];ct._jsPlumb&&(e.unregisterEndpoint(ct),ct.cleanup(!0),ct.destroy(!0))}return S};var St=function(s,S,b,O){for(var H=0,z=s.length;H<z;H++)s[H][S].apply(s[H],b);return O(s)},Ot=function(s,S,b){for(var O=[],H=0,z=s.length;H<z;H++)O.push([s[H][S].apply(s[H],b),s[H]]);return O},Rt=function(s,S,b){return function(){return St(s,S,arguments,b)}},Gt=function(s,S){return function(){return Ot(s,S,arguments)}},Bt=function(s,S){var b=[];if(s)if(typeof s=="string"){if(s==="*")return s;b.push(s)}else if(S)b=s;else if(s.length)for(var O=0,H=s.length;O<H;O++)b.push(P(s[O]).id);else b.push(P(s).id);return b},Ht=function(s,S,b){return s==="*"?!0:s.length>0?s.indexOf(S)!==-1:!b};this.getConnections=function(s,S){s?s.constructor===String&&(s={scope:s}):s={};for(var b=s.scope||e.getDefaultScope(),O=Bt(b,!0),H=Bt(s.source),z=Bt(s.target),nt=!S&&O.length>1?{}:[],ft=function(Dt,At){if(!S&&O.length>1){var Mt=nt[Dt];Mt==null&&(Mt=nt[Dt]=[]),Mt.push(At)}else nt.push(At)},ot=0,ct=x.length;ot<ct;ot++){var ht=x[ot],Ct=ht.proxies&&ht.proxies[0]?ht.proxies[0].originalEp.elementId:ht.sourceId,mt=ht.proxies&&ht.proxies[1]?ht.proxies[1].originalEp.elementId:ht.targetId;Ht(O,ht.scope)&&Ht(H,Ct)&&Ht(z,mt)&&ft(ht.scope,ht)}return nt};var oe=function(s,S){return function(b){for(var O=0,H=s.length;O<H;O++)b(s[O]);return S(s)}},ae=function(s){return function(S){return s[S]}},le=function(s,S){var b={length:s.length,each:oe(s,S),get:ae(s)},O=["setHover","removeAllOverlays","setLabel","addClass","addOverlay","removeOverlay","removeOverlays","showOverlay","hideOverlay","showOverlays","hideOverlays","setPaintStyle","setHoverPaintStyle","setSuspendEvents","setParameter","setParameters","setVisible","repaint","addType","toggleType","removeType","removeClass","setType","bind","unbind"],H=["getLabel","getOverlay","isHover","getParameter","getParameters","getPaintStyle","getHoverPaintStyle","isVisible","hasType","getType","isSuspendEvents"],z,nt;for(z=0,nt=O.length;z<nt;z++)b[O[z]]=Rt(s,O[z],S);for(z=0,nt=H.length;z<nt;z++)b[H[z]]=Gt(s,H[z]);return b},Ut=function(s){var S=le(s,Ut);return C.extend(S,{setDetachable:Rt(s,"setDetachable",Ut),setReattach:Rt(s,"setReattach",Ut),setConnector:Rt(s,"setConnector",Ut),delete:function(){for(var b=0,O=s.length;b<O;b++)e.deleteConnection(s[b])},isDetachable:Gt(s,"isDetachable"),isReattach:Gt(s,"isReattach")})},Qt=function(s){var S=le(s,Qt);return C.extend(S,{setEnabled:Rt(s,"setEnabled",Qt),setAnchor:Rt(s,"setAnchor",Qt),isEnabled:Gt(s,"isEnabled"),deleteEveryConnection:function(){for(var b=0,O=s.length;b<O;b++)s[b].deleteEveryConnection()},delete:function(){for(var b=0,O=s.length;b<O;b++)e.deleteEndpoint(s[b])}})};this.select=function(s){return s=s||{},s.scope=s.scope||"*",Ut(s.connections||e.getConnections(s,!0))},this.selectEndpoints=function(s){s=s||{},s.scope=s.scope||"*";var S=!s.element&&!s.source&&!s.target,b=S?"*":Bt(s.element),O=S?"*":Bt(s.source),H=S?"*":Bt(s.target),z=Bt(s.scope,!0),nt=[];for(var ft in u){var ot=Ht(b,ft,!0),ct=Ht(O,ft,!0),ht=O!=="*",Ct=Ht(H,ft,!0),mt=H!=="*";if(ot||ct||Ct){t:for(var Dt=0,At=u[ft].length;Dt<At;Dt++){var Mt=u[ft][Dt];if(Ht(z,Mt.scope,!0)){var ue=ht&&O.length>0&&!Mt.isSource,he=mt&&H.length>0&&!Mt.isTarget;if(ue||he)continue t;nt.push(Mt)}}}}return Qt(nt)},this.getAllConnections=function(){return x},this.getDefaultScope=function(){return n},this.getEndpoint=F,this.getEndpoints=function(s){return u[P(s).id]||[]},this.getDefaultEndpointType=function(){return C.Endpoint},this.getDefaultConnectionType=function(){return C.Connection},this.getId=lt,this.draw=m,this.info=P,this.appendElement=g;var Yt=!1;this.isHoverSuspended=function(){return Yt},this.setHoverSuspended=function(s){Yt=s},this.hide=function(s,S){return rt(s,"none",S),e},this.idstamp=t;var te=function(s){if(!r&&s){var S=e.getElement(s);S.offsetParent&&e.setContainer(S.offsetParent)}},ee=function(){e.Defaults.Container&&e.setContainer(e.Defaults.Container)},ne=e.manage=function(s,S,b,O){return y[s]?O&&(y[s].info=kt({elId:s,timestamp:Y,recalc:!0})):(y[s]={el:S,endpoints:[],connections:[],rotation:0},y[s].info=kt({elId:s,timestamp:Y}),e.addClass(S,"jtk-managed"),b||e.fire("manageElement",{id:s,info:y[s].info,el:S})),y[s]};this.unmanage=function(s){if(y[s]){var S=y[s].el;e.removeClass(S,"jtk-managed"),delete y[s],e.fire("unmanageElement",{id:s,el:S})}},this.rotate=function(s,S,b){return y[s]&&(y[s].rotation=S,y[s].el.style.transform="rotate("+S+"deg)",y[s].el.style.transformOrigin="center center",b!==!0)?this.revalidate(s):{c:[],e:[]}},this.getRotation=function(s){return y[s]&&y[s].rotation||0};var kt=function(s){var S=s.timestamp,b=s.recalc,O=s.offset,H=s.elId,z;return U&&!S&&(S=Y),!b&&S&&S===p[H]?{o:s.offset||w[H],s:B[H]}:(b||!O&&w[H]==null?(z=y[H]?y[H].el:null,z!=null&&(B[H]=e.getSize(z),w[H]=e.getOffset(z),p[H]=S)):(w[H]=O||w[H],B[H]==null&&(z=y[H].el,z!=null&&(B[H]=e.getSize(z))),p[H]=S),w[H]&&!w[H].right&&(w[H].right=w[H].left+B[H][0],w[H].bottom=w[H].top+B[H][1],w[H].width=B[H][0],w[H].height=B[H][1],w[H].centerx=w[H].left+w[H].width/2,w[H].centery=w[H].top+w[H].height/2),{o:w[H],s:B[H]})};this.updateOffset=kt,this.init=function(){_||(ee(),e.router=new K.jsPlumb.DefaultRouter(e),e.anchorManager=e.router.anchorManager,_=!0,e.fire("ready",e))}.bind(this),this.log=l,this.jsPlumbUIComponent=a,this.makeAnchor=function(){var s,S=function(nt,ft){if(K.jsPlumb.Anchors[nt])return new K.jsPlumb.Anchors[nt](ft);if(!e.Defaults.DoNotThrowErrors)throw{msg:"jsPlumb: unknown anchor type '"+nt+"'"}};if(arguments.length===0)return null;var b=arguments[0],O=arguments[1],H=null;if(b.compute&&b.getOrientation)return b;if(typeof b=="string")H=S(arguments[0],{elementId:O,jsPlumbInstance:e});else if(c.isArray(b))if(c.isArray(b[0])||c.isString(b[0]))b.length===2&&c.isObject(b[1])?c.isString(b[0])?(s=K.jsPlumb.extend({elementId:O,jsPlumbInstance:e},b[1]),H=S(b[0],s)):(s=K.jsPlumb.extend({elementId:O,jsPlumbInstance:e,anchors:b[0]},b[1]),H=new K.jsPlumb.DynamicAnchor(s)):H=new C.DynamicAnchor({anchors:b,selector:null,elementId:O,jsPlumbInstance:e});else{var z={x:b[0],y:b[1],orientation:b.length>=4?[b[2],b[3]]:[0,0],offsets:b.length>=6?[b[4],b[5]]:[0,0],elementId:O,jsPlumbInstance:e,cssClass:b.length===7?b[6]:null};H=new K.jsPlumb.Anchor(z),H.clone=function(){return new K.jsPlumb.Anchor(z)}}return H.id||(H.id="anchor_"+t()),H},this.makeAnchors=function(s,S,b){for(var O=[],H=0,z=s.length;H<z;H++)typeof s[H]=="string"?O.push(K.jsPlumb.Anchors[s[H]]({elementId:S,jsPlumbInstance:b})):c.isArray(s[H])&&O.push(e.makeAnchor(s[H],S,b));return O},this.makeDynamicAnchor=function(s,S){return new K.jsPlumb.DynamicAnchor({anchors:s,selector:S,elementId:null,jsPlumbInstance:e})},this.targetEndpointDefinitions={},this.sourceEndpointDefinitions={};var Xt=function(s,S,b,O,H){for(var z=s.target||s.srcElement,nt=!1,ft=O.getSelector(S,b),ot=0;ot<ft.length;ot++)if(ft[ot]===z){nt=!0;break}return H?!nt:nt},Tt=function(s,S,b,O,H){var z=new a(S),nt=S._jsPlumb.EndpointDropHandler({jsPlumb:e,enabled:function(){return s.def.enabled},isFull:function(){var ot=e.select({target:s.id}).length;return s.def.maxConnections>0&&ot>=s.def.maxConnections},element:s.el,elementId:s.id,isSource:O,isTarget:H,addClass:function(ot){e.addClass(s.el,ot)},removeClass:function(ot){e.removeClass(s.el,ot)},onDrop:function(ot){var ct=ot.endpoints[0];ct.anchor.locked=!1},isDropAllowed:function(){return z.isDropAllowed.apply(z,arguments)},isRedrop:function(ot){return ot.suspendedElement!=null&&ot.suspendedEndpoint!=null&&ot.suspendedEndpoint.element===s.el},getEndpoint:function(ot){var ct=s.def.endpoint;if(ct==null||ct._jsPlumb==null){var ht=e.deriveEndpointAndAnchorSpec(ot.getType().join(" "),!0),Ct=ht.endpoints?K.jsPlumb.extend(S,{endpoint:s.def.def.endpoint||ht.endpoints[1]}):S;ht.anchors&&(Ct=K.jsPlumb.extend(Ct,{anchor:s.def.def.anchor||ht.anchors[1]})),ct=e.addEndpoint(s.el,Ct),ct._mtNew=!0}if(S.uniqueEndpoint&&(s.def.endpoint=ct),ct.setDeleteOnEmpty(!0),ot.isDetachable()&&ct.initDraggable(),ct.anchor.positionFinder!=null){var mt=e.getUIPosition(arguments,e.getZoom()),Dt=e.getOffset(s.el),At=e.getSize(s.el),Mt=mt==null?[0,0]:ct.anchor.positionFinder(mt,Dt,At,ct.anchor.constructorParams);ct.anchor.x=Mt[0],ct.anchor.y=Mt[1]}return ct},maybeCleanup:function(ot){ot._mtNew&&ot.connections.length===0?e.deleteObject({endpoint:ot}):delete ot._mtNew}}),ft=K.jsPlumb.dragEvents.drop;return b.scope=b.scope||S.scope||e.Defaults.Scope,b[ft]=c.wrap(b[ft],nt,!0),b.rank=S.rank||0,H&&(b[K.jsPlumb.dragEvents.over]=function(){return!0}),S.allowLoopback===!1&&(b.canDrop=function(ot){var ct=ot.getDragElement()._jsPlumbRelatedElement;return ct!==s.el}),e.initDroppable(s.el,b,"internal"),nt};this.makeTarget=function(s,S,b){var O=K.jsPlumb.extend({_jsPlumb:this},b);K.jsPlumb.extend(O,S);for(var H=O.maxConnections||-1,z=function(ct){var ht=P(ct),Ct=ht.id,mt=K.jsPlumb.extend({},O.dropOptions||{}),Dt=O.connectionType||"default";this.targetEndpointDefinitions[Ct]=this.targetEndpointDefinitions[Ct]||{},te(Ct),ht.el._isJsPlumbGroup&&mt.rank==null&&(mt.rank=-1);var At={def:K.jsPlumb.extend({},O),uniqueEndpoint:O.uniqueEndpoint,maxConnections:H,enabled:!0};O.createEndpoint&&(At.uniqueEndpoint=!0,At.endpoint=e.addEndpoint(ct,At.def),At.endpoint.setDeleteOnEmpty(!1)),ht.def=At,this.targetEndpointDefinitions[Ct][Dt]=At,Tt(ht,O,mt,O.isSource===!0,!0),ht.el._katavorioDrop[ht.el._katavorioDrop.length-1].targetDef=At}.bind(this),nt=s.length&&s.constructor!==String?s:[s],ft=0,ot=nt.length;ft<ot;ft++)z(nt[ft]);return this},this.unmakeTarget=function(s,S){var b=P(s);return e.destroyDroppable(b.el,"internal"),S||delete this.targetEndpointDefinitions[b.id],this},this.makeSource=function(s,S,b){var O=K.jsPlumb.extend({_jsPlumb:this},b);K.jsPlumb.extend(O,S);var H=O.connectionType||"default",z=e.deriveEndpointAndAnchorSpec(H);O.endpoint=O.endpoint||z.endpoints[0],O.anchor=O.anchor||z.anchors[0];for(var nt=O.maxConnections||-1,ft=O.onMaxConnections,ot=function(mt){var Dt=mt.id,At=this.getElement(mt.el);this.sourceEndpointDefinitions[Dt]=this.sourceEndpointDefinitions[Dt]||{},te(Dt);var Mt={def:K.jsPlumb.extend({},O),uniqueEndpoint:O.uniqueEndpoint,maxConnections:nt,enabled:!0};O.createEndpoint&&(Mt.uniqueEndpoint=!0,Mt.endpoint=e.addEndpoint(s,Mt.def),Mt.endpoint.setDeleteOnEmpty(!1)),this.sourceEndpointDefinitions[Dt][H]=Mt,mt.def=Mt;var ue=K.jsPlumb.dragEvents.stop,he=K.jsPlumb.dragEvents.drag,zt=K.jsPlumb.extend({},O.dragOptions||{}),Ce=zt.drag,Ee=zt.stop,It=null,ce=!1;zt.scope=zt.scope||O.scope,zt[he]=c.wrap(zt[he],function(){Ce&&Ce.apply(this,arguments),ce=!1}),zt[ue]=c.wrap(zt[ue],function(){if(Ee&&Ee.apply(this,arguments),this.currentlyDragging=!1,It._jsPlumb!=null){var Nt=O.anchor||this.Defaults.Anchor,Ft=It.anchor,fe=It.connections[0],Kt=this.makeAnchor(Nt,Dt,this),ie=It.element;if(Kt.positionFinder!=null){var Wt=e.getOffset(ie),$t=this.getSize(ie),de={left:Wt.left+Ft.x*$t[0],top:Wt.top+Ft.y*$t[1]},se=Kt.positionFinder(de,Wt,$t,Kt.constructorParams);Kt.x=se[0],Kt.y=se[1]}It.setAnchor(Kt,!0),It.repaint(),this.repaint(It.elementId),fe!=null&&this.repaint(fe.targetId)}}.bind(this));var De=function(Nt){if(!(Nt.which===3||Nt.button===2)){Dt=this.getId(this.getElement(mt.el));var Ft=this.sourceEndpointDefinitions[Dt][H];if(!!Ft.enabled){if(O.filter){var fe=c.isString(O.filter)?Xt(Nt,mt.el,O.filter,this,O.filterExclude):O.filter(Nt,mt.el);if(fe===!1)return}var Kt=this.select({source:Dt}).length;if(Ft.maxConnections>=0&&Kt>=Ft.maxConnections)return ft&&ft({element:mt.el,maxConnections:nt},Nt),!1;var ie=K.jsPlumb.getPositionOnElement(Nt,At,N),Wt={};K.jsPlumb.extend(Wt,Ft.def),Wt.isTemporarySource=!0,Wt.anchor=[ie[0],ie[1],0,0],Wt.dragOptions=zt,Ft.def.scope&&(Wt.scope=Ft.def.scope),It=this.addEndpoint(Dt,Wt),ce=!0,It.setDeleteOnEmpty(!0),Ft.uniqueEndpoint&&(Ft.endpoint?It.finalEndpoint=Ft.endpoint:(Ft.endpoint=It,It.setDeleteOnEmpty(!1)));var $t=function(){e.off(It.canvas,"mouseup",$t),e.off(mt.el,"mouseup",$t),ce&&(ce=!1,e.deleteEndpoint(It))};e.on(It.canvas,"mouseup",$t),e.on(mt.el,"mouseup",$t);var de={};if(Ft.def.extract)for(var se in Ft.def.extract){var Se=(Nt.srcElement||Nt.target).getAttribute(se);Se&&(de[Ft.def.extract[se]]=Se)}e.trigger(It.canvas,"mousedown",Nt,de),c.consume(Nt)}}}.bind(this);this.on(mt.el,"mousedown",De),Mt.trigger=De,O.filter&&(c.isString(O.filter)||c.isFunction(O.filter))&&e.setDragFilter(mt.el,O.filter);var je=K.jsPlumb.extend({},O.dropOptions||{});Tt(mt,O,je,!0,O.isTarget===!0)}.bind(this),ct=s.length&&s.constructor!==String?s:[s],ht=0,Ct=ct.length;ht<Ct;ht++)ot(P(ct[ht]));return this},this.unmakeSource=function(s,S,b){var O=P(s);e.destroyDroppable(O.el,"internal");var H=this.sourceEndpointDefinitions[O.id];if(H){for(var z in H)if(S==null||S===z){var nt=H[z].trigger;nt&&e.off(O.el,"mousedown",nt),b||delete this.sourceEndpointDefinitions[O.id][z]}}return this},this.unmakeEverySource=function(){for(var s in this.sourceEndpointDefinitions)e.unmakeSource(s,null,!0);return this.sourceEndpointDefinitions={},this};var Vt=function(s,S,b){S=c.isArray(S)?S:[S];var O=lt(s);b=b||"default";for(var H=0;H<S.length;H++){var z=this[S[H]][O];if(z&&z[b])return z[b].def.scope||this.Defaults.Scope}}.bind(this),qt=function(s,S,b,O){b=c.isArray(b)?b:[b];var H=lt(s);O=O||"default";for(var z=0;z<b.length;z++){var nt=this[b[z]][H];nt&&nt[O]&&(nt[O].def.scope=S)}}.bind(this);this.getScope=function(s,S){return Vt(s,["sourceEndpointDefinitions","targetEndpointDefinitions"])},this.getSourceScope=function(s){return Vt(s,"sourceEndpointDefinitions")},this.getTargetScope=function(s){return Vt(s,"targetEndpointDefinitions")},this.setScope=function(s,S,b){this.setSourceScope(s,S,b),this.setTargetScope(s,S,b)},this.setSourceScope=function(s,S,b){qt(s,S,"sourceEndpointDefinitions",b),this.setDragScope(s,S)},this.setTargetScope=function(s,S,b){qt(s,S,"targetEndpointDefinitions",b),this.setDropScope(s,S)},this.unmakeEveryTarget=function(){for(var s in this.targetEndpointDefinitions)e.unmakeTarget(s,!0);return this.targetEndpointDefinitions={},this};var et=function(s,S,b,O,H){var z=s==="source"?this.sourceEndpointDefinitions:this.targetEndpointDefinitions,nt,ft,ot;if(H=H||"default",S.length&&!c.isString(S)){nt=[];for(var ct=0,ht=S.length;ct<ht;ct++)ft=P(S[ct]),z[ft.id]&&z[ft.id][H]&&(nt[ct]=z[ft.id][H].enabled,ot=O?!nt[ct]:b,z[ft.id][H].enabled=ot,e[ot?"removeClass":"addClass"](ft.el,"jtk-"+s+"-disabled"))}else{ft=P(S);var Ct=ft.id;z[Ct]&&z[Ct][H]&&(nt=z[Ct][H].enabled,ot=O?!nt:b,z[Ct][H].enabled=ot,e[ot?"removeClass":"addClass"](ft.el,"jtk-"+s+"-disabled"))}return nt}.bind(this),_t=function(s,S){if(s!=null){if(c.isString(s)||!s.length)return S.apply(this,[s]);if(s.length)return S.apply(this,[s[0]])}}.bind(this);this.toggleSourceEnabled=function(s,S){return et("source",s,null,!0,S),this.isSourceEnabled(s,S)},this.setSourceEnabled=function(s,S,b){return et("source",s,S,null,b)},this.isSource=function(s,S){return S=S||"default",_t(s,function(b){var O=this.sourceEndpointDefinitions[P(b).id];return O!=null&&O[S]!=null}.bind(this))},this.isSourceEnabled=function(s,S){return S=S||"default",_t(s,function(b){var O=this.sourceEndpointDefinitions[P(b).id];return O&&O[S]&&O[S].enabled===!0}.bind(this))},this.toggleTargetEnabled=function(s,S){return et("target",s,null,!0,S),this.isTargetEnabled(s,S)},this.isTarget=function(s,S){return S=S||"default",_t(s,function(b){var O=this.targetEndpointDefinitions[P(b).id];return O!=null&&O[S]!=null}.bind(this))},this.isTargetEnabled=function(s,S){return S=S||"default",_t(s,function(b){var O=this.targetEndpointDefinitions[P(b).id];return O&&O[S]&&O[S].enabled===!0}.bind(this))},this.setTargetEnabled=function(s,S,b){return et("target",s,S,null,b)},this.ready=function(s){e.bind("ready",s)};var Pt=function(s,S){if(typeof s=="object"&&s.length)for(var b=0,O=s.length;b<O;b++)S(s[b]);else S(s);return e};this.repaint=function(s,S,b){return Pt(s,function(O){m(O,S,b)})},this.revalidate=function(s,S,b){var O=b?s:e.getId(s);e.updateOffset({elId:O,recalc:!0,timestamp:S});var H=e.getDragManager();return H&&H.updateOffsets(O),m(s,null,S)},this.repaintEverything=function(){var s=jsPlumbUtil.uuid(),S;for(S in u)e.updateOffset({elId:S,recalc:!0,timestamp:s});for(S in u)m(S,null,s);return this},this.removeAllEndpoints=function(s,S,b){b=b||[];var O=function(H){var z=P(H),nt=u[z.id],ft,ot;if(nt)for(b.push(z),ft=0,ot=nt.length;ft<ot;ft++)e.deleteEndpoint(nt[ft],!1);if(delete u[z.id],S&&z.el&&z.el.nodeType!==3&&z.el.nodeType!==8)for(ft=0,ot=z.el.childNodes.length;ft<ot;ft++)O(z.el.childNodes[ft])};return O(s),this};var yt=function(s,S){e.removeAllEndpoints(s.id,!0,S);for(var b=e.getDragManager(),O=function(z){b&&b.elementRemoved(z.id),e.router.elementRemoved(z.id),e.isSource(z.el)&&e.unmakeSource(z.el),e.isTarget(z.el)&&e.unmakeTarget(z.el),e.destroyDraggable(z.el),e.destroyDroppable(z.el),delete e.floatingConnections[z.id],delete y[z.id],delete w[z.id],z.el&&(e.removeElement(z.el),z.el._jsPlumb=null)},H=1;H<S.length;H++)O(S[H]);O(s)};this.remove=function(s,S){var b=P(s),O=[];return b.text&&b.el.parentNode?b.el.parentNode.removeChild(b.el):b.id&&e.batch(function(){yt(b,O)},S===!0),e},this.empty=function(s,S){var b=[],O=function(H,z){var nt=P(H);if(nt.text)nt.el.parentNode.removeChild(nt.el);else if(nt.el){for(;nt.el.childNodes.length>0;)O(nt.el.childNodes[0]);z||yt(nt,b)}};return e.batch(function(){O(s,!0)},S===!1),e},this.reset=function(s){e.silently(function(){Yt=!1,e.removeAllGroups(),e.removeGroupManager(),e.deleteEveryEndpoint(),s||e.unbind(),this.targetEndpointDefinitions={},this.sourceEndpointDefinitions={},x.length=0,this.doReset&&this.doReset()}.bind(this))},this.destroy=function(){this.reset(),r=null,d=null};var Et=function(s){s.canvas&&s.canvas.parentNode&&s.canvas.parentNode.removeChild(s.canvas),s.cleanup(),s.destroy()};this.clear=function(){e.select().each(Et),e.selectEndpoints().each(Et),u={},k={}},this.setDefaultScope=function(s){return n=s,e},this.deriveEndpointAndAnchorSpec=function(s,S){for(var b=((S?"":"default ")+s).split(/[\s]/),O=null,H=null,z=null,nt=null,ft=0;ft<b.length;ft++){var ot=e.getType(b[ft],"connection");ot&&(ot.endpoints&&(O=ot.endpoints),ot.endpoint&&(H=ot.endpoint),ot.anchors&&(nt=ot.anchors),ot.anchor&&(z=ot.anchor))}return{endpoints:O||[H,H],anchors:nt||[z,z]}},this.setId=function(s,S,b){var O;c.isString(s)?O=s:(s=this.getElement(s),O=this.getId(s));var H=this.getConnections({source:O,scope:"*"},!0),z=this.getConnections({target:O,scope:"*"},!0);S=""+S,b?s=this.getElement(S):(s=this.getElement(O),this.setAttribute(s,"id",S)),u[S]=u[O]||[];for(var nt=0,ft=u[S].length;nt<ft;nt++)u[S][nt].setElementId(S),u[S][nt].setReferenceElement(s);delete u[O],this.sourceEndpointDefinitions[S]=this.sourceEndpointDefinitions[O],delete this.sourceEndpointDefinitions[O],this.targetEndpointDefinitions[S]=this.targetEndpointDefinitions[O],delete this.targetEndpointDefinitions[O],this.router.changeId(O,S);var ot=this.getDragManager();ot&&ot.changeId(O,S),y[S]=y[O],delete y[O];var ct=function(ht,Ct,mt){for(var Dt=0,At=ht.length;Dt<At;Dt++)ht[Dt].endpoints[Ct].setElementId(S),ht[Dt].endpoints[Ct].setReferenceElement(s),ht[Dt][mt+"Id"]=S,ht[Dt][mt]=s};ct(H,0,"source"),ct(z,1,"target"),this.repaint(S)},this.setDebugLog=function(s){l=s},this.setSuspendDrawing=function(s,S){var b=U;return U=s,s?Y=new Date().getTime():Y=null,S&&this.repaintEverything(),b},this.isSuspendDrawing=function(){return U},this.getSuspendedAt=function(){return Y},this.batch=function(s,S){var b=this.isSuspendDrawing();b||this.setSuspendDrawing(!0);try{s()}catch(O){c.log("Function run while suspended failed",O)}b||this.setSuspendDrawing(!1,!S)},this.doWhileSuspended=this.batch,this.getCachedData=dt,this.show=function(s,S){return rt(s,"block",S),e},this.toggleVisible=pt,this.addListener=this.bind;var wt=[];this.registerFloatingConnection=function(s,S,b){wt[s.id]=S,c.addToList(u,s.id,b)},this.getFloatingConnectionFor=function(s){return wt[s]},this.listManager=new K.jsPlumbListManager(this,this.Defaults.ListStyle)};c.extend(K.jsPlumbInstance,c.EventGenerator,{setAttribute:function(f,e,j){this.setAttribute(f,e,j)},getAttribute:function(f,e){return this.getAttribute(K.jsPlumb.getElement(f),e)},convertToFullOverlaySpec:function(f){return c.isString(f)&&(f=[f,{}]),f[1].id=f[1].id||c.uuid(),f},registerConnectionType:function(f,e){if(this._connectionTypes[f]=K.jsPlumb.extend({},e),e.overlays){for(var j={},M=0;M<e.overlays.length;M++){var R=this.convertToFullOverlaySpec(e.overlays[M]);j[R[1].id]=R}this._connectionTypes[f].overlays=j}},registerConnectionTypes:function(f){for(var e in f)this.registerConnectionType(e,f[e])},registerEndpointType:function(f,e){if(this._endpointTypes[f]=K.jsPlumb.extend({},e),e.overlays){for(var j={},M=0;M<e.overlays.length;M++){var R=this.convertToFullOverlaySpec(e.overlays[M]);j[R[1].id]=R}this._endpointTypes[f].overlays=j}},registerEndpointTypes:function(f){for(var e in f)this.registerEndpointType(e,f[e])},getType:function(f,e){return e==="connection"?this._connectionTypes[f]:this._endpointTypes[f]},setIdChanged:function(f,e){this.setId(f,e,!0)},setParent:function(f,e){var j=this.getElement(f),M=this.getId(j),R=this.getElement(e),N=this.getId(R),P=this.getDragManager();j.parentNode.removeChild(j),R.appendChild(j),P&&P.setParent(j,M,R,N)},extend:function(f,e,j){var M;if(j)for(M=0;M<j.length;M++)f[j[M]]=e[j[M]];else for(M in e)f[M]=e[M];return f},floatingConnections:{},getFloatingAnchorIndex:function(f){return f.endpoints[0].isFloating()?0:f.endpoints[1].isFloating()?1:-1},proxyConnection:function(f,e,j,M,R,N){var P,A=f.endpoints[e].elementId,r=f.endpoints[e];f.proxies=f.proxies||[],f.proxies[e]?P=f.proxies[e].ep:P=this.addEndpoint(j,{endpoint:R(f,e),anchor:N(f,e),parameters:{isProxyEndpoint:!0}}),P.setDeleteOnEmpty(!0),f.proxies[e]={ep:P,originalEp:r},e===0?this.router.sourceOrTargetChanged(A,M,f,j,0):this.router.sourceOrTargetChanged(A,M,f,j,1),r.detachFromConnection(f,null,!0),P.connections=[f],f.endpoints[e]=P,r.setVisible(!1),f.setVisible(!0),this.revalidate(j)},unproxyConnection:function(f,e,j){if(!(f._jsPlumb==null||f.proxies==null||f.proxies[e]==null)){var M=f.proxies[e].originalEp.element,R=f.proxies[e].originalEp.elementId;f.endpoints[e]=f.proxies[e].originalEp,e===0?this.router.sourceOrTargetChanged(j,R,f,M,0):this.router.sourceOrTargetChanged(j,R,f,M,1),f.proxies[e].ep.detachFromConnection(f,null),f.proxies[e].originalEp.addConnection(f),f.isVisible()&&f.proxies[e].originalEp.setVisible(!0),delete f.proxies[e]}}});var C=new L;K.jsPlumb=C,C.getInstance=function(f,e){var j=new L(f);if(e)for(var M in e)j[M]=e[M];return j.init(),j},C.each=function(f,e){if(f!=null)if(typeof f=="string")e(C.getElement(f));else if(f.length!=null)for(var j=0;j<f.length;j++)e(C.getElement(f[j]));else e(f)},xt.jsPlumb=C}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumb,X=K.jsPlumbUtil,Z="__label",$=function(h,T){var a={cssClass:T.cssClass,labelStyle:h.labelStyle,id:Z,component:h,_jsPlumb:h._jsPlumb.instance},i=c.extend(a,T);return new c.Overlays[h._jsPlumb.instance.getRenderMode()].Label(i)},tt=function(h,T){var a=null;if(X.isArray(T)){var i=T[0],v=c.extend({component:h,_jsPlumb:h._jsPlumb.instance},T[1]);T.length===3&&c.extend(v,T[2]),a=new c.Overlays[h._jsPlumb.instance.getRenderMode()][i](v)}else T.constructor===String?a=new c.Overlays[h._jsPlumb.instance.getRenderMode()][T]({component:h,_jsPlumb:h._jsPlumb.instance}):a=T;return a.id=a.id||X.uuid(),h.cacheTypeItem("overlay",a,a.id),h._jsPlumb.overlays[a.id]=a,a};c.OverlayCapableJsPlumbUIComponent=function(h){K.jsPlumbUIComponent.apply(this,arguments),this._jsPlumb.overlays={},this._jsPlumb.overlayPositions={},h.label&&(this.getDefaultType().overlays[Z]=["Label",{label:h.label,location:h.labelLocation||this.defaultLabelLocation||.5,labelStyle:h.labelStyle||this._jsPlumb.instance.Defaults.LabelStyle,id:Z}]),this.setListenerComponent=function(T){if(this._jsPlumb)for(var a in this._jsPlumb.overlays)this._jsPlumb.overlays[a].setListenerComponent(T)}},c.OverlayCapableJsPlumbUIComponent.applyType=function(h,T){if(T.overlays){var a={},i;for(i in T.overlays){var v=h._jsPlumb.overlays[T.overlays[i][1].id];if(v)v.updateFrom(T.overlays[i][1]),a[T.overlays[i][1].id]=!0,v.reattach(h._jsPlumb.instance,h);else{var D=h.getCachedTypeItem("overlay",T.overlays[i][1].id);D!=null?(D.reattach(h._jsPlumb.instance,h),D.setVisible(!0),D.updateFrom(T.overlays[i][1]),h._jsPlumb.overlays[D.id]=D):D=h.addOverlay(T.overlays[i],!0),a[D.id]=!0}}for(i in h._jsPlumb.overlays)a[h._jsPlumb.overlays[i].id]==null&&h.removeOverlay(h._jsPlumb.overlays[i].id,!0)}},X.extend(c.OverlayCapableJsPlumbUIComponent,K.jsPlumbUIComponent,{setHover:function(h,T){if(this._jsPlumb&&!this._jsPlumb.instance.isConnectionBeingDragged())for(var a in this._jsPlumb.overlays)this._jsPlumb.overlays[a][h?"addClass":"removeClass"](this._jsPlumb.instance.hoverClass)},addOverlay:function(h,T){var a=tt(this,h);if(this.getData&&a.type==="Label"&&X.isArray(h)){var i=this.getData(),v=h[1];if(i){var D=v.labelLocationAttribute||"labelLocation",L=i?i[D]:null;L&&(a.loc=L)}}return T||this.repaint(),a},getOverlay:function(h){return this._jsPlumb.overlays[h]},getOverlays:function(){return this._jsPlumb.overlays},hideOverlay:function(h){var T=this.getOverlay(h);T&&T.hide()},hideOverlays:function(){for(var h in this._jsPlumb.overlays)this._jsPlumb.overlays[h].hide()},showOverlay:function(h){var T=this.getOverlay(h);T&&T.show()},showOverlays:function(){for(var h in this._jsPlumb.overlays)this._jsPlumb.overlays[h].show()},removeAllOverlays:function(h){for(var T in this._jsPlumb.overlays)this._jsPlumb.overlays[T].cleanup&&this._jsPlumb.overlays[T].cleanup();this._jsPlumb.overlays={},this._jsPlumb.overlayPositions=null,this._jsPlumb.overlayPlacements={},h||this.repaint()},removeOverlay:function(h,T){var a=this._jsPlumb.overlays[h];a&&(a.setVisible(!1),!T&&a.cleanup&&a.cleanup(),delete this._jsPlumb.overlays[h],this._jsPlumb.overlayPositions&&delete this._jsPlumb.overlayPositions[h],this._jsPlumb.overlayPlacements&&delete this._jsPlumb.overlayPlacements[h])},removeOverlays:function(){for(var h=0,T=arguments.length;h<T;h++)this.removeOverlay(arguments[h])},moveParent:function(h){if(this.bgCanvas&&(this.bgCanvas.parentNode.removeChild(this.bgCanvas),h.appendChild(this.bgCanvas)),this.canvas&&this.canvas.parentNode){this.canvas.parentNode.removeChild(this.canvas),h.appendChild(this.canvas);for(var T in this._jsPlumb.overlays)if(this._jsPlumb.overlays[T].isAppendedAtTopLevel){var a=this._jsPlumb.overlays[T].getElement();a.parentNode.removeChild(a),h.appendChild(a)}}},getLabel:function(){var h=this.getOverlay(Z);return h!=null?h.getLabel():null},getLabelOverlay:function(){return this.getOverlay(Z)},setLabel:function(h){var T=this.getOverlay(Z);if(T)h.constructor===String||h.constructor===Function?T.setLabel(h):(h.label&&T.setLabel(h.label),h.location&&T.setLocation(h.location));else{var a=h.constructor===String||h.constructor===Function?{label:h}:h;T=$(this,a),this._jsPlumb.overlays[Z]=T}this._jsPlumb.instance.isSuspendDrawing()||this.repaint()},cleanup:function(h){for(var T in this._jsPlumb.overlays)this._jsPlumb.overlays[T].cleanup(h),this._jsPlumb.overlays[T].destroy(h);h&&(this._jsPlumb.overlays={},this._jsPlumb.overlayPositions=null)},setVisible:function(h){this[h?"showOverlays":"hideOverlays"]()},setAbsoluteOverlayPosition:function(h,T){this._jsPlumb.overlayPositions[h.id]=T},getAbsoluteOverlayPosition:function(h){return this._jsPlumb.overlayPositions?this._jsPlumb.overlayPositions[h.id]:null},_clazzManip:function(h,T,a){if(!a)for(var i in this._jsPlumb.overlays)this._jsPlumb.overlays[i][h+"Class"](T)},addClass:function(h,T){this._clazzManip("add",h,T)},removeClass:function(h,T){this._clazzManip("remove",h,T)}})}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumb,X=K.jsPlumbUtil,Z=function(a,i,v){var D=!1;return{drag:function(){if(D)return D=!1,!0;if(i.element){var L=v.getUIPosition(arguments,v.getZoom());L!=null&&v.setPosition(i.element,L),v.repaint(i.element,L),a.paint({anchorPoint:a.anchor.getCurrentLocation({element:a})})}},stopDrag:function(){D=!0}}},$=function(a,i,v,D){var L=i.createElement("div",{position:"absolute"});i.appendElement(L);var C=i.getId(L);i.setPosition(L,v),L.style.width=D[0]+"px",L.style.height=D[1]+"px",i.manage(C,L,!0),a.id=C,a.element=L},tt=function(a,i,v,D,L,C,f,e){var j=new c.FloatingAnchor({reference:i,referenceCanvas:D,jsPlumbInstance:C});return f({paintStyle:a,endpoint:v,anchor:j,source:L,scope:e})},h=["connectorStyle","connectorHoverStyle","connectorOverlays","connector","connectionType","connectorClass","connectorHoverClass"],T=function(a,i){var v=0;if(i!=null){for(var D=0;D<a.connections.length;D++)if(a.connections[D].sourceId===i||a.connections[D].targetId===i){v=D;break}}return a.connections[v]};c.Endpoint=function(a){var i=a._jsPlumb,v=a.newConnection,D=a.newEndpoint;this.idPrefix="_jsplumb_e_",this.defaultLabelLocation=[.5,.5],this.defaultOverlayKeys=["Overlays","EndpointOverlays"],c.OverlayCapableJsPlumbUIComponent.apply(this,arguments),this.appendToDefaultType({connectionType:a.connectionType,maxConnections:a.maxConnections==null?this._jsPlumb.instance.Defaults.MaxConnections:a.maxConnections,paintStyle:a.endpointStyle||a.paintStyle||a.style||this._jsPlumb.instance.Defaults.EndpointStyle||c.Defaults.EndpointStyle,hoverPaintStyle:a.endpointHoverStyle||a.hoverPaintStyle||this._jsPlumb.instance.Defaults.EndpointHoverStyle||c.Defaults.EndpointHoverStyle,connectorStyle:a.connectorStyle,connectorHoverStyle:a.connectorHoverStyle,connectorClass:a.connectorClass,connectorHoverClass:a.connectorHoverClass,connectorOverlays:a.connectorOverlays,connector:a.connector,connectorTooltip:a.connectorTooltip}),this._jsPlumb.enabled=a.enabled!==!1,this._jsPlumb.visible=!0,this.element=c.getElement(a.source),this._jsPlumb.uuid=a.uuid,this._jsPlumb.floatingEndpoint=null,this._jsPlumb.uuid&&(a.endpointsByUUID[this._jsPlumb.uuid]=this),this.elementId=a.elementId,this.dragProxy=a.dragProxy,this._jsPlumb.connectionCost=a.connectionCost,this._jsPlumb.connectionsDirected=a.connectionsDirected,this._jsPlumb.currentAnchorClass="",this._jsPlumb.events={};var L=a.deleteOnEmpty===!0;this.setDeleteOnEmpty=function(P){L=P};var C=function(){var P=i.endpointAnchorClassPrefix+"-"+this._jsPlumb.currentAnchorClass;this._jsPlumb.currentAnchorClass=this.anchor.getCssClass();var A=i.endpointAnchorClassPrefix+(this._jsPlumb.currentAnchorClass?"-"+this._jsPlumb.currentAnchorClass:"");this.removeClass(P),this.addClass(A),c.updateClasses(this.element,A,P)}.bind(this);this.prepareAnchor=function(P){var A=this._jsPlumb.instance.makeAnchor(P,this.elementId,i);return A.bind("anchorChanged",function(r){this.fire("anchorChanged",{endpoint:this,anchor:r}),C()}.bind(this)),A},this.setPreparedAnchor=function(P,A){return this._jsPlumb.instance.continuousAnchorFactory.clear(this.elementId),this.anchor=P,C(),A||this._jsPlumb.instance.repaint(this.elementId),this},this.setAnchor=function(P,A){var r=this.prepareAnchor(P);return this.setPreparedAnchor(r,A),this};var f=function(P){if(this.connections.length>0)for(var A=0;A<this.connections.length;A++)this.connections[A].setHover(P,!1);else this.setHover(P)}.bind(this);this.bind("mouseover",function(){f(!0)}),this.bind("mouseout",function(){f(!1)}),a._transient||this._jsPlumb.instance.router.addEndpoint(this,this.elementId),this.prepareEndpoint=function(P,A){var r=function(_,x){var u=i.getRenderMode();if(c.Endpoints[u][_])return new c.Endpoints[u][_](x);if(!i.Defaults.DoNotThrowErrors)throw{msg:"jsPlumb: unknown endpoint type '"+_+"'"}},d={_jsPlumb:this._jsPlumb.instance,cssClass:a.cssClass,container:a.container,tooltip:a.tooltip,connectorTooltip:a.connectorTooltip,endpoint:this},l;return X.isString(P)?l=r(P,d):X.isArray(P)?(d=X.merge(P[1],d),l=r(P[0],d)):l=P.clone(),l.clone=function(){if(X.isString(P))return r(P,d);if(X.isArray(P))return d=X.merge(P[1],d),r(P[0],d)}.bind(this),l.typeId=A,l},this.setEndpoint=function(P,A){var r=this.prepareEndpoint(P);this.setPreparedEndpoint(r,!0)},this.setPreparedEndpoint=function(P,A){this.endpoint!=null&&(this.endpoint.cleanup(),this.endpoint.destroy()),this.endpoint=P,this.type=this.endpoint.type,this.canvas=this.endpoint.canvas},c.extend(this,a,h),this.isSource=a.isSource||!1,this.isTemporarySource=a.isTemporarySource||!1,this.isTarget=a.isTarget||!1,this.connections=a.connections||[],this.connectorPointerEvents=a["connector-pointer-events"],this.scope=a.scope||i.getDefaultScope(),this.timestamp=null,this.reattachConnections=a.reattach||i.Defaults.ReattachConnections,this.connectionsDetachable=i.Defaults.ConnectionsDetachable,(a.connectionsDetachable===!1||a.detachable===!1)&&(this.connectionsDetachable=!1),this.dragAllowedWhenFull=a.dragAllowedWhenFull!==!1,a.onMaxConnections&&this.bind("maxConnections",a.onMaxConnections),this.addConnection=function(P){this.connections.push(P),this[(this.connections.length>0?"add":"remove")+"Class"](i.endpointConnectedClass),this[(this.isFull()?"add":"remove")+"Class"](i.endpointFullClass)},this.detachFromConnection=function(P,A,r){A=A==null?this.connections.indexOf(P):A,A>=0&&(this.connections.splice(A,1),this[(this.connections.length>0?"add":"remove")+"Class"](i.endpointConnectedClass),this[(this.isFull()?"add":"remove")+"Class"](i.endpointFullClass)),!r&&L&&this.connections.length===0&&i.deleteObject({endpoint:this,fireEvent:!1,deleteAttachedObjects:r!==!0})},this.deleteEveryConnection=function(P){for(var A=this.connections.length,r=0;r<A;r++)i.deleteConnection(this.connections[0],P)},this.detachFrom=function(P,A,r){for(var d=[],l=0;l<this.connections.length;l++)(this.connections[l].endpoints[1]===P||this.connections[l].endpoints[0]===P)&&d.push(this.connections[l]);for(var _=0,x=d.length;_<x;_++)i.deleteConnection(d[0]);return this},this.getElement=function(){return this.element},this.setElement=function(P){var A=this._jsPlumb.instance.getId(P),r=this.elementId;return X.removeWithFunction(a.endpointsByElement[this.elementId],function(d){return d.id===this.id}.bind(this)),this.element=c.getElement(P),this.elementId=i.getId(this.element),i.router.rehomeEndpoint(this,r,this.element),i.dragManager.endpointAdded(this.element),X.addToList(a.endpointsByElement,A,this),this},this.makeInPlaceCopy=function(){var P=this.anchor.getCurrentLocation({element:this}),A=this.anchor.getOrientation(this),r=this.anchor.getCssClass(),d={bind:function(){},compute:function(){return[P[0],P[1]]},getCurrentLocation:function(){return[P[0],P[1]]},getOrientation:function(){return A},getCssClass:function(){return r}};return D({dropOptions:a.dropOptions,anchor:d,source:this.element,paintStyle:this.getPaintStyle(),endpoint:a.hideOnDrag?"Blank":this.endpoint,_transient:!0,scope:this.scope,reference:this})},this.connectorSelector=function(){return this.connections[0]},this.setStyle=this.setPaintStyle,this.paint=function(P){P=P||{};var A=P.timestamp,r=P.recalc!==!1;if(!A||this.timestamp!==A){var d=i.updateOffset({elId:this.elementId,timestamp:A}),l=P.offset?P.offset.o:d.o;if(l!=null){var _=P.anchorPoint,x=P.connectorPaintStyle;if(_==null){var u=P.dimensions||d.s,k={xy:[l.left,l.top],wh:u,element:this,timestamp:A};if(r&&this.anchor.isDynamic&&this.connections.length>0){var y=T(this,P.elementWithPrecedence),w=y.endpoints[0]===this?1:0,p=w===0?y.sourceId:y.targetId,E=i.getCachedData(p),B=E.o,U=E.s;k.index=w===0?1:0,k.connection=y,k.txy=[B.left,B.top],k.twh=U,k.tElement=y.endpoints[w],k.tRotation=i.getRotation(p)}else this.connections.length>0&&(k.connection=this.connections[0]);k.rotation=i.getRotation(this.elementId),_=this.anchor.compute(k)}this.endpoint.compute(_,this.anchor.getOrientation(this),this._jsPlumb.paintStyleInUse,x||this.paintStyleInUse),this.endpoint.paint(this._jsPlumb.paintStyleInUse,this.anchor),this.timestamp=A;for(var Y in this._jsPlumb.overlays)if(this._jsPlumb.overlays.hasOwnProperty(Y)){var n=this._jsPlumb.overlays[Y];n.isVisible()&&(this._jsPlumb.overlayPlacements[Y]=n.draw(this.endpoint,this._jsPlumb.paintStyleInUse),n.paint(this._jsPlumb.overlayPlacements[Y]))}}}},this.getTypeDescriptor=function(){return"endpoint"},this.isVisible=function(){return this._jsPlumb.visible},this.repaint=this.paint;var e=!1;this.initDraggable=function(){if(!e&&c.isDragSupported(this.element)){var P={id:null,element:null},A=null,r=!1,d=null,l=Z(this,P,i),_=a.dragOptions||{},x={},u=c.dragEvents.start,k=c.dragEvents.stop,y=c.dragEvents.drag,w=c.dragEvents.beforeStart,p,E=function(Y){p=Y.e.payload||{}},B=function(Y){A=this.connectorSelector();var n=!0;this.isEnabled()||(n=!1),A==null&&!this.isSource&&!this.isTemporarySource&&(n=!1),this.isSource&&this.isFull()&&!(A!=null&&this.dragAllowedWhenFull)&&(n=!1),A!=null&&!A.isDetachable(this)&&(this.isFull()?n=!1:A=null);var o=i.checkCondition(A==null?"beforeDrag":"beforeStartDetach",{endpoint:this,source:this.element,sourceId:this.elementId,connection:A});if(o===!1?n=!1:typeof o=="object"?c.extend(o,p||{}):o=p||{},n===!1)return i.stopDrag&&i.stopDrag(this.canvas),l.stopDrag(),!1;for(var t=0;t<this.connections.length;t++)this.connections[t].setHover(!1);this.addClass("endpointDrag"),i.setConnectionBeingDragged(!0),A&&!this.isFull()&&this.isSource&&(A=null),i.updateOffset({elId:this.elementId});var g=this._jsPlumb.instance.getOffset(this.canvas),m=this.canvas,F=this._jsPlumb.instance.getSize(this.canvas);$(P,i,g,F),i.setAttributes(this.canvas,{dragId:P.id,elId:this.elementId});var I=this.dragProxy||this.endpoint;if(this.dragProxy==null&&this.connectionType!=null){var V=this._jsPlumb.instance.deriveEndpointAndAnchorSpec(this.connectionType);V.endpoints[1]&&(I=V.endpoints[1])}var G=this._jsPlumb.instance.makeAnchor("Center");G.isFloating=!0,this._jsPlumb.floatingEndpoint=tt(this.getPaintStyle(),G,I,this.canvas,P.element,i,D,this.scope);var W=this._jsPlumb.floatingEndpoint.anchor;if(A==null)this.setHover(!1,!1),A=v({sourceEndpoint:this,targetEndpoint:this._jsPlumb.floatingEndpoint,source:this.element,target:P.element,anchors:[this.anchor,this._jsPlumb.floatingEndpoint.anchor],paintStyle:a.connectorStyle,hoverPaintStyle:a.connectorHoverStyle,connector:a.connector,overlays:a.connectorOverlays,type:this.connectionType,cssClass:this.connectorClass,hoverClass:this.connectorHoverClass,scope:a.scope,data:o}),A.pending=!0,A.addClass(i.draggingClass),this._jsPlumb.floatingEndpoint.addClass(i.draggingClass),this._jsPlumb.floatingEndpoint.anchor=W,i.fire("connectionDrag",A),i.router.newConnection(A);else{r=!0,A.setHover(!1);var at=A.endpoints[0].id===this.id?0:1;this.detachFromConnection(A,null,!0);var st=i.getDragScope(m);i.setAttribute(this.canvas,"originalScope",st),i.fire("connectionDrag",A),at===0?(d=[A.source,A.sourceId,m,st],i.router.sourceOrTargetChanged(A.endpoints[at].elementId,P.id,A,P.element,0)):(d=[A.target,A.targetId,m,st],i.router.sourceOrTargetChanged(A.endpoints[at].elementId,P.id,A,P.element,1)),A.suspendedEndpoint=A.endpoints[at],A.suspendedElement=A.endpoints[at].getElement(),A.suspendedElementId=A.endpoints[at].elementId,A.suspendedElementType=at===0?"source":"target",A.suspendedEndpoint.setHover(!1),this._jsPlumb.floatingEndpoint.referenceEndpoint=A.suspendedEndpoint,A.endpoints[at]=this._jsPlumb.floatingEndpoint,A.addClass(i.draggingClass),this._jsPlumb.floatingEndpoint.addClass(i.draggingClass)}i.registerFloatingConnection(P,A,this._jsPlumb.floatingEndpoint),i.currentlyDragging=!0}.bind(this),U=function(){if(i.setConnectionBeingDragged(!1),A&&A.endpoints!=null){var Y=i.getDropEvent(arguments),n=i.getFloatingAnchorIndex(A);if(A.endpoints[n===0?1:0].anchor.locked=!1,A.removeClass(i.draggingClass),this._jsPlumb&&(A.deleteConnectionNow||A.endpoints[n]===this._jsPlumb.floatingEndpoint)&&r&&A.suspendedEndpoint){n===0?(A.floatingElement=A.source,A.floatingId=A.sourceId,A.floatingEndpoint=A.endpoints[0],A.floatingIndex=0,A.source=d[0],A.sourceId=d[1]):(A.floatingElement=A.target,A.floatingId=A.targetId,A.floatingEndpoint=A.endpoints[1],A.floatingIndex=1,A.target=d[0],A.targetId=d[1]);var o=this._jsPlumb.floatingEndpoint;i.setDragScope(d[2],d[3]),A.endpoints[n]=A.suspendedEndpoint,A.isReattach()||A._forceReattach||A._forceDetach||!i.deleteConnection(A,{originalEvent:Y})?(A.setHover(!1),A._forceDetach=null,A._forceReattach=null,this._jsPlumb.floatingEndpoint.detachFromConnection(A),A.suspendedEndpoint.addConnection(A),n===1?i.router.sourceOrTargetChanged(A.floatingId,A.targetId,A,A.target,n):i.router.sourceOrTargetChanged(A.floatingId,A.sourceId,A,A.source,n),i.repaint(d[1])):i.deleteObject({endpoint:o})}this.deleteAfterDragStop?i.deleteObject({endpoint:this}):this._jsPlumb&&this.paint({recalc:!1}),i.fire("connectionDragStop",A,Y),A.pending&&i.fire("connectionAborted",A,Y),i.currentlyDragging=!1,A.suspendedElement=null,A.suspendedEndpoint=null,A=null}P&&P.element&&i.remove(P.element,!1,!1),this._jsPlumb&&(this.canvas.style.visibility="visible",this.anchor.locked=!1,this._jsPlumb.floatingEndpoint=null)}.bind(this);_=c.extend(x,_),_.scope=this.scope||_.scope,_[w]=X.wrap(_[w],E,!1),_[u]=X.wrap(_[u],B,!1),_[y]=X.wrap(_[y],l.drag),_[k]=X.wrap(_[k],U),_.multipleDrop=!1,_.canDrag=function(){return this.isSource||this.isTemporarySource||this.connections.length>0&&this.connectionsDetachable!==!1}.bind(this),i.initDraggable(this.canvas,_,"internal"),this.canvas._jsPlumbRelatedElement=this.element,e=!0}};var j=a.endpoint||this._jsPlumb.instance.Defaults.Endpoint||c.Defaults.Endpoint;this.setEndpoint(j,!0);var M=a.anchor?a.anchor:a.anchors?a.anchors:i.Defaults.Anchor||"Top";this.setAnchor(M,!0);var R=["default",a.type||""].join(" ");this.addType(R,a.data,!0),this.canvas=this.endpoint.canvas,this.canvas._jsPlumb=this,this.initDraggable();var N=function(P,A,r,d){if(c.isDropSupported(this.element)){var l=a.dropOptions||i.Defaults.DropOptions||c.Defaults.DropOptions;l=c.extend({},l),l.scope=l.scope||this.scope;var _=c.dragEvents.drop,x=c.dragEvents.over,u=c.dragEvents.out,k=this,y=i.EndpointDropHandler({getEndpoint:function(){return k},jsPlumb:i,enabled:function(){return r!=null?r.isEnabled():!0},isFull:function(){return r.isFull()},element:this.element,elementId:this.elementId,isSource:this.isSource,isTarget:this.isTarget,addClass:function(w){k.addClass(w)},removeClass:function(w){k.removeClass(w)},isDropAllowed:function(){return k.isDropAllowed.apply(k,arguments)},reference:d,isRedrop:function(w,p){return w.suspendedEndpoint&&p.reference&&w.suspendedEndpoint.id===p.reference.id}});l[_]=X.wrap(l[_],y,!0),l[x]=X.wrap(l[x],function(){var w=c.getDragObject(arguments),p=i.getAttribute(c.getElement(w),"dragId"),E=i.getFloatingConnectionFor(p);if(E!=null){var B=i.getFloatingAnchorIndex(E),U=this.isTarget&&B!==0||E.suspendedEndpoint&&this.referenceEndpoint&&this.referenceEndpoint.id===E.suspendedEndpoint.id;if(U){var Y=i.checkCondition("checkDropAllowed",{sourceEndpoint:E.endpoints[B],targetEndpoint:this,connection:E});this[(Y?"add":"remove")+"Class"](i.endpointDropAllowedClass),this[(Y?"remove":"add")+"Class"](i.endpointDropForbiddenClass),E.endpoints[B].anchor.over(this.anchor,this)}}}.bind(this)),l[u]=X.wrap(l[u],function(){var w=c.getDragObject(arguments),p=w==null?null:i.getAttribute(c.getElement(w),"dragId"),E=p?i.getFloatingConnectionFor(p):null;if(E!=null){var B=i.getFloatingAnchorIndex(E),U=this.isTarget&&B!==0||E.suspendedEndpoint&&this.referenceEndpoint&&this.referenceEndpoint.id===E.suspendedEndpoint.id;U&&(this.removeClass(i.endpointDropAllowedClass),this.removeClass(i.endpointDropForbiddenClass),E.endpoints[B].anchor.out())}}.bind(this)),i.initDroppable(P,l,"internal",A)}}.bind(this);return this.anchor.isFloating||N(this.canvas,!(a._transient||this.anchor.isFloating),this,a.reference),this},X.extend(c.Endpoint,c.OverlayCapableJsPlumbUIComponent,{setVisible:function(a,i,v){if(this._jsPlumb.visible=a,this.canvas&&(this.canvas.style.display=a?"block":"none"),this[a?"showOverlays":"hideOverlays"](),!i){for(var D=0;D<this.connections.length;D++)if(this.connections[D].setVisible(a),!v){var L=this===this.connections[D].endpoints[0]?1:0;this.connections[D].endpoints[L].connections.length===1&&this.connections[D].endpoints[L].setVisible(a,!0,!0)}}},getAttachedElements:function(){return this.connections},applyType:function(a,i){this.setPaintStyle(a.endpointStyle||a.paintStyle,i),this.setHoverPaintStyle(a.endpointHoverStyle||a.hoverPaintStyle,i),a.maxConnections!=null&&(this._jsPlumb.maxConnections=a.maxConnections),a.scope&&(this.scope=a.scope),c.extend(this,a,h),a.cssClass!=null&&this.canvas&&this._jsPlumb.instance.addClass(this.canvas,a.cssClass),c.OverlayCapableJsPlumbUIComponent.applyType(this,a)},isEnabled:function(){return this._jsPlumb.enabled},setEnabled:function(a){this._jsPlumb.enabled=a},cleanup:function(){var a=this._jsPlumb.instance.endpointAnchorClassPrefix+(this._jsPlumb.currentAnchorClass?"-"+this._jsPlumb.currentAnchorClass:"");c.removeClass(this.element,a),this.anchor=null,this.endpoint.cleanup(!0),this.endpoint.destroy(),this.endpoint=null,this._jsPlumb.instance.destroyDraggable(this.canvas,"internal"),this._jsPlumb.instance.destroyDroppable(this.canvas,"internal")},setHover:function(a){this.endpoint&&this._jsPlumb&&!this._jsPlumb.instance.isConnectionBeingDragged()&&this.endpoint.setHover(a)},isFull:function(){return this._jsPlumb.maxConnections===0?!0:!(this.isFloating()||this._jsPlumb.maxConnections<0||this.connections.length<this._jsPlumb.maxConnections)},isFloating:function(){return this.anchor!=null&&this.anchor.isFloating},isConnectedTo:function(a){var i=!1;if(a){for(var v=0;v<this.connections.length;v++)if(this.connections[v].endpoints[1]===a||this.connections[v].endpoints[0]===a){i=!0;break}}return i},getConnectionCost:function(){return this._jsPlumb.connectionCost},setConnectionCost:function(a){this._jsPlumb.connectionCost=a},areConnectionsDirected:function(){return this._jsPlumb.connectionsDirected},setConnectionsDirected:function(a){this._jsPlumb.connectionsDirected=a},setElementId:function(a){this.elementId=a,this.anchor.elementId=a},setReferenceElement:function(a){this.element=c.getElement(a)},setDragAllowedWhenFull:function(a){this.dragAllowedWhenFull=a},equals:function(a){return this.anchor.equals(a.anchor)},getUuid:function(){return this._jsPlumb.uuid},computeAnchor:function(a){return this.anchor.compute(a)}}),K.jsPlumbInstance.prototype.EndpointDropHandler=function(a){return function(i){var v=a.jsPlumb;a.removeClass(v.endpointDropAllowedClass),a.removeClass(v.endpointDropForbiddenClass);var D=v.getDropEvent(arguments),L=v.getDragObject(arguments),C=v.getAttribute(L,"dragId");v.getAttribute(L,"elId");var f=v.getAttribute(L,"originalScope"),e=v.getFloatingConnectionFor(C);if(e!=null){var j=e.suspendedEndpoint!=null;if(!(j&&e.suspendedEndpoint._jsPlumb==null)){var M=a.getEndpoint(e);if(M!=null){if(a.isRedrop(e,a)){e._forceReattach=!0,e.setHover(!1),a.maybeCleanup&&a.maybeCleanup(M);return}var R=v.getFloatingAnchorIndex(e);if(R===0&&!a.isSource||R===1&&!a.isTarget){a.maybeCleanup&&a.maybeCleanup(M);return}a.onDrop&&a.onDrop(e),f&&v.setDragScope(L,f);var N=a.isFull(i);if(N&&M.fire("maxConnections",{endpoint:this,connection:e,maxConnections:M._jsPlumb.maxConnections},D),!N&&a.enabled()){var P=!0;R===0?(e.floatingElement=e.source,e.floatingId=e.sourceId,e.floatingEndpoint=e.endpoints[0],e.floatingIndex=0,e.source=a.element,e.sourceId=v.getId(a.element)):(e.floatingElement=e.target,e.floatingId=e.targetId,e.floatingEndpoint=e.endpoints[1],e.floatingIndex=1,e.target=a.element,e.targetId=v.getId(a.element)),j&&e.suspendedEndpoint.id!==M.id&&(!e.isDetachAllowed(e)||!e.endpoints[R].isDetachAllowed(e)||!e.suspendedEndpoint.isDetachAllowed(e)||!v.checkCondition("beforeDetach",e))&&(P=!1);var A=function(d){e.endpoints[R].detachFromConnection(e),e.suspendedEndpoint&&e.suspendedEndpoint.detachFromConnection(e),e.endpoints[R]=M,M.addConnection(e);var l=M.getParameters();for(var _ in l)e.setParameter(_,l[_]);if(!j)l.draggable&&v.initDraggable(this.element,a.dragOptions,"internal",v);else{var x=e.suspendedEndpoint.elementId;v.fireMoveEvent({index:R,originalSourceId:R===0?x:e.sourceId,newSourceId:R===0?M.elementId:e.sourceId,originalTargetId:R===1?x:e.targetId,newTargetId:R===1?M.elementId:e.targetId,originalSourceEndpoint:R===0?e.suspendedEndpoint:e.endpoints[0],newSourceEndpoint:R===0?M:e.endpoints[0],originalTargetEndpoint:R===1?e.suspendedEndpoint:e.endpoints[1],newTargetEndpoint:R===1?M:e.endpoints[1],connection:e},D)}if(R===1?v.router.sourceOrTargetChanged(e.floatingId,e.targetId,e,e.target,1):v.router.sourceOrTargetChanged(e.floatingId,e.sourceId,e,e.source,0),e.endpoints[0].finalEndpoint){var u=e.endpoints[0];u.detachFromConnection(e),e.endpoints[0]=e.endpoints[0].finalEndpoint,e.endpoints[0].addConnection(e)}X.isObject(d)&&e.mergeData(d),v.finaliseConnection(e,null,D,!1),e.setHover(!1),v.revalidate(e.endpoints[0].element)}.bind(this),r=function(){e.suspendedEndpoint&&(e.endpoints[R]=e.suspendedEndpoint,e.setHover(!1),e._forceDetach=!0,R===0?(e.source=e.suspendedEndpoint.element,e.sourceId=e.suspendedEndpoint.elementId):(e.target=e.suspendedEndpoint.element,e.targetId=e.suspendedEndpoint.elementId),e.suspendedEndpoint.addConnection(e),R===1?v.router.sourceOrTargetChanged(e.floatingId,e.targetId,e,e.target,1):v.router.sourceOrTargetChanged(e.floatingId,e.sourceId,e,e.source,0),v.repaint(e.sourceId),e._forceDetach=!1)};if(P=P&&a.isDropAllowed(e.sourceId,e.targetId,e.scope,e,M),P)return A(P),!0;r()}a.maybeCleanup&&a.maybeCleanup(M),v.currentlyDragging=!1}}}}}}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumb,X=K.jsPlumbUtil,Z=function(h,T,a,i,v){if(c.Connectors[T]=c.Connectors[T]||{},c.Connectors[T][a]==null){if(c.Connectors[a]==null){if(h.Defaults.DoNotThrowErrors)return null;throw new TypeError("jsPlumb: unknown connector type '"+a+"'")}c.Connectors[T][a]=function(){c.Connectors[a].apply(this,arguments),c.ConnectorRenderers[T].apply(this,arguments)},X.extend(c.Connectors[T][a],[c.Connectors[a],c.ConnectorRenderers[T]])}return new c.Connectors[T][a](i,v)},$=function(h,T,a){return h?a.makeAnchor(h,T,a):null},tt=function(h,T,a,i){T!=null&&(T._jsPlumbConnections=T._jsPlumbConnections||{},i?delete T._jsPlumbConnections[h.id]:T._jsPlumbConnections[h.id]=!0,X.isEmpty(T._jsPlumbConnections)?a.removeClass(T,a.connectedClass):a.addClass(T,a.connectedClass))};c.Connection=function(h){var T=h.newEndpoint;this.id=h.id,this.connector=null,this.idPrefix="_jsplumb_c_",this.defaultLabelLocation=.5,this.defaultOverlayKeys=["Overlays","ConnectionOverlays"],this.previousConnection=h.previousConnection,this.source=c.getElement(h.source),this.target=c.getElement(h.target),c.OverlayCapableJsPlumbUIComponent.apply(this,arguments),h.sourceEndpoint?(this.source=h.sourceEndpoint.getElement(),this.sourceId=h.sourceEndpoint.elementId):this.sourceId=this._jsPlumb.instance.getId(this.source),h.targetEndpoint?(this.target=h.targetEndpoint.getElement(),this.targetId=h.targetEndpoint.elementId):this.targetId=this._jsPlumb.instance.getId(this.target),this.scope=h.scope,this.endpoints=[],this.endpointStyles=[];var a=this._jsPlumb.instance;a.manage(this.sourceId,this.source),a.manage(this.targetId,this.target),this._jsPlumb.visible=!0,this._jsPlumb.params={cssClass:h.cssClass,container:h.container,"pointer-events":h["pointer-events"],editorParams:h.editorParams,overlays:h.overlays},this._jsPlumb.lastPaintedAt=null,this.bind("mouseover",function(){this.setHover(!0)}.bind(this)),this.bind("mouseout",function(){this.setHover(!1)}.bind(this)),this.makeEndpoint=function(_,x,u,k,y){return u=u||this._jsPlumb.instance.getId(x),this.prepareEndpoint(a,T,this,k,_?0:1,h,x,u,y)},h.type&&(h.endpoints=h.endpoints||this._jsPlumb.instance.deriveEndpointAndAnchorSpec(h.type).endpoints);var i=this.makeEndpoint(!0,this.source,this.sourceId,h.sourceEndpoint),v=this.makeEndpoint(!1,this.target,this.targetId,h.targetEndpoint);i&&X.addToList(h.endpointsByElement,this.sourceId,i),v&&X.addToList(h.endpointsByElement,this.targetId,v),this.scope||(this.scope=this.endpoints[0].scope),h.deleteEndpointsOnEmpty!=null&&(this.endpoints[0].setDeleteOnEmpty(h.deleteEndpointsOnEmpty),this.endpoints[1].setDeleteOnEmpty(h.deleteEndpointsOnEmpty));var D=a.Defaults.ConnectionsDetachable;h.detachable===!1&&(D=!1),this.endpoints[0].connectionsDetachable===!1&&(D=!1),this.endpoints[1].connectionsDetachable===!1&&(D=!1);var L=h.reattach||this.endpoints[0].reattachConnections||this.endpoints[1].reattachConnections||a.Defaults.ReattachConnections;this.appendToDefaultType({detachable:D,reattach:L,paintStyle:this.endpoints[0].connectorStyle||this.endpoints[1].connectorStyle||h.paintStyle||a.Defaults.PaintStyle||c.Defaults.PaintStyle,hoverPaintStyle:this.endpoints[0].connectorHoverStyle||this.endpoints[1].connectorHoverStyle||h.hoverPaintStyle||a.Defaults.HoverPaintStyle||c.Defaults.HoverPaintStyle});var C=a.getSuspendedAt();if(!a.isSuspendDrawing()){var f=a.getCachedData(this.sourceId),e=f.o,j=f.s,M=a.getCachedData(this.targetId),R=M.o,N=M.s,P=C||jsPlumbUtil.uuid(),A=this.endpoints[0].anchor.compute({xy:[e.left,e.top],wh:j,element:this.endpoints[0],elementId:this.endpoints[0].elementId,txy:[R.left,R.top],twh:N,tElement:this.endpoints[1],timestamp:P,rotation:a.getRotation(this.endpoints[0].elementId)});this.endpoints[0].paint({anchorLoc:A,timestamp:P}),A=this.endpoints[1].anchor.compute({xy:[R.left,R.top],wh:N,element:this.endpoints[1],elementId:this.endpoints[1].elementId,txy:[e.left,e.top],twh:j,tElement:this.endpoints[0],timestamp:P,rotation:a.getRotation(this.endpoints[1].elementId)}),this.endpoints[1].paint({anchorLoc:A,timestamp:P})}this.getTypeDescriptor=function(){return"connection"},this.getAttachedElements=function(){return this.endpoints},this.isDetachable=function(_){return this._jsPlumb.detachable===!1?!1:_!=null?_.connectionsDetachable===!0:this._jsPlumb.detachable===!0},this.setDetachable=function(_){this._jsPlumb.detachable=_===!0},this.isReattach=function(){return this._jsPlumb.reattach===!0||this.endpoints[0].reattachConnections===!0||this.endpoints[1].reattachConnections===!0},this.setReattach=function(_){this._jsPlumb.reattach=_===!0},this._jsPlumb.cost=h.cost||this.endpoints[0].getConnectionCost(),this._jsPlumb.directed=h.directed,h.directed==null&&(this._jsPlumb.directed=this.endpoints[0].areConnectionsDirected());var r=c.extend({},this.endpoints[1].getParameters());c.extend(r,this.endpoints[0].getParameters()),c.extend(r,this.getParameters()),this.setParameters(r),this.setConnector(this.endpoints[0].connector||this.endpoints[1].connector||h.connector||a.Defaults.Connector||c.Defaults.Connector,!0);var d=h.data==null||!X.isObject(h.data)?{}:h.data;this.getData=function(){return d},this.setData=function(_){d=_||{}},this.mergeData=function(_){d=c.extend(d,_)};var l=["default",this.endpoints[0].connectionType,this.endpoints[1].connectionType,h.type].join(" ");/[^\s]/.test(l)&&this.addType(l,h.data,!0),this.updateConnectedClass()},X.extend(c.Connection,c.OverlayCapableJsPlumbUIComponent,{applyType:function(h,T,a){var i=null;h.connector!=null&&(i=this.getCachedTypeItem("connector",a.connector),i==null&&(i=this.prepareConnector(h.connector,a.connector),this.cacheTypeItem("connector",i,a.connector)),this.setPreparedConnector(i)),h.detachable!=null&&this.setDetachable(h.detachable),h.reattach!=null&&this.setReattach(h.reattach),h.scope&&(this.scope=h.scope),h.cssClass!=null&&this.canvas&&this._jsPlumb.instance.addClass(this.canvas,h.cssClass);var v=null;h.anchor?(v=this.getCachedTypeItem("anchors",a.anchor),v==null&&(v=[this._jsPlumb.instance.makeAnchor(h.anchor),this._jsPlumb.instance.makeAnchor(h.anchor)],this.cacheTypeItem("anchors",v,a.anchor))):h.anchors&&(v=this.getCachedTypeItem("anchors",a.anchors),v==null&&(v=[this._jsPlumb.instance.makeAnchor(h.anchors[0]),this._jsPlumb.instance.makeAnchor(h.anchors[1])],this.cacheTypeItem("anchors",v,a.anchors))),v!=null&&(this.endpoints[0].anchor=v[0],this.endpoints[1].anchor=v[1],this.endpoints[1].anchor.isDynamic&&this._jsPlumb.instance.repaint(this.endpoints[1].elementId)),c.OverlayCapableJsPlumbUIComponent.applyType(this,h)},addClass:function(h,T){T&&(this.endpoints[0].addClass(h),this.endpoints[1].addClass(h),this.suspendedEndpoint&&this.suspendedEndpoint.addClass(h)),this.connector&&this.connector.addClass(h)},removeClass:function(h,T){T&&(this.endpoints[0].removeClass(h),this.endpoints[1].removeClass(h),this.suspendedEndpoint&&this.suspendedEndpoint.removeClass(h)),this.connector&&this.connector.removeClass(h)},isVisible:function(){return this._jsPlumb.visible},setVisible:function(h){this._jsPlumb.visible=h,this.connector&&this.connector.setVisible(h),this.repaint()},cleanup:function(){this.updateConnectedClass(!0),this.endpoints=null,this.source=null,this.target=null,this.connector!=null&&(this.connector.cleanup(!0),this.connector.destroy(!0)),this.connector=null},updateConnectedClass:function(h){this._jsPlumb&&(tt(this,this.source,this._jsPlumb.instance,h),tt(this,this.target,this._jsPlumb.instance,h))},setHover:function(h){this.connector&&this._jsPlumb&&!this._jsPlumb.instance.isConnectionBeingDragged()&&(this.connector.setHover(h),K.jsPlumb[h?"addClass":"removeClass"](this.source,this._jsPlumb.instance.hoverSourceClass),K.jsPlumb[h?"addClass":"removeClass"](this.target,this._jsPlumb.instance.hoverTargetClass))},getUuids:function(){return[this.endpoints[0].getUuid(),this.endpoints[1].getUuid()]},getCost:function(){return this._jsPlumb?this._jsPlumb.cost:-1/0},setCost:function(h){this._jsPlumb.cost=h},isDirected:function(){return this._jsPlumb.directed},getConnector:function(){return this.connector},prepareConnector:function(h,T){var a={_jsPlumb:this._jsPlumb.instance,cssClass:this._jsPlumb.params.cssClass,container:this._jsPlumb.params.container,"pointer-events":this._jsPlumb.params["pointer-events"]},i=this._jsPlumb.instance.getRenderMode(),v;return X.isString(h)?v=Z(this._jsPlumb.instance,i,h,a,this):X.isArray(h)&&(h.length===1?v=Z(this._jsPlumb.instance,i,h[0],a,this):v=Z(this._jsPlumb.instance,i,h[0],X.merge(h[1],a),this)),T!=null&&(v.typeId=T),v},setPreparedConnector:function(h,T,a,i){if(this.connector!==h){var v,D="";if(this.connector!=null&&(v=this.connector,D=v.getClass(),this.connector.cleanup(),this.connector.destroy()),this.connector=h,i&&this.cacheTypeItem("connector",h,i),this.canvas=this.connector.canvas,this.bgCanvas=this.connector.bgCanvas,this.connector.reattach(this._jsPlumb.instance),this.addClass(D),this.canvas&&(this.canvas._jsPlumb=this),this.bgCanvas&&(this.bgCanvas._jsPlumb=this),v!=null)for(var L=this.getOverlays(),C=0;C<L.length;C++)L[C].transfer&&L[C].transfer(this.connector);a||this.setListenerComponent(this.connector),T||this.repaint()}},setConnector:function(h,T,a,i){var v=this.prepareConnector(h,i);this.setPreparedConnector(v,T,a,i)},paint:function(h){if(!this._jsPlumb.instance.isSuspendDrawing()&&this._jsPlumb.visible){h=h||{};var T=h.timestamp,a=!1,i=a?this.sourceId:this.targetId,v=a?this.targetId:this.sourceId,D=a?0:1,L=a?1:0;if(T==null||T!==this._jsPlumb.lastPaintedAt){var C=this._jsPlumb.instance.updateOffset({elId:v}).o,f=this._jsPlumb.instance.updateOffset({elId:i}).o,e=this.endpoints[L],j=this.endpoints[D],M=e.anchor.getCurrentLocation({xy:[C.left,C.top],wh:[C.width,C.height],element:e,timestamp:T,rotation:this._jsPlumb.instance.getRotation(this.sourceId)}),R=j.anchor.getCurrentLocation({xy:[f.left,f.top],wh:[f.width,f.height],element:j,timestamp:T,rotation:this._jsPlumb.instance.getRotation(this.targetId)});this.connector.resetBounds(),this.connector.compute({sourcePos:M,targetPos:R,sourceOrientation:e.anchor.getOrientation(e),targetOrientation:j.anchor.getOrientation(j),sourceEndpoint:this.endpoints[L],targetEndpoint:this.endpoints[D],"stroke-width":this._jsPlumb.paintStyleInUse.strokeWidth,sourceInfo:C,targetInfo:f});var N={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};for(var P in this._jsPlumb.overlays)if(this._jsPlumb.overlays.hasOwnProperty(P)){var A=this._jsPlumb.overlays[P];A.isVisible()&&(this._jsPlumb.overlayPlacements[P]=A.draw(this.connector,this._jsPlumb.paintStyleInUse,this.getAbsoluteOverlayPosition(A)),N.minX=Math.min(N.minX,this._jsPlumb.overlayPlacements[P].minX),N.maxX=Math.max(N.maxX,this._jsPlumb.overlayPlacements[P].maxX),N.minY=Math.min(N.minY,this._jsPlumb.overlayPlacements[P].minY),N.maxY=Math.max(N.maxY,this._jsPlumb.overlayPlacements[P].maxY))}var r=parseFloat(this._jsPlumb.paintStyleInUse.strokeWidth||1)/2,d=parseFloat(this._jsPlumb.paintStyleInUse.strokeWidth||0),l={xmin:Math.min(this.connector.bounds.minX-(r+d),N.minX),ymin:Math.min(this.connector.bounds.minY-(r+d),N.minY),xmax:Math.max(this.connector.bounds.maxX+(r+d),N.maxX),ymax:Math.max(this.connector.bounds.maxY+(r+d),N.maxY)};this.connector.paintExtents=l,this.connector.paint(this._jsPlumb.paintStyleInUse,null,l);for(var _ in this._jsPlumb.overlays)if(this._jsPlumb.overlays.hasOwnProperty(_)){var x=this._jsPlumb.overlays[_];x.isVisible()&&x.paint(this._jsPlumb.overlayPlacements[_],l)}}this._jsPlumb.lastPaintedAt=T}},repaint:function(h){var T=jsPlumb.extend(h||{},{});T.elId=this.sourceId,this.paint(T)},prepareEndpoint:function(h,T,a,i,v,D,L,C,f){var e;if(i)a.endpoints[v]=i,i.addConnection(a);else{D.endpoints||(D.endpoints=[null,null]);var j=f||D.endpoints[v]||D.endpoint||h.Defaults.Endpoints[v]||c.Defaults.Endpoints[v]||h.Defaults.Endpoint||c.Defaults.Endpoint;D.endpointStyles||(D.endpointStyles=[null,null]),D.endpointHoverStyles||(D.endpointHoverStyles=[null,null]);var M=D.endpointStyles[v]||D.endpointStyle||h.Defaults.EndpointStyles[v]||c.Defaults.EndpointStyles[v]||h.Defaults.EndpointStyle||c.Defaults.EndpointStyle;M.fill==null&&D.paintStyle!=null&&(M.fill=D.paintStyle.stroke),M.outlineStroke==null&&D.paintStyle!=null&&(M.outlineStroke=D.paintStyle.outlineStroke),M.outlineWidth==null&&D.paintStyle!=null&&(M.outlineWidth=D.paintStyle.outlineWidth);var R=D.endpointHoverStyles[v]||D.endpointHoverStyle||h.Defaults.EndpointHoverStyles[v]||c.Defaults.EndpointHoverStyles[v]||h.Defaults.EndpointHoverStyle||c.Defaults.EndpointHoverStyle;D.hoverPaintStyle!=null&&(R==null&&(R={}),R.fill==null&&(R.fill=D.hoverPaintStyle.stroke));var N=D.anchors?D.anchors[v]:D.anchor?D.anchor:$(h.Defaults.Anchors[v],C,h)||$(c.Defaults.Anchors[v],C,h)||$(h.Defaults.Anchor,C,h)||$(c.Defaults.Anchor,C,h),P=D.uuids?D.uuids[v]:null;e=T({paintStyle:M,hoverPaintStyle:R,endpoint:j,connections:[a],uuid:P,anchor:N,source:L,scope:D.scope,reattach:D.reattach||h.Defaults.ReattachConnections,detachable:D.detachable||h.Defaults.ConnectionsDetachable}),i==null&&e.setDeleteOnEmpty(!0),a.endpoints[v]=e,D.drawEndpoints===!1&&e.setVisible(!1,!0,!0)}return e},replaceEndpoint:function(h,T){var a=this.endpoints[h],i=a.elementId,v=this._jsPlumb.instance.getEndpoints(i),D=v.indexOf(a),L=this.makeEndpoint(h===0,a.element,i,null,T);this.endpoints[h]=L,v.splice(D,1,L),this._jsPlumb.instance.deleteObject({endpoint:a,deleteAttachedObjects:!1}),this._jsPlumb.instance.fire("endpointReplaced",{previous:a,current:L}),this._jsPlumb.instance.router.sourceOrTargetChanged(this.endpoints[1].elementId,this.endpoints[1].elementId,this,this.endpoints[1].element,1)}})}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumbUtil,X=K.jsPlumb;X.AnchorManager=function(h){var T={},a={},i={},v={},D=this,L={},C=h.jsPlumbInstance,f={},e=function(l,_,x,u,k,y,w,p){for(var E=[],B=_[k?0:1]/(u.length+1),U=0;U<u.length;U++){var Y=(U+1)*B,n=y*_[k?1:0];w&&(Y=_[k?0:1]-Y);var o=k?Y:n,t=x.left+o,g=o/_[0],m=k?n:Y,F=x.top+m,I=m/_[1];if(p!==0){var V=jsPlumbUtil.rotatePoint([t,F],[x.centerx,x.centery],p);t=V[0],F=V[1]}E.push([t,F,g,I,u[U][1],u[U][2]])}return E},j=function(l,_){return _[0][0]-l[0][0]},M=function(l,_){var x=l[0][0]<0?-Math.PI-l[0][0]:Math.PI-l[0][0],u=_[0][0]<0?-Math.PI-_[0][0]:Math.PI-_[0][0];return x-u},R={top:M,right:j,bottom:j,left:M},N=function(l,_){return l.sort(_)},P=function(l,_){var x=C.getCachedData(l),u=x.s,k=x.o,y=function(w,p,E,B,U,Y,n){if(B.length>0)for(var o=N(B,R[w]),t=w==="right"||w==="top",g=C.getRotation(l),m=e(w,p,E,o,U,Y,t,g),F=function(at,st){a[at.id]=[st[0],st[1],st[2],st[3]],i[at.id]=n},I=0;I<m.length;I++){var V=m[I][4],G=V.endpoints[0].elementId===l,W=V.endpoints[1].elementId===l;G&&F(V.endpoints[0],m[I]),W&&F(V.endpoints[1],m[I])}};y("bottom",u,k,_.bottom,!0,1,[0,1]),y("top",u,k,_.top,!0,0,[0,-1]),y("left",u,k,_.left,!1,0,[-1,0]),y("right",u,k,_.right,!1,1,[1,0])};this.reset=function(){T={},v={},L={}},this.addFloatingConnection=function(l,_){f[l]=_},this.newConnection=function(l){var _=l.sourceId,x=l.targetId,u=l.endpoints,k=!0,y=function(w,p,E,B,U){_===x&&E.isContinuous&&(l._jsPlumb.instance.removeElement(u[1].canvas),k=!1),c.addToList(v,B,[U,p,E.constructor===X.DynamicAnchor])};y(0,u[0],u[0].anchor,x,l),k&&y(1,u[1],u[1].anchor,_,l)};var A=function(l){(function(_,x){if(_){var u=function(k){return k[4]===x};c.removeWithFunction(_.top,u),c.removeWithFunction(_.left,u),c.removeWithFunction(_.bottom,u),c.removeWithFunction(_.right,u)}})(L[l.elementId],l.id)};this.connectionDetached=function(l,_){var x=l.connection||l,u=l.sourceId,k=l.targetId,y=x.endpoints,w=function(p,E,B,U,Y){c.removeWithFunction(v[U],function(n){return n[0].id===Y.id})};w(1,y[1],y[1].anchor,u,x),w(0,y[0],y[0].anchor,k,x),x.floatingId&&(w(x.floatingIndex,x.floatingEndpoint,x.floatingEndpoint.anchor,x.floatingId,x),A(x.floatingEndpoint)),A(x.endpoints[0]),A(x.endpoints[1]),_||(D.redraw(x.sourceId),x.targetId!==x.sourceId&&D.redraw(x.targetId))},this.addEndpoint=function(l,_){c.addToList(T,_,l)},this.changeId=function(l,_){v[_]=v[l],T[_]=T[l],delete v[l],delete T[l]},this.getConnectionsFor=function(l){return v[l]||[]},this.getEndpointsFor=function(l){return T[l]||[]},this.deleteEndpoint=function(l){c.removeWithFunction(T[l.elementId],function(_){return _.id===l.id}),A(l)},this.elementRemoved=function(l){delete f[l],delete T[l],T[l]=[]};var r=function(l,_,x,u,k,y,w,p,E,B,U,Y){var n=-1,o=u.endpoints[w],t=o.id,g=[1,0][w],m=[[_,x],u,k,y,t],F=l[E],I=o._continuousAnchorEdge?l[o._continuousAnchorEdge]:null,V,G;if(I){var W=c.findWithFunction(I,function(st){return st[4]===t});if(W!==-1)for(I.splice(W,1),V=0;V<I.length;V++)G=I[V][1],c.addWithFunction(U,G,function(st){return st.id===G.id}),c.addWithFunction(Y,I[V][1].endpoints[w],function(st){return st.id===G.endpoints[w].id}),c.addWithFunction(Y,I[V][1].endpoints[g],function(st){return st.id===G.endpoints[g].id})}for(V=0;V<F.length;V++)G=F[V][1],h.idx===1&&F[V][3]===y&&n===-1&&(n=V),c.addWithFunction(U,G,function(st){return st.id===G.id}),c.addWithFunction(Y,F[V][1].endpoints[w],function(st){return st.id===G.endpoints[w].id}),c.addWithFunction(Y,F[V][1].endpoints[g],function(st){return st.id===G.endpoints[g].id});{var at=p?n!==-1?n:0:F.length;F.splice(at,0,m)}o._continuousAnchorEdge=E};this.sourceOrTargetChanged=function(l,_,x,u,k){if(k===0){if(l!==_){x.sourceId=_,x.source=u,c.removeWithFunction(v[l],function(B){return B[0].id===x.id});var y=c.findWithFunction(v[x.targetId],function(B){return B[0].id===x.id});y>-1&&(v[x.targetId][y][0]=x,v[x.targetId][y][1]=x.endpoints[0],v[x.targetId][y][2]=x.endpoints[0].anchor.constructor===X.DynamicAnchor),c.addToList(v,_,[x,x.endpoints[1],x.endpoints[1].anchor.constructor===X.DynamicAnchor]),x.endpoints[1].anchor.isContinuous&&(x.source===x.target?x._jsPlumb.instance.removeElement(x.endpoints[1].canvas):x.endpoints[1].canvas.parentNode==null&&x._jsPlumb.instance.appendElement(x.endpoints[1].canvas)),x.updateConnectedClass()}}else if(k===1){var w=x.endpoints[0].elementId;x.target=u,x.targetId=_;var p=c.findWithFunction(v[w],function(B){return B[0].id===x.id}),E=c.findWithFunction(v[l],function(B){return B[0].id===x.id});p!==-1&&(v[w][p][0]=x,v[w][p][1]=x.endpoints[1],v[w][p][2]=x.endpoints[1].anchor.constructor===X.DynamicAnchor),E>-1&&(v[l].splice(E,1),c.addToList(v,_,[x,x.endpoints[0],x.endpoints[0].anchor.constructor===X.DynamicAnchor])),x.updateConnectedClass()}},this.rehomeEndpoint=function(l,_,x){var u=T[_]||[],k=C.getId(x);if(k!==_){var y=u.indexOf(l);if(y>-1){var w=u.splice(y,1)[0];D.add(w,k)}}for(var p=0;p<l.connections.length;p++)l.connections[p].sourceId===_?D.sourceOrTargetChanged(_,l.elementId,l.connections[p],l.element,0):l.connections[p].targetId===_&&D.sourceOrTargetChanged(_,l.elementId,l.connections[p],l.element,1)},this.redraw=function(l,_,x,u,k,y){var w=[],p=[],E=[];if(!C.isSuspendDrawing()){var B=T[l]||[],U=v[l]||[];x=x||jsPlumbUtil.uuid(),u=u||{left:0,top:0},_&&(_={left:_.left+u.left,top:_.top+u.top});for(var Y=C.updateOffset({elId:l,offset:_,recalc:!1,timestamp:x}),n={},o=0;o<U.length;o++){var t=U[o][0],g=t.sourceId,m=t.targetId,F=t.endpoints[0].anchor.isContinuous,I=t.endpoints[1].anchor.isContinuous;if(F||I){var V=g+"_"+m,G=n[V],W=t.sourceId===l?1:0,at=C.getRotation(m),st=C.getRotation(g);F&&!L[g]&&(L[g]={top:[],right:[],bottom:[],left:[]}),I&&!L[m]&&(L[m]={top:[],right:[],bottom:[],left:[]}),l!==m&&C.updateOffset({elId:m,timestamp:x}),l!==g&&C.updateOffset({elId:g,timestamp:x});var it=C.getCachedData(m),rt=C.getCachedData(g);m===g&&(F||I)?(r(L[g],-Math.PI/2,0,t,!1,m,0,!1,"top",g,w,p),r(L[m],-Math.PI/2,0,t,!1,g,1,!1,"top",m,w,p)):(G||(G=this.calculateOrientation(g,m,rt.o,it.o,t.endpoints[0].anchor,t.endpoints[1].anchor,t,st,at),n[V]=G),F&&r(L[g],G.theta,0,t,!1,m,0,!1,G.a[0],g,w,p),I&&r(L[m],G.theta2,-1,t,!0,g,1,!0,G.a[1],m,w,p)),F&&c.addWithFunction(E,g,function(gt){return gt===g}),I&&c.addWithFunction(E,m,function(gt){return gt===m}),c.addWithFunction(w,t,function(gt){return gt.id===t.id}),(F&&W===0||I&&W===1)&&c.addWithFunction(p,t.endpoints[W],function(gt){return gt.id===t.endpoints[W].id})}}for(o=0;o<B.length;o++)B[o].connections.length===0&&B[o].anchor.isContinuous&&(L[l]||(L[l]={top:[],right:[],bottom:[],left:[]}),r(L[l],-Math.PI/2,0,{endpoints:[B[o],B[o]],paint:function(){}},!1,l,0,!1,B[o].anchor.getDefaultFace(),l,w,p),c.addWithFunction(E,l,function(gt){return gt===l}));for(o=0;o<E.length;o++)P(E[o],L[E[o]]);for(o=0;o<B.length;o++)B[o].paint({timestamp:x,offset:Y,dimensions:Y.s,recalc:y!==!0});for(o=0;o<p.length;o++){var pt=C.getCachedData(p[o].elementId);p[o].paint({timestamp:null,offset:pt,dimensions:pt.s})}for(o=0;o<U.length;o++){var dt=U[o][1];if(dt.anchor.constructor===X.DynamicAnchor){dt.paint({elementWithPrecedence:l,timestamp:x}),c.addWithFunction(w,U[o][0],function(gt){return gt.id===U[o][0].id});for(var lt=0;lt<dt.connections.length;lt++)dt.connections[lt]!==U[o][0]&&c.addWithFunction(w,dt.connections[lt],function(gt){return gt.id===dt.connections[lt].id})}else c.addWithFunction(w,U[o][0],function(gt){return gt.id===U[o][0].id})}var bt=f[l];for(bt&&bt.paint({timestamp:x,recalc:!1,elId:l}),o=0;o<w.length;o++)w[o].paint({elId:l,timestamp:null,recalc:!1,clearEdits:k})}return{c:w,e:p}};var d=function(l){c.EventGenerator.apply(this),this.type="Continuous",this.isDynamic=!0,this.isContinuous=!0;for(var _=l.faces||["top","right","bottom","left"],x=l.clockwise!==!1,u={},k={top:"bottom",right:"left",left:"right",bottom:"top"},y={top:"right",right:"bottom",left:"top",bottom:"left"},w={top:"left",right:"top",left:"bottom",bottom:"right"},p=x?y:w,E=x?w:y,B=l.cssClass||"",U=null,Y=null,n=["left","right"],o=["top","bottom"],t=null,g=0;g<_.length;g++)u[_[g]]=!0;this.getDefaultFace=function(){return _.length===0?"top":_[0]},this.isRelocatable=function(){return!0},this.isSnapOnRelocate=function(){return!0},this.verifyEdge=function(m){return u[m]?m:u[k[m]]?k[m]:u[p[m]]?p[m]:u[E[m]]?E[m]:m},this.isEdgeSupported=function(m){return t==null?Y==null?u[m]===!0:Y===m:t.indexOf(m)!==-1},this.setCurrentFace=function(m,F){U=m,F&&Y!=null&&(Y=U)},this.getCurrentFace=function(){return U},this.getSupportedFaces=function(){var m=[];for(var F in u)u[F]&&m.push(F);return m},this.lock=function(){Y=U},this.unlock=function(){Y=null},this.isLocked=function(){return Y!=null},this.lockCurrentAxis=function(){U!=null&&(t=U==="left"||U==="right"?n:o)},this.unlockCurrentAxis=function(){t=null},this.compute=function(m){return a[m.element.id]||[0,0]},this.getCurrentLocation=function(m){return a[m.element.id]||[0,0]},this.getOrientation=function(m){return i[m.id]||[0,0]},this.getCssClass=function(){return B}};C.continuousAnchorFactory={get:function(l){return new d(l)},clear:function(l){delete a[l]}}},X.AnchorManager.prototype.calculateOrientation=function(h,T,a,i,v,D,L,C,f){var e={HORIZONTAL:"horizontal",VERTICAL:"vertical",DIAGONAL:"diagonal",IDENTITY:"identity"},j=["left","top","right","bottom"];if(h===T)return{orientation:e.IDENTITY,a:["top","top"]};var M=Math.atan2(i.centery-a.centery,i.centerx-a.centerx),R=Math.atan2(a.centery-i.centery,a.centerx-i.centerx),N=[],P={};(function(x,u){for(var k=0;k<x.length;k++)if(P[x[k]]={left:[u[k][0].left,u[k][0].centery],right:[u[k][0].right,u[k][0].centery],top:[u[k][0].centerx,u[k][0].top],bottom:[u[k][0].centerx,u[k][0].bottom]},u[k][1]!==0)for(var y in P[x[k]])P[x[k]][y]=jsPlumbUtil.rotatePoint(P[x[k]][y],[u[k][0].centerx,u[k][0].centery],u[k][1])})(["source","target"],[[a,C],[i,f]]);for(var A=0;A<j.length;A++)for(var r=0;r<j.length;r++)N.push({source:j[A],target:j[r],dist:Biltong.lineLength(P.source[j[A]],P.target[j[r]])});N.sort(function(x,u){return x.dist<u.dist?-1:x.dist>u.dist?1:0});for(var d=N[0].source,l=N[0].target,_=0;_<N.length&&(v.isContinuous&&v.locked?d=v.getCurrentFace():!v.isContinuous||v.isEdgeSupported(N[_].source)?d=N[_].source:d=null,D.isContinuous&&D.locked?l=D.getCurrentFace():!D.isContinuous||D.isEdgeSupported(N[_].target)?l=N[_].target:l=null,!(d!=null&&l!=null));_++);return v.isContinuous&&v.setCurrentFace(d),D.isContinuous&&D.setCurrentFace(l),{a:[d,l],theta:M,theta2:R}},X.Anchor=function(h){this.x=h.x||0,this.y=h.y||0,this.elementId=h.elementId,this.cssClass=h.cssClass||"",this.orientation=h.orientation||[0,0],this.lastReturnValue=null,this.offsets=h.offsets||[0,0],this.timestamp=null,this._unrotatedOrientation=[this.orientation[0],this.orientation[1]],this.relocatable=h.relocatable!==!1,this.snapOnRelocate=h.snapOnRelocate!==!1,this.locked=!1,c.EventGenerator.apply(this),this.compute=function(T){var a=T.xy,i=T.wh,v=T.timestamp;if(v&&v===this.timestamp)return this.lastReturnValue;var D=[a[0]+this.x*i[0]+this.offsets[0],a[1]+this.y*i[1]+this.offsets[1],this.x,this.y],L=T.rotation;if(L!=null&&L!==0){var C=jsPlumbUtil.rotatePoint(D,[a[0]+i[0]/2,a[1]+i[1]/2],L);this.orientation[0]=Math.round(this._unrotatedOrientation[0]*C[2]-this._unrotatedOrientation[1]*C[3]),this.orientation[1]=Math.round(this._unrotatedOrientation[1]*C[2]+this._unrotatedOrientation[0]*C[3]),this.lastReturnValue=[C[0],C[1],this.x,this.y]}else this.orientation[0]=this._unrotatedOrientation[0],this.orientation[1]=this._unrotatedOrientation[1],this.lastReturnValue=D;return this.timestamp=v,this.lastReturnValue},this.getCurrentLocation=function(T){return T=T||{},this.lastReturnValue==null||T.timestamp!=null&&this.timestamp!==T.timestamp?this.compute(T):this.lastReturnValue},this.setPosition=function(T,a,i,v,D){(!this.locked||D)&&(this.x=T,this.y=a,this.orientation=[i,v],this.lastReturnValue=null)}},c.extend(X.Anchor,c.EventGenerator,{equals:function(h){if(!h)return!1;var T=h.getOrientation(),a=this.getOrientation();return this.x===h.x&&this.y===h.y&&this.offsets[0]===h.offsets[0]&&this.offsets[1]===h.offsets[1]&&a[0]===T[0]&&a[1]===T[1]},getOrientation:function(){return this.orientation},getCssClass:function(){return this.cssClass}}),X.FloatingAnchor=function(h){X.Anchor.apply(this,arguments);var T=h.reference,a=h.referenceCanvas,i=X.getSize(a),v=0,D=0,L=null,C=null;this.orientation=null,this.x=0,this.y=0,this.isFloating=!0,this.compute=function(f){var e=f.xy,j=[e[0]+i[0]/2,e[1]+i[1]/2];return C=j,j},this.getOrientation=function(f){if(L)return L;var e=T.getOrientation(f);return[Math.abs(e[0])*v*-1,Math.abs(e[1])*D*-1]},this.over=function(f,e){L=f.getOrientation(e)},this.out=function(){L=null},this.getCurrentLocation=function(f){return C==null?this.compute(f):C}},c.extend(X.FloatingAnchor,X.Anchor);var Z=function(h,T,a){return h.constructor===X.Anchor?h:T.makeAnchor(h,a,T)};X.DynamicAnchor=function(h){X.Anchor.apply(this,arguments),this.isDynamic=!0,this.anchors=[],this.elementId=h.elementId,this.jsPlumbInstance=h.jsPlumbInstance;for(var T=0;T<h.anchors.length;T++)this.anchors[T]=Z(h.anchors[T],this.jsPlumbInstance,this.elementId);this.getAnchors=function(){return this.anchors};var a=this.anchors.length>0?this.anchors[0]:null,i=a,v=function(L,C,f,e,j,M,R){var N=e[0]+L.x*j[0],P=e[1]+L.y*j[1],A=e[0]+j[0]/2,r=e[1]+j[1]/2;if(M!=null&&M!==0){var d=jsPlumbUtil.rotatePoint([N,P],[A,r],M);N=d[0],P=d[1]}return Math.sqrt(Math.pow(C-N,2)+Math.pow(f-P,2))+Math.sqrt(Math.pow(A-N,2)+Math.pow(r-P,2))},D=h.selector||function(L,C,f,e,j,M,R){for(var N=f[0]+e[0]/2,P=f[1]+e[1]/2,A=-1,r=1/0,d=0;d<R.length;d++){var l=v(R[d],N,P,L,C,j);l<r&&(A=d+0,r=l)}return R[A]};this.compute=function(L){var C=L.xy,f=L.wh,e=L.txy,j=L.twh,M=L.rotation,R=L.tRotation;return this.timestamp=L.timestamp,this.locked||e==null||j==null?(this.lastReturnValue=a.compute(L),this.lastReturnValue):(L.timestamp=null,a=D(C,f,e,j,M,R,this.anchors),this.x=a.x,this.y=a.y,a!==i&&this.fire("anchorChanged",a),i=a,this.lastReturnValue=a.compute(L),this.lastReturnValue)},this.getCurrentLocation=function(L){return a!=null?a.getCurrentLocation(L):null},this.getOrientation=function(L){return a!=null?a.getOrientation(L):[0,0]},this.over=function(L,C){a!=null&&a.over(L,C)},this.out=function(){a!=null&&a.out()},this.setAnchor=function(L){a=L},this.getCssClass=function(){return a&&a.getCssClass()||""},this.setAnchorCoordinates=function(L){var C=jsPlumbUtil.findWithFunction(this.anchors,function(f){return f.x===L[0]&&f.y===L[1]});return C!==-1?(this.setAnchor(this.anchors[C]),!0):!1}},c.extend(X.DynamicAnchor,X.Anchor);var $=function(h,T,a,i,v,D){X.Anchors[v]=function(L){var C=L.jsPlumbInstance.makeAnchor([h,T,a,i,0,0],L.elementId,L.jsPlumbInstance);return C.type=v,D&&D(C,L),C}};$(.5,0,0,-1,"TopCenter"),$(.5,1,0,1,"BottomCenter"),$(0,.5,-1,0,"LeftMiddle"),$(1,.5,1,0,"RightMiddle"),$(.5,0,0,-1,"Top"),$(.5,1,0,1,"Bottom"),$(0,.5,-1,0,"Left"),$(1,.5,1,0,"Right"),$(.5,.5,0,0,"Center"),$(1,0,0,-1,"TopRight"),$(1,1,0,1,"BottomRight"),$(0,0,0,-1,"TopLeft"),$(0,1,0,1,"BottomLeft"),X.Defaults.DynamicAnchors=function(h){return h.jsPlumbInstance.makeAnchors(["TopCenter","RightMiddle","BottomCenter","LeftMiddle"],h.elementId,h.jsPlumbInstance)},X.Anchors.AutoDefault=function(h){var T=h.jsPlumbInstance.makeDynamicAnchor(X.Defaults.DynamicAnchors(h));return T.type="AutoDefault",T};var tt=function(h,T){X.Anchors[h]=function(a){var i=a.jsPlumbInstance.makeAnchor(["Continuous",{faces:T}],a.elementId,a.jsPlumbInstance);return i.type=h,i}};X.Anchors.Continuous=function(h){return h.jsPlumbInstance.continuousAnchorFactory.get(h)},tt("ContinuousLeft",["left"]),tt("ContinuousTop",["top"]),tt("ContinuousBottom",["bottom"]),tt("ContinuousRight",["right"]),$(0,0,0,0,"Assign",function(h,T){var a=T.position||"Fixed";h.positionFinder=a.constructor===String?T.jsPlumbInstance.AnchorPositionFinders[a]:a,h.constructorParams=T}),K.jsPlumbInstance.prototype.AnchorPositionFinders={Fixed:function(h,T,a){return[(h.left-T.left)/a[0],(h.top-T.top)/a[1]]},Grid:function(h,T,a,i){var v=h.left-T.left,D=h.top-T.top,L=a[0]/i.grid[0],C=a[1]/i.grid[1],f=Math.floor(v/L),e=Math.floor(D/C);return[(f*L+L/2)/a[0],(e*C+C/2)/a[1]]}},X.Anchors.Perimeter=function(h){h=h||{};var T=h.anchorCount||60,a=h.shape;if(!a)throw new Error("no shape supplied to Perimeter Anchor type");var i=function(){for(var M=.5,R=Math.PI*2/T,N=0,P=[],A=0;A<T;A++){var r=M+M*Math.sin(N),d=M+M*Math.cos(N);P.push([r,d,0,0]),N+=R}return P},v=function(M){for(var R=T/M.length,N=[],P=function(r,d,l,_,x,u,k){R=T*x;for(var y=(l-r)/R,w=(_-d)/R,p=0;p<R;p++)N.push([r+y*p,d+w*p,u==null?0:u,k==null?0:k])},A=0;A<M.length;A++)P.apply(null,M[A]);return N},D=function(M){for(var R=[],N=0;N<M.length;N++)R.push([M[N][0],M[N][1],M[N][2],M[N][3],1/M.length,M[N][4],M[N][5]]);return v(R)},L=function(){return D([[0,0,1,0,0,-1],[1,0,1,1,1,0],[1,1,0,1,0,1],[0,1,0,0,-1,0]])},C={Circle:i,Ellipse:i,Diamond:function(){return D([[.5,0,1,.5],[1,.5,.5,1],[.5,1,0,.5],[0,.5,.5,0]])},Rectangle:L,Square:L,Triangle:function(){return D([[.5,0,1,1],[1,1,0,1],[0,1,.5,0]])},Path:function(M){for(var R=M.points,N=[],P=0,A=0;A<R.length-1;A++){var r=Math.sqrt(Math.pow(R[A][2]-R[A][0])+Math.pow(R[A][3]-R[A][1]));P+=r,N.push([R[A][0],R[A][1],R[A+1][0],R[A+1][1],r])}for(var d=0;d<N.length;d++)N[d][4]=N[d][4]/P;return v(N)}},f=function(M,R){for(var N=[],P=R/180*Math.PI,A=0;A<M.length;A++){var r=M[A][0]-.5,d=M[A][1]-.5;N.push([.5+(r*Math.cos(P)-d*Math.sin(P)),.5+(r*Math.sin(P)+d*Math.cos(P)),M[A][2],M[A][3]])}return N};if(!C[a])throw new Error("Shape ["+a+"] is unknown by Perimeter Anchor type");var e=C[a](h);h.rotation&&(e=f(e,h.rotation));var j=h.jsPlumbInstance.makeDynamicAnchor(e);return j.type="Perimeter",j}}.call(typeof window!="undefined"?window:jt),function(){var K=this;K.jsPlumbUtil;var c=K.jsPlumb;c.DefaultRouter=function(X){this.jsPlumbInstance=X,this.anchorManager=new c.AnchorManager({jsPlumbInstance:X}),this.sourceOrTargetChanged=function(Z,$,tt,h,T){this.anchorManager.sourceOrTargetChanged(Z,$,tt,h,T)},this.reset=function(){this.anchorManager.reset()},this.changeId=function(Z,$){this.anchorManager.changeId(Z,$)},this.elementRemoved=function(Z){this.anchorManager.elementRemoved(Z)},this.newConnection=function(Z){this.anchorManager.newConnection(Z)},this.connectionDetached=function(Z,$){this.anchorManager.connectionDetached(Z,$)},this.redraw=function(Z,$,tt,h,T,a){return this.anchorManager.redraw(Z,$,tt,h,T,a)},this.deleteEndpoint=function(Z){this.anchorManager.deleteEndpoint(Z)},this.rehomeEndpoint=function(Z,$,tt){this.anchorManager.rehomeEndpoint(Z,$,tt)},this.addEndpoint=function(Z,$){this.anchorManager.addEndpoint(Z,$)}}}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumb,X=K.jsPlumbUtil,Z=K.Biltong;c.Segments={AbstractSegment:function(i){this.params=i,this.findClosestPointOnPath=function(v,D){return{d:1/0,x:null,y:null,l:null}},this.getBounds=function(){return{minX:Math.min(i.x1,i.x2),minY:Math.min(i.y1,i.y2),maxX:Math.max(i.x1,i.x2),maxY:Math.max(i.y1,i.y2)}},this.lineIntersection=function(v,D,L,C){return[]},this.boxIntersection=function(v,D,L,C){var f=[];return f.push.apply(f,this.lineIntersection(v,D,v+L,D)),f.push.apply(f,this.lineIntersection(v+L,D,v+L,D+C)),f.push.apply(f,this.lineIntersection(v+L,D+C,v,D+C)),f.push.apply(f,this.lineIntersection(v,D+C,v,D)),f},this.boundingBoxIntersection=function(v){return this.boxIntersection(v.x,v.y,v.w,v.y)}},Straight:function(i){c.Segments.AbstractSegment.apply(this,arguments);var v,D,L,C,f,e,j,M=function(){v=Math.sqrt(Math.pow(f-C,2)+Math.pow(j-e,2)),D=Z.gradient({x:C,y:e},{x:f,y:j}),L=-1/D};this.type="Straight",this.getLength=function(){return v},this.getGradient=function(){return D},this.getCoordinates=function(){return{x1:C,y1:e,x2:f,y2:j}},this.setCoordinates=function(r){C=r.x1,e=r.y1,f=r.x2,j=r.y2,M()},this.setCoordinates({x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2}),this.getBounds=function(){return{minX:Math.min(C,f),minY:Math.min(e,j),maxX:Math.max(C,f),maxY:Math.max(e,j)}},this.pointOnPath=function(r,d){if(r===0&&!d)return{x:C,y:e};if(r===1&&!d)return{x:f,y:j};var l=d?r>0?r:v+r:r*v;return Z.pointOnLine({x:C,y:e},{x:f,y:j},l)},this.gradientAtPoint=function(r){return D},this.pointAlongPathFrom=function(r,d,l){var _=this.pointOnPath(r,l),x=d<=0?{x:C,y:e}:{x:f,y:j};return d<=0&&Math.abs(d)>1&&(d*=-1),Z.pointOnLine(_,x,d)};var R=function(r,d,l){return l>=Math.min(r,d)&&l<=Math.max(r,d)},N=function(r,d,l){return Math.abs(l-r)<Math.abs(l-d)?r:d};this.findClosestPointOnPath=function(r,d){var l={d:1/0,x:null,y:null,l:null,x1:C,x2:f,y1:e,y2:j};if(D===0)l.y=e,l.x=R(C,f,r)?r:N(C,f,r);else if(D===1/0||D===-1/0)l.x=C,l.y=R(e,j,d)?d:N(e,j,d);else{var _=e-D*C,x=d-L*r,u=(x-_)/(D-L),k=D*u+_;l.x=R(C,f,u)?u:N(C,f,u),l.y=R(e,j,k)?k:N(e,j,k)}var y=Z.lineLength([l.x,l.y],[C,e]);return l.d=Z.lineLength([r,d],[l.x,l.y]),l.l=y/v,l};var P=function(r,d,l){return l>d?d<=r&&r<=l:d>=r&&r>=l},A=P;this.lineIntersection=function(r,d,l,_){var x=Math.abs(Z.gradient({x:r,y:d},{x:l,y:_})),u=Math.abs(D),k=u===1/0?C:e-u*C,y=[],w=x===1/0?r:d-x*r;if(x!==u)if(x===1/0&&u===0)A(r,C,f)&&A(e,d,_)&&(y=[r,e]);else if(x===0&&u===1/0)A(d,e,j)&&A(C,r,l)&&(y=[C,d]);else{var p,E;x===1/0?(p=r,A(p,C,f)&&(E=u*r+k,A(E,d,_)&&(y=[p,E]))):x===0?(E=d,A(E,e,j)&&(p=(d-k)/u,A(p,r,l)&&(y=[p,E]))):(p=(w-k)/(u-x),E=u*p+k,A(p,C,f)&&A(E,e,j)&&(y=[p,E]))}return y},this.boxIntersection=function(r,d,l,_){var x=[];return x.push.apply(x,this.lineIntersection(r,d,r+l,d)),x.push.apply(x,this.lineIntersection(r+l,d,r+l,d+_)),x.push.apply(x,this.lineIntersection(r+l,d+_,r,d+_)),x.push.apply(x,this.lineIntersection(r,d+_,r,d)),x},this.boundingBoxIntersection=function(r){return this.boxIntersection(r.x,r.y,r.w,r.h)}},Arc:function(i){c.Segments.AbstractSegment.apply(this,arguments);var v=function(N,P){return Z.theta([i.cx,i.cy],[N,P])},D=function(N,P){if(N.anticlockwise){var A=N.startAngle<N.endAngle?N.startAngle+L:N.startAngle,r=Math.abs(A-N.endAngle);return A-r*P}else{var d=N.endAngle<N.startAngle?N.endAngle+L:N.endAngle,l=Math.abs(d-N.startAngle);return N.startAngle+l*P}},L=2*Math.PI;this.radius=i.r,this.anticlockwise=i.ac,this.type="Arc",i.startAngle&&i.endAngle?(this.startAngle=i.startAngle,this.endAngle=i.endAngle,this.x1=i.cx+this.radius*Math.cos(i.startAngle),this.y1=i.cy+this.radius*Math.sin(i.startAngle),this.x2=i.cx+this.radius*Math.cos(i.endAngle),this.y2=i.cy+this.radius*Math.sin(i.endAngle)):(this.startAngle=v(i.x1,i.y1),this.endAngle=v(i.x2,i.y2),this.x1=i.x1,this.y1=i.y1,this.x2=i.x2,this.y2=i.y2),this.endAngle<0&&(this.endAngle+=L),this.startAngle<0&&(this.startAngle+=L);var C=this.endAngle<this.startAngle?this.endAngle+L:this.endAngle;this.sweep=Math.abs(C-this.startAngle),this.anticlockwise&&(this.sweep=L-this.sweep);var f=2*Math.PI*this.radius,e=this.sweep/L,j=f*e;this.getLength=function(){return j},this.getBounds=function(){return{minX:i.cx-i.r,maxX:i.cx+i.r,minY:i.cy-i.r,maxY:i.cy+i.r}};var M=1e-10,R=function(N){var P=Math.floor(N),A=Math.ceil(N);return N-P<M?P:A-N<M?A:N};this.pointOnPath=function(N,P){if(N===0)return{x:this.x1,y:this.y1,theta:this.startAngle};if(N===1)return{x:this.x2,y:this.y2,theta:this.endAngle};P&&(N=N/j);var A=D(this,N),r=i.cx+i.r*Math.cos(A),d=i.cy+i.r*Math.sin(A);return{x:R(r),y:R(d),theta:A}},this.gradientAtPoint=function(N,P){var A=this.pointOnPath(N,P),r=Z.normal([i.cx,i.cy],[A.x,A.y]);return!this.anticlockwise&&(r===1/0||r===-1/0)&&(r*=-1),r},this.pointAlongPathFrom=function(N,P,A){var r=this.pointOnPath(N,A),d=P/f*2*Math.PI,l=this.anticlockwise?-1:1,_=r.theta+l*d,x=i.cx+this.radius*Math.cos(_),u=i.cy+this.radius*Math.sin(_);return{x,y:u}}},Bezier:function(i){this.curve=[{x:i.x1,y:i.y1},{x:i.cp1x,y:i.cp1y},{x:i.cp2x,y:i.cp2y},{x:i.x2,y:i.y2}];var v=function(j){return j[0].x===j[1].x&&j[0].y===j[1].y},D=function(j,M){return Math.sqrt(Math.pow(j.x-M.x,2)+Math.pow(j.y-M.y,2))},L=function(j){var M={x:0,y:0};if(j===0)return this.curve[0];var R=this.curve.length-1;if(j===1)return this.curve[R];var N=this.curve,P=1-j;if(R===0)return this.curve[0];if(R===1)return{x:P*N[0].x+j*N[1].x,y:P*N[0].y+j*N[1].y};if(R<4){var A=P*P,r=j*j,d=0,l,_,x;return R===2?(N=[N[0],N[1],N[2],M],l=A,_=2*(P*j),x=r):R===3&&(l=A*P,_=3*(A*j),x=3*(P*r),d=j*r),{x:l*N[0].x+_*N[1].x+x*N[2].x+d*N[3].x,y:l*N[0].y+_*N[1].y+x*N[2].y+d*N[3].y}}else return M}.bind(this),C=function(j){var M=[];j--;for(var R=0;R<=j;R++)M.push(L(R/j));return M},f=function(){v(this.curve)&&(this.length=0);var j=16,M=C(j);this.length=0;for(var R=0;R<j-1;R++){var N=M[R],P=M[R+1];this.length+=D(N,P)}}.bind(this);c.Segments.AbstractSegment.apply(this,arguments),this.bounds={minX:Math.min(i.x1,i.x2,i.cp1x,i.cp2x),minY:Math.min(i.y1,i.y2,i.cp1y,i.cp2y),maxX:Math.max(i.x1,i.x2,i.cp1x,i.cp2x),maxY:Math.max(i.y1,i.y2,i.cp1y,i.cp2y)},this.type="Bezier",f();var e=function(j,M,R){return R&&(M=K.jsBezier.locationAlongCurveFrom(j,M>0?0:1,M)),M};this.pointOnPath=function(j,M){return j=e(this.curve,j,M),K.jsBezier.pointOnCurve(this.curve,j)},this.gradientAtPoint=function(j,M){return j=e(this.curve,j,M),K.jsBezier.gradientAtPoint(this.curve,j)},this.pointAlongPathFrom=function(j,M,R){return j=e(this.curve,j,R),K.jsBezier.pointAlongCurveFrom(this.curve,j,M)},this.getLength=function(){return this.length},this.getBounds=function(){return this.bounds},this.findClosestPointOnPath=function(j,M){var R=K.jsBezier.nearestPointOnCurve({x:j,y:M},this.curve);return{d:Math.sqrt(Math.pow(R.point.x-j,2)+Math.pow(R.point.y-M,2)),x:R.point.x,y:R.point.y,l:1-R.location,s:this}},this.lineIntersection=function(j,M,R,N){return K.jsBezier.lineIntersection(j,M,R,N,this.curve)}}},c.SegmentRenderer={getPath:function(i,v){return{Straight:function(D){var L=i.getCoordinates();return(D?"M "+L.x1+" "+L.y1+" ":"")+"L "+L.x2+" "+L.y2},Bezier:function(D){var L=i.params;return(D?"M "+L.x2+" "+L.y2+" ":"")+"C "+L.cp2x+" "+L.cp2y+" "+L.cp1x+" "+L.cp1y+" "+L.x1+" "+L.y1},Arc:function(D){var L=i.params,C=i.sweep>Math.PI?1:0,f=i.anticlockwise?0:1;return(D?"M"+i.x1+" "+i.y1+" ":"")+"A "+i.radius+" "+L.r+" 0 "+C+","+f+" "+i.x2+" "+i.y2}}[i.type](v)}};var $=function(){this.resetBounds=function(){this.bounds={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}},this.resetBounds()};c.Connectors.AbstractConnector=function(i){$.apply(this,arguments);var v=[],D=0,L=[],C=[],f=i.stub||0,e=X.isArray(f)?f[0]:f,j=X.isArray(f)?f[1]:f,M=i.gap||0,R=X.isArray(M)?M[0]:M,N=X.isArray(M)?M[1]:M,P=null,A=null;this.getPathData=function(){for(var u="",k=0;k<v.length;k++)u+=c.SegmentRenderer.getPath(v[k],k===0),u+=" ";return u},this.findSegmentForPoint=function(u,k){for(var y={d:1/0,s:null,x:null,y:null,l:null},w=0;w<v.length;w++){var p=v[w].findClosestPointOnPath(u,k);p.d<y.d&&(y.d=p.d,y.l=p.l,y.x=p.x,y.y=p.y,y.s=v[w],y.x1=p.x1,y.x2=p.x2,y.y1=p.y1,y.y2=p.y2,y.index=w,y.connectorLocation=L[w][0]+p.l*(L[w][1]-L[w][0]))}return y},this.lineIntersection=function(u,k,y,w){for(var p=[],E=0;E<v.length;E++)p.push.apply(p,v[E].lineIntersection(u,k,y,w));return p},this.boxIntersection=function(u,k,y,w){for(var p=[],E=0;E<v.length;E++)p.push.apply(p,v[E].boxIntersection(u,k,y,w));return p},this.boundingBoxIntersection=function(u){for(var k=[],y=0;y<v.length;y++)k.push.apply(k,v[y].boundingBoxIntersection(u));return k};var r=function(){for(var u=0,k=0;k<v.length;k++){var y=v[k].getLength();C[k]=y/D,L[k]=[u,u+=y/D]}},d=function(u,k){var y,w,p;if(k&&(u=u>0?u/D:(D+u)/D),u===1)y=v.length-1,p=1;else if(u===0)p=0,y=0;else if(u>=.5){for(y=0,p=0,w=L.length-1;w>-1;w--)if(L[w][1]>=u&&L[w][0]<=u){y=w,p=(u-L[w][0])/C[w];break}}else for(y=L.length-1,p=1,w=0;w<L.length;w++)if(L[w][1]>=u){y=w,p=(u-L[w][0])/C[w];break}return{segment:v[y],proportion:p,index:y}},l=function(u,k,y){if(!(y.x1===y.x2&&y.y1===y.y2)){var w=new c.Segments[k](y);v.push(w),D+=w.getLength(),u.updateBounds(w)}},_=function(){D=v.length=L.length=C.length=0};this.setSegments=function(u){P=[],D=0;for(var k=0;k<u.length;k++)P.push(u[k]),D+=u[k].getLength()},this.getLength=function(){return D};var x=function(u){this.strokeWidth=u.strokeWidth;var k=Z.quadrant(u.sourcePos,u.targetPos),y=u.targetPos[0]<u.sourcePos[0],w=u.targetPos[1]<u.sourcePos[1],p=u.strokeWidth||1,E=u.sourceEndpoint.anchor.getOrientation(u.sourceEndpoint),B=u.targetEndpoint.anchor.getOrientation(u.targetEndpoint),U=y?u.targetPos[0]:u.sourcePos[0],Y=w?u.targetPos[1]:u.sourcePos[1],n=Math.abs(u.targetPos[0]-u.sourcePos[0]),o=Math.abs(u.targetPos[1]-u.sourcePos[1]);if(E[0]===0&&E[1]===0||B[0]===0&&B[1]===0){var t=n>o?0:1,g=[1,0][t];E=[],B=[],E[t]=u.sourcePos[t]>u.targetPos[t]?-1:1,B[t]=u.sourcePos[t]>u.targetPos[t]?1:-1,E[g]=0,B[g]=0}var m=y?n+R*E[0]:R*E[0],F=w?o+R*E[1]:R*E[1],I=y?N*B[0]:n+N*B[0],V=w?N*B[1]:o+N*B[1],G=E[0]*B[0]+E[1]*B[1],W={sx:m,sy:F,tx:I,ty:V,lw:p,xSpan:Math.abs(I-m),ySpan:Math.abs(V-F),mx:(m+I)/2,my:(F+V)/2,so:E,to:B,x:U,y:Y,w:n,h:o,segment:k,startStubX:m+E[0]*e,startStubY:F+E[1]*e,endStubX:I+B[0]*j,endStubY:V+B[1]*j,isXGreaterThanStubTimes2:Math.abs(m-I)>e+j,isYGreaterThanStubTimes2:Math.abs(F-V)>e+j,opposite:G===-1,perpendicular:G===0,orthogonal:G===1,sourceAxis:E[0]===0?"y":"x",points:[U,Y,n,o,m,F,I,V],stubs:[e,j]};return W.anchorOrientation=W.opposite?"opposite":W.orthogonal?"orthogonal":"perpendicular",W};return this.getSegments=function(){return v},this.updateBounds=function(u){var k=u.getBounds();this.bounds.minX=Math.min(this.bounds.minX,k.minX),this.bounds.maxX=Math.max(this.bounds.maxX,k.maxX),this.bounds.minY=Math.min(this.bounds.minY,k.minY),this.bounds.maxY=Math.max(this.bounds.maxY,k.maxY)},this.pointOnPath=function(u,k){var y=d(u,k);return y.segment&&y.segment.pointOnPath(y.proportion,!1)||[0,0]},this.gradientAtPoint=function(u,k){var y=d(u,k);return y.segment&&y.segment.gradientAtPoint(y.proportion,!1)||0},this.pointAlongPathFrom=function(u,k,y){var w=d(u,y);return w.segment&&w.segment.pointAlongPathFrom(w.proportion,k,!1)||[0,0]},this.compute=function(u){A=x.call(this,u),_(),this._compute(A,u),this.x=A.points[0],this.y=A.points[1],this.w=A.points[2],this.h=A.points[3],this.segment=A.segment,r()},{addSegment:l,prepareCompute:x,sourceStub:e,targetStub:j,maxStub:Math.max(e,j),sourceGap:R,targetGap:N,maxGap:Math.max(R,N)}},X.extend(c.Connectors.AbstractConnector,$),c.Endpoints.AbstractEndpoint=function(i){$.apply(this,arguments);var v=this.compute=function(D,L,C,f){var e=this._compute.apply(this,arguments);return this.x=e[0],this.y=e[1],this.w=e[2],this.h=e[3],this.bounds.minX=this.x,this.bounds.minY=this.y,this.bounds.maxX=this.x+this.w,this.bounds.maxY=this.y+this.h,e};return{compute:v,cssClass:i.cssClass}},X.extend(c.Endpoints.AbstractEndpoint,$),c.Endpoints.Dot=function(i){this.type="Dot",c.Endpoints.AbstractEndpoint.apply(this,arguments),i=i||{},this.radius=i.radius||10,this.defaultOffset=.5*this.radius,this.defaultInnerRadius=this.radius/3,this._compute=function(v,D,L,C){this.radius=L.radius||this.radius;var f=v[0]-this.radius,e=v[1]-this.radius,j=this.radius*2,M=this.radius*2;if(L.stroke){var R=L.strokeWidth||1;f-=R,e-=R,j+=R*2,M+=R*2}return[f,e,j,M,this.radius]}},X.extend(c.Endpoints.Dot,c.Endpoints.AbstractEndpoint),c.Endpoints.Rectangle=function(i){this.type="Rectangle",c.Endpoints.AbstractEndpoint.apply(this,arguments),i=i||{},this.width=i.width||20,this.height=i.height||20,this._compute=function(v,D,L,C){var f=L.width||this.width,e=L.height||this.height,j=v[0]-f/2,M=v[1]-e/2;return[j,M,f,e]}},X.extend(c.Endpoints.Rectangle,c.Endpoints.AbstractEndpoint);var tt=function(i){c.jsPlumbUIComponent.apply(this,arguments),this._jsPlumb.displayElements=[]};X.extend(tt,c.jsPlumbUIComponent,{getDisplayElements:function(){return this._jsPlumb.displayElements},appendDisplayElement:function(i){this._jsPlumb.displayElements.push(i)}}),c.Endpoints.Image=function(i){this.type="Image",tt.apply(this,arguments),c.Endpoints.AbstractEndpoint.apply(this,arguments);var v=i.onload,D=i.src||i.url,L=i.cssClass?" "+i.cssClass:"";this._jsPlumb.img=new Image,this._jsPlumb.ready=!1,this._jsPlumb.initialized=!1,this._jsPlumb.deleted=!1,this._jsPlumb.widthToUse=i.width,this._jsPlumb.heightToUse=i.height,this._jsPlumb.endpoint=i.endpoint,this._jsPlumb.img.onload=function(){this._jsPlumb!=null&&(this._jsPlumb.ready=!0,this._jsPlumb.widthToUse=this._jsPlumb.widthToUse||this._jsPlumb.img.width,this._jsPlumb.heightToUse=this._jsPlumb.heightToUse||this._jsPlumb.img.height,v&&v(this))}.bind(this),this._jsPlumb.endpoint.setImage=function(C,f){var e=C.constructor===String?C:C.src;v=f,this._jsPlumb.img.src=e,this.canvas!=null&&this.canvas.setAttribute("src",this._jsPlumb.img.src)}.bind(this),this._jsPlumb.endpoint.setImage(D,v),this._compute=function(C,f,e,j){return this.anchorPoint=C,this._jsPlumb.ready?[C[0]-this._jsPlumb.widthToUse/2,C[1]-this._jsPlumb.heightToUse/2,this._jsPlumb.widthToUse,this._jsPlumb.heightToUse]:[0,0,0,0]},this.canvas=c.createElement("img",{position:"absolute",margin:0,padding:0,outline:0},this._jsPlumb.instance.endpointClass+L),this._jsPlumb.widthToUse&&this.canvas.setAttribute("width",this._jsPlumb.widthToUse),this._jsPlumb.heightToUse&&this.canvas.setAttribute("height",this._jsPlumb.heightToUse),this._jsPlumb.instance.appendElement(this.canvas),this.actuallyPaint=function(C,f,e){if(!this._jsPlumb.deleted){this._jsPlumb.initialized||(this.canvas.setAttribute("src",this._jsPlumb.img.src),this.appendDisplayElement(this.canvas),this._jsPlumb.initialized=!0);var j=this.anchorPoint[0]-this._jsPlumb.widthToUse/2,M=this.anchorPoint[1]-this._jsPlumb.heightToUse/2;X.sizeElement(this.canvas,j,M,this._jsPlumb.widthToUse,this._jsPlumb.heightToUse)}},this.paint=function(C,f){this._jsPlumb!=null&&(this._jsPlumb.ready?this.actuallyPaint(C,f):K.setTimeout(function(){this.paint(C,f)}.bind(this),200))}},X.extend(c.Endpoints.Image,[tt,c.Endpoints.AbstractEndpoint],{cleanup:function(i){i&&(this._jsPlumb.deleted=!0,this.canvas&&this.canvas.parentNode.removeChild(this.canvas),this.canvas=null)}}),c.Endpoints.Blank=function(i){c.Endpoints.AbstractEndpoint.apply(this,arguments),this.type="Blank",tt.apply(this,arguments),this._compute=function(D,L,C,f){return[D[0],D[1],10,0]};var v=i.cssClass?" "+i.cssClass:"";this.canvas=c.createElement("div",{display:"block",width:"1px",height:"1px",background:"transparent",position:"absolute"},this._jsPlumb.instance.endpointClass+v),this._jsPlumb.instance.appendElement(this.canvas),this.paint=function(D,L){X.sizeElement(this.canvas,this.x,this.y,this.w,this.h)}},X.extend(c.Endpoints.Blank,[c.Endpoints.AbstractEndpoint,tt],{cleanup:function(){this.canvas&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}}),c.Endpoints.Triangle=function(i){this.type="Triangle",c.Endpoints.AbstractEndpoint.apply(this,arguments);var v=this;i=i||{},i.width=i.width||55,i.height=i.height||55,this.width=i.width,this.height=i.height,this._compute=function(D,L,C,f){var e=C.width||v.width,j=C.height||v.height,M=D[0]-e/2,R=D[1]-j/2;return[M,R,e,j]}};var h=c.Overlays.AbstractOverlay=function(i){this.visible=!0,this.isAppendedAtTopLevel=!0,this.component=i.component,this.loc=i.location==null?.5:i.location,this.endpointLoc=i.endpointLocation==null?[.5,.5]:i.endpointLocation,this.visible=i.visible!==!1};h.prototype={cleanup:function(i){i&&(this.component=null,this.canvas=null,this.endpointLoc=null)},reattach:function(i,v){},setVisible:function(i){this.visible=i,this.component.repaint()},isVisible:function(){return this.visible},hide:function(){this.setVisible(!1)},show:function(){this.setVisible(!0)},incrementLocation:function(i){this.loc+=i,this.component.repaint()},setLocation:function(i){this.loc=i,this.component.repaint()},getLocation:function(){return this.loc},updateFrom:function(){}},c.Overlays.Arrow=function(i){this.type="Arrow",h.apply(this,arguments),this.isAppendedAtTopLevel=!1,i=i||{};var v=this;this.length=i.length||20,this.width=i.width||20,this.id=i.id,this.direction=(i.direction||1)<0?-1:1;var D=i.paintStyle||{"stroke-width":1},L=i.foldback||.623;this.computeMaxSize=function(){return v.width*1.5},this.elementCreated=function(C,f){if(this.path=C,i.events)for(var e in i.events)c.on(C,e,i.events[e])},this.draw=function(C,f){var e,j,M,R,N;if(C.pointAlongPathFrom){if(X.isString(this.loc)||this.loc>1||this.loc<0){var P=parseInt(this.loc,10),A=this.loc<0?1:0;e=C.pointAlongPathFrom(A,P,!1),j=C.pointAlongPathFrom(A,P-this.direction*this.length/2,!1),M=Z.pointOnLine(e,j,this.length)}else if(this.loc===1){if(e=C.pointOnPath(this.loc),j=C.pointAlongPathFrom(this.loc,-this.length),M=Z.pointOnLine(e,j,this.length),this.direction===-1){var r=M;M=e,e=r}}else if(this.loc===0){if(M=C.pointOnPath(this.loc),j=C.pointAlongPathFrom(this.loc,this.length),e=Z.pointOnLine(M,j,this.length),this.direction===-1){var d=M;M=e,e=d}}else e=C.pointAlongPathFrom(this.loc,this.direction*this.length/2),j=C.pointOnPath(this.loc),M=Z.pointOnLine(e,j,this.length);R=Z.perpendicularLineTo(e,M,this.width),N=Z.pointOnLine(e,M,L*this.length);var l={hxy:e,tail:R,cxy:N},_=D.stroke||f.stroke,x=D.fill||f.stroke,u=D.strokeWidth||f.strokeWidth;return{component:C,d:l,"stroke-width":u,stroke:_,fill:x,minX:Math.min(e.x,R[0].x,R[1].x),maxX:Math.max(e.x,R[0].x,R[1].x),minY:Math.min(e.y,R[0].y,R[1].y),maxY:Math.max(e.y,R[0].y,R[1].y)}}else return{component:C,minX:0,maxX:0,minY:0,maxY:0}}},X.extend(c.Overlays.Arrow,h,{updateFrom:function(i){this.length=i.length||this.length,this.width=i.width||this.width,this.direction=i.direction!=null?i.direction:this.direction,this.foldback=i.foldback||this.foldback},cleanup:function(){this.path&&this.path.parentNode&&this.path.parentNode.removeChild(this.path)}}),c.Overlays.PlainArrow=function(i){i=i||{};var v=c.extend(i,{foldback:1});c.Overlays.Arrow.call(this,v),this.type="PlainArrow"},X.extend(c.Overlays.PlainArrow,c.Overlays.Arrow),c.Overlays.Diamond=function(i){i=i||{};var v=i.length||40,D=c.extend(i,{length:v/2,foldback:2});c.Overlays.Arrow.call(this,D),this.type="Diamond"},X.extend(c.Overlays.Diamond,c.Overlays.Arrow);var T=function(i,v){return(i._jsPlumb.cachedDimensions==null||v)&&(i._jsPlumb.cachedDimensions=i.getDimensions()),i._jsPlumb.cachedDimensions},a=function(i){c.jsPlumbUIComponent.apply(this,arguments),h.apply(this,arguments);var v=this.fire;this.fire=function(){v.apply(this,arguments),this.component&&this.component.fire.apply(this.component,arguments)},this.detached=!1,this.id=i.id,this._jsPlumb.div=null,this._jsPlumb.initialised=!1,this._jsPlumb.component=i.component,this._jsPlumb.cachedDimensions=null,this._jsPlumb.create=i.create,this._jsPlumb.initiallyInvisible=i.visible===!1,this.getElement=function(){if(this._jsPlumb.div==null){var D=this._jsPlumb.div=c.getElement(this._jsPlumb.create(this._jsPlumb.component));D.style.position="absolute",jsPlumb.addClass(D,this._jsPlumb.instance.overlayClass+" "+(this.cssClass?this.cssClass:i.cssClass?i.cssClass:"")),this._jsPlumb.instance.appendElement(D),this._jsPlumb.instance.getId(D),this.canvas=D;var L="translate(-50%, -50%)";D.style.webkitTransform=L,D.style.mozTransform=L,D.style.msTransform=L,D.style.oTransform=L,D.style.transform=L,D._jsPlumb=this,i.visible===!1&&(D.style.display="none")}return this._jsPlumb.div},this.draw=function(D,L,C){var f=T(this);if(f!=null&&f.length===2){var e={x:0,y:0};if(C)e={x:C[0],y:C[1]};else if(D.pointOnPath){var j=this.loc,M=!1;(X.isString(this.loc)||this.loc<0||this.loc>1)&&(j=parseInt(this.loc,10),M=!0),e=D.pointOnPath(j,M)}else{var R=this.loc.constructor===Array?this.loc:this.endpointLoc;e={x:R[0]*D.w,y:R[1]*D.h}}var N=e.x-f[0]/2,P=e.y-f[1]/2;return{component:D,d:{minx:N,miny:P,td:f,cxy:e},minX:N,maxX:N+f[0],minY:P,maxY:P+f[1]}}else return{minX:0,maxX:0,minY:0,maxY:0}}};X.extend(a,[c.jsPlumbUIComponent,h],{getDimensions:function(){return[1,1]},setVisible:function(i){this._jsPlumb.div&&(this._jsPlumb.div.style.display=i?"block":"none",i&&this._jsPlumb.initiallyInvisible&&(T(this,!0),this.component.repaint(),this._jsPlumb.initiallyInvisible=!1))},clearCachedDimensions:function(){this._jsPlumb.cachedDimensions=null},cleanup:function(i){i?this._jsPlumb.div!=null&&(this._jsPlumb.div._jsPlumb=null,this._jsPlumb.instance.removeElement(this._jsPlumb.div)):(this._jsPlumb&&this._jsPlumb.div&&this._jsPlumb.div.parentNode&&this._jsPlumb.div.parentNode.removeChild(this._jsPlumb.div),this.detached=!0)},reattach:function(i,v){this._jsPlumb.div!=null&&i.getContainer().appendChild(this._jsPlumb.div),this.detached=!1},computeMaxSize:function(){var i=T(this);return Math.max(i[0],i[1])},paint:function(i,v){this._jsPlumb.initialised||(this.getElement(),i.component.appendDisplayElement(this._jsPlumb.div),this._jsPlumb.initialised=!0,this.detached&&this._jsPlumb.div.parentNode.removeChild(this._jsPlumb.div)),this._jsPlumb.div.style.left=i.component.x+i.d.minx+"px",this._jsPlumb.div.style.top=i.component.y+i.d.miny+"px"}}),c.Overlays.Custom=function(i){this.type="Custom",a.apply(this,arguments)},X.extend(c.Overlays.Custom,a),c.Overlays.GuideLines=function(){var i=this;i.length=50,i.strokeWidth=5,this.type="GuideLines",h.apply(this,arguments),c.jsPlumbUIComponent.apply(this,arguments),this.draw=function(v,D){var L=v.pointAlongPathFrom(i.loc,i.length/2),C=v.pointOnPath(i.loc),f=Z.pointOnLine(L,C,i.length),e=Z.perpendicularLineTo(L,f,40),j=Z.perpendicularLineTo(f,L,20);return{connector:v,head:L,tail:f,headLine:j,tailLine:e,minX:Math.min(L.x,f.x,j[0].x,j[1].x),minY:Math.min(L.y,f.y,j[0].y,j[1].y),maxX:Math.max(L.x,f.x,j[0].x,j[1].x),maxY:Math.max(L.y,f.y,j[0].y,j[1].y)}}},c.Overlays.Label=function(i){this.labelStyle=i.labelStyle,this.cssClass=this.labelStyle!=null?this.labelStyle.cssClass:null;var v=c.extend({create:function(){return c.createElement("div")}},i);if(c.Overlays.Custom.call(this,v),this.type="Label",this.label=i.label||"",this.labelText=null,this.labelStyle){var D=this.getElement();if(this.labelStyle.font=this.labelStyle.font||"12px sans-serif",D.style.font=this.labelStyle.font,D.style.color=this.labelStyle.color||"black",this.labelStyle.fill&&(D.style.background=this.labelStyle.fill),this.labelStyle.borderWidth>0){var L=this.labelStyle.borderStyle?this.labelStyle.borderStyle:"black";D.style.border=this.labelStyle.borderWidth+"px solid "+L}this.labelStyle.padding&&(D.style.padding=this.labelStyle.padding)}},X.extend(c.Overlays.Label,c.Overlays.Custom,{cleanup:function(i){i&&(this.div=null,this.label=null,this.labelText=null,this.cssClass=null,this.labelStyle=null)},getLabel:function(){return this.label},setLabel:function(i){this.label=i,this.labelText=null,this.clearCachedDimensions(),this.update(),this.component.repaint()},getDimensions:function(){return this.update(),a.prototype.getDimensions.apply(this,arguments)},update:function(){if(typeof this.label=="function"){var i=this.label(this);this.getElement().innerHTML=i.replace(/\r\n/g,"<br/>")}else this.labelText==null&&(this.labelText=this.label,this.getElement().innerHTML=this.labelText.replace(/\r\n/g,"<br/>"))},updateFrom:function(i){i.label!=null&&this.setLabel(i.label)}})}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumbUtil,X=K.jsPlumbInstance,Z="jtk-group-collapsed",$="jtk-group-expanded",tt="[jtk-group-content]",h="elementDraggable",T="stop",a="revert",i="_groupManager",v="_jsPlumbGroup",D="_jsPlumbGroupDrag",L="group:addMember",C="group:removeMember",f="group:add",e="group:remove",j="group:expand",M="group:collapse",R="groupDragStop",N="connectionMoved",P="internal.connectionDetached",A="removeAll",r="orphanAll",d="show",l="hide",_=function(u){var k={},y={},w={},p=this;function E(t,g){for(var m=u.getContainer(),F=!1;!F;){if(t==null||t===m)return!1;if(t===g)return!0;t=t.parentNode}}u.bind("connection",function(t){var g=u.getGroupFor(t.source),m=u.getGroupFor(t.target);g!=null&&m!=null&&g===m?(y[t.connection.id]=g,w[t.connection.id]=g):(g!=null&&(c.suggest(g.connections.source,t.connection),y[t.connection.id]=g),m!=null&&(c.suggest(m.connections.target,t.connection),w[t.connection.id]=m))});function B(t){delete t.proxies;var g=y[t.id],m;g!=null&&(m=function(F){return F.id===t.id},c.removeWithFunction(g.connections.source,m),c.removeWithFunction(g.connections.target,m),delete y[t.id]),g=w[t.id],g!=null&&(m=function(F){return F.id===t.id},c.removeWithFunction(g.connections.source,m),c.removeWithFunction(g.connections.target,m),delete w[t.id])}u.bind(P,function(t){B(t.connection)}),u.bind(N,function(t){var g=t.index===0?y:w,m=g[t.connection.id];if(m){var F=m.connections[t.index===0?"source":"target"],I=F.indexOf(t.connection);I!==-1&&F.splice(I,1)}}),this.addGroup=function(t){u.addClass(t.getEl(),$),k[t.id]=t,t.manager=this,o(t),u.fire(f,{group:t})},this.addToGroup=function(t,g,m){if(t=this.getGroup(t),t){var F=t.getEl();if(g._isJsPlumbGroup)return;var I=g._jsPlumbGroup;if(I!==t){u.removeFromDragSelection(g);var V=u.getOffset(g,!0),G=t.collapsed?u.getOffset(F,!0):u.getOffset(t.getDragArea(),!0);I!=null&&(I.remove(g,!1,m,!1,t),p.updateConnectionsForGroup(I)),t.add(g,m);var W=function(rt,pt){var dt=pt===0?1:0;rt.each(function(lt){lt.setVisible(!1),lt.endpoints[dt].element._jsPlumbGroup===t?(lt.endpoints[dt].setVisible(!1),n(lt,dt,t)):(lt.endpoints[pt].setVisible(!1),Y(lt,pt,t))})};t.collapsed&&(W(u.select({source:g}),0),W(u.select({target:g}),1));var at=u.getId(g);u.dragManager.setParent(g,at,F,u.getId(F),V);var st={left:V.left-G.left,top:V.top-G.top};if(u.setPosition(g,st),u.dragManager.revalidateParent(g,at,V),p.updateConnectionsForGroup(t),u.revalidate(at),!m){var it={group:t,el:g,pos:st};I&&(it.sourceGroup=I),u.fire(L,it)}}}},this.removeFromGroup=function(t,g,m){if(t=this.getGroup(t),t){if(t.collapsed){var F=function(I,V){for(var G=0;G<I.length;G++){var W=I[G];if(W.proxies){for(var at=0;at<W.proxies.length;at++)if(W.proxies[at]!=null){var st=W.proxies[at].originalEp.element;(st===g||E(st,g))&&n(W,V,t)}}}};F(t.connections.source.slice(),0),F(t.connections.target.slice(),1)}t.remove(g,null,m)}},this.getGroup=function(t){var g=t;if(c.isString(t)&&(g=k[t],g==null))throw new TypeError("No such group ["+t+"]");return g},this.getGroups=function(){var t=[];for(var g in k)t.push(k[g]);return t},this.removeGroup=function(t,g,m,F){t=this.getGroup(t),this.expandGroup(t,!0);var I=t[g?A:r](m,F);return u.remove(t.getEl()),delete k[t.id],delete u._groups[t.id],u.fire(e,{group:t}),I},this.removeAllGroups=function(t,g,m){for(var F in k)this.removeGroup(k[F],t,g,m)};function U(t,g){for(var m=t.getEl().querySelectorAll(".jtk-managed"),F=0;F<m.length;F++)u[g?d:l](m[F],!0)}var Y=function(t,g,m){var F=t.endpoints[g===0?1:0].element;if(!(F[v]&&!F[v].shouldProxy()&&F[v].collapsed)){var I=m.getEl(),V=u.getId(I);u.proxyConnection(t,g,I,V,function(G,W){return m.getEndpoint(G,W)},function(G,W){return m.getAnchor(G,W)})}};this.collapseGroup=function(t){if(t=this.getGroup(t),!(t==null||t.collapsed)){var g=t.getEl();if(U(t,!1),t.shouldProxy()){var m=function(F,I){for(var V=0;V<F.length;V++){var G=F[V];Y(G,I,t)}};m(t.connections.source,0),m(t.connections.target,1)}t.collapsed=!0,u.removeClass(g,$),u.addClass(g,Z),u.revalidate(g),u.fire(M,{group:t})}};var n=function(t,g,m){u.unproxyConnection(t,g,u.getId(m.getEl()))};this.expandGroup=function(t,g){if(t=this.getGroup(t),!(t==null||!t.collapsed)){var m=t.getEl();if(U(t,!0),t.shouldProxy()){var F=function(I,V){for(var G=0;G<I.length;G++){var W=I[G];n(W,V,t)}};F(t.connections.source,0),F(t.connections.target,1)}t.collapsed=!1,u.addClass(m,$),u.removeClass(m,Z),u.revalidate(m),this.repaintGroup(t),g||u.fire(j,{group:t})}},this.repaintGroup=function(t){t=this.getGroup(t);for(var g=t.getMembers(),m=0;m<g.length;m++)u.revalidate(g[m])};function o(t){for(var g=t.getMembers().slice(),m=[],F=0;F<g.length;F++)Array.prototype.push.apply(m,g[F].querySelectorAll(".jtk-managed"));Array.prototype.push.apply(g,m);var I=u.getConnections({source:g,scope:"*"},!0),V=u.getConnections({target:g,scope:"*"},!0),G={};t.connections.source.length=0,t.connections.target.length=0;var W=function(at){for(var st=0;st<at.length;st++)if(!G[at[st].id]){G[at[st].id]=!0;var it=u.getGroupFor(at[st].source),rt=u.getGroupFor(at[st].target);it===t?(rt!==t&&t.connections.source.push(at[st]),y[at[st].id]=t):rt===t&&(t.connections.target.push(at[st]),w[at[st].id]=t)}};W(I),W(V)}this.updateConnectionsForGroup=o,this.refreshAllGroups=function(){for(var t in k)o(k[t]),u.dragManager.updateOffsets(u.getId(k[t].getEl()))}},x=function(u,k){var y=this,w=k.el;this.getEl=function(){return w},this.id=k.id||c.uuid(),w._isJsPlumbGroup=!0;var p=this.getDragArea=function(){var rt=u.getSelector(w,tt);return rt&&rt.length>0?rt[0]:w},E=k.ghost===!0,B=E||k.constrain===!0,U=k.revert!==!1,Y=k.orphan===!0,n=k.prune===!0,o=k.dropOverride===!0,t=k.proxied!==!1,g=[];if(this.connections={source:[],target:[],internal:[]},this.getAnchor=function(rt,pt){return k.anchor||"Continuous"},this.getEndpoint=function(rt,pt){return k.endpoint||["Dot",{radius:10}]},this.collapsed=!1,k.draggable!==!1){var m={drag:function(){for(var rt=0;rt<g.length;rt++)u.draw(g[rt])},stop:function(rt){u.fire(R,jsPlumb.extend(rt,{group:y}))},scope:D};k.dragOptions&&K.jsPlumb.extend(m,k.dragOptions),u.draggable(k.el,m)}k.droppable!==!1&&u.droppable(k.el,{drop:function(rt){var pt=rt.drag.el;if(!pt._isJsPlumbGroup){var dt=pt._jsPlumbGroup;if(dt!==y){if(dt!=null&&dt.overrideDrop(pt,y))return;u.getGroupManager().addToGroup(y,pt,!1)}}}});var F=function(rt,pt){for(var dt=rt.nodeType==null?rt:[rt],lt=0;lt<dt.length;lt++)pt(dt[lt])};this.overrideDrop=function(rt,pt){return o&&(U||n||Y)},this.add=function(rt,pt){var dt=p();F(rt,function(lt){if(lt._jsPlumbGroup!=null){if(lt._jsPlumbGroup===y)return;lt._jsPlumbGroup.remove(lt,!0,pt,!1)}lt._jsPlumbGroup=y,g.push(lt),u.isAlreadyDraggable(lt)&&it(lt),lt.parentNode!==dt&&dt.appendChild(lt)}),u.getGroupManager().updateConnectionsForGroup(y)},this.remove=function(rt,pt,dt,lt,bt){F(rt,function(gt){if(gt._jsPlumbGroup===y){if(delete gt._jsPlumbGroup,c.removeWithFunction(g,function(q){return q===gt}),pt)try{y.getDragArea().removeChild(gt)}catch(q){jsPlumbUtil.log("Could not remove element from Group "+q)}if(st(gt),!dt){var J={group:y,el:gt};bt&&(J.targetGroup=bt),u.fire(C,J)}}}),lt||u.getGroupManager().updateConnectionsForGroup(y)},this.removeAll=function(rt,pt){for(var dt=0,lt=g.length;dt<lt;dt++){var bt=g[0];y.remove(bt,rt,pt,!0),u.remove(bt,!0)}g.length=0,u.getGroupManager().updateConnectionsForGroup(y)},this.orphanAll=function(){for(var rt={},pt=0;pt<g.length;pt++){var dt=G(g[pt]);rt[dt[0]]=dt[1]}return g.length=0,rt},this.getMembers=function(){return g},w[v]=this,u.bind(h,function(rt){rt.el._jsPlumbGroup===this&&it(rt.el)}.bind(this));function I(rt){return rt.offsetParent}function V(rt,pt){var dt=I(rt),lt=u.getSize(dt),bt=u.getSize(rt),gt=pt[0],J=gt+bt[0],q=pt[1],Q=q+bt[1];return J>0&><lt[0]&&Q>0&&q<lt[1]}function G(rt){var pt=u.getId(rt),dt=u.getOffset(rt);return rt.parentNode.removeChild(rt),u.getContainer().appendChild(rt),u.setPosition(rt,dt),st(rt),u.dragManager.clearParent(rt,pt),[pt,dt]}function W(rt){var pt=[];function dt(bt,gt,J){var q=null;if(!V(bt,[gt,J])){var Q=bt._jsPlumbGroup;n?u.remove(bt):q=G(bt),Q.remove(bt)}return q}for(var lt=0;lt<rt.selection.length;lt++)pt.push(dt(rt.selection[lt][0],rt.selection[lt][1].left,rt.selection[lt][1].top));return pt.length===1?pt[0]:pt}function at(rt){var pt=u.getId(rt);u.revalidate(rt),u.dragManager.revalidateParent(rt,pt)}function st(rt){!rt._katavorioDrag||((n||Y)&&rt._katavorioDrag.off(T,W),!n&&!Y&&U&&(rt._katavorioDrag.off(a,at),rt._katavorioDrag.setRevert(null)))}function it(rt){!rt._katavorioDrag||((n||Y)&&rt._katavorioDrag.on(T,W),B&&rt._katavorioDrag.setConstrain(!0),E&&rt._katavorioDrag.setUseGhostProxy(!0),!n&&!Y&&U&&(rt._katavorioDrag.on(a,at),rt._katavorioDrag.setRevert(function(pt,dt){return!V(pt,dt)})))}this.shouldProxy=function(){return t},u.getGroupManager().addGroup(this)};X.prototype.addGroup=function(u){var k=this;if(k._groups=k._groups||{},k._groups[u.id]!=null)throw new TypeError("cannot create Group ["+u.id+"]; a Group with that ID exists");if(u.el[v]!=null)throw new TypeError("cannot create Group ["+u.id+"]; the given element is already a Group");var y=new x(k,u);return k._groups[y.id]=y,u.collapsed&&this.collapseGroup(y),y},X.prototype.addToGroup=function(u,k,y){var w=function(E){var B=this.getId(E);this.manage(B,E),this.getGroupManager().addToGroup(u,E,y)}.bind(this);if(Array.isArray(k))for(var p=0;p<k.length;p++)w(k[p]);else w(k)},X.prototype.removeFromGroup=function(u,k,y){this.getGroupManager().removeFromGroup(u,k,y),this.getContainer().appendChild(k)},X.prototype.removeGroup=function(u,k,y,w){return this.getGroupManager().removeGroup(u,k,y,w)},X.prototype.removeAllGroups=function(u,k,y){this.getGroupManager().removeAllGroups(u,k,y)},X.prototype.getGroup=function(u){return this.getGroupManager().getGroup(u)},X.prototype.getGroups=function(){return this.getGroupManager().getGroups()},X.prototype.expandGroup=function(u){this.getGroupManager().expandGroup(u)},X.prototype.collapseGroup=function(u){this.getGroupManager().collapseGroup(u)},X.prototype.repaintGroup=function(u){this.getGroupManager().repaintGroup(u)},X.prototype.toggleGroup=function(u){u=this.getGroupManager().getGroup(u),u!=null&&this.getGroupManager()[u.collapsed?"expandGroup":"collapseGroup"](u)},X.prototype.getGroupManager=function(){var u=this[i];return u==null&&(u=this[i]=new _(this)),u},X.prototype.removeGroupManager=function(){delete this[i]},X.prototype.getGroupFor=function(u){if(u=this.getElement(u),u){for(var k=this.getContainer(),y=!1,w=null;!y;)u==null||u===k?y=!0:u[v]?(w=u[v],y=!0):u=u.parentNode;return w}}}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumb,X=K.jsPlumbUtil,Z="Straight",$="Arc",tt=function(h){this.type="Flowchart",h=h||{},h.stub=h.stub==null?30:h.stub;var T,a=c.Connectors.AbstractConnector.apply(this,arguments),i=h.midpoint==null||isNaN(h.midpoint)?.5:h.midpoint,v=h.alwaysRespectStubs===!0,D=null,L=null,C=h.cornerRadius!=null?h.cornerRadius:0;h.loopbackRadius;var f=function(P){return P<0?-1:P===0?0:1},e=function(P){return[f(P[2]-P[0]),f(P[3]-P[1])]},j=function(P,A,r,d){if(!(D===A&&L===r)){var l=D==null?d.sx:D,_=L==null?d.sy:L,x=l===A?"v":"h";D=A,L=r,P.push([l,_,A,r,x])}},M=function(P){return Math.sqrt(Math.pow(P[0]-P[2],2)+Math.pow(P[1]-P[3],2))},R=function(P){var A=[];return A.push.apply(A,P),A},N=function(P,A,r){for(var d=null,l,_,x,u=0;u<A.length-1;u++){if(d=d||R(A[u]),l=R(A[u+1]),_=e(d),x=e(l),C>0&&d[4]!==l[4]){var k=Math.min(M(d),M(l)),y=Math.min(C,k/2);d[2]-=_[0]*y,d[3]-=_[1]*y,l[0]+=x[0]*y,l[1]+=x[1]*y;var w=_[1]===x[0]&&x[0]===1||_[1]===x[0]&&x[0]===0&&_[0]!==x[1]||_[1]===x[0]&&x[0]===-1,p=l[1]>d[3]?1:-1,E=l[0]>d[2]?1:-1,B=p===E,U=B&&w||!B&&!w?l[0]:d[2],Y=B&&w||!B&&!w?d[3]:l[1];a.addSegment(P,Z,{x1:d[0],y1:d[1],x2:d[2],y2:d[3]}),a.addSegment(P,$,{r:y,x1:d[2],y1:d[3],x2:l[0],y2:l[1],cx:U,cy:Y,ac:w})}else{var n=d[2]===d[0]?0:d[2]>d[0]?r.lw/2:-(r.lw/2),o=d[3]===d[1]?0:d[3]>d[1]?r.lw/2:-(r.lw/2);a.addSegment(P,Z,{x1:d[0]-n,y1:d[1]-o,x2:d[2]+n,y2:d[3]+o})}d=l}l!=null&&a.addSegment(P,Z,{x1:l[0],y1:l[1],x2:l[2],y2:l[3]})};this.midpoint=i,this._compute=function(P,A){T=[],D=null,L=null;var r=function(){return[P.startStubX,P.startStubY,P.endStubX,P.endStubY]},d={perpendicular:r,orthogonal:r,opposite:function(o){var t=P,g=o==="x"?0:1,m={x:function(){return t.so[g]===1&&(t.startStubX>t.endStubX&&t.tx>t.startStubX||t.sx>t.endStubX&&t.tx>t.sx)||t.so[g]===-1&&(t.startStubX<t.endStubX&&t.tx<t.startStubX||t.sx<t.endStubX&&t.tx<t.sx)},y:function(){return t.so[g]===1&&(t.startStubY>t.endStubY&&t.ty>t.startStubY||t.sy>t.endStubY&&t.ty>t.sy)||t.so[g]===-1&&(t.startStubY<t.endStubY&&t.ty<t.startStubY||t.sy<t.endStubY&&t.ty<t.sy)}};return!v&&m[o]()?{x:[(P.sx+P.tx)/2,P.startStubY,(P.sx+P.tx)/2,P.endStubY],y:[P.startStubX,(P.sy+P.ty)/2,P.endStubX,(P.sy+P.ty)/2]}[o]:[P.startStubX,P.startStubY,P.endStubX,P.endStubY]}},l=d[P.anchorOrientation](P.sourceAxis),_=P.sourceAxis==="x"?0:1,x=P.sourceAxis==="x"?1:0,u=l[_],k=l[x],y=l[_+2],w=l[x+2];j(T,l[0],l[1],P);var p=P.startStubX+(P.endStubX-P.startStubX)*i,E=P.startStubY+(P.endStubY-P.startStubY)*i,B={x:[0,1],y:[1,0]},U={perpendicular:function(o){var t=P,g={x:[[[1,2,3,4],null,[2,1,4,3]],null,[[4,3,2,1],null,[3,4,1,2]]],y:[[[3,2,1,4],null,[2,3,4,1]],null,[[4,1,2,3],null,[1,4,3,2]]]},m={x:[[t.startStubX,t.endStubX],null,[t.endStubX,t.startStubX]],y:[[t.startStubY,t.endStubY],null,[t.endStubY,t.startStubY]]},F={x:[[p,t.startStubY],[p,t.endStubY]],y:[[t.startStubX,E],[t.endStubX,E]]},I={x:[[t.endStubX,t.startStubY]],y:[[t.startStubX,t.endStubY]]},V={x:[[t.startStubX,t.endStubY],[t.endStubX,t.endStubY]],y:[[t.endStubX,t.startStubY],[t.endStubX,t.endStubY]]},G={x:[[t.startStubX,E],[t.endStubX,E],[t.endStubX,t.endStubY]],y:[[p,t.startStubY],[p,t.endStubY],[t.endStubX,t.endStubY]]},W={x:[t.startStubY,t.endStubY],y:[t.startStubX,t.endStubX]},at=B[o][0],st=B[o][1],it=t.so[at]+1,rt=t.to[st]+1,pt=t.to[st]===-1&&W[o][1]<W[o][0]||t.to[st]===1&&W[o][1]>W[o][0],dt=m[o][it][0],lt=m[o][it][1],bt=g[o][it][rt];if(t.segment===bt[3]||t.segment===bt[2]&&pt)return F[o];if(t.segment===bt[2]&<<dt)return I[o];if(t.segment===bt[2]&<>=dt||t.segment===bt[1]&&!pt)return G[o];if(t.segment===bt[0]||t.segment===bt[1]&&pt)return V[o]},orthogonal:function(o,t,g,m,F){var I=P,V={x:I.so[0]===-1?Math.min(t,m):Math.max(t,m),y:I.so[1]===-1?Math.min(t,m):Math.max(t,m)}[o];return{x:[[V,g],[V,F],[m,F]],y:[[g,V],[F,V],[F,m]]}[o]},opposite:function(o,t,g,m){var F=P,I={x:"y",y:"x"}[o],V={x:"height",y:"width"}[o],G=F["is"+o.toUpperCase()+"GreaterThanStubTimes2"];if(A.sourceEndpoint.elementId===A.targetEndpoint.elementId){var W=g+(1-A.sourceEndpoint.anchor[I])*A.sourceInfo[V]+a.maxStub;return{x:[[t,W],[m,W]],y:[[W,t],[W,m]]}[o]}else{if(!G||F.so[_]===1&&t>m||F.so[_]===-1&&t<m)return{x:[[t,E],[m,E]],y:[[p,t],[p,m]]}[o];if(F.so[_]===1&&t<m||F.so[_]===-1&&t>m)return{x:[[p,F.sy],[p,F.ty]],y:[[F.sx,E],[F.tx,E]]}[o]}}},Y=U[P.anchorOrientation](P.sourceAxis,u,k,y,w);if(Y)for(var n=0;n<Y.length;n++)j(T,Y[n][0],Y[n][1],P);j(T,l[2],l[3],P),j(T,P.tx,P.ty,P),N(this,T,P)}};c.Connectors.Flowchart=tt,X.extend(c.Connectors.Flowchart,c.Connectors.AbstractConnector)}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumb,X=K.jsPlumbUtil;c.Connectors.AbstractBezierConnector=function($){$=$||{};var tt=$.showLoopback!==!1;$.curviness;var h=$.margin||5;$.proximityLimit;var T=$.orientation&&$.orientation==="clockwise",a=$.loopbackRadius||25,i;return this._compute=function(v,D){var L=D.sourcePos,C=D.targetPos,f=Math.abs(L[0]-C[0]),e=Math.abs(L[1]-C[1]);if(!tt||D.sourceEndpoint.elementId!==D.targetEndpoint.elementId)this._computeBezier(v,D,L,C,f,e);else{var j=D.sourcePos[0],M=D.sourcePos[1]-h,R=j,N=M-a,P=R-a,A=N-a;f=2*a,e=2*a,v.points[0]=P,v.points[1]=A,v.points[2]=f,v.points[3]=e,i.addSegment(this,"Arc",{loopback:!0,x1:j-P+4,y1:M-A,startAngle:0,endAngle:2*Math.PI,r:a,ac:!T,x2:j-P-4,y2:M-A,cx:R-P,cy:N-A})}},i=c.Connectors.AbstractConnector.apply(this,arguments),i},X.extend(c.Connectors.AbstractBezierConnector,c.Connectors.AbstractConnector);var Z=function($){$=$||{},this.type="Bezier";var tt=c.Connectors.AbstractBezierConnector.apply(this,arguments),h=$.curviness||150,T=10;this.getCurviness=function(){return h},this._findControlPoint=function(a,i,v,D,L,C,f){var e=C[0]!==f[0]||C[1]===f[1],j=[];return e?(f[0]===0?j.push(v[0]<i[0]?a[0]+T:a[0]-T):j.push(a[0]+h*f[0]),f[1]===0?j.push(v[1]<i[1]?a[1]+T:a[1]-T):j.push(a[1]+h*C[1])):(C[0]===0?j.push(i[0]<v[0]?a[0]+T:a[0]-T):j.push(a[0]-h*C[0]),C[1]===0?j.push(i[1]<v[1]?a[1]+T:a[1]-T):j.push(a[1]+h*f[1])),j},this._computeBezier=function(a,i,v,D,L,C){var f,e,j=v[0]<D[0]?L:0,M=v[1]<D[1]?C:0,R=v[0]<D[0]?0:L,N=v[1]<D[1]?0:C;f=this._findControlPoint([j,M],v,D,i.sourceEndpoint,i.targetEndpoint,a.so,a.to),e=this._findControlPoint([R,N],D,v,i.targetEndpoint,i.sourceEndpoint,a.to,a.so),tt.addSegment(this,"Bezier",{x1:j,y1:M,x2:R,y2:N,cp1x:f[0],cp1y:f[1],cp2x:e[0],cp2y:e[1]})}};c.Connectors.Bezier=Z,X.extend(Z,c.Connectors.AbstractBezierConnector)}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumb,X=K.jsPlumbUtil,Z=function(h,T,a,i){return h<=a&&i<=T?1:h<=a&&T<=i?2:a<=h&&i>=T?3:4},$=function(h,T,a,i,v,D,L,C,f){if(C<=f)return[h,T];if(a===1)return i[3]<=0&&v[3]>=1?[h+(i[2]<.5?-1*D:D),T]:i[2]>=1&&v[2]<=0?[h,T+(i[3]<.5?-1*L:L)]:[h+-1*D,T+-1*L];if(a===2)return i[3]>=1&&v[3]<=0?[h+(i[2]<.5?-1*D:D),T]:i[2]>=1&&v[2]<=0?[h,T+(i[3]<.5?-1*L:L)]:[h+D,T+-1*L];if(a===3)return i[3]>=1&&v[3]<=0?[h+(i[2]<.5?-1*D:D),T]:i[2]<=0&&v[2]>=1?[h,T+(i[3]<.5?-1*L:L)]:[h+-1*D,T+-1*L];if(a===4)return i[3]<=0&&v[3]>=1?[h+(i[2]<.5?-1*D:D),T]:i[2]<=0&&v[2]>=1?[h,T+(i[3]<.5?-1*L:L)]:[h+D,T+-1*L]},tt=function(h){h=h||{},this.type="StateMachine";var T=c.Connectors.AbstractBezierConnector.apply(this,arguments),a=h.curviness||10,i=h.margin||5,v=h.proximityLimit||80;h.orientation&&h.orientation;var D;this._computeBezier=function(L,C,f,e,j,M){var R=C.sourcePos[0]<C.targetPos[0]?0:j,N=C.sourcePos[1]<C.targetPos[1]?0:M,P=C.sourcePos[0]<C.targetPos[0]?j:0,A=C.sourcePos[1]<C.targetPos[1]?M:0;C.sourcePos[2]===0&&(R-=i),C.sourcePos[2]===1&&(R+=i),C.sourcePos[3]===0&&(N-=i),C.sourcePos[3]===1&&(N+=i),C.targetPos[2]===0&&(P-=i),C.targetPos[2]===1&&(P+=i),C.targetPos[3]===0&&(A-=i),C.targetPos[3]===1&&(A+=i);var r=(R+P)/2,d=(N+A)/2,l=Z(R,N,P,A),_=Math.sqrt(Math.pow(P-R,2)+Math.pow(A-N,2)),x,u,k,y;D=$(r,d,l,C.sourcePos,C.targetPos,a,a,_,v),x=D[0],u=D[0],k=D[1],y=D[1],T.addSegment(this,"Bezier",{x1:P,y1:A,x2:R,y2:N,cp1x:x,cp1y:k,cp2x:u,cp2y:y})}};c.Connectors.StateMachine=tt,X.extend(tt,c.Connectors.AbstractBezierConnector)}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumb,X=K.jsPlumbUtil,Z="Straight",$=function(tt){this.type=Z;var h=c.Connectors.AbstractConnector.apply(this,arguments);this._compute=function(T,a){h.addSegment(this,Z,{x1:T.sx,y1:T.sy,x2:T.startStubX,y2:T.startStubY}),h.addSegment(this,Z,{x1:T.startStubX,y1:T.startStubY,x2:T.endStubX,y2:T.endStubY}),h.addSegment(this,Z,{x1:T.endStubX,y1:T.endStubY,x2:T.tx,y2:T.ty})}};c.Connectors.Straight=$,X.extend($,c.Connectors.AbstractConnector)}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumb,X=K.jsPlumbUtil,Z={"stroke-linejoin":"stroke-linejoin","stroke-dashoffset":"stroke-dashoffset","stroke-linecap":"stroke-linecap"},$="stroke-dasharray",tt="dashstyle",h="linearGradient",T="radialGradient",a="defs",i="fill",v="stop",D="stroke",L="stroke-width",C="style",f="none",e="jsplumb_gradient_",j="strokeWidth",M={svg:"http://www.w3.org/2000/svg"},R=function(y,w){for(var p in w)y.setAttribute(p,""+w[p])},N=function(y,w){return w=w||{},w.version="1.1",w.xmlns=M.svg,c.createElementNS(M.svg,y,null,null,w)},P=function(y){return"position:absolute;left:"+y[0]+"px;top:"+y[1]+"px"},A=function(y){for(var w=y.querySelectorAll(" defs,linearGradient,radialGradient"),p=0;p<w.length;p++)w[p].parentNode.removeChild(w[p])},r=function(y,w,p,E,B){var U=e+B._jsPlumb.instance.idstamp();A(y);var Y;p.gradient.offset?Y=N(T,{id:U}):Y=N(h,{id:U,gradientUnits:"userSpaceOnUse"});var n=N(a);y.appendChild(n),n.appendChild(Y);for(var o=0;o<p.gradient.stops.length;o++){var t=B.segment===1||B.segment===2?o:p.gradient.stops.length-1-o,g=p.gradient.stops[t][1],m=N(v,{offset:Math.floor(p.gradient.stops[o][0]*100)+"%","stop-color":g});Y.appendChild(m)}var F=p.stroke?D:i;w.setAttribute(F,"url(#"+U+")")},d=function(y,w,p,E,B){if(w.setAttribute(i,p.fill?p.fill:f),w.setAttribute(D,p.stroke?p.stroke:f),p.gradient?r(y,w,p,E,B):(A(y),w.setAttribute(C,"")),p.strokeWidth&&w.setAttribute(L,p.strokeWidth),p[tt]&&p[j]&&!p[$]){var U=p[tt].indexOf(",")===-1?" ":",",Y=p[tt].split(U),n="";Y.forEach(function(t){n+=Math.floor(t*p.strokeWidth)+U}),w.setAttribute($,n)}else p[$]&&w.setAttribute($,p[$]);for(var o in Z)p[o]&&w.setAttribute(Z[o],p[o])},l=function(y,w,p){y.childNodes.length>p?y.insertBefore(w,y.childNodes[p]):y.appendChild(w)};X.svg={node:N,attr:R,pos:P};var _=function(y){var w=y.pointerEventsSpec||"all",p={};c.jsPlumbUIComponent.apply(this,y.originalArgs),this.canvas=null,this.path=null,this.svg=null,this.bgCanvas=null;var E=y.cssClass+" "+(y.originalArgs[0].cssClass||""),B={style:"",width:0,height:0,"pointer-events":w,position:"absolute"};this.svg=N("svg",B),y.useDivWrapper?(this.canvas=c.createElement("div",{position:"absolute"}),X.sizeElement(this.canvas,0,0,1,1),this.canvas.className=E):(R(this.svg,{class:E}),this.canvas=this.svg),y._jsPlumb.appendElement(this.canvas,y.originalArgs[0].parent),y.useDivWrapper&&this.canvas.appendChild(this.svg);var U=[this.canvas];return this.getDisplayElements=function(){return U},this.appendDisplayElement=function(Y){U.push(Y)},this.paint=function(Y,n,o){if(Y!=null){var t=[this.x,this.y],g=[this.w,this.h],m;o!=null&&(o.xmin<0&&(t[0]+=o.xmin),o.ymin<0&&(t[1]+=o.ymin),g[0]=o.xmax+(o.xmin<0?-o.xmin:0),g[1]=o.ymax+(o.ymin<0?-o.ymin:0)),y.useDivWrapper?(X.sizeElement(this.canvas,t[0],t[1],g[0]>0?g[0]:1,g[1]>0?g[1]:1),t[0]=0,t[1]=0,m=P([0,0])):m=P([t[0],t[1]]),p.paint.apply(this,arguments),R(this.svg,{style:m,width:g[0]||1,height:g[1]||1})}},{renderer:p}};X.extend(_,c.jsPlumbUIComponent,{cleanup:function(y){y||this.typeId==null?(this.canvas&&(this.canvas._jsPlumb=null),this.svg&&(this.svg._jsPlumb=null),this.bgCanvas&&(this.bgCanvas._jsPlumb=null),this.canvas&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.bgCanvas&&this.bgCanvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.svg=null,this.canvas=null,this.path=null,this.group=null,this._jsPlumb=null):(this.canvas&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.bgCanvas&&this.bgCanvas.parentNode&&this.bgCanvas.parentNode.removeChild(this.bgCanvas))},reattach:function(y){var w=y.getContainer();this.canvas&&this.canvas.parentNode==null&&w.appendChild(this.canvas),this.bgCanvas&&this.bgCanvas.parentNode==null&&w.appendChild(this.bgCanvas)},setVisible:function(y){this.canvas&&(this.canvas.style.display=y?"block":"none")}}),c.ConnectorRenderers.svg=function(y){var w=this,p=_.apply(this,[{cssClass:y._jsPlumb.connectorClass,originalArgs:arguments,pointerEventsSpec:"none",_jsPlumb:y._jsPlumb}]);p.renderer.paint=function(E,B,U){var Y=w.getSegments(),n="",o=[0,0];if(U.xmin<0&&(o[0]=-U.xmin),U.ymin<0&&(o[1]=-U.ymin),Y.length>0){n=w.getPathData();var t={d:n,transform:"translate("+o[0]+","+o[1]+")","pointer-events":y["pointer-events"]||"visibleStroke"},g=null,m=[w.x,w.y,w.w,w.h];if(E.outlineStroke){var F=E.outlineWidth||1,I=E.strokeWidth+2*F;g=c.extend({},E),delete g.gradient,g.stroke=E.outlineStroke,g.strokeWidth=I,w.bgPath==null?(w.bgPath=N("path",t),c.addClass(w.bgPath,c.connectorOutlineClass),l(w.svg,w.bgPath,0)):R(w.bgPath,t),d(w.svg,w.bgPath,g,m,w)}w.path==null?(w.path=N("path",t),l(w.svg,w.path,E.outlineStroke?1:0)):R(w.path,t),d(w.svg,w.path,E,m,w)}}},X.extend(c.ConnectorRenderers.svg,_);var x=c.SvgEndpoint=function(y){var w=_.apply(this,[{cssClass:y._jsPlumb.endpointClass,originalArgs:arguments,pointerEventsSpec:"all",useDivWrapper:!0,_jsPlumb:y._jsPlumb}]);w.renderer.paint=function(p){var E=c.extend({},p);E.outlineStroke&&(E.stroke=E.outlineStroke),this.node==null?(this.node=this.makeNode(E),this.svg.appendChild(this.node)):this.updateNode!=null&&this.updateNode(this.node),d(this.svg,this.node,E,[this.x,this.y,this.w,this.h],this),P(this.node,[this.x,this.y])}.bind(this)};X.extend(x,_),c.Endpoints.svg.Dot=function(){c.Endpoints.Dot.apply(this,arguments),x.apply(this,arguments),this.makeNode=function(y){return N("circle",{cx:this.w/2,cy:this.h/2,r:this.radius})},this.updateNode=function(y){R(y,{cx:this.w/2,cy:this.h/2,r:this.radius})}},X.extend(c.Endpoints.svg.Dot,[c.Endpoints.Dot,x]),c.Endpoints.svg.Rectangle=function(){c.Endpoints.Rectangle.apply(this,arguments),x.apply(this,arguments),this.makeNode=function(y){return N("rect",{width:this.w,height:this.h})},this.updateNode=function(y){R(y,{width:this.w,height:this.h})}},X.extend(c.Endpoints.svg.Rectangle,[c.Endpoints.Rectangle,x]),c.Endpoints.svg.Image=c.Endpoints.Image,c.Endpoints.svg.Blank=c.Endpoints.Blank,c.Overlays.svg.Label=c.Overlays.Label,c.Overlays.svg.Custom=c.Overlays.Custom;var u=function(y,w){y.apply(this,w),c.jsPlumbUIComponent.apply(this,w),this.isAppendedAtTopLevel=!1,this.path=null,this.paint=function(E,B){if(E.component.svg&&B){this.path==null&&(this.path=N("path",{"pointer-events":"all"}),E.component.svg.appendChild(this.path),this.elementCreated&&this.elementCreated(this.path,E.component),this.canvas=E.component.svg);var U=w&&w.length===1&&w[0].cssClass||"",Y=[0,0];B.xmin<0&&(Y[0]=-B.xmin),B.ymin<0&&(Y[1]=-B.ymin),R(this.path,{d:p(E.d),class:U,stroke:E.stroke?E.stroke:null,fill:E.fill?E.fill:null,transform:"translate("+Y[0]+","+Y[1]+")"})}};var p=function(E){return isNaN(E.cxy.x)||isNaN(E.cxy.y)?"":"M"+E.hxy.x+","+E.hxy.y+" L"+E.tail[0].x+","+E.tail[0].y+" L"+E.cxy.x+","+E.cxy.y+" L"+E.tail[1].x+","+E.tail[1].y+" L"+E.hxy.x+","+E.hxy.y};this.transfer=function(E){E.canvas&&this.path&&this.path.parentNode&&(this.path.parentNode.removeChild(this.path),E.canvas.appendChild(this.path))}},k={cleanup:function(y){this.path!=null&&(y?this._jsPlumb.instance.removeElement(this.path):this.path.parentNode&&this.path.parentNode.removeChild(this.path))},reattach:function(y,w){this.path&&w.canvas&&w.canvas.appendChild(this.path)},setVisible:function(y){this.path!=null&&(this.path.style.display=y?"block":"none")}};X.extend(u,[c.jsPlumbUIComponent,c.Overlays.AbstractOverlay]),c.Overlays.svg.Arrow=function(){u.apply(this,[c.Overlays.Arrow,arguments])},X.extend(c.Overlays.svg.Arrow,[c.Overlays.Arrow,u],k),c.Overlays.svg.PlainArrow=function(){u.apply(this,[c.Overlays.PlainArrow,arguments])},X.extend(c.Overlays.svg.PlainArrow,[c.Overlays.PlainArrow,u],k),c.Overlays.svg.Diamond=function(){u.apply(this,[c.Overlays.Diamond,arguments])},X.extend(c.Overlays.svg.Diamond,[c.Overlays.Diamond,u],k),c.Overlays.svg.GuideLines=function(){var y=null,w=this,p,E;c.Overlays.GuideLines.apply(this,arguments),this.paint=function(U,Y){y==null&&(y=N("path"),U.connector.svg.appendChild(y),w.attachListeners(y,U.connector),w.attachListeners(y,w),p=N("path"),U.connector.svg.appendChild(p),w.attachListeners(p,U.connector),w.attachListeners(p,w),E=N("path"),U.connector.svg.appendChild(E),w.attachListeners(E,U.connector),w.attachListeners(E,w));var n=[0,0];Y.xmin<0&&(n[0]=-Y.xmin),Y.ymin<0&&(n[1]=-Y.ymin),R(y,{d:B(U.head,U.tail),stroke:"red",fill:null,transform:"translate("+n[0]+","+n[1]+")"}),R(p,{d:B(U.tailLine[0],U.tailLine[1]),stroke:"blue",fill:null,transform:"translate("+n[0]+","+n[1]+")"}),R(E,{d:B(U.headLine[0],U.headLine[1]),stroke:"green",fill:null,transform:"translate("+n[0]+","+n[1]+")"})};var B=function(U,Y){return"M "+U.x+","+U.y+" L"+Y.x+","+Y.y}},X.extend(c.Overlays.svg.GuideLines,c.Overlays.GuideLines)}.call(typeof window!="undefined"?window:jt),function(){var K=this,c=K.jsPlumb,X=K.jsPlumbUtil,Z=K.Katavorio,$=K.Biltong,tt=function(r){var d=r._mottle;return d||(d=r._mottle=new K.Mottle),d},h=function(r,d){d=d||"main";var l="_katavorio_"+d,_=r[l],x=r.getEventManager();return _||(_=new Z({bind:x.on,unbind:x.off,getSize:c.getSize,getConstrainingRectangle:function(u){return[u.parentNode.scrollWidth,u.parentNode.scrollHeight]},getPosition:function(u,k){var y=r.getOffset(u,k,u._katavorioDrag?u.offsetParent:null);return[y.left,y.top]},setPosition:function(u,k){u.style.left=k[0]+"px",u.style.top=k[1]+"px"},addClass:c.addClass,removeClass:c.removeClass,intersects:$.intersects,indexOf:function(u,k){return u.indexOf(k)},scope:r.getDefaultScope(),css:{noSelect:r.dragSelectClass,droppable:"jtk-droppable",draggable:"jtk-draggable",drag:"jtk-drag",selected:"jtk-drag-selected",active:"jtk-drag-active",hover:"jtk-drag-hover",ghostProxy:"jtk-ghost-proxy"}}),_.setZoom(r.getZoom()),r[l]=_,r.bind("zoom",_.setZoom)),_},T=function(r){var d=r.el._jsPlumbDragOptions,l=!0;return d.canDrag&&(l=d.canDrag()),l&&(this.setHoverSuspended(!0),this.select({source:r.el}).addClass(this.elementDraggingClass+" "+this.sourceElementDraggingClass,!0),this.select({target:r.el}).addClass(this.elementDraggingClass+" "+this.targetElementDraggingClass,!0),this.setConnectionBeingDragged(!0)),l},a=function(r){var d=this.getUIPosition(arguments,this.getZoom());if(d!=null){var l=r.el._jsPlumbDragOptions;this.draw(r.el,d,null,!0),l._dragging&&this.addClass(r.el,"jtk-dragged"),l._dragging=!0}},i=function(r){for(var d=r.selection,l,_=function(u){var k;u[1]!=null&&(l=this.getUIPosition([{el:u[2].el,pos:[u[1].left,u[1].top]}]),k=this.draw(u[2].el,l)),u[0]._jsPlumbDragOptions!=null&&delete u[0]._jsPlumbDragOptions._dragging,this.removeClass(u[0],"jtk-dragged"),this.select({source:u[2].el}).removeClass(this.elementDraggingClass+" "+this.sourceElementDraggingClass,!0),this.select({target:u[2].el}).removeClass(this.elementDraggingClass+" "+this.targetElementDraggingClass,!0),r.e._drawResult=r.e._drawResult||{c:[],e:[],a:[]},Array.prototype.push.apply(r.e._drawResult.c,k.c),Array.prototype.push.apply(r.e._drawResult.e,k.e),Array.prototype.push.apply(r.e._drawResult.a,k.a),this.getDragManager().dragEnded(u[2].el)}.bind(this),x=0;x<d.length;x++)_(d[x]);this.setHoverSuspended(!1),this.setConnectionBeingDragged(!1)},v=function(r,d){var l=function(_){if(d[_]!=null)if(X.isString(d[_])){var x=d[_].match(/-=/)?-1:1,u=d[_].substring(2);return r[_]+x*u}else return d[_];else return r[_]};return[l("left"),l("top")]},D=function(r,d){if(d==null)return[0,0];var l=j(d),_=e(l,0);return[_[r+"X"],_[r+"Y"]]},L=D.bind(this,"page"),C=D.bind(this,"screen"),f=D.bind(this,"client"),e=function(r,d){return r.item?r.item(d):r[d]},j=function(r){return r.touches&&r.touches.length>0?r.touches:r.changedTouches&&r.changedTouches.length>0?r.changedTouches:r.targetTouches&&r.targetTouches.length>0?r.targetTouches:[r]},M=function(r){var d={},l=[],_={},x={},u={};this.register=function(k){var y=r.getId(k),w;d[y]||(d[y]=k,l.push(k),_[y]={});var p=function(E){if(E){for(var B=0;B<E.childNodes.length;B++)if(E.childNodes[B].nodeType!==3&&E.childNodes[B].nodeType!==8){var U=jsPlumb.getElement(E.childNodes[B]),Y=r.getId(E.childNodes[B],null,!0);if(Y&&x[Y]&&x[Y]>0){w||(w=r.getOffset(k));var n=r.getOffset(U);_[y][Y]={id:Y,offset:{left:n.left-w.left,top:n.top-w.top}},u[Y]=y}p(E.childNodes[B])}}};p(k)},this.updateOffsets=function(k,y){if(k!=null){y=y||{};var w=jsPlumb.getElement(k),p=r.getId(w),E=_[p],B;if(E){for(var U in E)if(E.hasOwnProperty(U)){var Y=jsPlumb.getElement(U),n=y[U]||r.getOffset(Y);if(Y.offsetParent==null&&_[p][U]!=null)continue;B||(B=r.getOffset(w)),_[p][U]={id:U,offset:{left:n.left-B.left,top:n.top-B.top}},u[U]=p}}}},this.endpointAdded=function(k,y){y=y||r.getId(k);var w=document.body,p=k.parentNode;for(x[y]=x[y]?x[y]+1:1;p!=null&&p!==w;){var E=r.getId(p,null,!0);if(E&&d[E]){var B=r.getOffset(p);if(_[E][y]==null){var U=r.getOffset(k);_[E][y]={id:y,offset:{left:U.left-B.left,top:U.top-B.top}},u[y]=E}break}p=p.parentNode}},this.endpointDeleted=function(k){if(x[k.elementId]&&(x[k.elementId]--,x[k.elementId]<=0))for(var y in _)_.hasOwnProperty(y)&&_[y]&&(delete _[y][k.elementId],delete u[k.elementId])},this.changeId=function(k,y){_[y]=_[k],_[k]={},u[y]=u[k],u[k]=null},this.getElementsForDraggable=function(k){return _[k]},this.elementRemoved=function(k){var y=u[k];y&&(_[y]&&delete _[y][k],delete u[k])},this.reset=function(){d={},l=[],_={},x={}},this.dragEnded=function(k){if(k.offsetParent!=null){var y=r.getId(k),w=u[y];w&&this.updateOffsets(w)}},this.setParent=function(k,y,w,p,E){var B=u[y];_[p]||(_[p]={});var U=r.getOffset(w),Y=E||r.getOffset(k);B&&_[B]&&delete _[B][y],_[p][y]={id:y,offset:{left:Y.left-U.left,top:Y.top-U.top}},u[y]=p},this.clearParent=function(k,y){var w=u[y];w&&(delete _[w][y],delete u[y])},this.revalidateParent=function(k,y,w){var p=u[y];if(p){var E={};E[y]=w,this.updateOffsets(p,E),r.revalidate(p)}},this.getDragAncestor=function(k){var y=jsPlumb.getElement(k),w=r.getId(y),p=u[w];return p?jsPlumb.getElement(p):null}},R=function(r,d,l){d=X.fastTrim(d),typeof r.className.baseVal!="undefined"?r.className.baseVal=d:r.className=d;try{var _=r.classList;if(_!=null){for(;_.length>0;)_.remove(_.item(0));for(var x=0;x<l.length;x++)l[x]&&_.add(l[x])}}catch(u){X.log("JSPLUMB: cannot set class list",u)}},N=function(r){return typeof r.className.baseVal=="undefined"?r.className:r.className.baseVal},P=function(r,d,l){d=d==null?[]:X.isArray(d)?d:d.split(/\s+/),l=l==null?[]:X.isArray(l)?l:l.split(/\s+/);var _=N(r),x=_.split(/\s+/),u=function(k,y){for(var w=0;w<y.length;w++)if(k)x.indexOf(y[w])===-1&&x.push(y[w]);else{var p=x.indexOf(y[w]);p!==-1&&x.splice(p,1)}};u(!0,d),u(!1,l),R(r,x.join(" "),x)};K.jsPlumb.extend(K.jsPlumbInstance.prototype,{headless:!1,pageLocation:L,screenLocation:C,clientLocation:f,getDragManager:function(){return this.dragManager==null&&(this.dragManager=new M(this)),this.dragManager},recalculateOffsets:function(r){this.getDragManager().updateOffsets(r)},createElement:function(r,d,l,_){return this.createElementNS(null,r,d,l,_)},createElementNS:function(r,d,l,_,x){var u=r==null?document.createElement(d):document.createElementNS(r,d),k;l=l||{};for(k in l)u.style[k]=l[k];_&&(u.className=_),x=x||{};for(k in x)u.setAttribute(k,""+x[k]);return u},getAttribute:function(r,d){return r.getAttribute!=null?r.getAttribute(d):null},setAttribute:function(r,d,l){r.setAttribute!=null&&r.setAttribute(d,l)},setAttributes:function(r,d){for(var l in d)d.hasOwnProperty(l)&&r.setAttribute(l,d[l])},appendToRoot:function(r){document.body.appendChild(r)},getRenderModes:function(){return["svg"]},getClass:N,addClass:function(r,d){jsPlumb.each(r,function(l){P(l,d)})},hasClass:function(r,d){return r=jsPlumb.getElement(r),r.classList?r.classList.contains(d):N(r).indexOf(d)!==-1},removeClass:function(r,d){jsPlumb.each(r,function(l){P(l,null,d)})},toggleClass:function(r,d){jsPlumb.hasClass(r,d)?jsPlumb.removeClass(r,d):jsPlumb.addClass(r,d)},updateClasses:function(r,d,l){jsPlumb.each(r,function(_){P(_,d,l)})},setClass:function(r,d){d!=null&&jsPlumb.each(r,function(l){R(l,d,d.split(/\s+/))})},setPosition:function(r,d){r.style.left=d.left+"px",r.style.top=d.top+"px"},getPosition:function(r){var d=function(l){var _=r.style[l];return _?_.substring(0,_.length-2):0};return{left:d("left"),top:d("top")}},getStyle:function(r,d){return typeof window.getComputedStyle!="undefined"?getComputedStyle(r,null).getPropertyValue(d):r.currentStyle[d]},getSelector:function(r,d){var l=null;return arguments.length===1?l=r.nodeType!=null?r:document.querySelectorAll(r):l=r.querySelectorAll(d),l},getOffset:function(r,d,l){r=jsPlumb.getElement(r),l=l||this.getContainer();for(var _={left:r.offsetLeft,top:r.offsetTop},x=d||l!=null&&r!==l&&r.offsetParent!==l?r.offsetParent:null,u=function(w){w!=null&&w!==document.body&&(w.scrollTop>0||w.scrollLeft>0)&&(_.left-=w.scrollLeft,_.top-=w.scrollTop)}.bind(this);x!=null;)_.left+=x.offsetLeft,_.top+=x.offsetTop,u(x),x=d?x.offsetParent:x.offsetParent===l?null:x.offsetParent;if(l!=null&&!d&&(l.scrollTop>0||l.scrollLeft>0)){var k=r.offsetParent!=null?this.getStyle(r.offsetParent,"position"):"static",y=this.getStyle(r,"position");y!=="absolute"&&y!=="fixed"&&k!=="absolute"&&k!=="fixed"&&(_.left-=l.scrollLeft,_.top-=l.scrollTop)}return _},getPositionOnElement:function(r,d,l){var _=typeof d.getBoundingClientRect!="undefined"?d.getBoundingClientRect():{left:0,top:0,width:0,height:0},x=document.body,u=document.documentElement,k=window.pageYOffset||u.scrollTop||x.scrollTop,y=window.pageXOffset||u.scrollLeft||x.scrollLeft,w=u.clientTop||x.clientTop||0,p=u.clientLeft||x.clientLeft||0,E=0,B=0,U=_.top+k-w+E*l,Y=_.left+y-p+B*l,n=jsPlumb.pageLocation(r),o=_.width||d.offsetWidth*l,t=_.height||d.offsetHeight*l,g=(n[0]-Y)/o,m=(n[1]-U)/t;return[g,m]},getAbsolutePosition:function(r){var d=function(l){var _=r.style[l];if(_)return parseFloat(_.substring(0,_.length-2))};return[d("left"),d("top")]},setAbsolutePosition:function(r,d,l,_){l?this.animate(r,{left:"+="+(d[0]-l[0]),top:"+="+(d[1]-l[1])},_):(r.style.left=d[0]+"px",r.style.top=d[1]+"px")},getSize:function(r){return[r.offsetWidth,r.offsetHeight]},getWidth:function(r){return r.offsetWidth},getHeight:function(r){return r.offsetHeight},getRenderMode:function(){return"svg"},draggable:function(r,d){var l;return r=X.isArray(r)||r.length!=null&&!X.isString(r)?r:[r],Array.prototype.slice.call(r).forEach(function(_){l=this.info(_),l.el&&this._initDraggableIfNecessary(l.el,!0,d,l.id,!0)}.bind(this)),this},snapToGrid:function(r,d,l){var _=[],x=function(y){var w=this.info(y);if(w.el!=null&&w.el._katavorioDrag){var p=w.el._katavorioDrag.snap(d,l);this.revalidate(w.el),_.push([w.el,p])}}.bind(this);if(arguments.length===1||arguments.length===3)x(r,d,l);else{var u=this.getManagedElements();for(var k in u)x(k,arguments[0],arguments[1])}return _},initDraggable:function(r,d,l){h(this,l).draggable(r,d),r._jsPlumbDragOptions=d},destroyDraggable:function(r,d){h(this,d).destroyDraggable(r),r._jsPlumbDragOptions=null,r._jsPlumbRelatedElement=null},unbindDraggable:function(r,d,l,_){h(this,_).destroyDraggable(r,d,l)},setDraggable:function(r,d){return jsPlumb.each(r,function(l){this.isDragSupported(l)&&(this._draggableStates[this.getAttribute(l,"id")]=d,this.setElementDraggable(l,d))}.bind(this))},_draggableStates:{},toggleDraggable:function(r){var d;return jsPlumb.each(r,function(l){var _=this.getAttribute(l,"id");return d=this._draggableStates[_]==null?!1:this._draggableStates[_],d=!d,this._draggableStates[_]=d,this.setDraggable(l,d),d}.bind(this)),d},_initDraggableIfNecessary:function(r,d,l,_,x){if(!jsPlumb.headless){var u=d==null?!1:d;if(u&&jsPlumb.isDragSupported(r,this)){var k=l||this.Defaults.DragOptions;if(k=jsPlumb.extend({},k),jsPlumb.isAlreadyDraggable(r,this))l.force&&this.initDraggable(r,k);else{var y=jsPlumb.dragEvents.drag,w=jsPlumb.dragEvents.stop,p=jsPlumb.dragEvents.start;this.manage(_,r),k[p]=X.wrap(k[p],T.bind(this)),k[y]=X.wrap(k[y],a.bind(this)),k[w]=X.wrap(k[w],i.bind(this));var E=this.getId(r);this._draggableStates[E]=!0;var B=this._draggableStates[E];k.disabled=B==null?!1:!B,this.initDraggable(r,k),this.getDragManager().register(r),x&&this.fire("elementDraggable",{el:r,options:k})}}}},animationSupported:!0,getElement:function(r){return r==null?null:(r=typeof r=="string"?r:r.tagName==null&&r.length!=null&&r.enctype==null?r[0]:r,typeof r=="string"?document.getElementById(r):r)},removeElement:function(r){h(this).elementRemoved(r),this.getEventManager().remove(r)},doAnimate:function(r,d,l){l=l||{};var _=this.getOffset(r),x=v(_,d),u=x[0]-_.left,k=x[1]-_.top,y=l.duration||250,w=15,p=y/w,E=w/y*u,B=w/y*k,U=0,Y=setInterval(function(){c.setPosition(r,{left:_.left+E*(U+1),top:_.top+B*(U+1)}),l.step!=null&&l.step(U,Math.ceil(p)),U++,U>=p&&(window.clearInterval(Y),l.complete!=null&&l.complete())},w)},destroyDroppable:function(r,d){h(this,d).destroyDroppable(r)},unbindDroppable:function(r,d,l,_){h(this,_).destroyDroppable(r,d,l)},droppable:function(r,d){r=X.isArray(r)||r.length!=null&&!X.isString(r)?r:[r];var l;return d=d||{},d.allowLoopback=!1,Array.prototype.slice.call(r).forEach(function(_){l=this.info(_),l.el&&this.initDroppable(l.el,d)}.bind(this)),this},initDroppable:function(r,d,l){h(this,l).droppable(r,d)},isAlreadyDraggable:function(r){return r._katavorioDrag!=null},isDragSupported:function(r,d){return!0},isDropSupported:function(r,d){return!0},isElementDraggable:function(r){return r=c.getElement(r),r._katavorioDrag&&r._katavorioDrag.isEnabled()},getDragObject:function(r){return r[0].drag.getDragElement()},getDragScope:function(r){return r._katavorioDrag&&r._katavorioDrag.scopes.join(" ")||""},getDropEvent:function(r){return r[0].e},getUIPosition:function(r,d){var l=r[0].el;if(l.offsetParent==null)return null;var _=r[0].finalPos||r[0].pos,x={left:_[0],top:_[1]};if(l._katavorioDrag&&l.offsetParent!==this.getContainer()){var u=this.getOffset(l.offsetParent);x.left+=u.left,x.top+=u.top}return x},setDragFilter:function(r,d,l){r._katavorioDrag&&r._katavorioDrag.setFilter(d,l)},setElementDraggable:function(r,d){r=c.getElement(r),r._katavorioDrag&&r._katavorioDrag.setEnabled(d)},setDragScope:function(r,d){r._katavorioDrag&&r._katavorioDrag.k.setDragScope(r,d)},setDropScope:function(r,d){r._katavorioDrop&&r._katavorioDrop.length>0&&r._katavorioDrop[0].k.setDropScope(r,d)},addToPosse:function(r,d){var l=Array.prototype.slice.call(arguments,1),_=h(this);c.each(r,function(x){x=[c.getElement(x)],x.push.apply(x,l),_.addToPosse.apply(_,x)})},setPosse:function(r,d){var l=Array.prototype.slice.call(arguments,1),_=h(this);c.each(r,function(x){x=[c.getElement(x)],x.push.apply(x,l),_.setPosse.apply(_,x)})},removeFromPosse:function(r,d){var l=Array.prototype.slice.call(arguments,1),_=h(this);c.each(r,function(x){x=[c.getElement(x)],x.push.apply(x,l),_.removeFromPosse.apply(_,x)})},removeFromAllPosses:function(r){var d=h(this);c.each(r,function(l){d.removeFromAllPosses(c.getElement(l))})},setPosseState:function(r,d,l){var _=h(this);c.each(r,function(x){_.setPosseState(c.getElement(x),d,l)})},dragEvents:{start:"start",stop:"stop",drag:"drag",step:"step",over:"over",out:"out",drop:"drop",complete:"complete",beforeStart:"beforeStart"},animEvents:{step:"step",complete:"complete"},stopDrag:function(r){r._katavorioDrag&&r._katavorioDrag.abort()},addToDragSelection:function(r){var d=this.getElement(r);d!=null&&(d._isJsPlumbGroup||d._jsPlumbGroup==null)&&h(this).select(r)},removeFromDragSelection:function(r){h(this).deselect(r)},getDragSelection:function(){return h(this).getSelection()},clearDragSelection:function(){h(this).deselectAll()},trigger:function(r,d,l,_){this.getEventManager().trigger(r,d,l,_)},doReset:function(){for(var r in this)r.indexOf("_katavorio_")===0&&this[r].reset()},getEventManager:function(){return tt(this)},on:function(r,d,l){return this.getEventManager().on.apply(this,arguments),this},off:function(r,d,l){return this.getEventManager().off.apply(this,arguments),this}});var A=function(r){var d=function(){/complete|loaded|interactive/.test(document.readyState)&&typeof document.body!="undefined"&&document.body!=null?r():setTimeout(d,9)};d()};A(c.init)}.call(typeof window!="undefined"?window:jt)})(Pe);const qe=[{title:"\u5F55\u50CF",icon:"el-icon-video-camera-solid",isOpen:!0,id:1,children:[{icon:"el-icon-s-custom",name:"\u5C0F\u7C73",id:11,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F01",prop:"name"}]},{icon:"el-icon-s-opportunity",name:"\u8D85\u5C0F\u7C73",id:12,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F02",prop:"name"}]},{icon:"el-icon-s-data",name:"\u4E2D\u7C73",id:13,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F03",prop:"name"}]},{icon:"el-icon-s-check",name:"\u5927\u7C73",id:14,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F04",prop:"name"}]},{icon:"el-icon-s-grid",name:"\u8D85\u5927\u7C73",id:15,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F05",prop:"name"}]},{icon:"el-icon-menu",name:"\u7D2B\u7C73",id:16,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F06",prop:"name"}]}]},{title:"\u6587\u672C",isOpen:!0,icon:"el-icon-s-order",id:2,children:[{icon:"el-icon-share",name:"\u7EA2\u7C73",id:21,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F07",prop:"name"}]},{icon:"el-icon-s-shop",name:"\u7C89\u7C73",id:22,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F08",prop:"name"}]},{icon:"el-icon-s-marketing",name:"\u9ED1\u7C73",id:23,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F09",prop:"name"}]}]},{title:"\u7535\u89C6",isOpen:!0,icon:"el-icon-s-platform",id:3,children:[{icon:"el-icon-s-flag",name:"\u767D\u7C73",id:31,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F010",prop:"name"}]},{icon:"el-icon-s-comment",name:"\u7EFF\u7C73",id:32,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F011",prop:"name"}]},{icon:"iconfont icon-fangkuang",name:"\u84DD\u7C73",id:33,form:[{type:"input",label:"\u6D3B\u52A8\u540D\u79F012",prop:"name"}]}]}],Ke={Anchors:["Top","TopCenter","TopRight","TopLeft","Right","RightMiddle","Bottom","BottomCenter","BottomRight","BottomLeft","Left","LeftMiddle"],Container:"workflow-right",Connector:["Bezier",{curviness:100}],ConnectionsDetachable:!1,DeleteEndpointsOnDetach:!1,Endpoint:["Blank",{Overlays:""}],EndpointStyle:{fill:"#1879ffa1",outlineWidth:1},LogEnabled:!0,PaintStyle:{stroke:"#E0E3E7",strokeWidth:1,outlineStroke:"transparent",outlineWidth:10},DragOptions:{cursor:"pointer",zIndex:2e3},Overlays:[["Arrow",{width:10,length:8,location:1,direction:1,foldback:.623}],["Label",{label:"",location:.5,cssClass:"aLabel"}]],RenderMode:"svg",HoverPaintStyle:{stroke:"#b0b2b5",strokeWidth:1},EndpointHoverStyle:{fill:"red"},Scope:"jsPlumb_DefaultScope"},$e={filter:".workflow-icon-drag",filterExclude:!1,anchor:"Continuous",allowLoopback:!0,maxConnections:-1},Ze={filter:".workflow-icon-drag",filterExclude:!1,anchor:"Continuous",allowLoopback:!0,dropOptions:{hoverClass:"ef-drop-hover"}};const Je=Le({name:"pagesWorkflow",components:{Contextmenu:We,Drawer:ze},setup(){const xt=ve(),K=ve(),c=ve(),X=Ve(),Z=Ie({leftNavList:[],jsPlumb:null,nodeList:[],nodeIndex:null,dropdownNode:{x:"",y:""},dropdownLine:{x:"",y:""},jsplumbDefaults:Ke,jsplumbMakeSource:$e,jsplumbMakeMakeTarget:Ze}),$=ke(()=>{let{isTagsview:f}=X.state.themeConfig.themeConfig,{isTagsViewCurrenFull:e}=X.state.tagsViewRoutes;return e?"30px":f?"114px":"80px"}),tt=ke(()=>{let{globalTitle:f}=X.state.themeConfig.themeConfig;return`${f}\u5DE5\u4F5C\u6D41`}),h=()=>{Z.leftNavList=qe},T=()=>{Z.leftNavList.forEach((f,e)=>{Ye.create(document.getElementById(`left${e}`),{group:{name:"PandaUi-1",pull:"clone",put:!1},animation:0,sort:!1,draggable:".workflow-left-item",forceFallback:!0,onEnd:function(j){const{name:M,icon:R}=j.clone.dataset,{layerX:N,layerY:P,clientX:A,clientY:r}=j.originalEvent,d=document.querySelector("#workflow-right"),{x:l,y:_,width:x,height:u}=d.getBoundingClientRect();if(A<l||A>x+l||r<_||_>_+u)Ge({type:"warning",message:"\u8BF7\u628A\u8282\u70B9\u62D6\u5165\u5230\u753B\u5E03\u4E2D"});else{const k=Math.random().toString(36).substr(2,12),y={nodeId:k,left:`${N-40}px`,top:`${P-15}px`,class:"workflow-right-clone",cloneItem:j.clone.innerHTML,name:M,icon:R};Z.nodeList.push(y),Be(()=>{Z.jsPlumb.makeSource(k,Z.jsplumbMakeSource),Z.jsPlumb.makeTarget(k,Z.jsplumbMakeMakeTarget),Z.jsPlumb.draggable(k,{containment:"parent",stop:w=>{Z.nodeList.forEach(p=>{p.nodeId===w.el.id&&(p.left=`${w.pos[0]}px`,p.top=`${w.pos[1]}px`)})}})})}}})})},a=f=>{f.isOpen=!f.isOpen},i=f=>{Z.nodeIndex=f},v=(f,e,j)=>{Z.nodeIndex=e;const{clientX:M,clientY:R}=j;Z.dropdownNode.x=M,Z.dropdownNode.y=R,f.index=e,f.type="node",xt.value.openContextmenu(f)},D=f=>{const{index:e,contextMenuClickId:j,name:M}=f;Z.leftNavList.map(R=>{R.children.map(N=>{N.name===M&&(f.form=N.form)})}),j===0?Z.nodeList.splice(e,1):j===1&&c.value.open(f)},L=(f,e)=>{const{contextMenuClickId:j}=f;Z.leftNavList.map(M=>{M.children.map(R=>{R.name===name&&(f.form=R.form)})}),j===0?Z.jsPlumb.deleteConnection(e):j===1&&c.value.open(f)},C=()=>{Pe.jsPlumb.ready(()=>{Z.jsPlumb=Pe.jsPlumb.getInstance({detachable:!1,Container:"workflow-right"}),Z.jsPlumb.importDefaults(Z.jsplumbDefaults),Z.jsPlumb.setSuspendDrawing(!1,!0),Z.jsPlumb.bind("contextmenu",(f,e)=>{e.preventDefault();const{clientX:j,clientY:M}=e;Z.dropdownLine.x=j,Z.dropdownLine.y=M;const R=Z.nodeList.find(P=>P.nodeId===f.targetId),N=Z.nodeList.findIndex(P=>P.nodeId===f.targetId);R.index=N,R.type="line",K.value.openContextmenu(R,f)}),Z.jsPlumb.bind("connection",f=>{const{sourceId:e,targetId:j}=f,M=Z.jsPlumb.getConnections({source:e,target:j})[0];M.setLabel("\u540C\u610F"),M.endpointStyle=[{fill:"#f35958"}],M.style.color="red"})})};return Fe(async()=>{await h(),T(),C()}),Ae({setViewHeight:$,setToolTitle:tt,onTitleClick:a,onItemCloneClick:i,onContextmenu:v,onCurrentNodeClick:D,onCurrentLineClick:L,contextmenuNodeRef:xt,contextmenuLineRef:K,drawerRef:c},Re(Z))}}),Qe={class:"workflow-form-container"},tn={class:"workflow"},en={class:"workflow-tool"},nn={class:"pl15"},sn=He('<div class="workflow-tool-right" data-v-ba20bb20><div class="workflow-tool-icon" data-v-ba20bb20><i class="el-icon-warning-outline" data-v-ba20bb20></i></div><div class="workflow-tool-icon" data-v-ba20bb20><i class="el-icon-download" data-v-ba20bb20></i></div><div class="workflow-tool-icon" data-v-ba20bb20><i class="el-icon-video-play" data-v-ba20bb20></i></div><div class="workflow-tool-icon" data-v-ba20bb20><i class="el-icon-full-screen" data-v-ba20bb20></i></div><div class="workflow-tool-icon" data-v-ba20bb20><i class="el-icon-printer" data-v-ba20bb20></i></div></div>',1),rn={class:"workflow-content"},on={id:"workflow-left"},an=["id"],ln=["onClick"],un=["data-name","data-icon"],hn={class:"workflow-left-item-icon"},cn={class:"font10 pl5 name"},fn={id:"workflow-right"},dn=["id","onClick","onContextmenu"],pn={class:"workflow-left-item-icon"},gn={class:"font10 pl5 name"};function vn(xt,K,c,X,Z,$){const tt=me("el-scrollbar"),h=me("Contextmenu"),T=me("Drawer");return Jt(),Zt("div",Qe,[Lt("div",{class:"layout-view-bg-white flex",style:_e({height:`calc(100vh - ${xt.setViewHeight}`})},[Lt("div",tn,[Lt("div",en,[Lt("div",nn,pe(xt.setToolTitle),1),sn]),Lt("div",rn,[Lt("div",on,[ge(tt,null,{default:Ne(()=>[(Jt(!0),Zt(be,null,ye(xt.leftNavList,(a,i)=>(Jt(),Zt("div",{id:`left${i}`,key:i,style:_e({height:a.isOpen?"auto":"50px",overflow:"hidden"}),class:"workflow-left-id"},[Lt("div",{class:"workflow-left-title",onClick:v=>xt.onTitleClick(a)},[Lt("span",null,pe(a.title),1),Lt("i",{class:re(a.isOpen?"el-icon-arrow-down":"el-icon-arrow-right")},null,2)],8,ln),(Jt(!0),Zt(be,null,ye(a.children,(v,D)=>(Jt(),Zt("div",{class:"workflow-left-item",key:D,"data-name":v.name,"data-icon":v.icon},[Lt("div",hn,[Lt("i",{class:re([v.icon,"workflow-icon-drag"])},null,2),Lt("div",cn,pe(v.name),1)])],8,un))),128))],12,an))),128))]),_:1})]),Lt("div",fn,[(Jt(!0),Zt(be,null,ye(xt.nodeList,(a,i)=>(Jt(),Zt("div",{key:i,id:a.nodeId,class:re(a.class),style:_e({left:a.left,top:a.top}),onClick:v=>xt.onItemCloneClick(i),onContextmenu:Ue(v=>xt.onContextmenu(a,i,v),["prevent"])},[Lt("div",{class:re(["workflow-right-box",{"workflow-right-active":xt.nodeIndex===i}])},[Lt("div",pn,[Lt("i",{class:re(["workflow-icon-drag",a.icon])},null,2),Lt("div",gn,pe(a.name),1)])],2)],46,dn))),128))])])])],4),ge(h,{dropdown:xt.dropdownNode,ref:"contextmenuNodeRef",onCurrent:xt.onCurrentNodeClick},null,8,["dropdown","onCurrent"]),ge(h,{dropdown:xt.dropdownLine,ref:"contextmenuLineRef",onCurrent:xt.onCurrentLineClick},null,8,["dropdown","onCurrent"]),ge(T,{ref:"drawerRef"},null,512)])}var En=Xe(Je,[["render",vn],["__scopeId","data-v-ba20bb20"]]);export{En as default};
|