p&&r--}else{q=(a+c)/2;u=(b+d)/2;var w=(c+e)/2,v=(d+f)/2;e=(e+g)/2;f=(f+h)/2;d=(q+w)/2;c=(u+v)/2;w=(w+e)/2;v=(v+f)/2;var z=(d+w)/2,y=(c+v)/2;r+=K.Bo(a,b,q,u,d,c,z,y,k,l,m,n,p);r+=K.Bo(z,y,w,v,e,f,g,h,k,l,m,n,p)}return r},lh:function(a,b,c,d,e,f,g){if(K.$(a,c)){b g&&(f=-f),f=(0>c?-1:1)*f+a,h=p*(f-a)+b),this.je(d),this.vf(f,h),this.je(e);else{this.je(d);this.je(e);h=N.alloc();b.ji(h);k=h.ca(e);p.ji(h);l=h.ca(d);if(k||l)g=b.ja(Mp(g),new I),this.Yc(0,this.getLinkPointFromPoint(a,b,g,e,!0,g)),c=p.ja(Mp(c),new I),this.Yc(1,this.getLinkPointFromPoint(f,p,c,d,!1,c));N.free(h)}}else{n=this.isAvoiding;p&&(m&&n||l)&&this.Dj();var y=l?this.computeCurviness():0;n=this.getLinkPoint(a,b,g,!0,m,d,e);r=u=q=0;if(m||!h||l)w=this.computeEndSegmentLength(a,b,g,!0),r=
this.getLinkDirection(a,b,n,g,!0,m,d,e),l&&(h||g.C(c)||!m&&1===g.x+c.x&&1===g.y+c.y)&&(r-=m?90:30,0>y&&(r-=180)),0>r?r+=360:360<=r&&(r-=360),l&&(w+=Math.abs(y)*(m?1:2)),0===r?q=w:90===r?u=w:180===r?q=-w:270===r?u=-w:(q=w*Math.cos(r*Math.PI/180),u=w*Math.sin(r*Math.PI/180)),g.Jc()&&l&&(w=b.ja(xc,I.alloc()),v=I.allocAt(w.x+1E3*q,w.y+1E3*u),this.getLinkPointFromPoint(a,b,w,v,!0,n),I.free(w),I.free(v));w=this.getLinkPoint(d,e,c,!1,m,a,b);var A=z=v=0;if(m||!k||l){var B=this.computeEndSegmentLength(d,e,
c,!1);A=this.getLinkDirection(d,e,w,c,!1,m,a,b);l&&(k||g.C(c)||!m&&1===g.x+c.x&&1===g.y+c.y)&&(A+=m?0:30,0>y&&(A+=180));0>A?A+=360:360<=A&&(A-=360);l&&(B+=Math.abs(y)*(m?1:2));0===A?v=B:90===A?z=B:180===A?v=-B:270===A?z=-B:(v=B*Math.cos(A*Math.PI/180),z=B*Math.sin(A*Math.PI/180));c.Jc()&&l&&(c=e.ja(xc,I.alloc()),g=I.allocAt(c.x+1E3*v,c.y+1E3*z),this.getLinkPointFromPoint(d,e,c,g,!1,w),I.free(c),I.free(g))}c=n;if(m||!h||l)c=new I(n.x+q,n.y+u);g=w;if(m||!k||l)g=new I(w.x+v,w.y+z);!p&&!m&&h&&3w+1&&(r=Math.max((y-w)*M+a.Ca,r)),n+1w+1&&(b=a.position.x*M));if(a.pn)switch(a.Xt){case "negative":b=-(l.scrollWidth-b-l.clientWidth);break;case "reverse":b=l.scrollWidth-b-l.clientWidth}l.scrollLeft=b;a.hasVerticalScrollbar&&a.allowVerticalScroll&&(E+1e+1&&(l.scrollTop=a.position.y*M));u=a.Ca;w=a.Ba;l.style.width=u+(a.cf?a.Db:0)+"px";l.style.height=w+(a.xe?a.Db:0)+"px";return c!==u||d!==w||a.animationManager.zb?(c=N.allocAt(f,g,h,k),a.onViewportBoundsChanged(c,a.viewportBounds,M,p),N.free(c),!1):!0}t=Q.prototype;
t.add=function(a){var b=a.diagram;if(b!==this&&(null!==b&&C("Cannot add part "+a.toString()+" to "+this.toString()+". It is already a part of "+b.toString()),b=this.Oj(a.layerName),null===b&&(b=this.Oj("")),null===b&&C('Cannot add a Part when unable find a Layer named "'+a.layerName+'" and there is no default Layer'),a.layer!==b)){var c=b.li(99999999,a,a.diagram===this);0<=c&&this.cb(ee,"parts",b,null,a,null,c);b.isTemporary||this.Xa();a.D(1);c=a.layerChanged;null!==c&&c(a,null,b)}};
t.li=function(a){this.partManager.li(a);var b=this;Gj(a,function(a){Hj(b,a)});(a instanceof te||a instanceof pf&&null!==a.placeholder)&&a.v();null!==a.data&&Gj(a,function(a){Ij(b.partManager,a)});!0!==tj(a)&&!0!==uj(a)||this.ze.add(a);Jj(a,!0,this);Kj(a)?(a.actualBounds.w()&&this.N(Fj(a,a.actualBounds)),this.Xa()):a.isVisible()&&a.actualBounds.w()&&this.N(Fj(a,a.actualBounds));this.Wb()};
t.mc=function(a){a.Cj();this.partManager.mc(a);var b=this;null!==a.data&&Gj(a,function(a){Lj(b.partManager,a,b)});this.ze.remove(a);Kj(a)?(a.actualBounds.w()&&this.N(Fj(a,a.actualBounds)),this.Xa()):a.isVisible()&&a.actualBounds.w()&&this.N(Fj(a,a.actualBounds));this.Wb()};t.remove=function(a){Mj(this,a,!0)};
function Mj(a,b,c){var d=b.layer;null!==d&&d.diagram===a&&(b.isSelected=!1,b.isHighlighted=!1,b.D(2),c&&b.Jj(),c=d.mc(-1,b,!1),0<=c&&a.cb(fe,"parts",d,b,null,c,null),a=b.layerChanged,null!==a&&a(b,d,null))}t.Bs=function(a,b){void 0===b&&(b=!1);if(Aa(a))for(var c=a.length,d=0;dS||225S)&&q.rotate(-S,X/2,wa/2);J=new N(0,0,X,wa);u.ui(J,E);q.Ga(u);E=-u.x+na/2*z.scale;z=-u.y+na/2*z.scale;w.assign(R);na=isNaN(R.x);var db=isNaN(R.y);if(na||db){X=X/2+3;wa=wa/2+3;var gb=45<=S&&135>=S,Db=225<=S&&315>=S;M===Zf&&(gb||Db)?(w.x=db?X:R.y,w.y=na?wa:R.x,gb?0<=A||isNaN(A)&&.5>B||!na||(w.y=-wa):Db&&((0<=A||isNaN(A)&&.5>B)&&na&&(w.y=-wa),db&&(w.x=-X))):(na&&(w.x=0<=A||isNaN(A)&&.5>B?X:-X),db&&(w.y=-wa),w.rotate(S))}else w.rotate(S);
G+=w.x;ca+=w.y;J.set(y);J.h(G+E,ca+z,y.width,y.height);r.push(J);c.Zc(J)}}if(null!==g)for(d=g.labelNodes;d.next();)d.value.measure(Infinity,Infinity);a.fg=c;a.position.h(b.x+c.x,b.y+c.y);Pb(e,c.width||0,c.height||0);ld.free(q);I.free(u);I.free(w)}}}};
Vm.prototype.arrange=function(a,b){var c=b.length;if(a instanceof te||a instanceof T){var d=a,e=null;a instanceof te&&(e=a,d=e.adornedPart);var f=a instanceof te?null:d.path,g=a.j;if(0!==g.length){var h=0;if(null!==f&&hg.height)continue}else if(l.position>g.width)continue;var m=l.separatorStrokeWidth;isNaN(m)&&(m=c?a.defaultRowSeparatorStrokeWidth:a.defaultColumnSeparatorStrokeWidth);var n=l.separatorStroke;null===n&&(n=c?a.defaultRowSeparatorStroke:a.defaultColumnSeparatorStroke);if(0!==m&&null!==n){hi(a,b,n,!1,!1,g,f);n=!1;var p=l.separatorDashArray;
null===p&&(p=c?a.defaultRowSeparatorDashArray:a.defaultColumnSeparatorDashArray);null!==p&&(n=!0,b.bs(p,0));b.beginPath();p=l.position+m;c?p>g.height&&(m-=p-g.height):p>g.width&&(m-=p-g.width);l=l.position+m/2;b.lineWidth=m;m=a.yb;c?(l+=m.top,p=g.width-m.right,b.moveTo(m.left,l),b.lineTo(p,l)):(l+=m.left,p=g.height-m.bottom,b.moveTo(l,m.top),b.lineTo(l,p));b.stroke();b.Ne();n&&b.Yr()}}}}
function hn(a,b,c,d,e){for(var f=d.length,g=a.actualBounds,h=a.naturalBounds,k=kn(a,!0),l=kn(a,!1),m=0;m