UNPKG

@zklogic/draw.io

Version:

Draw.IO - Graph Editor integration in Angular-cli

1 lines 1.24 MB
function mxBpmnShape(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeEREntity(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeEREntityExt(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeERAttribute(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeERHas(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeERCloud(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeERHierarchy(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeERNote(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeERChen(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeERBachman(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeERInfEng(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeERRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeERAnchor(e,t,o,n){mxShape.call(this),this.bounds=e}mxUtils.extend(mxBpmnShape,mxShape),mxBpmnShape.prototype.customProperties=[{name:"symbol",dispName:"Event",type:"enum",defVal:"general",enumList:[{val:"general",dispName:"General"},{val:"message",dispName:"Message"},{val:"timer",dispName:"Timer"},{val:"escalation",dispName:"Escalation"},{val:"conditional",dispName:"Conditional"},{val:"link",dispName:"Link"},{val:"error",dispName:"Error"},{val:"cancel",dispName:"Cancel"},{val:"compensation",dispName:"Compensation"},{val:"signal",dispName:"Signal"},{val:"multiple",dispName:"Multiple"},{val:"parallelMultiple",dispName:"Parallel Multiple"},{val:"terminate",dispName:"Terminate"},{val:"exclusiveGw",dispName:"Exclusive Gw"},{val:"parallelGw",dispName:"Parallel Gw"},{val:"complexGw",dispName:"Complex Gw"}]},{name:"outline",dispName:"Event Type",type:"enum",defVal:"standard",enumList:[{val:"standard",dispName:"Standard"},{val:"eventInt",dispName:"Interrupting"},{val:"eventNonint",dispName:"Non-Interrupting"},{val:"catching",dispName:"Catching"},{val:"boundInt",dispName:"Bound Interrupting"},{val:"boundNonint",dispName:"Bound Non-Interrupting"},{val:"throwing",dispName:"Throwing"},{val:"end",dispName:"End"},{val:"none",dispName:"None"}]},{name:"background",dispName:"Background",type:"enum",defVal:"none",enumList:[{val:"gateway",dispName:"Gateway"},{val:"none",dispName:"None"}]}],mxBpmnShape.prototype.eventTypeEnum={START_STANDARD:"standard",EVENT_SP_INT:"eventInt",EVENT_SP_NONINT:"eventNonint",CATCHING:"catching",BOUND_INT:"boundInt",BOUND_NONINT:"boundNonint",THROWING:"throwing",END:"end",NONE:"none",GATEWAY:"gateway"},mxBpmnShape.prototype.eventEnum={GENERAL:"general",MESSAGE:"message",TIMER:"timer",ESCALATION:"escalation",CONDITIONAL:"conditional",LINK:"link",ERROR:"error",CANCEL:"cancel",COMPENSATION:"compensation",SIGNAL:"signal",MULTIPLE:"multiple",PAR_MULTI:"parallelMultiple",TERMINATE:"terminate",GW_EXCLUSIVE:"exclusiveGw",GW_PARALLEL:"parallelGw",GW_COMPLEX:"complexGw"},mxBpmnShape.prototype.miscEnum={OUTLINE:"outline",BACKGROUND:"background",SYMBOL:"symbol",GATEWAY:"gateway"},mxBpmnShape.prototype.paintVertexShape=function(e,t,o,n,i){this.redrawPath(e,t,o,n,i,mxBpmnShape.prototype.miscEnum.BACKGROUND),mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.BACKGROUND,mxBpmnShape.prototype.eventTypeEnum.NONE)===mxBpmnShape.prototype.eventTypeEnum.GATEWAY&&e.setShadow(!1),this.redrawPath(e,t,o,n,i,mxBpmnShape.prototype.miscEnum.OUTLINE),this.redrawPath(e,t,o,n,i,mxBpmnShape.prototype.miscEnum.SYMBOL)},mxBpmnShape.prototype.redrawPath=function(e,t,o,n,i,a){var s=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.BACKGROUND,mxBpmnShape.prototype.eventTypeEnum.NONE);if(a==mxBpmnShape.prototype.miscEnum.BACKGROUND){if(null!=s){var l=this.backgrounds[s];null!=l&&(e.translate(t,o),l.call(this,e,t,o,n,i,a))}}else if(a==mxBpmnShape.prototype.miscEnum.OUTLINE)s===mxBpmnShape.prototype.eventTypeEnum.GATEWAY?(e.translate(n/4,i/4),i/=2,n/=2,this.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.75),!1),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.75,.75),!1)]):this.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.145,.145),!1),new mxConnectionConstraint(new mxPoint(.145,.855),!1),new mxConnectionConstraint(new mxPoint(.855,.145),!1),new mxConnectionConstraint(new mxPoint(.855,.855),!1)],null!=(m=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.OUTLINE,mxBpmnShape.prototype.eventTypeEnum.NONE))&&null!=(l=this.outlines[m])&&l.call(this,e,t,o,n,i,s===mxBpmnShape.prototype.eventTypeEnum.GATEWAY);else if(a==mxBpmnShape.prototype.miscEnum.SYMBOL&&(s===mxBpmnShape.prototype.eventTypeEnum.GATEWAY&&(i/=2,n/=2),null!=(s=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.SYMBOL,null))&&null!=(l=this.symbols[s]))){var r=e.state.strokeColor,p=e.state.fillColor,m=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.OUTLINE,mxBpmnShape.prototype.eventTypeEnum.NONE);s===mxBpmnShape.prototype.eventEnum.MESSAGE?(e.translate(.15*n,.3*i),n*=.7,i*=.4):s===mxBpmnShape.prototype.eventEnum.TIMER?(e.translate(.11*n,.11*i),n*=.78,i*=.78):s===mxBpmnShape.prototype.eventEnum.ESCALATION?(e.translate(.19*n,.15*i),n*=.62,i*=.57):s===mxBpmnShape.prototype.eventEnum.CONDITIONAL?(e.translate(.3*n,.16*i),n*=.4,i*=.68):s===mxBpmnShape.prototype.eventEnum.LINK?(e.translate(.27*n,.33*i),n*=.46,i*=.34):s===mxBpmnShape.prototype.eventEnum.ERROR?(e.translate(.212*n,.243*i),n*=.58,i*=.507):s===mxBpmnShape.prototype.eventEnum.CANCEL?(e.translate(.22*n,.22*i),n*=.56,i*=.56):s===mxBpmnShape.prototype.eventEnum.COMPENSATION?(e.translate(.28*n,.35*i),n*=.44,i*=.3):s===mxBpmnShape.prototype.eventEnum.SIGNAL?(e.translate(.19*n,.15*i),n*=.62,i*=.57):s===mxBpmnShape.prototype.eventEnum.MULTIPLE?(e.translate(.2*n,.19*i),n*=.6,i*=.565):s===mxBpmnShape.prototype.eventEnum.PAR_MULTI?(e.translate(.2*n,.2*i),n*=.6,i*=.6):s===mxBpmnShape.prototype.eventEnum.TERMINATE?(e.translate(.05*n,.05*i),n*=.9,i*=.9):s===mxBpmnShape.prototype.eventEnum.GW_EXCLUSIVE&&(e.translate(.12*n,0),n*=.76);var h=!1;"star"===s?e.setFillColor(r):m!==mxBpmnShape.prototype.eventTypeEnum.THROWING&&m!==mxBpmnShape.prototype.eventTypeEnum.END||(e.setStrokeColor(p),e.setFillColor(r),h=!0),l.call(this,e,t,o,n,i,a,h),"star"===s?e.setFillColor(p):m!==mxBpmnShape.prototype.eventTypeEnum.THROWING&&m!==mxBpmnShape.prototype.eventTypeEnum.END||(e.setStrokeColor(r),e.setFillColor(p))}},mxBpmnShape.prototype.backgrounds={none:function(e,t,o,n,i){},gateway:function(e,t,o,n,i){e.begin(),e.moveTo(n/2,0),e.lineTo(n,i/2),e.lineTo(n/2,i),e.lineTo(0,i/2),e.close(),e.fillAndStroke()}},mxBpmnShape.prototype.outlines={none:function(e,t,o,n,i,a){a||e.setShadow(!1)},standard:function(e,t,o,n,i,a){e.ellipse(0,0,n,i),e.fillAndStroke(),a||e.setShadow(!1)},eventInt:function(e,t,o,n,i,a){e.ellipse(0,0,n,i),e.fillAndStroke(),a||e.setShadow(!1)},eventNonint:function(e,t,o,n,i,a){t=e.state.dashed,e.setDashed(!0),e.ellipse(0,0,n,i),e.fillAndStroke(),e.setDashed(t),a||e.setShadow(!1)},catching:function(e,t,o,n,i,a){e.ellipse(0,0,n,i),e.fillAndStroke(),a||e.setShadow(!1),e.ellipse(2,2,n-4,i-4),e.stroke()},boundInt:function(e,t,o,n,i,a){e.ellipse(0,0,n,i),e.fillAndStroke(),a||e.setShadow(!1),e.ellipse(2,2,n-4,i-4),e.stroke()},boundNonint:function(e,t,o,n,i,a){t=e.state.dashed,e.setDashed(!0),e.ellipse(0,0,n,i),e.fillAndStroke(),a||e.setShadow(!1),e.ellipse(2,2,n-4,i-4),e.stroke(),e.setDashed(t)},throwing:function(e,t,o,n,i,a){e.ellipse(0,0,n,i),e.fillAndStroke(),a||e.setShadow(!1),e.ellipse(.02*n+2,.02*i+2,.96*n-4,.96*i-4),e.stroke()},end:function(e,t,o,n,i,a){t=e.state.strokeWidth,e.setStrokeWidth(3*t),e.ellipse(0,0,n,i),e.fillAndStroke(),e.setStrokeWidth(t),a||e.setShadow(!1)}},mxBpmnShape.prototype.symbols={general:function(e,t,o,n,i){},message:function(e,t,o,n,i,a,s){e.rect(0,0,n,i),e.fillAndStroke(),"none"===mxUtils.getValue(this.style,"fillColor","none")&&s&&e.setStrokeColor("#ffffff"),e.begin(),e.moveTo(0,0),e.lineTo(.5*n,.5*i),e.lineTo(n,0),e.stroke()},timer:function(e,t,o,n,i){e.ellipse(0,0,n,i),e.fillAndStroke(),e.begin(),e.moveTo(.5*n,0),e.lineTo(.5*n,.0642*i),e.moveTo(.7484*n,.0654*i),e.lineTo(.7126*n,.1281*i),e.moveTo(.93*n,.2471*i),e.lineTo(.8673*n,.2854*i),e.moveTo(n,.5*i),e.lineTo(.9338*n,.5*i),e.moveTo(.93*n,.7509*i),e.lineTo(.8673*n,.7126*i),e.moveTo(.7484*n,.9326*i),e.lineTo(.7126*n,.8699*i),e.moveTo(.5*n,.9338*i),e.lineTo(.5*n,i),e.moveTo(.2496*n,.9325*i),e.lineTo(.2854*n,.8699*i),e.moveTo(.068*n,.7509*i),e.lineTo(.1307*n,.7126*i),e.moveTo(0,.5*i),e.lineTo(.0642*n,.5*i),e.moveTo(.068*n,.2471*i),e.lineTo(.1307*n,.2854*i),e.moveTo(.2496*n,.0654*i),e.lineTo(.2854*n,.1281*i),e.moveTo(.5246*n,.0706*i),e.lineTo(.5*n,.5*i),e.lineTo(.7804*n,.5118*i),e.stroke()},escalation:function(e,t,o,n,i){e.begin(),e.moveTo(0,i),e.lineTo(.5*n,0),e.lineTo(n,i),e.lineTo(.5*n,.5*i),e.close(),e.fillAndStroke()},conditional:function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke(),e.begin(),e.moveTo(0,.1027*i),e.lineTo(.798*n,.1027*i),e.moveTo(0,.3669*i),e.lineTo(.798*n,.3669*i),e.moveTo(0,.6311*i),e.lineTo(.798*n,.6311*i),e.moveTo(0,.8953*i),e.lineTo(.798*n,.8953*i),e.stroke()},link:function(e,t,o,n,i){e.begin(),e.moveTo(0,.76*i),e.lineTo(0,.24*i),e.lineTo(.63*n,.24*i),e.lineTo(.63*n,0),e.lineTo(n,.5*i),e.lineTo(.63*n,i),e.lineTo(.63*n,.76*i),e.close(),e.fillAndStroke()},error:function(e,t,o,n,i){e.begin(),e.moveTo(0,i),e.lineTo(.3287*n,.123*i),e.lineTo(.6194*n,.6342*i),e.lineTo(n,0),e.lineTo(.6625*n,.939*i),e.lineTo(.3717*n,.5064*i),e.close(),e.fillAndStroke()},cancel:function(e,t,o,n,i){e.begin(),e.moveTo(.1051*n,0),e.lineTo(.5*n,.3738*i),e.lineTo(.8909*n,0),e.lineTo(n,.1054*i),e.lineTo(.623*n,.5*i),e.lineTo(n,.8926*i),e.lineTo(.8909*n,i),e.lineTo(.5*n,.6242*i),e.lineTo(.1051*n,i),e.lineTo(0,.8926*i),e.lineTo(.373*n,.5*i),e.lineTo(0,.1054*i),e.close(),e.fillAndStroke()},compensation:function(e,t,o,n,i){e.begin(),e.moveTo(0,.5*i),e.lineTo(.5*n,0),e.lineTo(.5*n,i),e.close(),e.moveTo(.5*n,.5*i),e.lineTo(n,0),e.lineTo(n,i),e.close(),e.fillAndStroke()},signal:function(e,t,o,n,i){e.begin(),e.moveTo(0,i),e.lineTo(.5*n,0),e.lineTo(n,i),e.close(),e.fillAndStroke()},multiple:function(e,t,o,n,i){e.begin(),e.moveTo(0,.39*i),e.lineTo(.5*n,0),e.lineTo(n,.39*i),e.lineTo(.815*n,i),e.lineTo(.185*n,i),e.close(),e.fillAndStroke()},parallelMultiple:function(e,t,o,n,i){e.begin(),e.moveTo(.38*n,0),e.lineTo(.62*n,0),e.lineTo(.62*n,.38*i),e.lineTo(n,.38*i),e.lineTo(n,.62*i),e.lineTo(.62*n,.62*i),e.lineTo(.62*n,i),e.lineTo(.38*n,i),e.lineTo(.38*n,.62*i),e.lineTo(0,.62*i),e.lineTo(0,.38*i),e.lineTo(.38*n,.38*i),e.close(),e.fillAndStroke()},terminate:function(e,t,o,n,i){e.ellipse(0,0,n,i),e.fillAndStroke()},exclusiveGw:function(e,t,o,n,i){t=e.state.strokeColor,o=e.state.fillColor,e.setStrokeColor(o),e.setFillColor(t),e.begin(),e.moveTo(.105*n,0),e.lineTo(.5*n,.38*i),e.lineTo(.895*n,0*i),e.lineTo(n,.11*i),e.lineTo(.6172*n,.5*i),e.lineTo(n,.89*i),e.lineTo(.895*n,i),e.lineTo(.5*n,.62*i),e.lineTo(.105*n,i),e.lineTo(0,.89*i),e.lineTo(.3808*n,.5*i),e.lineTo(0,.11*i),e.close(),e.fillAndStroke(),e.setStrokeColor(t),e.setFillColor(o)},parallelGw:function(e,t,o,n,i){t=e.state.strokeColor,o=e.state.fillColor,e.setStrokeColor(o),e.setFillColor(t),e.begin(),e.moveTo(.38*n,0),e.lineTo(.62*n,0),e.lineTo(.62*n,.38*i),e.lineTo(n,.38*i),e.lineTo(n,.62*i),e.lineTo(.62*n,.62*i),e.lineTo(.62*n,i),e.lineTo(.38*n,i),e.lineTo(.38*n,.62*i),e.lineTo(0,.62*i),e.lineTo(0,.38*i),e.lineTo(.38*n,.38*i),e.close(),e.fillAndStroke(),e.setStrokeColor(t),e.setFillColor(o)},complexGw:function(e,t,o,n,i){t=e.state.strokeColor,o=e.state.fillColor,e.setStrokeColor(o),e.setFillColor(t),e.begin(),e.moveTo(0,.44*i),e.lineTo(.36*n,.44*i),e.lineTo(.1*n,.18*i),e.lineTo(.18*n,.1*i),e.lineTo(.44*n,.36*i),e.lineTo(.44*n,0),e.lineTo(.56*n,0),e.lineTo(.56*n,.36*i),e.lineTo(.82*n,.1*i),e.lineTo(.9*n,.18*i),e.lineTo(.64*n,.44*i),e.lineTo(n,.44*i),e.lineTo(n,.56*i),e.lineTo(.64*n,.56*i),e.lineTo(.9*n,.82*i),e.lineTo(.82*n,.9*i),e.lineTo(.56*n,.64*i),e.lineTo(.56*n,i),e.lineTo(.44*n,i),e.lineTo(.44*n,.64*i),e.lineTo(.18*n,.9*i),e.lineTo(.1*n,.82*i),e.lineTo(.36*n,.56*i),e.lineTo(0,.56*i),e.close(),e.fillAndStroke(),e.setStrokeColor(t),e.setFillColor(o)},star:function(e,t,o,n,i){e.translate(n/5,i/6),i*=2/3,n*=.6,e.begin(),e.moveTo(0,i/4),e.lineTo(n/3,i/4),e.lineTo(n/2,0),e.lineTo(2*n/3,i/4),e.lineTo(n,i/4),e.lineTo(5*n/6,i/2),e.lineTo(n,3*i/4),e.lineTo(2*n/3,3*i/4),e.lineTo(n/2,i),e.lineTo(n/3,3*i/4),e.lineTo(0,3*i/4),e.lineTo(n/6,i/2),e.close(),e.fillAndStroke()}},mxCellRenderer.registerShape("mxgraph.bpmn.shape",mxBpmnShape),mxUtils.extend(mxShapeEREntity,mxShape),mxShapeEREntity.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"buttonText","Entity"),s=mxUtils.getValue(this.style,"textColor","#666666"),l=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");e.translate(t,o),n=Math.max(n,20),i=Math.max(i,20),this.background(e,t,o,n,i,10,s),e.setShadow(!1),this.mainText(e,t,o,n,i,a,l,s)},mxShapeEREntity.prototype.background=function(e,t,o,n,i,a,s){"round"===(t=mxUtils.getValue(this.style,"buttonStyle","round").toString())?(e.begin(),e.moveTo(0,a),e.arcTo(a,a,0,0,1,a,0),e.lineTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,i-a),e.arcTo(a,a,0,0,1,n-a,i),e.lineTo(a,i),e.arcTo(a,a,0,0,1,0,i-a),e.close(),e.fillAndStroke()):"rect"===t?(e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()):"dblFrame"===t&&(a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e.setFillColor(a),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),a=Math.min(n,i),e.begin(),e.moveTo(.1*a,.1*a),e.lineTo(n-.1*a,.1*a),e.lineTo(n-.1*a,i-.1*a),e.lineTo(.1*a,i-.1*a),e.close(),e.stroke())},mxShapeEREntity.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.5*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape("mxgraph.er.entity",mxShapeEREntity),mxShapeEREntity.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxShapeEREntityExt,mxShape),mxShapeEREntityExt.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"buttonText","Entity"),s=mxUtils.getValue(this.style,"subText","+ attribute 1,+ attribute 2,+ attribute 3").toString().split(","),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),r=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17"),p=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#008cff"),m=mxUtils.getValue(this.style,"fillColor2","#ffffff"),h=0;e.translate(t,o);for(var x=1.25*r,c=0;c<s.length;c++){var u=mxUtils.getSizeForString(s[c],r,mxConstants.DEFAULT_FONTFAMILY).width;u>h&&(h=u)}n=Math.max(n,20,h+10),i=Math.max(i,20,(s.length+1)*x),this.background(e,t,o,n,i,10),e.setShadow(!1),this.shapes(e,t,o,n,i,r,p,m,10,x),this.mainText(e,t,o,n,i,a,r,m),this.attrText(e,t,o,n,i,s,r,l,x,10)},mxShapeEREntityExt.prototype.background=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,"buttonStyle","round").toString(),e.begin(),"round"===t?(e.moveTo(0,a),e.arcTo(a,a,0,0,1,a,0),e.lineTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,i-a),e.arcTo(a,a,0,0,1,n-a,i),e.lineTo(a,i),e.arcTo(a,a,0,0,1,0,i-a)):"rect"===t&&(e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i)),e.close(),e.fillAndStroke()},mxShapeEREntityExt.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.5*s,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxShapeEREntityExt.prototype.shapes=function(e,t,o,n,i,a,s,l,r,p){"round"===(t=mxUtils.getValue(this.style,"buttonStyle","round").toString())?(e.begin(),e.moveTo(0,r),e.arcTo(r,r,0,0,1,r,0),e.lineTo(n-r,0),e.arcTo(r,r,0,0,1,n,r),e.lineTo(n,p),e.lineTo(0,p),e.close(),e.fill(),e.setFillColor(l),e.begin(),e.moveTo(n,p),e.lineTo(n,i-r),e.arcTo(r,r,0,0,1,n-r,i),e.lineTo(r,i),e.arcTo(r,r,0,0,1,0,i-r),e.lineTo(0,p),e.close(),e.fill()):"rect"===t&&(e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,p),e.lineTo(0,p),e.close(),e.fill(),e.setFillColor(l),e.begin(),e.moveTo(0,p),e.lineTo(n,p),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fill()),e.begin(),"round"===t?(e.moveTo(0,r),e.arcTo(r,r,0,0,1,r,0),e.lineTo(n-r,0),e.arcTo(r,r,0,0,1,n,r),e.lineTo(n,i-r),e.arcTo(r,r,0,0,1,n-r,i),e.lineTo(r,i),e.arcTo(r,r,0,0,1,0,i-r)):"rect"===t&&(e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i)),e.close(),e.stroke()},mxShapeEREntityExt.prototype.attrText=function(e,t,o,n,i,a,s,l,r,p){for(t=0;t<a.length;t++)e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*p,(t+1.5)*r,0,0,a[t],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape("mxgraph.er.entityExt",mxShapeEREntityExt),mxShapeEREntityExt.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxShapeERAttribute,mxShape),mxShapeERAttribute.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"buttonText","Entity"),s=mxUtils.getValue(this.style,"textColor","#666666"),l=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");e.translate(t,o),n=Math.max(n,20),i=Math.max(i,20),this.background(e,t,o,n,i,10,s),e.setShadow(!1),this.mainText(e,t,o,n,i,a,l,s)},mxShapeERAttribute.prototype.background=function(e,t,o,n,i,a,s){"simple"===(t=mxUtils.getValue(this.style,"buttonStyle","simple").toString())?(e.begin(),e.ellipse(0,0,n,i),e.fillAndStroke()):"dblFrame"===t&&(t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),e.setFillColor(t),e.begin(),e.ellipse(0,0,n,i),e.fillAndStroke(),a=Math.min(n,i),e.begin(),e.ellipse(.1*a,.1*a,n-.2*a,i-.2*a),e.stroke())},mxShapeERAttribute.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.5*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape("mxgraph.er.attribute",mxShapeERAttribute),mxShapeERAttribute.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.144,.144),!1),new mxConnectionConstraint(new mxPoint(.856,.144),!1),new mxConnectionConstraint(new mxPoint(.856,.856),!1),new mxConnectionConstraint(new mxPoint(.144,.856),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)],mxUtils.extend(mxShapeERHas,mxShape),mxShapeERHas.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"buttonText","Entity"),s=mxUtils.getValue(this.style,"textColor","#666666"),l=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");e.translate(t,o),n=Math.max(n,20),i=Math.max(i,20),this.background(e,t,o,n,i,10,s),e.setShadow(!1),this.mainText(e,t,o,n,i,a,l,s)},mxShapeERHas.prototype.background=function(e,t,o,n,i,a,s){"rhombus"===(t=mxUtils.getValue(this.style,"buttonStyle","rhombus").toString())?(e.begin(),e.moveTo(0,.5*i),e.lineTo(.5*n,0),e.lineTo(n,.5*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()):"dblFrame"===t&&(t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),e.setFillColor(t),e.begin(),e.moveTo(0,.5*i),e.lineTo(.5*n,0),e.lineTo(n,.5*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.1*n,.5*i),e.lineTo(.5*n,.1*i),e.lineTo(.9*n,.5*i),e.lineTo(.5*n,.9*i),e.close(),e.stroke())},mxShapeERHas.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.5*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape("mxgraph.er.has",mxShapeERHas),mxShapeERHas.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.75),!1),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.75,.75),!1)],mxUtils.extend(mxShapeERCloud,mxShape),mxShapeERCloud.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"buttonText","Entity"),s=mxUtils.getValue(this.style,"textColor","#666666"),l=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");e.translate(t,o),n=Math.max(n,20),i=Math.max(i,20),this.background(e,t,o,n,i,10,s),e.setShadow(!1),this.mainText(e,t,o,n,i,a,l,s)},mxShapeERCloud.prototype.background=function(e,t,o,n,i,a,s){e.begin(),e.moveTo(.25*n,.25*i),e.curveTo(.05*n,.25*i,0,.5*i,.16*n,.55*i),e.curveTo(0,.66*i,.18*n,.9*i,.31*n,.8*i),e.curveTo(.4*n,i,.7*n,i,.8*n,.8*i),e.curveTo(n,.8*i,n,.6*i,.875*n,.5*i),e.curveTo(n,.3*i,.8*n,.1*i,.625*n,.2*i),e.curveTo(.5*n,.05*i,.3*n,.05*i,.25*n,.25*i),e.fillAndStroke()},mxShapeERCloud.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.5*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape("mxgraph.er.cloud",mxShapeERCloud),mxShapeERCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.08,.5),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.1),!1),new mxConnectionConstraint(new mxPoint(.5,.92),!1),new mxConnectionConstraint(new mxPoint(.24,.24),!1),new mxConnectionConstraint(new mxPoint(.22,.8),!1),new mxConnectionConstraint(new mxPoint(.81,.2),!1),new mxConnectionConstraint(new mxPoint(.78,.78),!1)],mxUtils.extend(mxShapeERHierarchy,mxShape),mxShapeERHierarchy.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"buttonText","main").toString().split(","),s=mxUtils.getValue(this.style,"subText","sub").toString().split(","),l=mxUtils.getValue(this.style,"textColor","#666666"),r=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");e.translate(t,o),n=Math.max(n,20),i=Math.max(i,20),this.background(e,t,o,n,i,10,l),e.setShadow(!1),this.shapeText(e,t,o,n,i,a,s,r,l)},mxShapeERHierarchy.prototype.background=function(e,t,o,n,i,a,s){"round"===(t=mxUtils.getValue(this.style,"buttonStyle","round").toString())?(e.begin(),e.moveTo(0,a),e.arcTo(a,a,0,0,1,a,0),e.lineTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,i-a),e.arcTo(a,a,0,0,1,n-a,i),e.lineTo(a,i),e.arcTo(a,a,0,0,1,0,i-a),e.close(),e.fillAndStroke()):"rect"===t?(e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()):"dblFrame"===t&&(a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),e.setFillColor(a),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),a=Math.min(n,i),e.begin(),e.moveTo(.1*a,.1*a),e.lineTo(n-.1*a,.1*a),e.lineTo(n-.1*a,i-.1*a),e.lineTo(.1*a,i-.1*a),e.close(),e.stroke()),s=o=0,"round"===t?(o=.5*n,s=a,e.translate(o,s),n=.5*n-a,i-=2*a,e.begin(),e.moveTo(0,a),e.arcTo(a,a,0,0,1,a,0),e.lineTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,i-a),e.arcTo(a,a,0,0,1,n-a,i),e.lineTo(a,i),e.arcTo(a,a,0,0,1,0,i-a),e.close(),e.fillAndStroke()):"rect"===t?(o=.5*n,s=a,e.translate(o,s),n=.5*n-a,i-=2*a,e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()):"dblFrame"===t&&(o=.5*n,s=.15*a,e.translate(o,s),n=.5*n-.15*a,i-=.3*a,a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),e.setFillColor(a),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),a=Math.min(n,i),e.begin(),e.moveTo(.1*a,.1*a),e.lineTo(n-.1*a,.1*a),e.lineTo(n-.1*a,i-.1*a),e.lineTo(.1*a,i-.1*a),e.close(),e.stroke()),e.translate(-o,-s)},mxShapeERHierarchy.prototype.shapeText=function(e,t,o,n,i,a,s,l,r,p){e.begin(),e.setFontSize(l),e.setFontColor(r),e.text(.25*n,.5*(i-l),0,0,a[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.25*n,.5*(i+l),0,0,a[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.7*n,.5*(i-l),0,0,s[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.7*n,.5*(i+l),0,0,s[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape("mxgraph.er.hierarchy",mxShapeERHierarchy),mxShapeERHierarchy.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxShapeERNote,mxShape),mxShapeERNote.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"buttonText","Entity"),s=mxUtils.getValue(this.style,"textColor","#666666"),l=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17"),r=mxUtils.getValue(this.style,"fillColor2","#ffffff");e.translate(t,o),n=Math.max(n,40),i=Math.max(i,40),this.background(e,t,o,n,i,20),e.setShadow(!1),this.flipShape(e,t,o,n,i,20,r),this.mainText(e,t,o,n,i,a,l,s)},mxShapeERNote.prototype.background=function(e,t,o,n,i,a){e.begin(),e.moveTo(0,0),e.lineTo(n-a,0),e.lineTo(n,a),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxShapeERNote.prototype.flipShape=function(e,t,o,n,i,a,s){e.setLineJoin("round"),e.setFillColor(s),e.begin(),e.moveTo(n-a,0),e.lineTo(n,a),e.lineTo(n-a,a),e.close(),e.fillAndStroke()},mxShapeERNote.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.5*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape("mxgraph.er.note",mxShapeERNote),mxShapeERNote.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxShapeERChen,mxShape),mxShapeERChen.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"textColor","#666666"),s=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");e.translate(t,o),n=Math.max(n,40),i=Math.max(i,40),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i,s,a)},mxShapeERChen.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxShapeERChen.prototype.foreground=function(e,t,o,n,i,a,s){e.begin(),e.moveTo(0,.25*i),e.lineTo(n,.25*i),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.moveTo(0,.75*i),e.lineTo(n,.75*i),e.moveTo(.25*n,.5*i),e.lineTo(.25*n,i),e.moveTo(.5*n,.25*i),e.lineTo(.5*n,i),e.moveTo(.75*n,.5*i),e.lineTo(.75*n,i),e.stroke(),e.begin(),e.setFontSize(a),e.setFontColor(s),e.text(.5*n,.125*i,0,0,"ERD Peter Chen's Notation",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontSize(.85*a),e.text(.25*n,.375*i,0,0,"Cardinality",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.75*n,.375*i,0,0,"Optionality",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontSize(.7*a),e.text(.125*n,.625*i,0,0,"1",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.375*n,.625*i,0,0,"One",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.625*n,.625*i,0,0,"0",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.875*n,.625*i,0,0,"Optional",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.125*n,.875*i,0,0,"N",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.375*n,.875*i,0,0,"Many",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.625*n,.875*i,0,0,"1",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.875*n,.875*i,0,0,"Mandatory",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape("mxgraph.er.chens",mxShapeERChen),mxShapeERChen.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxShapeERBachman,mxShape),mxShapeERBachman.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"textColor","#666666"),s=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i,s,a)},mxShapeERBachman.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxShapeERBachman.prototype.foreground=function(e,t,o,n,i,a,s){e.begin(),e.moveTo(0,.125*i),e.lineTo(n,.125*i),e.moveTo(0,.25*i),e.lineTo(n,.25*i),e.moveTo(0,.375*i),e.lineTo(n,.375*i),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.moveTo(0,.625*i),e.lineTo(n,.625*i),e.moveTo(0,.75*i),e.lineTo(n,.75*i),e.moveTo(0,.875*i),e.lineTo(n,.875*i),e.moveTo(.5*n,.125*i),e.lineTo(.5*n,i),e.stroke(),e.begin(),e.setFontSize(a),e.setFontColor(s),e.text(.5*n,.0625*i,0,0,"ERD Bachman's Notation",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontSize(.85*a),e.text(.52*n,.1875*i,0,0,"Relationship",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.52*n,.3125*i,0,0,"Cardinality (One)",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.52*n,.4375*i,0,0,"Cardinality (Many)",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.52*n,.5625*i,0,0,"Mandatory, One",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.52*n,.6875*i,0,0,"Mandatory, Many",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.52*n,.8125*i,0,0,"Optional, One",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.52*n,.9375*i,0,0,"Optional, Many",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),t=mxUtils.getSizeForString("has/forms",a,mxConstants.DEFAULT_FONTFAMILY).width,e.begin(),e.moveTo(.04*n,.1875*i),e.lineTo(.25*n-.5*t,.1875*i),e.moveTo(.25*n+.5*t,.1875*i),e.lineTo(.46*n,.1875*i),e.text(.25*n,.1875*i,0,0,"has/forms",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,!0,0,0),e.moveTo(.04*n,.3125*i),e.lineTo(.46*n,.3125*i),e.moveTo(.04*n,.4375*i),e.lineTo(.46*n,.4375*i),e.moveTo(.46*n,.405*i),e.lineTo(.4*n,.4375*i),e.lineTo(.46*n,.47*i),e.moveTo(.04*n,.5625*i),e.lineTo(.46*n,.5625*i),e.moveTo(.38*n,.53*i),e.lineTo(.38*n,.595*i),e.moveTo(.04*n,.6875*i),e.lineTo(.46*n,.6875*i),e.moveTo(.46*n,.655*i),e.lineTo(.4*n,.6875*i),e.lineTo(.46*n,.72*i),e.moveTo(.38*n,.655*i),e.lineTo(.38*n,.72*i),e.moveTo(.04*n,.8125*i),e.lineTo(.46*n,.8125*i),e.moveTo(.04*n,.9375*i),e.lineTo(.46*n,.9375*i),e.moveTo(.46*n,.905*i),e.lineTo(.4*n,.9375*i),e.lineTo(.46*n,.97*i),e.stroke(),t=i/15,e.begin(),e.ellipse(.46*n-t,.8125*i-.5*t,t,t),e.fillAndStroke(),e.begin(),e.ellipse(.4*n-t,.9375*i-.5*t,t,t),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.er.bachmans",mxShapeERBachman),mxShapeERBachman.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxShapeERInfEng,mxShape),mxShapeERInfEng.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"textColor","#666666"),s=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");e.translate(t,o),n=Math.max(n,i/1.5),i=Math.max(i,5*s),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i,s,a)},mxShapeERInfEng.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxShapeERInfEng.prototype.foreground=function(e,t,o,n,i,a,s){e.begin(),e.moveTo(0,.2*i),e.lineTo(n,.2*i),e.moveTo(0,.4*i),e.lineTo(n,.4*i),e.moveTo(0,.6*i),e.lineTo(n,.6*i),e.moveTo(0,.8*i),e.lineTo(n,.8*i),e.moveTo(.5*n,.2*i),e.lineTo(.5*n,i),e.stroke(),e.begin(),e.setFontSize(a),e.setFontColor(s),e.text(.5*n,.1*i,0,0,"ERD Information Engineering Notation",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontSize(.85*a),e.text(.52*n,.3*i,0,0,"Zero or one",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.52*n,.5*i,0,0,"One only",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.52*n,.7*i,0,0,"Zero or more",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.52*n,.9*i,0,0,"One or more",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),t=i/12,e.begin(),e.moveTo(.04*n,.3*i),e.lineTo(.46*n,.3*i),e.moveTo(.46*n-t,.25*i),e.lineTo(.46*n-t,.35*i),e.moveTo(.04*n,.5*i),e.lineTo(.46*n,.5*i),e.moveTo(.46*n-2*t,.45*i),e.lineTo(.46*n-2*t,.55*i),e.moveTo(.46*n-2.5*t,.45*i),e.lineTo(.46*n-2.5*t,.55*i),e.moveTo(.04*n,.7*i),e.lineTo(.46*n,.7*i),e.moveTo(.46*n,.65*i),e.lineTo(.46*n-2*t,.7*i),e.lineTo(.46*n,.75*i),e.stroke(),e.moveTo(.04*n,.9*i),e.lineTo(.46*n,.9*i),e.moveTo(.46*n,.85*i),e.lineTo(.46*n-2*t,.9*i),e.lineTo(.46*n,.95*i),e.moveTo(.46*n-2.5*t,.85*i),e.lineTo(.46*n-2.5*t,.95*i),e.stroke(),e.begin(),e.ellipse(.46*n-3*t,.3*i-.5*t,t,t),e.fillAndStroke(),e.begin(),e.ellipse(.46*n-3*t,.7*i-.5*t,t,t),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.er.ie",mxShapeERInfEng),mxShapeERInfEng.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxMarker.addMarker("ERone",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1);return function(){e.begin(),e.moveTo(n.x-m/2-h/2,n.y-h/2+m/2),e.lineTo(n.x-m/2+h/2,n.y-h/2-m/2),e.stroke()}})),mxMarker.addMarker("ERmandOne",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1);return function(){e.begin(),e.moveTo(n.x-m/2-h/2,n.y-h/2+m/2),e.lineTo(n.x-m/2+h/2,n.y-h/2-m/2),e.moveTo(n.x-m-h/2,n.y-h+m/2),e.lineTo(n.x-m+h/2,n.y-h-m/2),e.stroke()}})),mxMarker.addMarker("ERmany",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1);return function(){e.begin(),e.moveTo(n.x+h/2,n.y-m/2),e.lineTo(n.x-m,n.y-h),e.lineTo(n.x-h/2,n.y+m/2),e.stroke()}})),mxMarker.addMarker("ERoneToMany",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1);return function(){e.begin(),e.moveTo(n.x-m-h/2,n.y-h+m/2),e.lineTo(n.x-m+h/2,n.y-h-m/2),e.moveTo(n.x+h/2,n.y-m/2),e.lineTo(n.x-m,n.y-h),e.lineTo(n.x-h/2,n.y+m/2),e.stroke()}})),mxMarker.addMarker("ERzeroToMany",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1),x=s/2;return function(){if(e.begin(),e.ellipse(n.x-1.5*m-x,n.y-1.5*h-x,2*x,2*x),p){var o=mxUtils.getValue(t.style,mxConstants.STYLE_STROKECOLOR,"#666666");e.setFillColor("#ffffff"),e.fillAndStroke(),e.setFillColor(o)}else e.stroke();e.begin(),e.moveTo(n.x+h/2,n.y-m/2),e.lineTo(n.x-m,n.y-h),e.lineTo(n.x-h/2,n.y+m/2),e.stroke()}})),mxMarker.addMarker("ERzeroToOne",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1),x=s/2;return function(){if(e.begin(),e.ellipse(n.x-1.5*m-x,n.y-1.5*h-x,2*x,2*x),p){var o=mxUtils.getValue(t.style,mxConstants.STYLE_STROKECOLOR,"#666666");e.setFillColor("#ffffff"),e.fillAndStroke(),e.setFillColor(o)}else e.stroke();e.begin(),e.moveTo(n.x-m/2-h/2,n.y-h/2+m/2),e.lineTo(n.x-m/2+h/2,n.y-h/2-m/2),e.stroke()}})),mxUtils.extend(mxShapeERRRect,mxShape),mxShapeERRRect.prototype.cst={RRECT:"mxgraph.er.rrect",R_SIZE:"rSize"},mxShapeERRRect.prototype.customProperties=[{name:"rSize",dispName:"Rounding Size",type:"float"}],mxShapeERRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeERRRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeERRRect.prototype.cst.RRECT,mxShapeERRRect),mxShapeERRRect.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxShapeERAnchor,mxShape),mxShapeERAnchor.prototype.cst={ANCHOR:"mxgraph.er.anchor"},mxShapeERAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeERAnchor.prototype.cst.ANCHOR,mxShapeERAnchor);var mxIOS7C={MAIN_TEXT:"mainText",SUB_TEXT:"subText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",BAR_POS:"barPos",BUTTON_TEXT:"buttonText",BUTTON_STATE:"buttonState",SELECTED:"+",STATE_ON:"on",STATE_OFF:"off",GRID_SIZE:"gridSize",SHAPE_IOS7_APP_BAR:"mxgraph.ios7ui.appBar",SHAPE_IOS7_ON_OFF_BUTTON:"mxgraph.ios7ui.onOffButton",SHAPE_IOS7_SLIDER:"mxgraph.ios7ui.slider",SHAPE_IOS7_DOWNLOAD_BAR:"mxgraph.ios7ui.downloadBar",SHAPE_IOS7_ICON:"mxgraph.ios7ui.icon",SHAPE_IOS7_HOR_BUTTON_BAR:"mxgraph.ios7ui.horButtonBar",SHAPE_IOS7_PAGE_CONTROL:"mxgraph.ios7ui.pageControl",SHAPE_IOS7_EXPAND:"mxgraph.ios7ui.expand",SHAPE_IOS7_ICON_GRID:"mxgraph.ios7ui.iconGrid",SHAPE_IOS7_PHONE:"mxgraph.ios7ui.phone",SHAPE_IOS7_SEARCH_BOX:"mxgraph.ios7ui.searchBox",SHAPE_IOS7_URL:"mxgraph.ios7ui.url",SHAPE_IOS7_ACTION_DIALOG:"mxgraph.ios7ui.actionDialog",STYLE_FILLCOLOR2:"fillColor2",STYLE_FILLCOLOR3:"fillColor3",STYLE_TEXTCOLOR:"textColor",STYLE_TEXTCOLOR2:"textColor2",STYLE_STROKECOLOR2:"strokeColor2",STYLE_STROKECOLOR3:"strokeColor3",STYLE_TEXTSIZE:"textSize"};function mxShapeIOS7AppBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7OnOffButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7Slider(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.barPos=80}function mxShapeIOS7DownloadBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.barPos=80}function mxShapeIOS7Icon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7horButtonBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7pageControl(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7iconGrid(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7phone(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7searchBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7URL(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7Actiondialog(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7Anchor(e,t,o,n){mxShape.call(this),this.bounds=e}function mxShapeIOS7RRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7LeftButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7RightButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7TopButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7BottomButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7HorLines(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7MarginRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7Callout(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIOS7SelectBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.dx2=70,this.size=10}function mxShapeIOS7Slider2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupMultiButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupHorButtonBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupVerButtonBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupOnOffButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupAnchor(e,t,o,n){mxShape.call(this),this.bounds=e}function mxShapeMockupTopButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupBottomButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupRightButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupLeftButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupVideoPlayer(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.barPos=20,this.barHeight=30}function mxShapeMockupAccordion(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupBrowserWindow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupUserMale(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupUserFemale(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupGroup(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupWindow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupHorTabBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupVerTabBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupAlertBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupContainersRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupContainersAnchor(e,t,o,n){mxShape.call(this),this.bounds=e}function mxShapeMockupContrainersTopButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupContainersLeftButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupContainersMarginRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupContainersMarginRect2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupCheckboxGroup(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupRadioGroup(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupColorPicker(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupComboBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupSpinner(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupMenuBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupHorSlider(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupListBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupPwField(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupSplitter(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupWedgeBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupSearchBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupSignIn(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupCalendar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupEmailForm(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupFormsRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupFormsAnchor(e,t,o,n){mxShape.call(this),this.bounds=e}function mxShapeMockupFormsCheckbox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupFormsURect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupBarChart(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupColumnChart(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupLineChart(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupPieChart(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupIconGrid(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupBubbleChart(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupGauge(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.gaugePos=25}function mxShapeMockupPlotChart(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupGanttChart(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupSimpleIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupGraphicsAnchor(e,t,o,n){mxShape.call(this),this.bounds=e}function mxShapeMockupGraphicsRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupCurlyBrace(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupLine(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupScratchOut(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupRedX(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupPlaybackControls(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupProgressBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.barPos=20}function mxShapeMockupShoppingCart(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupRating(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupMail(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupVolumeSlider(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.barPos=80}function mxShapeMockupEdit(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupPrint(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupShare(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupTrashcan(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupCopyright(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupRegistered(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupVolume(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupRuler(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupRuler2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupRevisionTable(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupStatusBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupPin(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupMiscRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupMiscAnchor(e,t,o,n){mxShape.call(this),this.bounds=e}function mxShapeMockupBreadcrumb(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupStepBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupCoverFlow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupScrollBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupPagination(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupPageControl(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupMapNavigator(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupNavigationAnchor(e,t,o,n){mxShape.call(this),this.bounds=e}function mxShapeMockupLink(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupLinkBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupCallout(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupStickyNote(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupStickyNote2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupBulletedList(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupTextBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupCaptcha(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupAlphanumeric(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupTextRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}mxUtils.extend(mxShapeIOS7AppBar,mxShape),mxShapeIOS7AppBar.prototype.customProperties=[{name:"fillColor2",dispName:"Fill Color 2",type:"color"}],mxShapeIOS7AppBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeIOS7AppBar.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fill()},mxShapeIOS7AppBar.prototype.foreground=function(e,t,o,n,i){e.setFillColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_FILLCOLOR2,"#222222")),e.ellipse(5,.5*i-1.5,3,3),e.fill(),e.ellipse(9,.5*i-1.5,3,3),e.fill(),e.ellipse(13,.5*i-1.5,3,3),e.fill(),e.ellipse(17,.5*i-1.5,3,3),e.fill(),e.ellipse(21,.5*i-1.5,3,3),e.fill(),e.ellipse(54,.5*i+2,2,2),e.fillAndStroke(),e.setStrokeWidth(2),e.begin(),e.moveTo(52,.5*i+1),e.arcTo(3.5,3.5,0,0,1,58,.5*i+1),e.stroke(),e.begin(),e.moveTo(50,.5*i-1),e.arcTo(6,6,0,0,1,60,.5*i-1),e.stroke(),e.begin(),e.moveTo(n-19,.5*i-2),e.lineTo(n-6,.5*i-2),e.lineTo(n-6,.5*i+2),e.lineTo(n-19,.5*i+2),e.close(),e.fill(),e.setStrokeWidth(1),e.begin(),e.moveTo(n-44,.5*i-2.5),e.lineTo(n-36,.5*i+2.5),e.lineTo(n-40,.5*i+5),e.lineTo(n-40,.5*i-5),e.lineTo(n-36,.5*i-2.5),e.lineTo(n-44,.5*i+2.5),e.stroke(),e.begin(),e.moveTo(n-20,.5*i-3),e.lineTo(n-5,.5*i-3),e.lineTo(n-5,.5*i-1),e.lineTo(n-3.5,.5*i-1),e.lineTo(n-3.5,.5*i+1),e.lineTo(n-5,.5*i+1),e.lineTo(n-5,.5*i+3),e.lineTo(n-20,.5*i+3),e.close(),e.stroke()},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_APP_BAR,mxShapeIOS7AppBar),mxUtils.extend(mxShapeIOS7OnOffButton,mxShape),mxShapeIOS7OnOffButton.prototype.customProperties=[{name:"buttonState",dispName:"Button State",type:"enum",enumList:[{val:"on",dispName:"On"},{val:"off",dispName:"Off"}]},{name:"strokeColor2",dispName:"Stroke Color 2",type:"color"},{name:"fillColor2",dispName:"Fill Color 2",type:"color"}],mxShapeIOS7OnOffButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),n=Math.max(n,2*i);var a=mxUtils.getValue(this.style,mxIOS7C.BUTTON_STATE,mxIOS7C.STATE_ON);this.background(e,t,o,n,i,a),e.setShadow(!1),this.foreground(e,t,o,n,i,a)},mxShapeIOS7OnOffButton.prototype.background=function(e,t,o,n,i,a){a===mxIOS7C.STATE_ON?(e.roundrect(0,0,n,i,.5*i,.5*i),e.fillAndStroke()):a===mxIOS7C.STATE_OFF&&(e.setStrokeColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_STROKECOLOR2,"#aaaaaa")),e.setFillColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_FILLCOLOR2,"#ffffff")),e.roundrect(0,0,n,i,.5*i,.5*i),e.fillAndStroke())},mxShapeIOS7OnOffButton.prototype.foreground=function(e,t,o,n,i,a){e.setFillColor("#ffffff"),a===mxIOS7C.STATE_ON?(e.ellipse(n-i+1,1,i-2,i-2),e.fill()):(e.ellipse(0,0,i,i),e.stroke())},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_ON_OFF_BUTTON,mxShapeIOS7OnOffButton),mxUtils.extend(mxShapeIOS7Slider,mxShape),mxShapeIOS7Slider.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setShadow(!1),this.foreground(e,n,i)},mxShapeIOS7Slider.prototype.foreground=function(e,t,o){e.setStrokeWidth(2),e.begin(),e.moveTo(0,.5*o),e.lineTo(t,.5*o),e.stroke();var n=mxUtils.getValue(this.style,mxIOS7C.BAR_POS,"80");n=Math.min(n,100),t=0+(t-0)*(n=Math.max(n,0))/100,e.setStrokeColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_STROKECOLOR2,"#a0a0a0")),e.ellipse(t-5,.5*o-5,10,10),e.fillAndStroke()},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_SLIDER,mxShapeIOS7Slider),Graph.handleFactory[mxIOS7C.SHAPE_IOS7_SLIDER]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(e.x+t/100*e.width,e.y+e.height/2)}),(function(e,t){this.state.style.barPos=Math.round(1e3*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/1e3}))]},mxUtils.extend(mxShapeIOS7DownloadBar,mxShape),mxShapeIOS7DownloadBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,max:1,defVal:30},{name:"strokeColor2",dispName:"Stroke Color 2",type:"color"}],mxShapeIOS7DownloadBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.foreground(e,n,i)},mxShapeIOS7DownloadBar.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"");e.setFontStyle(mxConstants.FONT_BOLD),e.text(.5*t,.2*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),n=mxUtils.getValue(this.style,mxIOS7C.BAR_POS,"80"),n=Math.min(n,100),n=t*(n=Math.max(n,0))/100,e.setStrokeWidth(2),e.setStrokeColor(mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"")),e.begin(),e.moveTo(0,.5*o),e.lineTo(t,.5*o),e.stroke(),e.setStrokeColor(mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"")),e.begin(),e.moveTo(0,.5*o),e.lineTo(n,.5*o),e.stroke()},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_DOWNLOAD_BAR,mxShapeIOS7DownloadBar),Graph.handleFactory[mxIOS7C.SHAPE_IOS7_DOWNLOAD_BAR]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(e.x+t/100*e.width,e.y+e.height/2)}),(function(e,t){this.state.style.barPos=Math.round(1e3*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/1e3}))]},mxUtils.extend(mxShapeIOS7Icon,mxShape),mxShapeIOS7Icon.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.foreground(e,n,i)},mxShapeIOS7Icon.prototype.foreground=function(e,t,o){e.setGradient("#00D0F0","#0080F0",.325*t,0,.675*t,.5*o,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(0,0,t,o,.1*t,.1*o),e.fill();var n=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"");e.setFontColor("#ffffff"),e.setFontStyle(mxConstants.FONT_BOLD),e.setFontSize(8),e.text(.5*t,.5*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_ICON,mxShapeIOS7Icon),mxUtils.extend(mxShapeIOS7horButtonBar,mxShape),mxShapeIOS7horButtonBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),s=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR,"#666666"),l=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR2,"#ffffff"),r=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8.5").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),h=mxUtils.getValue(this.style,mxIOS7C.STYLE_FILLCOLOR2,"#008cff"),x=a.length,c=Array(x),u=0,S=-1,T=0;T<x;T++){var d=a[T];d.charAt(0)===mxIOS7C.SELECTED&&(d=a[T].substring(1),S=T),c[T]=mxUtils.getSizeForString(d,r,mxConstants.DEFAULT_FONTFAMILY).width,u+=c[T]}for(i=Math.max(i,1.5*r,10),u=5*x+u,n=Math.max(n,u),e.translate(t,o),this.background(e,n,i,2.5,x,c,2.5,u,p,m,h,S),e.setShadow(!1),T=t=0;T<x;T++)T===S?e.setFontColor(l):e.setFontColor(s),t+=2.5,this.buttonText(e,t,i,a[T],c[T],r,u,n),t=t+c[T]+2.5},mxShapeIOS7horButtonBar.prototype.background=function(e,t,o,n,i,a,s,l,r,p,m,h){for(e.begin(),e.setStrokeColor(r),e.setFillColor(p),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.fillAndStroke(),e.setStrokeColor(r),e.begin(),m=1;m<i;m++)if(m!==h&&m!==h+1){for(var x=0,c=0;c<m;c++)x+=a[c]+2*s;x=x*t/l,e.moveTo(x,0),e.lineTo(x,o)}for(e.stroke(),x=0,e.setStrokeColor(mxConstants.NONE),m=0;m<h;m++)x+=a[m]+2*s;x=x*t/l,a=(a[h]+2*s)*t/l,a+=x,e.setFillColor("#0080F0"),0===h?(e.begin(),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(a,0),e.lineTo(a,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.fill()):h===i-1?(e.begin(),e.moveTo(x,0),e.lineTo(a-n,0),e.arcTo(n,n,0,0,1,a,n),e.lineTo(a,o-n),e.arcTo(n,n,0,0,1,a-n,o),e.lineTo(x,o),e.close(),e.fill()):-1!==h&&(e.begin(),e.moveTo(x,0),e.lineTo(a,0),e.lineTo(a,o),e.lineTo(x,o),e.close(),e.fill()),e.setStrokeColor(r),e.setFillColor(p),e.begin(),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.stroke()},mxShapeIOS7horButtonBar.prototype.buttonText=function(e,t,o,n,i,a,s,l){n.charAt(0)===mxIOS7C.SELECTED&&(n=n.substring(1)),e.begin(),e.setFontSize(a),e.text((t+.5*i)*l/s,.5*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_HOR_BUTTON_BAR,mxShapeIOS7horButtonBar),mxUtils.extend(mxShapeIOS7pageControl,mxShape),mxShapeIOS7pageControl.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#000000"),o=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");var a=Math.min(.5*i,.05*n);e.setFillColor(o),e.ellipse(0,.5*i-a,2*a,2*a),e.fill(),e.ellipse(.25*n-.5*a,.5*i-a,2*a,2*a),e.fill(),e.ellipse(.5*n-a,.5*i-a,2*a,2*a),e.fill(),e.ellipse(.75*n-1.5*a,.5*i-a,2*a,2*a),e.fill(),e.setFillColor(t),e.ellipse(n-2*a,.5*i-a,2*a,2*a),e.fill()},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_PAGE_CONTROL,mxShapeIOS7pageControl),mxUtils.extend(mxShapeIOS7iconGrid,mxShape),mxShapeIOS7iconGrid.prototype.customProperties=[{name:"gridSize",dispName:"Grid Size",type:"String"}],mxShapeIOS7iconGrid.prototype.paintVertexShape=function(e,t,o,n,i){for(e.translate(t,o),t=mxUtils.getValue(this.style,mxIOS7C.GRID_SIZE,"4,7").toString().split(","),n/=parseInt(t[0],10)+.1*(t[0]-1),i/=parseInt(t[1],10)+.1*(t[1]-1),o=0;o<t[0];o++)for(var a=0;a<t[1];a++)e.rect(1.1*n*o,1.1*i*a,n,i),e.fill()},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_ICON_GRID,mxShapeIOS7iconGrid),mxUtils.extend(mxShapeIOS7phone,mxShape),mxShapeIOS7phone.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.roundrect(0,0,n,i,25,25),e.fillAndStroke(),e.setShadow(!1),this.foreground(e,t,o,n,i,25)},mxShapeIOS7phone.prototype.foreground=function(e,t,o,n,i,a){e.rect(.0625*n,.15*i,.875*n,.7*i),e.stroke(),e.ellipse(.4875*n,.04125*i,.025*n,.0125*i),e.stroke(),e.roundrect(.375*n,.075*i,.25*n,.01875*i,.02*n,.01*i),e.stroke(),e.ellipse(.4*n,.875*i,.2*n,.1*i),e.stroke(),e.roundrect(.4575*n,.905*i,.085*n,.04375*i,.00625*i,.00625*i),e.stroke()},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_PHONE,mxShapeIOS7phone),mxUtils.extend(mxShapeIOS7searchBox,mxShape),mxShapeIOS7searchBox.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeIOS7searchBox.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fill()},mxShapeIOS7searchBox.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"Search"),i=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR,"#666666"),a=mxUtils.getValue(this.style,mxIOS7C.STYLE_STROKECOLOR2,"#008cff");mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTSIZE,"17");var s=.1*Math.min(t,o);e.setFillColor("#ffffff"),e.roundrect(.05*t,.15*o,.5*t,.7*o,s,s),e.fillAndStroke(),e.setFontColor(i),e.setFontSize(Math.min(.7*o,.1*t)),e.text(5,.5*o,0,0,n,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setStrokeColor(a),e.ellipse(.05*t+3,.5*o-3,4,4),e.stroke(),e.begin(),e.moveTo(.05*t+8,.5*o+3.5),e.lineTo(.05*t+6,.5*o+.5),e.stroke()},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_SEARCH_BOX,mxShapeIOS7searchBox),mxUtils.extend(mxShapeIOS7URL,mxShape),mxShapeIOS7URL.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeIOS7URL.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fill()},mxShapeIOS7URL.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"draw.io"),i=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR,"#666666"),a=mxUtils.getValue(this.style,mxIOS7C.STYLE_STROKECOLOR2,"#008cff");mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTSIZE,"17");var s=.1*Math.min(t,o);e.setFillColor("#d8d8d8"),e.roundrect(.05*t,.15*o,.9*t,.7*o,s,s),e.fill(),e.setFontColor(i),e.setFontSize(Math.min(.7*o,.1*t)),e.text(.5*t,.5*o,0,0,n,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setStrokeColor(a),e.begin(),e.moveTo(.95*t-5,.5*o),e.arcTo(3,3,0,1,1,.95*t-8,.5*o-3),e.stroke(),e.setFillColor(a),e.begin(),e.moveTo(.95*t-8,.5*o-4),e.lineTo(.95*t-6,.5*o-3),e.lineTo(.95*t-8,.5*o-2),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_URL,mxShapeIOS7URL),mxUtils.extend(mxShapeIOS7Actiondialog,mxShape),mxShapeIOS7Actiondialog.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxIOS7C.MAIN_TEXT,"Main Text"),s=mxUtils.getValue(this.style,mxIOS7C.SUB_TEXT,"Sub Text"),l=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR,"#666666"),r=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTSIZE,"17");e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),e.setFillColor("#e0e0e0"),e.roundrect(.05*n,.1*i,.9*n,.35*i,.025*n,.05*i),e.fill(),e.roundrect(.05*n,.55*i,.9*n,.35*i,.025*n,.05*i),e.fill(),e.setFontStyle(mxConstants.FONT_BOLD),this.mainText(e,t,o,n,i,a,r,l),this.subText(e,t,o,n,i,s,r/1.4,l)},mxShapeIOS7Actiondialog.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fill()},mxShapeIOS7Actiondialog.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.4*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxShapeIOS7Actiondialog.prototype.subText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.text(.5*n,.7*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_ACTION_DIALOG,mxShapeIOS7Actiondialog),mxUtils.extend(mxShapeIOS7Anchor,mxShape),mxShapeIOS7Anchor.prototype.cst={ANCHOR:"mxgraph.ios7ui.anchor"},mxShapeIOS7Anchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeIOS7Anchor.prototype.cst.ANCHOR,mxShapeIOS7Anchor),mxUtils.extend(mxShapeIOS7RRect,mxShape),mxShapeIOS7RRect.prototype.cst={RRECT:"mxgraph.ios7ui.rrect",R_SIZE:"rSize"},mxShapeIOS7RRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:3}],mxShapeIOS7RRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeIOS7RRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeIOS7RRect.prototype.cst.RRECT,mxShapeIOS7RRect),mxUtils.extend(mxShapeIOS7LeftButton,mxShape),mxShapeIOS7LeftButton.prototype.cst={LEFT_BUTTON:"mxgraph.ios7ui.leftButton",R_SIZE:"rSize"},mxShapeIOS7LeftButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:3}],mxShapeIOS7LeftButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeIOS7LeftButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(n,0),e.lineTo(n,i),e.lineTo(t,i),e.arcTo(t,t,0,0,1,0,i-t),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeIOS7LeftButton.prototype.cst.LEFT_BUTTON,mxShapeIOS7LeftButton),mxUtils.extend(mxShapeIOS7RightButton,mxShape),mxShapeIOS7RightButton.prototype.cst={RIGHT_BUTTON:"mxgraph.ios7ui.rightButton",R_SIZE:"rSize"},mxShapeIOS7RightButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:3}],mxShapeIOS7RightButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeIOS7RightButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(0,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i-t),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeIOS7RightButton.prototype.cst.RIGHT_BUTTON,mxShapeIOS7RightButton),mxUtils.extend(mxShapeIOS7TopButton,mxShape),mxShapeIOS7TopButton.prototype.cst={TOP_BUTTON:"mxgraph.ios7ui.topButton",R_SIZE:"rSize"},mxShapeIOS7TopButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:3}],mxShapeIOS7TopButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeIOS7TopButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(n,i),e.lineTo(0,i),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeIOS7TopButton.prototype.cst.TOP_BUTTON,mxShapeIOS7TopButton),mxUtils.extend(mxShapeIOS7BottomButton,mxShape),mxShapeIOS7BottomButton.prototype.cst={BOTTOM_BUTTON:"mxgraph.ios7ui.bottomButton",R_SIZE:"rSize"},mxShapeIOS7BottomButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:3}],mxShapeIOS7BottomButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeIOS7BottomButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(n,0),e.lineTo(0,0),e.lineTo(0,i-t),e.arcTo(t,t,0,0,0,t,i),e.lineTo(n-t,i),e.arcTo(t,t,0,0,0,n,i-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeIOS7BottomButton.prototype.cst.BOTTOM_BUTTON,mxShapeIOS7BottomButton),mxUtils.extend(mxShapeIOS7HorLines,mxShape),mxShapeIOS7HorLines.prototype.cst={HOR_LINES:"mxgraph.ios7ui.horLines"},mxShapeIOS7HorLines.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,n,i),e.fill(),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.moveTo(0,i),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeIOS7HorLines.prototype.cst.HOR_LINES,mxShapeIOS7HorLines),mxUtils.extend(mxShapeIOS7MarginRect,mxShape),mxShapeIOS7MarginRect.prototype.customProperties=[{name:"rx",dispName:"Hor. Rounding Size",type:"float",min:0,defVal:3},{name:"ry",dispName:"Ver. Rounding Size",type:"float",min:0,defVal:3},{name:"rectMargin",dispName:"Global Margin",type:"float",min:0,defVal:5},{name:"rectMarginTop",dispName:"Top Margin",type:"float",min:0,defVal:0},{name:"rectMarginLeft",dispName:"Left Margin",type:"float",min:0,defVal:0},{name:"rectMarginBottom",dispName:"Bottom Margin",type:"float",min:0,defVal:0},{name:"rectMarginRight",dispName:"Right Margin",type:"float",min:0,defVal:0}],mxShapeIOS7MarginRect.prototype.cst={SHAPE_MARGIN_RECT:"mxgraph.ios7ui.marginRect",MARGIN:"rectMargin",RX:"rx",RY:"ry",MARGIN_TOP:"rectMarginTop",MARGIN_LEFT:"rectMarginLeft",MARGIN_BOTTOM:"rectMarginBottom",MARGIN_RIGHT:"rectMarginRight"},mxShapeIOS7MarginRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeIOS7MarginRect.prototype.background=function(e,t,o,n,i,a){a=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.MARGIN,"0"));var s=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.MARGIN_TOP,"0")),l=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.MARGIN_LEFT,"0")),r=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.MARGIN_BOTTOM,"0")),p=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.MARGIN_RIGHT,"0"));t=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.RX,"0")),o=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.RY,"0")),i=i-r-(s=a+s)-a,0<(n=n-p-(l=a+l)-a)&&0<i&&(e.begin(),e.roundrect(l,s,n,i,t,o),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeIOS7MarginRect.prototype.cst.SHAPE_MARGIN_RECT,mxShapeIOS7MarginRect),mxUtils.extend(mxShapeIOS7Callout,mxShape),mxShapeIOS7Callout.prototype.cst={SHAPE_CALLOUT:"mxgraph.ios7ui.callout"},mxShapeIOS7Callout.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeIOS7Callout.prototype.background=function(e,t,o,n,i,a){30<=n&&20<=i&&(e.begin(),e.moveTo(15,i-3),e.arcTo(20,10,0,0,1,0,i),e.arcTo(15,15,0,0,0,10,i-10),e.lineTo(10,10),e.arcTo(10,10,0,0,1,20,0),e.lineTo(n-10,0),e.arcTo(10,10,0,0,1,n,10),e.lineTo(n,i-10),e.arcTo(10,10,0,0,1,n-10,i),e.lineTo(20,i),e.arcTo(10,10,0,0,1,15,i-3),e.close(),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeIOS7Callout.prototype.cst.SHAPE_CALLOUT,mxShapeIOS7Callout),mxUtils.extend(mxShapeIOS7SelectBar,mxActor),mxShapeIOS7SelectBar.prototype.cst={SELECT_BAR:"mxgraph.ios7ui.selectBar"},mxShapeIOS7SelectBar.prototype.customProperties=[{name:"dx",dispName:"Callout Position",type:"float",min:0,defVal:120},{name:"dx2",dispName:"Field Size",type:"float",min:0,defVal:75},{name:"size",dispName:"Rounding size",type:"float",min:0,defVal:5},{name:"dy",dispName:"Callout Size",type:"float",min:0,defVal:5}],mxShapeIOS7SelectBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),o=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var s=Math.max(0,Math.min(i,(n-Math.max(20,o)-o)/2,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));for(o=Math.min(i/2,n/2,o),a=Math.max(o+s,a),a=Math.min(n-o-s,n-20-s,a),e.begin(),e.moveTo(a-s,i),e.lineTo(o,i),e.arcTo(o,o,0,0,1,0,i-o),e.lineTo(0,o),e.arcTo(o,o,0,0,1,o,0),e.lineTo(n-o,0),e.arcTo(o,o,0,0,1,n,o),e.lineTo(n,i-o),e.arcTo(o,o,0,0,1,n-o,i),e.lineTo(a+s,i),e.lineTo(a,i+s),e.close(),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(n-Math.max(20,o),0),e.lineTo(n-Math.max(20,o),i),e.stroke(),a=t,e.begin();a<n-Math.max(20,o);)e.moveTo(a,0),e.lineTo(a,i),a+=t;e.stroke(),n-=.5*(t=Math.min(Math.max(20,o),i)),i*=.5,e.setFillColor(mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"")),e.begin(),e.moveTo(n-.15*t,i-.225*t),e.lineTo(n+.25*t,i),e.lineTo(n-.15*t,i+.225*t),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeIOS7SelectBar.prototype.cst.SELECT_BAR,mxShapeIOS7SelectBar),mxShapeIOS7SelectBar.prototype.constraints=null,Graph.handleFactory[mxShapeIOS7SelectBar.prototype.cst.SELECT_BAR]=function(e){var t=[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+e.height)}),(function(e,t){var o=.6*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy));this.state.style.dx=Math.round(100*Math.max(o,Math.min(e.width-o,t.x-e.x)))/100}))],o=Graph.createHandle(e,["dy"],(function(e){var t=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),e.y+e.height+t)}),(function(e,t){this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height,t.y-e.y-e.height)))/100}));return t.push(o),o=Graph.createHandle(e,["size"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(e.x+e.width-t,e.y+10)}),(function(e,t){this.state.style.size=Math.round(100*Math.max(0,Math.min(e.width/2,e.height/2,e.x+e.width-t.x)))/100})),t.push(o),e=Graph.createHandle(e,["dx2"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100})),t.push(e),t},mxUtils.extend(mxShapeIOS7Slider2,mxShape),mxShapeIOS7Slider2.prototype.cst={SHAPE_SLIDER:"mxgraph.ios7ui.slider",BAR_POS:"barPos",HANDLE_SIZE:"handleSize"},mxShapeIOS7Slider2.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,max:1,defVal:20},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:10}],mxShapeIOS7Slider2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0)},mxShapeIOS7Slider2.prototype.background=function(e,t,o,n,i){t=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7Slider2.prototype.cst.HANDLE_SIZE,"10")),o=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7Slider2.prototype.cst.BAR_POS,"40"))/100,o=Math.max(0,Math.min(1,o)),e.save(),e.setStrokeColor("#bbbbbb"),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.fillAndStroke(),e.restore(),e.begin(),e.moveTo(0,.5*i),e.lineTo(o*n,.5*i),e.fillAndStroke(),e.setStrokeColor("#bbbbbb"),e.begin(),e.ellipse(o*n-.5*t,.5*i-.5*t,t,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeIOS7Slider2.prototype.cst.SHAPE_SLIDER,mxShapeIOS7Slider2),mxShapeIOS7Slider2.prototype.constraints=null,Graph.handleFactory[mxShapeIOS7Slider2.prototype.cst.SHAPE_SLIDER]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(e.x+t*e.width/100,e.y+e.height/2)}),(function(e,t){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeMockupMultiButton,mxShape),mxShapeMockupMultiButton.prototype.cst={MAIN_TEXT:"mainText",SHAPE_MULTILINE_BUTTON:"mxgraph.mockup.buttons.multiButton",SUB_TEXT:"subText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",BUTTON_STYLE:"buttonStyle",ROUND:"round",CHEVRON:"chevron"},mxShapeMockupMultiButton.prototype.customProperties=[{name:"buttonStyle",dispName:"Style",type:"enum",defVal:"round",enumList:[{val:"round",dispName:"Round"},{val:"chevron",dispName:"Chevron"}]}],mxShapeMockupMultiButton.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupMultiButton.prototype.cst.MAIN_TEXT,"Main Text"),s=mxUtils.getValue(this.style,mxShapeMockupMultiButton.prototype.cst.SUB_TEXT,"Sub Text"),l=mxUtils.getValue(this.style,mxShapeMockupMultiButton.prototype.cst.TEXT_COLOR,"#666666"),r=mxUtils.getValue(this.style,mxShapeMockupMultiButton.prototype.cst.TEXT_SIZE,"17");e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),e.setFontStyle(mxConstants.FONT_BOLD),this.mainText(e,t,o,n,i,a,r,l),this.subText(e,t,o,n,i,s,r/1.4,l)},mxShapeMockupMultiButton.prototype.background=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupMultiButton.prototype.cst.BUTTON_STYLE,mxShapeMockupMultiButton.prototype.cst.ROUND).toString(),e.begin(),t===mxShapeMockupMultiButton.prototype.cst.ROUND?(e.moveTo(0,10),e.arcTo(10,10,0,0,1,10,0),e.lineTo(n-10,0),e.arcTo(10,10,0,0,1,n,10),e.lineTo(n,i-10),e.arcTo(10,10,0,0,1,n-10,i),e.lineTo(10,i),e.arcTo(10,10,0,0,1,0,i-10)):t===mxShapeMockupMultiButton.prototype.cst.CHEVRON&&(e.moveTo(0,.1*i),e.arcTo(.0372*n,.1111*i,0,0,1,.0334*n,0),e.lineTo(.768*n,0),e.arcTo(.0722*n,.216*i,0,0,1,.8014*n,.0399*i),e.lineTo(.99*n,.4585*i),e.arcTo(.09*n,.1*i,0,0,1,.99*n,.5415*i),e.lineTo(.8014*n,.9568*i),e.arcTo(.0722*n,.216*i,0,0,1,.768*n,i),e.lineTo(.0334*n,i),e.arcTo(.0372*n,.1111*i,0,0,1,0,.9*i)),e.close(),e.fillAndStroke()},mxShapeMockupMultiButton.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.4*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxShapeMockupMultiButton.prototype.subText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.text(.5*n,.7*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupMultiButton.prototype.cst.SHAPE_MULTILINE_BUTTON,mxShapeMockupMultiButton),mxUtils.extend(mxShapeMockupButton,mxShape),mxShapeMockupButton.prototype.cst={MAIN_TEXT:"mainText",SHAPE_BUTTON:"mxgraph.mockup.buttons.button",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",BUTTON_STYLE:"buttonStyle",ROUND:"round",CHEVRON:"chevron"},mxShapeMockupButton.prototype.customProperties=[{name:"buttonStyle",dispName:"Style",type:"enum",defVal:"round",enumList:[{val:"round",dispName:"Round"},{val:"chevron",dispName:"Chevron"}]}],mxShapeMockupButton.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupButton.prototype.cst.MAIN_TEXT,"Main Text"),s=mxUtils.getValue(this.style,mxShapeMockupButton.prototype.cst.TEXT_COLOR,"#666666").toString(),l=mxUtils.getValue(this.style,mxShapeMockupButton.prototype.cst.TEXT_SIZE,"17").toString();e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.mainText(e,t,o,n,i,a,l,s)},mxShapeMockupButton.prototype.background=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupButton.prototype.cst.BUTTON_STYLE,mxShapeMockupButton.prototype.cst.ROUND).toString(),e.begin(),t===mxShapeMockupButton.prototype.cst.ROUND?(e.moveTo(0,10),e.arcTo(10,10,0,0,1,10,0),e.lineTo(n-10,0),e.arcTo(10,10,0,0,1,n,10),e.lineTo(n,i-10),e.arcTo(10,10,0,0,1,n-10,i),e.lineTo(10,i),e.arcTo(10,10,0,0,1,0,i-10)):t===mxShapeMockupButton.prototype.cst.CHEVRON&&(e.moveTo(0,.1*i),e.arcTo(.0372*n,.1111*i,0,0,1,.0334*n,0),e.lineTo(.768*n,0),e.arcTo(.0722*n,.216*i,0,0,1,.8014*n,.0399*i),e.lineTo(.99*n,.4585*i),e.arcTo(.09*n,.1*i,0,0,1,.99*n,.5415*i),e.lineTo(.8014*n,.9568*i),e.arcTo(.0722*n,.216*i,0,0,1,.768*n,i),e.lineTo(.0334*n,i),e.arcTo(.0372*n,.1111*i,0,0,1,0,.9*i)),e.close(),e.fillAndStroke()},mxShapeMockupButton.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.setFontStyle(mxConstants.FONT_BOLD),e.text(n/2,i/2,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupButton.prototype.cst.SHAPE_BUTTON,mxShapeMockupButton),mxUtils.extend(mxShapeMockupHorButtonBar,mxShape),mxShapeMockupHorButtonBar.prototype.cst={MAIN_TEXT:"mainText",SHAPE_HOR_BUTTON_BAR:"mxgraph.mockup.buttons.horButtonBar",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",TEXT_SIZE:"textSize"},mxShapeMockupHorButtonBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.MAIN_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),s=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.TEXT_COLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.TEXT_COLOR2,"#ffffff"),r=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.TEXT_SIZE,"17").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.STROKE_COLOR2,"#c4c4c4"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),x=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.FILL_COLOR2,"#008cff"),c=a.length,u=Array(c),S=0,T=-1,d=0;d<c;d++){var C=a[d];C.charAt(0)===mxShapeMockupHorButtonBar.prototype.cst.SELECTED&&(C=a[d].substring(1),T=d),u[d]=mxUtils.getSizeForString(C,r,mxConstants.DEFAULT_FONTFAMILY).width,S+=u[d]}for(i=Math.max(i,1.5*r,20),S=10*c+S,n=Math.max(n,S),e.translate(t,o),this.background(e,n,i,10,c,u,5,S,p,m,h,x,T),e.setShadow(!1),e.setFontStyle(mxConstants.FONT_BOLD),d=t=0;d<c;d++)d===T?e.setFontColor(l):e.setFontColor(s),t+=5,this.buttonText(e,t,i,a[d],u[d],r,S,n),t=t+u[d]+5},mxShapeMockupHorButtonBar.prototype.background=function(e,t,o,n,i,a,s,l,r,p,m,h,x){for(e.begin(),e.setStrokeColor(r),e.setFillColor(m),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.fillAndStroke(),e.setStrokeColor(p),e.begin(),p=1;p<i;p++)if(p!==x&&p!==x+1){for(var c=0,u=0;u<p;u++)c+=a[u]+2*s;c=c*t/l,e.moveTo(c,0),e.lineTo(c,o)}for(e.stroke(),c=0,e.setFillColor(h),p=0;p<x;p++)c+=a[p]+2*s;c=c*t/l,a=(a[x]+2*s)*t/l,a+=c,0===x?(e.begin(),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(a,0),e.lineTo(a,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.fill()):x===i-1?(e.begin(),e.moveTo(c,0),e.lineTo(a-n,0),e.arcTo(n,n,0,0,1,a,n),e.lineTo(a,o-n),e.arcTo(n,n,0,0,1,a-n,o),e.lineTo(c,o),e.close(),e.fill()):-1!==x&&(e.begin(),e.moveTo(c,0),e.lineTo(a,0),e.lineTo(a,o),e.lineTo(c,o),e.close(),e.fill()),e.setStrokeColor(r),e.setFillColor(m),e.begin(),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.stroke()},mxShapeMockupHorButtonBar.prototype.buttonText=function(e,t,o,n,i,a,s,l){n.charAt(0)===mxShapeMockupHorButtonBar.prototype.cst.SELECTED&&(n=n.substring(1)),e.begin(),e.setFontSize(a),e.text((t+.5*i)*l/s,.5*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupHorButtonBar.prototype.cst.SHAPE_HOR_BUTTON_BAR,mxShapeMockupHorButtonBar),mxUtils.extend(mxShapeMockupVerButtonBar,mxShape),mxShapeMockupVerButtonBar.prototype.cst={MAIN_TEXT:"mainText",SHAPE_VER_BUTTON_BAR:"mxgraph.mockup.buttons.verButtonBar",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",TEXT_SIZE:"textSize"},mxShapeMockupVerButtonBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.MAIN_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),s=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.TEXT_COLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.TEXT_COLOR2,"#ffffff"),r=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.TEXT_SIZE,"17").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.STROKE_COLOR2,"#c4c4c4"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),x=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.FILL_COLOR2,"#008cff"),c=a.length,u=0,S=-1,T=0;T<c;T++){var d=a[T];d.charAt(0)===mxShapeMockupVerButtonBar.prototype.cst.SELECTED&&(d=a[T].substring(1),S=T),(d=mxUtils.getSizeForString(d,r,mxConstants.DEFAULT_FONTFAMILY).width)>u&&(u=d)}var C=1.5*r,y=c*C;for(i=Math.max(i,y),n=Math.max(n,10+u),e.translate(t,o),this.background(e,n,i,10,c,5,c*C,p,m,h,x,S,C),e.setShadow(!1),d=0,e.setFontStyle(mxConstants.FONT_BOLD),T=0;T<c;T++)T===S?e.setFontColor(l):e.setFontColor(s),d+=5,this.buttonText(e,n,(T*C+.5*C)*i/y,a[T],r)},mxShapeMockupVerButtonBar.prototype.background=function(e,t,o,n,i,a,s,l,r,p,m,h,x){for(e.begin(),e.setStrokeColor(l),e.setFillColor(p),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.fillAndStroke(),e.setStrokeColor(r),e.begin(),a=1;a<i;a++)a!==h&&a!==h+1&&(r=a*x*o/s,e.moveTo(0,r),e.lineTo(t,r));e.stroke(),e.setFillColor(m),0===h?(e.begin(),s=x*o/s,e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,s),e.lineTo(0,s),e.close(),e.fill()):h===i-1?(e.begin(),i=o-x*o/s,e.moveTo(0,i),e.lineTo(t,i),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.fill()):-1!==h&&(e.begin(),i=x*h*o/s,s=x*(h+1)*o/s,e.moveTo(0,i),e.lineTo(t,i),e.lineTo(t,s),e.lineTo(0,s),e.close(),e.fill()),e.begin(),e.setStrokeColor(l),e.setFillColor(p),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.stroke()},mxShapeMockupVerButtonBar.prototype.buttonText=function(e,t,o,n,i){n.charAt(0)===mxShapeMockupVerButtonBar.prototype.cst.SELECTED&&(n=n.substring(1)),e.begin(),e.setFontSize(i),e.text(.5*t,o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupVerButtonBar.prototype.cst.SHAPE_VER_BUTTON_BAR,mxShapeMockupVerButtonBar),mxUtils.extend(mxShapeMockupOnOffButton,mxShape),mxShapeMockupOnOffButton.prototype.cst={SHAPE_ON_OFF_BUTTON:"mxgraph.mockup.buttons.onOffButton",BUTTON_STATE:"buttonState",STATE_ON:"on",STATE_OFF:"off",FILL_COLOR2:"fillColor2",MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize"},mxShapeMockupOnOffButton.prototype.customProperties=[{name:"buttonState",dispName:"Button State",type:"enum",enumList:[{val:"on",dispName:"On"},{val:"off",dispName:"Off"}]}],mxShapeMockupOnOffButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),n=Math.max(n,10),i=Math.max(i,10),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupOnOffButton.prototype.background=function(e,t,o,n,i){e.roundrect(0,0,n,i,10,10),e.fillAndStroke()},mxShapeMockupOnOffButton.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupOnOffButton.prototype.cst.BUTTON_STATE,mxShapeMockupOnOffButton.prototype.cst.STATE_ON),o=mxUtils.getValue(this.style,mxShapeMockupOnOffButton.prototype.cst.FILL_COLOR2,"#008cff");var a=mxUtils.getValue(this.style,mxShapeMockupOnOffButton.prototype.cst.TEXT_COLOR,"#ffffff,#999999").toString().split(","),s=mxUtils.getValue(this.style,mxShapeMockupOnOffButton.prototype.cst.MAIN_TEXT,"ON,OFF").toString().split(","),l=mxUtils.getValue(this.style,mxShapeMockupOnOffButton.prototype.cst.TEXT_SIZE,"17");t===mxShapeMockupOnOffButton.prototype.cst.STATE_ON?(e.setFillColor(o),e.setFontColor(a[0]),e.roundrect(0,0,.75*n,i,10,10)):(e.setFontColor(a[1]),e.roundrect(.25*n,0,.75*n,i,10,10)),e.fillAndStroke(),e.setFontSize(l),e.setFontStyle(mxConstants.FONT_BOLD),t===mxShapeMockupOnOffButton.prototype.cst.STATE_ON?e.text(.375*n,.5*i,0,0,s[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):t===mxShapeMockupOnOffButton.prototype.cst.STATE_OFF&&e.text(.625*n,.5*i,0,0,s[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupOnOffButton.prototype.cst.SHAPE_ON_OFF_BUTTON,mxShapeMockupOnOffButton),mxUtils.extend(mxShapeMockupRRect,mxShape),mxShapeMockupRRect.prototype.cst={RRECT:"mxgraph.mockup.rrect",R_SIZE:"rSize"},mxShapeMockupRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupRRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupRRect.prototype.cst.RRECT,mxShapeMockupRRect),mxUtils.extend(mxShapeMockupAnchor,mxShape),mxShapeMockupAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.anchor"},mxShapeMockupAnchor.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeMockupAnchor.prototype.cst.ANCHOR,mxShapeMockupAnchor),mxUtils.extend(mxShapeMockupTopButton,mxShape),mxShapeMockupTopButton.prototype.cst={TOP_BUTTON:"mxgraph.mockup.topButton",R_SIZE:"rSize"},mxShapeMockupTopButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupTopButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupTopButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupTopButton.prototype.cst.TOP_BUTTON,mxShapeMockupTopButton),mxUtils.extend(mxShapeMockupBottomButton,mxShape),mxShapeMockupBottomButton.prototype.cst={BOTTOM_BUTTON:"mxgraph.mockup.bottomButton",R_SIZE:"rSize"},mxShapeMockupBottomButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupBottomButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupBottomButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i-t),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(t,i),e.arcTo(t,t,0,0,1,0,i-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupBottomButton.prototype.cst.BOTTOM_BUTTON,mxShapeMockupBottomButton),mxUtils.extend(mxShapeMockupRightButton,mxShape),mxShapeMockupRightButton.prototype.cst={RIGHT_BUTTON:"mxgraph.mockup.rightButton",R_SIZE:"rSize"},mxShapeMockupRightButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupRightButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupRightButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(0,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i-t),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupRightButton.prototype.cst.RIGHT_BUTTON,mxShapeMockupRightButton),mxUtils.extend(mxShapeMockupLeftButton,mxShape),mxShapeMockupLeftButton.prototype.cst={LEFT_BUTTON:"mxgraph.mockup.leftButton",R_SIZE:"rSize"},mxShapeMockupLeftButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupLeftButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupLeftButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(n,0),e.lineTo(n,i),e.lineTo(t,i),e.arcTo(t,t,0,0,1,0,i-t),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupLeftButton.prototype.cst.LEFT_BUTTON,mxShapeMockupLeftButton),mxUtils.extend(mxShapeMockupVideoPlayer,mxShape),mxShapeMockupVideoPlayer.prototype.cst={FILL_COLOR2:"fillColor2",TEXT_COLOR:"textColor",STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SHAPE_VIDEO_PLAYER:"mxgraph.mockup.containers.videoPlayer",BAR_POS:"barPos",BAR_HEIGHT:"barHeight"},mxShapeMockupVideoPlayer.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"textColor",dispName:"Text Color",type:"color"},{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"},{name:"strokeColor3",dispName:"Stroke3 Color",type:"color"},{name:"barPos",dispName:"Handle Position",type:"float",min:0,max:100,defVal:20},{name:"barHeight",dispName:"Video Bar Height",type:"float",min:0,defVal:30}],mxShapeMockupVideoPlayer.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),s=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.FILL_COLOR2,"#c4c4c4"),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),r=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.STROKE_COLOR2,"#008cff"),p=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.STROKE_COLOR3,"#c4c4c4"),m=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.BAR_HEIGHT,"30");n=Math.max(n,5*m),i=Math.max(i,m+10),e.translate(t,o),this.background(e,t,o,n,i,a,l),e.setShadow(!1),this.otherShapes(e,t,o,n,i,s,l,r,p,m)},mxShapeMockupVideoPlayer.prototype.background=function(e,t,o,n,i,a,s){e.setFillColor(a),e.setStrokeColor(s),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxShapeMockupVideoPlayer.prototype.otherShapes=function(e,t,o,n,i,a,s,l,r,p){var m=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.BAR_POS,"20");m=Math.max(0,m),m=Math.min(100,m),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1"),o=i-p,m=8+(n-8-8)*m/100,e.setStrokeColor(l),e.begin(),e.moveTo(0,o),e.lineTo(m,o),e.stroke(),e.setStrokeColor(r),e.begin(),e.moveTo(m,o),e.lineTo(n,o),e.stroke(),e.setStrokeColor(s),e.begin(),e.ellipse(m-8,o-8,16,16),e.fillAndStroke(),e.begin(),e.setStrokeWidth(t/2),e.ellipse(m-4,o-4,8,8),e.fillAndStroke(),e.setStrokeWidth(t),l=i-.5*(p+(s=.3*p)),r=.3*p,e.setFillColor(a),e.setStrokeColor(a),e.begin(),e.moveTo(r,l),e.lineTo(r+s,l+.5*s),e.lineTo(r,l+s),e.close(),e.fillAndStroke(),a=i-p,e.moveTo(p+.05*p,a+.4*p),e.lineTo(p+.15*p,a+.4*p),e.lineTo(p+.3*p,a+.25*p),e.lineTo(p+.3*p,a+.75*p),e.lineTo(p+.15*p,a+.6*p),e.lineTo(p+.05*p,a+.6*p),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(p+.4*p,a+.35*p),e.arcTo(.2*p,.3*p,0,0,1,p+.4*p,a+.65*p),e.moveTo(p+.425*p,a+.25*p),e.arcTo(.225*p,.35*p,0,0,1,p+.425*p,a+.75*p),e.stroke(),n-=1.3*p,e.begin(),e.moveTo(n+.1*p,a+.4*p),e.lineTo(n+.1*p,a+.3*p),e.lineTo(n+.25*p,a+.3*p),e.moveTo(n+.1*p,a+.6*p),e.lineTo(n+.1*p,a+.7*p),e.lineTo(n+.25*p,a+.7*p),e.moveTo(n+.9*p,a+.4*p),e.lineTo(n+.9*p,a+.3*p),e.lineTo(n+.75*p,a+.3*p),e.moveTo(n+.9*p,a+.6*p),e.lineTo(n+.9*p,a+.7*p),e.lineTo(n+.75*p,a+.7*p),e.stroke(),n=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.TEXT_COLOR,"#666666"),e.begin(),e.setFontSize(.5*p),e.setFontColor(n),e.text(1.9*p,i-.45*p,0,0,"0:00/3:53",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupVideoPlayer.prototype.cst.SHAPE_VIDEO_PLAYER,mxShapeMockupVideoPlayer),Graph.handleFactory[mxShapeMockupVideoPlayer.prototype.cst.SHAPE_VIDEO_PLAYER]=function(e){var t=[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos)))),o=parseFloat(mxUtils.getValue(this.state.style,"barHeight",this.barHeight));return new mxPoint(e.x+(e.width-16)*t/e.width/100*e.width+8,e.y+e.height-o-20)}),(function(e,t){this.state.style.barPos=Math.round(1e3*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/1e3}))];return e=Graph.createHandle(e,["barHeight"],(function(e){var t=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"barHeight",this.barHeight))));return new mxPoint(e.x+e.width-20,e.y+e.height-t)}),(function(e,t){this.state.style.barHeight=Math.round(1e3*Math.max(0,Math.min(e.height,e.y+e.height-t.y)))/1e3})),t.push(e),t},mxUtils.extend(mxShapeMockupAccordion,mxShape),mxShapeMockupAccordion.prototype.cst={TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",TEXT_SIZE:"textSize",SHAPE_ACCORDION:"mxgraph.mockup.containers.accordion",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",MAIN_TEXT:"mainText"},mxShapeMockupAccordion.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.MAIN_TEXT,"+Group 1, Group 2, Group 3").toString().split(","),s=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.TEXT_COLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.TEXT_COLOR2,"#ffffff"),r=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.TEXT_SIZE,"17").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.STROKE_COLOR2,"#c4c4c4"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),x=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.FILL_COLOR2,"#008cff"),c=a.length,u=0,S=-1,T=0;T<c;T++){var d=a[T];d.charAt(0)===mxShapeMockupAccordion.prototype.cst.SELECTED&&(d=a[T].substring(1),S=T),(d=mxUtils.getSizeForString(d,r,mxConstants.DEFAULT_FONTFAMILY).width)>u&&(u=d)}var C=1.5*r;for(i=Math.max(i,c*C),n=Math.max(n,10+u),e.translate(t,o),this.background(e,n,i,10,c,5,c*C,p,m,h,x,S,C),e.setShadow(!1),T=d=0;T<c;T++)T===S?e.setFontColor(l):e.setFontColor(s),d+=5,this.buttonText(e,n,-1===S||T<=S?T*C+.5*C:i-(c-T-.5)*C,a[T],r)},mxShapeMockupAccordion.prototype.background=function(e,t,o,n,i,a,s,l,r,p,m,h,x){for(e.begin(),e.setStrokeColor(l),e.setFillColor(p),e.moveTo(0,0),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(0,o),e.close(),e.fillAndStroke(),e.setStrokeColor(r),e.begin(),n=1;n<i;n++)n!==h&&(a=-1===h||n<h?n*x:o-(i-n)*x,e.moveTo(0,a),e.lineTo(t,a));e.stroke(),e.setStrokeColor(mxConstants.NONE),e.setFillColor(m),-1!==h&&(e.begin(),i=x*h,h=x*(h+1),e.moveTo(0,i),e.lineTo(t,i),e.lineTo(t,h),e.lineTo(0,h),e.close(),e.fill()),e.begin(),e.setStrokeColor(l),e.setFillColor(p),e.moveTo(0,0),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(0,o),e.close(),e.stroke()},mxShapeMockupAccordion.prototype.buttonText=function(e,t,o,n,i){n.charAt(0)===mxShapeMockupAccordion.prototype.cst.SELECTED&&(n=n.substring(1)),e.begin(),e.setFontSize(i),e.text(.5*t,o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupAccordion.prototype.cst.SHAPE_ACCORDION,mxShapeMockupAccordion),mxUtils.extend(mxShapeMockupBrowserWindow,mxShape),mxShapeMockupBrowserWindow.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",MAIN_TEXT:"mainText",SHAPE_BROWSER_WINDOW:"mxgraph.mockup.containers.browserWindow"},mxShapeMockupBrowserWindow.prototype.customProperties=[{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"},{name:"strokeColor3",dispName:"Stroke3 Color",type:"color"}],mxShapeMockupBrowserWindow.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupBrowserWindow.prototype.cst.STROKE_COLOR2,"#008cff"),r=mxUtils.getValue(this.style,mxShapeMockupBrowserWindow.prototype.cst.STROKE_COLOR3,"#c4c4c4");n=Math.max(n,260),i=Math.max(i,110),e.translate(t,o),this.background(e,t,o,n,i,a,s),e.setShadow(!1),this.otherShapes(e,t,o,n,i,s,r,l)},mxShapeMockupBrowserWindow.prototype.background=function(e,t,o,n,i,a,s){e.setFillColor(a),e.setStrokeColor(s),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxShapeMockupBrowserWindow.prototype.otherShapes=function(e,t,o,n,i,a,s,l){t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1"),o=mxUtils.getValue(this.style,mxShapeMockupBrowserWindow.prototype.cst.MAIN_TEXT,"http://www.draw.io,Page 1").toString().split(","),e.setStrokeColor(a),e.ellipse(n-75,5,20,20),e.stroke(),e.ellipse(n-50,5,20,20),e.stroke(),e.setStrokeColor(l),e.ellipse(n-25,5,20,20),e.stroke(),e.setStrokeColor(s),e.begin(),e.moveTo(0,40),e.lineTo(30,40),e.lineTo(30,15),e.arcTo(5,5,0,0,1,35,10),e.lineTo(170,10),e.arcTo(5,5,0,0,1,175,15),e.lineTo(175,40),e.lineTo(n,40),e.stroke(),e.begin(),e.moveTo(0,110),e.lineTo(n,110),e.stroke(),e.begin(),e.moveTo(100,60),e.arcTo(5,5,0,0,1,105,55),e.lineTo(n-15,55),e.arcTo(5,5,0,0,1,n-10,60),e.lineTo(n-10,85),e.arcTo(5,5,0,0,1,n-15,90),e.lineTo(105,90),e.arcTo(5,5,0,0,1,100,85),e.close(),e.stroke(),n=mxUtils.getValue(this.style,mxShapeMockupBrowserWindow.prototype.cst.TEXT_COLOR,"#666666"),e.setFontColor(n),e.setFontSize(17),e.text(65,25,0,0,o[1],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(130,73,0,0,o[0],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.stroke(),e.translate(37,17),e.begin(),e.moveTo(0,0),e.lineTo(11,0),e.lineTo(15,4),e.lineTo(15,18),e.lineTo(0,18),e.close(),e.stroke(),e.setStrokeWidth(.5*t),e.begin(),e.moveTo(11,0),e.lineTo(11,4),e.lineTo(15,5),e.stroke(),e.setStrokeWidth(2*t),e.translate(70,47),e.begin(),e.moveTo(0,0),e.lineTo(11,0),e.lineTo(15,4),e.lineTo(15,18),e.lineTo(0,18),e.close(),e.stroke(),e.setStrokeWidth(.5*t),e.begin(),e.moveTo(11,0),e.lineTo(11,4),e.lineTo(15,5),e.stroke(),e.setFillColor(s),e.begin(),e.setStrokeWidth(2*t),e.translate(-95,0),e.moveTo(0,10),e.lineTo(10,0),e.lineTo(10,6),e.lineTo(20,6),e.lineTo(20,14),e.lineTo(10,14),e.lineTo(10,20),e.close(),e.fillAndStroke(),e.begin(),e.translate(30,0),e.moveTo(20,10),e.lineTo(10,0),e.lineTo(10,6),e.lineTo(0,6),e.lineTo(0,14),e.lineTo(10,14),e.lineTo(10,20),e.close(),e.fillAndStroke(),e.begin(),e.translate(30,0),e.moveTo(20*.78,13.3),e.arcTo(6,6,0,1,1,13.5,5.04),e.lineTo(20*.595,6.5),e.lineTo(19.8,20*.415),e.lineTo(18,.8),e.lineTo(20*.815,2.4),e.arcTo(9.8,9.8,0,1,0,20*.92,16),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupBrowserWindow.prototype.cst.SHAPE_BROWSER_WINDOW,mxShapeMockupBrowserWindow),mxUtils.extend(mxShapeMockupUserMale,mxShape),mxShapeMockupUserMale.prototype.cst={STROKE_COLOR2:"strokeColor2",SHAPE_MALE_USER:"mxgraph.mockup.containers.userMale"},mxShapeMockupUserMale.prototype.customProperties=[{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"}],mxShapeMockupUserMale.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupUserMale.prototype.cst.STROKE_COLOR2,"#008cff");e.translate(t,o),this.background(e,t,o,n,i,a,s),e.setShadow(!1),this.otherShapes(e,t,o,n,i,l,s)},mxShapeMockupUserMale.prototype.background=function(e,t,o,n,i,a,s){e.setFillColor(a),e.setStrokeColor(s),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxShapeMockupUserMale.prototype.otherShapes=function(e,t,o,n,i,a,s){e.setStrokeColor(a),e.setLineCap("round"),e.setLineJoin("round"),e.begin(),e.moveTo(.5*n,.6721*i),e.curveTo(.3891*n,.6721*i,.31*n,.5648*i,.31*n,.3962*i),e.curveTo(.31*n,.3656*i,.3012*n,.3473*i,.3051*n,.3227*i),e.curveTo(.3126*n,.2762*i,.3124*n,.2212*i,.332*n,.1939*i),e.curveTo(.354*n,.1633*i,.4382*n,.12*i,.5*n,.12*i),e.stroke(),e.begin(),e.moveTo(.3046*n,.3716*i),e.curveTo(.3046*n,.3716*i,.3046*n,.341*i,.2826*n,.3594*i),e.curveTo(.2606*n,.3778*i,.2661*n,.4452*i,.266*n,.4452*i),e.quadTo(.2715*n,.4942*i,.277*n,.5065*i),e.curveTo(.2825*n,.5187*i,.277*n,.5187*i,.2935*n,.5371*i),e.curveTo(.31*n,.5554*i,.3375*n,.5615*i,.3375*n,.5616*i),e.stroke(),e.begin(),e.moveTo(.3829*n,.6213*i),e.curveTo(.3829*n,.6213*i,.405*n,.7704*i,.2921*n,.7888*i),e.curveTo(.2536*n,.795*i,.1328*n,.85*i,.1052*n,.8745*i),e.curveTo(.0776*n,.899*i,.0641*n,.9316*i,.0571*n,.9622*i),e.quadTo(.05*n,i,.05*n,i),e.stroke(),e.begin(),e.moveTo(.3427*n,.4185*i),e.curveTo(.3427*n,.4185*i,.3427*n,.3839*i,.3427*n,.3593*i),e.curveTo(.3427*n,.3348*i,.3663*n,.3103*i,.3718*n,.3041*i),e.curveTo(.3773*n,.298*i,.3822*n,.2673*i,.3877*n,.2551*i),e.curveTo(.3932*n,.2429*i,.4095*n,.2429*i,.4259*n,.2367*i),e.curveTo(.4424*n,.2306*i,.4984*n,.2357*i,.4984*n,.2357*i),e.stroke(),e.begin(),e.moveTo(.365*n,.7427*i),e.curveTo(.365*n,.7427*i,.3772*n,.8076*i,.4286*n,.8224*i),e.curveTo(.4816*n,.8377*i,.5028*n,.8347*i,.5028*n,.8347*i),e.stroke(),e.begin(),e.moveTo(.3322*n,.7764*i),e.curveTo(.3322*n,.7764*i,.3556*n,.8386*i,.4038*n,.8684*i),e.curveTo(.4533*n,.8991*i,.5029*n,.8929*i,.5029*n,.8929*i),e.stroke(),e.begin(),e.moveTo(.2717*n,.9*i),e.lineTo(.2717*n,i),e.stroke(),e.begin(),e.moveTo(.1671*n,.8991*i),e.curveTo(.1671*n,.8991*i,.1726*n,.9114*i,.1836*n,.9481*i),e.curveTo(.1946*n,.9849*i,.2*n,i,.2*n,i),e.stroke(),e.begin(),e.moveTo(.5*n,.6721*i),e.curveTo(.6109*n,.6721*i,.69*n,.5648*i,.69*n,.3962*i),e.curveTo(.69*n,.3656*i,.6988*n,.3473*i,.6949*n,.3227*i),e.curveTo(.6847*n,.2762*i,.6876*n,.2212*i,.668*n,.1939*i),e.curveTo(.646*n,.1633*i,.5618*n,.12*i,.5*n,.12*i),e.stroke(),e.begin(),e.moveTo(.6954*n,.3716*i),e.curveTo(.6954*n,.3716*i,.6954*n,.341*i,.7174*n,.3594*i),e.curveTo(.7394*n,.3778*i,.7339*n,.4452*i,.734*n,.4452*i),e.quadTo(.7285*n,.4942*i,.723*n,.5065*i),e.curveTo(.7175*n,.5187*i,.723*n,.5187*i,.7065*n,.5371*i),e.curveTo(.69*n,.5554*i,.6625*n,.5615*i,.6625*n,.5616*i),e.stroke(),e.begin(),e.moveTo(.6171*n,.6213*i),e.curveTo(.6171*n,.6213*i,.595*n,.7704*i,.7079*n,.7888*i),e.curveTo(.7464*n,.795*i,.8672*n,.85*i,.8948*n,.8745*i),e.curveTo(.9224*n,.899*i,.9359*n,.9316*i,.9429*n,.9622*i),e.quadTo(.95*n,i,.95*n,i),e.stroke(),e.begin(),e.moveTo(.6573*n,.4185*i),e.curveTo(.6573*n,.4185*i,.6573*n,.3839*i,.6573*n,.3593*i),e.curveTo(.6573*n,.3348*i,.6337*n,.3103*i,.6282*n,.3041*i),e.curveTo(.6227*n,.298*i,.6178*n,.2673*i,.6123*n,.2551*i),e.curveTo(.6068*n,.2429*i,.5905*n,.2429*i,.5741*n,.2367*i),e.curveTo(.5576*n,.2306*i,.5016*n,.2357*i,.5016*n,.2357*i),e.stroke(),e.begin(),e.moveTo(.635*n,.7427*i),e.curveTo(.635*n,.7427*i,.6228*n,.8076*i,.5714*n,.8224*i),e.curveTo(.5184*n,.8377*i,.4972*n,.8347*i,.4972*n,.8347*i),e.stroke(),e.begin(),e.moveTo(.6678*n,.7764*i),e.curveTo(.6678*n,.7764*i,.6444*n,.8386*i,.5962*n,.8684*i),e.curveTo(.5467*n,.8991*i,.4971*n,.8929*i,.4971*n,.8929*i),e.stroke(),e.begin(),e.moveTo(.7283*n,.9*i),e.lineTo(.7283*n,i),e.stroke(),e.begin(),e.moveTo(.8329*n,.8991*i),e.curveTo(.8329*n,.8991*i,.8274*n,.9114*i,.8164*n,.9481*i),e.curveTo(.8054*n,.9849*i,.8*n,i,.8*n,i),e.stroke(),e.setStrokeColor(s),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupUserMale.prototype.cst.SHAPE_MALE_USER,mxShapeMockupUserMale),mxUtils.extend(mxShapeMockupUserFemale,mxShape),mxShapeMockupUserFemale.prototype.cst={STROKE_COLOR2:"strokeColor2",SHAPE_FEMALE_USER:"mxgraph.mockup.containers.userFemale"},mxShapeMockupUserFemale.prototype.customProperties=[{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"}],mxShapeMockupUserFemale.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupUserFemale.prototype.cst.STROKE_COLOR2,"#008cff");e.translate(t,o),this.background(e,t,o,n,i,a,s),e.setShadow(!1),this.otherShapes(e,t,o,n,i,l,s)},mxShapeMockupUserFemale.prototype.background=function(e,t,o,n,i,a,s){e.setFillColor(a),e.setStrokeColor(s),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxShapeMockupUserFemale.prototype.otherShapes=function(e,t,o,n,i,a,s){e.setStrokeColor(a),e.setLineCap("round"),e.setLineJoin("round"),e.begin(),e.moveTo(.3148*n,.468*i),e.curveTo(.3045*n,.3195*i,.3176*n,.2383*i,.3302*n,.2069*i),e.curveTo(.3508*n,.1557*i,.44*n,.1156*i,.5026*n,.1156*i),e.stroke(),e.begin(),e.moveTo(.5029*n,.6728*i),e.curveTo(.4616*n,.6728*i,.4018*n,.6177*i,.3663*n,.5653*i),e.stroke(),e.begin(),e.moveTo(.3108*n,.4021*i),e.curveTo(.3108*n,.4021*i,.3091*n,.3765*i,.2891*n,.3933*i),e.curveTo(.2691*n,.4101*i,.2782*n,.4661*i,.2782*n,.4661*i),e.quadTo(.2862*n,.5067*i,.2922*n,.5166*i),e.curveTo(.2982*n,.5265*i,.2929*n,.5268*i,.3097*n,.5412*i),e.stroke(),e.begin(),e.moveTo(.4038*n,.6176*i),e.curveTo(.4038*n,.6176*i,.4324*n,.7778*i,.3375*n,.7963*i),e.curveTo(.3054*n,.8026*i,.1753*n,.8578*i,.15*n,.8826*i),e.curveTo(.1247*n,.9074*i,.1126*n,.9412*i,.1063*n,.9722*i),e.curveTo(.1*n,1.0032*i,.1*n,i,.1*n,i),e.stroke(),e.begin(),e.moveTo(.6377*n,.3365*i),e.curveTo(.5927*n,.2634*i,.5206*n,.2634*i,.5206*n,.2634*i),e.quadTo(.3769*n,.2591*i,.3713*n,.2659*i),e.curveTo(.3657*n,.2727*i,.3405*n,.3674*i,.3405*n,.3946*i),e.curveTo(.3405*n,.4218*i,.3405*n,.4602*i,.3405*n,.4602*i),e.quadTo(.3546*n,.6401*i,.3546*n,.6626*i),e.stroke(),e.begin(),e.moveTo(.2931*n,.818*i),e.curveTo(.2931*n,.818*i,.3224*n,.9159*i,.3826*n,.9677*i),e.curveTo(.4446*n,1.01*i,.5065*n,i,.5065*n,i),e.stroke(),e.begin(),e.moveTo(.2995*n,.9106*i),e.lineTo(.2995*n,i),e.stroke(),e.begin(),e.moveTo(.2081*n,.907*i),e.curveTo(.2081*n,.907*i,.2131*n,.9194*i,.2232*n,.9565*i),e.curveTo(.2333*n,.9936*i,.24*n,i,.24*n,i),e.stroke(),e.begin(),e.moveTo(.6951*n,.4988*i),e.curveTo(.6951*n,.4662*i,.7042*n,.3453*i,.7*n,.32*i),e.curveTo(.6923*n,.273*i,.6926*n,.2175*i,.6727*n,.19*i),e.curveTo(.6504*n,.159*i,.5651*n,.1157*i,.5025*n,.1157*i),e.stroke(),e.begin(),e.moveTo(.5029*n,.6728*i),e.curveTo(.5546*n,.6728*i,.6107*n,.6316*i,.6461*n,.5602*i),e.stroke(),e.begin(),e.moveTo(.696*n,.4022*i),e.curveTo(.696*n,.4022*i,.6983*n,.3766*i,.7179*n,.4106*i),e.curveTo(.7375*n,.4278*i,.7273*n,.4836*i,.7273*n,.4836*i),e.quadTo(.7184*n,.5241*i,.7123*n,.5338*i),e.curveTo(.7062*n,.5436*i,.7114*n,.544*i,.6943*n,.558*i),e.stroke(),e.begin(),e.moveTo(.5995*n,.6278*i),e.curveTo(.5995*n,.6278*i,.5724*n,.7777*i,.6663*n,.7963*i),e.curveTo(.6984*n,.8026*i,.8386*n,.8578*i,.8638*n,.8826*i),e.curveTo(.8891*n,.9074*i,.9016*n,.9412*i,.9079*n,.9722*i),e.curveTo(.9142*n,1.0032*i,.91*n,i,.91*n,i),e.stroke(),e.begin(),e.moveTo(.6545*n,.6802*i),e.lineTo(.6545*n,.3986*i),e.stroke(),e.begin(),e.moveTo(.7132*n,.8078*i),e.curveTo(.7132*n,.8078*i,.6839*n,.916*i,.6237*n,.9678*i),e.curveTo(.5617*n,1.01*i,.4998*n,i,.4998*n,i),e.stroke(),e.begin(),e.moveTo(.7111*n,.9106*i),e.lineTo(.7111*n,i),e.stroke(),e.begin(),e.moveTo(.8075*n,.907*i),e.curveTo(.8075*n,.907*i,.8025*n,.9194*i,.7924*n,.9565*i),e.curveTo(.7823*n,.9936*i,.775*n,i,.775*n,i),e.stroke(),e.begin(),e.moveTo(.3148*n,.5448*i),e.curveTo(.3148*n,.5448*i,.32*n,.6216*i,.3148*n,.6677*i),e.quadTo(.2891*n,.7343*i,.2891*n,.7343*i),e.lineTo(.3303*n,.7625*i),e.lineTo(.39*n,.7625*i),e.stroke(),e.begin(),e.moveTo(.6852*n,.5448*i),e.curveTo(.6852*n,.5448*i,.68*n,.6216*i,.6852*n,.6677*i),e.quadTo(.7109*n,.7343*i,.7109*n,.7343*i),e.lineTo(.6697*n,.7625*i),e.lineTo(.62*n,.7625*i),e.stroke(),e.setStrokeColor(s),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupUserFemale.prototype.cst.SHAPE_FEMALE_USER,mxShapeMockupUserFemale),mxUtils.extend(mxShapeMockupGroup,mxShape),mxShapeMockupGroup.prototype.cst={MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",FILL_COLOR2:"fillColor2",SHAPE_GROUP:"mxgraph.mockup.containers.group"},mxShapeMockupGroup.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupGroup.prototype.cst.MAIN_TEXT,"Group").toString(),s=mxUtils.getValue(this.style,mxShapeMockupGroup.prototype.cst.TEXT_SIZE,"17"),l=mxUtils.getSizeForString(a,s,mxConstants.DEFAULT_FONTFAMILY).width;0===l&&(l=Math.max(80,l)),e.translate(t,o),n=Math.max(n,l+15),i=Math.max(i,s+10),this.background(e,n,i,l,s),e.setShadow(!1),this.foreground(e,n,i,l,s),this.buttonText(e,n,i,a,s)},mxShapeMockupGroup.prototype.background=function(e,t,o,n,i){e.roundrect(0,.5*i,t,o-.5*i,5,5),e.fillAndStroke()},mxShapeMockupGroup.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupGroup.prototype.cst.FILL_COLOR2,"#000000"),e.setFillColor(t),e.roundrect(3,0,n+6,1.5*i,.25*i,.25*i),e.fill()},mxShapeMockupGroup.prototype.buttonText=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupGroup.prototype.cst.TEXT_COLOR,"#ffffff"),e.setFontColor(t),e.setFontSize(i),e.text(6,0,0,0,n,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupGroup.prototype.cst.SHAPE_GROUP,mxShapeMockupGroup),mxUtils.extend(mxShapeMockupWindow,mxShape),mxShapeMockupWindow.prototype.cst={MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SHAPE_WINDOW:"mxgraph.mockup.containers.window"},mxShapeMockupWindow.prototype.customProperties=[{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"},{name:"strokeColor3",dispName:"Stroke3 Color",type:"color"}],mxShapeMockupWindow.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupWindow.prototype.cst.STROKE_COLOR2,"#008cff"),r=mxUtils.getValue(this.style,mxShapeMockupWindow.prototype.cst.STROKE_COLOR3,"#c4c4c4");e.translate(t,o),i=Math.max(i,30),n=Math.max(n,90),this.background(e,t,o,n,i,a,s),e.setShadow(!1),this.otherShapes(e,t,o,n,i,s,r,l)},mxShapeMockupWindow.prototype.background=function(e,t,o,n,i,a,s){e.setFillColor(a),e.setStrokeColor(s),e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupWindow.prototype.otherShapes=function(e,t,o,n,i,a,s,l){mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1"),e.setStrokeColor(a),e.ellipse(n-75,5,20,20),e.stroke(),e.ellipse(n-50,5,20,20),e.stroke(),e.setStrokeColor(l),e.ellipse(n-25,5,20,20),e.stroke(),e.setStrokeColor(s),e.begin(),e.moveTo(0,30),e.lineTo(n,30),e.stroke(),t=mxUtils.getValue(this.style,mxShapeMockupWindow.prototype.cst.MAIN_TEXT,"Window Title"),o=mxUtils.getValue(this.style,mxShapeMockupWindow.prototype.cst.TEXT_COLOR,"#666666"),n=mxUtils.getValue(this.style,mxShapeMockupWindow.prototype.cst.TEXT_SIZE,"17").toString(),e.setFontColor(o),e.setFontSize(n),e.text(10,15,0,0,t,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupWindow.prototype.cst.SHAPE_WINDOW,mxShapeMockupWindow),mxUtils.extend(mxShapeMockupHorTabBar,mxShape),mxShapeMockupHorTabBar.prototype.cst={BLOCK:"block",CONE:"cone",HALF_CONE:"halfCone",ROUND:"round",TEXT_SIZE:"textSize",TAB_NAMES:"tabs",TAB_STYLE:"tabStyle",STYLE_FILLCOLOR2:"fillColor2",TEXT_COLOR:"textColor",SEL_TEXT_COLOR:"textColor2",SHAPE_HOR_TAB_BAR:"mxgraph.mockup.containers.horTabBar"},mxShapeMockupHorTabBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TEXT_SIZE,"17").toString(),s=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TAB_NAMES,"Tab 1,+Tab 2,Tab 3").toString().split(","),l=1.5*a,r=s.length,p=20+5*(r-1)+20*r,m=[],h=-1,x=0;x<r;x++){var c=s[x];"+"===c.charAt(0)&&(c=c.substring(1),h=x),currW=mxUtils.getSizeForString(c,a,mxConstants.DEFAULT_FONTFAMILY).width,m[x]=0===currW?40:currW,p+=m[x]}n=Math.max(n,p),i=Math.max(i,l+5),e.translate(t,o),this.background(e,n,i,5,l),e.setShadow(!1),this.backTabs(e,n,i,5,l,10,5,10,r,m,h),this.focusTab(e,n,i,5,l,10,5,10,r,m,h),this.tabText(e,n,i,5,l,10,5,10,r,m,h,s)},mxShapeMockupHorTabBar.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,i+n),e.arcTo(n,n,0,0,1,n,i),e.lineTo(t-n,i),e.arcTo(n,n,0,0,1,t,i+n),e.lineTo(t,o),e.lineTo(0,o),e.close(),e.fillAndStroke()},mxShapeMockupHorTabBar.prototype.backTabs=function(e,t,o,n,i,a,s,l,r,p,m){for(t=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TAB_STYLE,mxShapeMockupHorTabBar.prototype.cst.BLOCK),o=0;o<r;o++){var h=p[o]+2*l;m!==o&&(t===mxShapeMockupHorTabBar.prototype.cst.BLOCK?e.rect(a,0,h,i):t===mxShapeMockupHorTabBar.prototype.cst.CONE?(e.begin(),e.moveTo(a,i),e.lineTo(a+.5*l,0),e.lineTo(a+h-.5*l,0),e.lineTo(a+h,i)):t===mxShapeMockupHorTabBar.prototype.cst.HALF_CONE?(e.begin(),e.moveTo(a,i),e.lineTo(a+.5*l,0),e.lineTo(a+h,0),e.lineTo(a+h,i)):t===mxShapeMockupHorTabBar.prototype.cst.ROUND&&(e.begin(),e.moveTo(a-n,i),e.arcTo(n,n,0,0,0,a,i-n),e.lineTo(a,n),e.arcTo(n,n,0,0,1,a+n,0),e.lineTo(a+h-n,0),e.arcTo(n,n,0,0,1,a+h,n),e.lineTo(a+h,i-n),e.arcTo(n,n,0,0,0,a+h+n,i)),e.fillAndStroke()),a=a+h+s}},mxShapeMockupHorTabBar.prototype.focusTab=function(e,t,o,n,i,a,s,l,r,p,m){for(o=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TAB_STYLE,mxShapeMockupHorTabBar.prototype.cst.BLOCK),r=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.STYLE_FILLCOLOR2,"#008cff"),e.setStrokeColor(r),e.setFillColor(r),r=0;r<=m;r++){var h=p[r]+2*l;m===r&&(o===mxShapeMockupHorTabBar.prototype.cst.BLOCK?(e.begin(),e.moveTo(0,i+n),e.arcTo(n,n,0,0,1,n,i),e.lineTo(a,i),e.lineTo(a,0),e.lineTo(a+h,0),e.lineTo(a+h,i),e.lineTo(t-n,i),e.arcTo(n,n,0,0,1,t,i+n),e.close()):o===mxShapeMockupHorTabBar.prototype.cst.CONE?(e.begin(),e.moveTo(0,i+n),e.arcTo(n,n,0,0,1,n,i),e.lineTo(a,i),e.lineTo(a+.5*l,0),e.lineTo(a+h-.5*l,0),e.lineTo(a+h,i),e.lineTo(t-n,i),e.arcTo(n,n,0,0,1,t,i+n),e.close()):o===mxShapeMockupHorTabBar.prototype.cst.HALF_CONE?(e.begin(),e.moveTo(0,i+n),e.arcTo(n,n,0,0,1,n,i),e.lineTo(a,i),e.lineTo(a+.5*l,0),e.lineTo(a+h,0),e.lineTo(a+h,i),e.lineTo(t-n,i),e.arcTo(n,n,0,0,1,t,i+n),e.close()):o===mxShapeMockupHorTabBar.prototype.cst.ROUND&&(e.begin(),e.moveTo(0,i+n),e.arcTo(n,n,0,0,1,n,i),e.lineTo(a-n,i),e.arcTo(n,n,0,0,0,a,i-n),e.lineTo(a,n),e.arcTo(n,n,0,0,1,a+n,0),e.lineTo(a+h-n,0),e.arcTo(n,n,0,0,1,a+h,n),e.lineTo(a+h,i-n),e.arcTo(n,n,0,0,0,a+h+n,i),e.lineTo(t-n,i),e.arcTo(n,n,0,0,1,t,i+n),e.close()),e.fillAndStroke()),a=a+h+s}},mxShapeMockupHorTabBar.prototype.tabText=function(e,t,o,n,i,a,s,l,r,p,m,h){for(t=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TEXT_COLOR,"#666666"),o=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.SEL_TEXT_COLOR,"#ffffff"),n=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TEXT_SIZE,"17").toString(),e.setFontColor(t),e.setFontSize(n),n=0;n<r;n++){var x=h[n];n===m&&e.setFontColor(o),"+"===x.charAt(0)&&(x=x.substring(1));var c=p[n]+2*l;e.text(a+l,.5*i,0,0,x,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),a=a+c+s,n===m&&e.setFontColor(t)}},mxCellRenderer.registerShape(mxShapeMockupHorTabBar.prototype.cst.SHAPE_HOR_TAB_BAR,mxShapeMockupHorTabBar),mxUtils.extend(mxShapeMockupVerTabBar,mxShape),mxShapeMockupVerTabBar.prototype.cst={BLOCK:"block",ROUND:"round",TEXT_SIZE:"textSize",TAB_NAMES:"tabs",TAB_STYLE:"tabStyle",STYLE_FILLCOLOR2:"fillColor2",TEXT_COLOR:"textColor",SEL_TEXT_COLOR:"textColor2",SHAPE_VER_TAB_BAR:"mxgraph.mockup.containers.verTabBar"},mxShapeMockupVerTabBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TEXT_SIZE,"17").toString(),s=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TAB_NAMES,"Tab 1,+Tab 2,Tab 3").toString().split(","),l=1.5*a,r=s.length,p=[],m=-1,h=0;h<r;h++){var x=s[h];"+"===x.charAt(0)&&(x=x.substring(1),m=h),x=mxUtils.getSizeForString(x,a,mxConstants.DEFAULT_FONTFAMILY).width,p[h]=0===x?42:x}a=20+Math.max.apply(Math,p),n=Math.max(n,a+5),i=Math.max(i,20+r*l+5*(r-1)),e.translate(t,o),this.background(e,n,i,5,a),e.setShadow(!1),this.backTabs(e,n,i,5,l,a,10,5,10,r,p,m),this.focusTab(e,n,i,5,l,a,10,5,10,r,p,m),this.tabText(e,n,i,5,l,a,10,5,10,r,p,m,s)},mxShapeMockupVerTabBar.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(i+n,o),e.arcTo(n,n,0,0,1,i,o-n),e.lineTo(i,n),e.arcTo(n,n,0,0,1,i+n,0),e.lineTo(t,0),e.lineTo(t,o),e.close(),e.fillAndStroke()},mxShapeMockupVerTabBar.prototype.backTabs=function(e,t,o,n,i,a,s,l,r,p,m,h){for(t=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TAB_STYLE,mxShapeMockupVerTabBar.prototype.cst.BLOCK),o=0;o<p;o++)h!==o&&(t===mxShapeMockupVerTabBar.prototype.cst.BLOCK?e.rect(0,s,a,i):t===mxShapeMockupVerTabBar.prototype.cst.ROUND&&(e.begin(),e.moveTo(a,s+i+n),e.arcTo(n,n,0,0,0,a-n,s+i),e.lineTo(n,s+i),e.arcTo(n,n,0,0,1,0,s+i-n),e.lineTo(0,s+n),e.arcTo(n,n,0,0,1,n,s),e.lineTo(a-n,s),e.arcTo(n,n,0,0,0,a,s-n)),e.fillAndStroke()),s=s+i+l},mxShapeMockupVerTabBar.prototype.focusTab=function(e,t,o,n,i,a,s,l,r,p,m,h){t=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TAB_STYLE,mxShapeMockupVerTabBar.prototype.cst.BLOCK),r=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.STYLE_FILLCOLOR2,"#008cff"),-1!==h&&(s+=(i+l)*h,e.setStrokeColor(r),e.setFillColor(r),t===mxShapeMockupVerTabBar.prototype.cst.BLOCK?(e.begin(),e.moveTo(a+n,o),e.arcTo(n,n,0,0,1,a,o-n),e.lineTo(a,s+i),e.lineTo(0,s+i),e.lineTo(0,s),e.lineTo(a,s),e.lineTo(a,n),e.arcTo(n,n,0,0,1,a+n,0),e.close()):t===mxShapeMockupVerTabBar.prototype.cst.ROUND&&(e.begin(),e.moveTo(a+n,o),e.arcTo(n,n,0,0,1,a,o-n),e.lineTo(a,s+i+n),e.arcTo(n,n,0,0,0,a-n,s+i),e.lineTo(n,s+i),e.arcTo(n,n,0,0,1,0,s+i-n),e.lineTo(0,s+n),e.arcTo(n,n,0,0,1,n,s),e.lineTo(a-n,s),e.arcTo(n,n,0,0,0,a,s-n),e.lineTo(a,n),e.arcTo(n,n,0,0,1,a+n,0),e.close()),e.fillAndStroke())},mxShapeMockupVerTabBar.prototype.tabText=function(e,t,o,n,i,a,s,l,r,p,m,h,x){for(t=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TEXT_COLOR,"#666666"),o=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.SEL_TEXT_COLOR,"#ffffff"),n=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TEXT_SIZE,"17").toString(),e.setFontColor(t),e.setFontSize(n),n=0;n<p;n++)r=x[n],n===h&&e.setFontColor(o),"+"===r.charAt(0)&&(r=r.substring(1)),e.text(.5*a,s+.5*i,0,0,r,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),s=s+i+l,n===h&&e.setFontColor(t)},mxCellRenderer.registerShape(mxShapeMockupVerTabBar.prototype.cst.SHAPE_VER_TAB_BAR,mxShapeMockupVerTabBar),mxUtils.extend(mxShapeMockupAlertBox,mxShape),mxShapeMockupAlertBox.prototype.cst={MAIN_TEXT:"mainText",SUB_TEXT:"subText",BUTTON_TEXT:"buttonText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SHAPE_ALERT_BOX:"mxgraph.mockup.containers.alertBox"},mxShapeMockupAlertBox.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.STROKE_COLOR2,"#008cff"),r=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.STROKE_COLOR3,"#c4c4c4");e.translate(t,o),i=Math.max(i,75),n=Math.max(n,90),this.background(e,t,o,n,i,a,s),e.setShadow(!1),this.foreground(e,t,o,n,i,s,r,l)},mxShapeMockupAlertBox.prototype.background=function(e,t,o,n,i,a,s){e.setFillColor(a),e.setStrokeColor(s),e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupAlertBox.prototype.foreground=function(e,t,o,n,i,a,s,l){mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1"),e.setStrokeColor(l),e.ellipse(n-25,5,20,20),e.stroke(),e.setStrokeColor(s),e.begin(),e.moveTo(0,30),e.lineTo(n,30),e.stroke(),l=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.MAIN_TEXT,"Window Title").toString(),t=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.SUB_TEXT,"Sub Text").toString().split(","),o=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.BUTTON_TEXT,"OK,Cancel").toString().split(",");var r=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.TEXT_COLOR,"#666666");for(a=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.TEXT_SIZE,"17").toString(),s=(n-10*((s=o.length)+1))/s,e.setFontColor(r),e.setFontSize(a),e.text(10,15,0,0,l,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),l=10,r=0;r<o.length;r++)""!==o[r]&&(e.rect(l,i-10-1.5*a,s,1.5*a),e.stroke(),e.text(l+.5*s,i-10-.75*a,0,0,o[r],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)),l=l+s+10;for(r=0;r<t.length;r++)e.text(.5*n,30+a*(1.5*r+.75),0,0,t[r],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);e.stroke()},mxCellRenderer.registerShape(mxShapeMockupAlertBox.prototype.cst.SHAPE_ALERT_BOX,mxShapeMockupAlertBox),mxUtils.extend(mxShapeMockupContainersRRect,mxShape),mxShapeMockupContainersRRect.prototype.cst={RRECT:"mxgraph.mockup.containers.rrect",R_SIZE:"rSize"},mxShapeMockupContainersRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupContainersRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupContainersRRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupContainersRRect.prototype.cst.RRECT,mxShapeMockupContainersRRect),mxUtils.extend(mxShapeMockupContainersAnchor,mxShape),mxShapeMockupContainersAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.containers.anchor"},mxShapeMockupContainersAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeMockupContainersAnchor.prototype.cst.ANCHOR,mxShapeMockupContainersAnchor),mxUtils.extend(mxShapeMockupContrainersTopButton,mxShape),mxShapeMockupContrainersTopButton.prototype.cst={TOP_BUTTON:"mxgraph.mockup.containers.topButton",R_SIZE:"rSize"},mxShapeMockupContrainersTopButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupContrainersTopButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupContrainersTopButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupContrainersTopButton.prototype.cst.TOP_BUTTON,mxShapeMockupContrainersTopButton),mxUtils.extend(mxShapeMockupContainersLeftButton,mxShape),mxShapeMockupContainersLeftButton.prototype.cst={LEFT_BUTTON:"mxgraph.mockup.containers.leftButton",R_SIZE:"rSize"},mxShapeMockupContainersLeftButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupContainersLeftButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupContainersLeftButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(n,0),e.lineTo(n,i),e.lineTo(t,i),e.arcTo(t,t,0,0,1,0,i-t),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupContainersLeftButton.prototype.cst.LEFT_BUTTON,mxShapeMockupContainersLeftButton),mxUtils.extend(mxShapeMockupContainersMarginRect,mxShape),mxShapeMockupContainersMarginRect.prototype.cst={SHAPE_MARGIN_RECT:"mxgraph.mockup.containers.marginRect",MARGIN:"rectMargin",MARGIN_TOP:"rectMarginTop",MARGIN_LEFT:"rectMarginLeft",MARGIN_BOTTOM:"rectMarginBottom",MARGIN_RIGHT:"rectMarginRight"},mxShapeMockupContainersMarginRect.prototype.customProperties=[{name:"rectMargin",dispName:"Global Margin",type:"float",min:0,defVal:0},{name:"rectMarginTop",dispName:"Top Margin",type:"float",min:0,defVal:0},{name:"rectMarginLeft",dispName:"Left Margin",type:"float",min:0,defVal:0},{name:"rectMarginBottom",dispName:"Bottom Margin",type:"float",min:0,defVal:0},{name:"rectMarginRight",dispName:"Right Margin",type:"float",min:0,defVal:0}],mxShapeMockupContainersMarginRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeMockupContainersMarginRect.prototype.background=function(e,t,o,n,i,a){t=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect.prototype.cst.MARGIN,"0"));var s=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect.prototype.cst.MARGIN_TOP,"0"));a=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect.prototype.cst.MARGIN_LEFT,"0")),i=i-parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect.prototype.cst.MARGIN_BOTTOM,"0"))-(s=t+s)-t,0<(n=n-parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect.prototype.cst.MARGIN_RIGHT,"0"))-(a=t+a)-t)&&0<i&&(e.begin(),e.roundrect(a,s,n,i,10,10),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeMockupContainersMarginRect.prototype.cst.SHAPE_MARGIN_RECT,mxShapeMockupContainersMarginRect),mxUtils.extend(mxShapeMockupContainersMarginRect2,mxShape),mxShapeMockupContainersMarginRect2.prototype.cst={SHAPE_MARGIN_RECT:"mxgraph.mockup.containers.marginRect2",MARGIN:"rectMargin",MARGIN_TOP:"rectMarginTop",MARGIN_LEFT:"rectMarginLeft",MARGIN_BOTTOM:"rectMarginBottom",MARGIN_RIGHT:"rectMarginRight"},mxShapeMockupContainersMarginRect2.prototype.customProperties=[{name:"rectMargin",dispName:"Global Margin",type:"float",min:0,defVal:0},{name:"rectMarginTop",dispName:"Top Margin",type:"float",min:0,defVal:0},{name:"rectMarginLeft",dispName:"Left Margin",type:"float",min:0,defVal:0},{name:"rectMarginBottom",dispName:"Bottom Margin",type:"float",min:0,defVal:0},{name:"rectMarginRight",dispName:"Right Margin",type:"float",min:0,defVal:0}],mxShapeMockupContainersMarginRect2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeMockupContainersMarginRect2.prototype.background=function(e,t,o,n,i,a){t=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect2.prototype.cst.MARGIN,"0"));var s=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect2.prototype.cst.MARGIN_TOP,"0"));a=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect2.prototype.cst.MARGIN_LEFT,"0")),i=i-parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect2.prototype.cst.MARGIN_BOTTOM,"0"))-(s=t+s)-t,0<(n=n-parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect2.prototype.cst.MARGIN_RIGHT,"0"))-(a=t+a)-t)&&0<i&&(e.begin(),e.rect(a,s,n,i),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeMockupContainersMarginRect2.prototype.cst.SHAPE_MARGIN_RECT,mxShapeMockupContainersMarginRect2),mxUtils.extend(mxShapeMockupCheckboxGroup,mxShape),mxShapeMockupCheckboxGroup.prototype.cst={MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SELECTED:"+",SHAPE_CHECKBOX_GROUP:"mxgraph.mockup.forms.checkboxGroup"},mxShapeMockupCheckboxGroup.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxShapeMockupCheckboxGroup.prototype.cst.TEXT_COLOR,"#666666,#008cff").toString().split(",");var a=mxUtils.getValue(this.style,mxShapeMockupCheckboxGroup.prototype.cst.TEXT_SIZE,"17").toString(),s=(o=mxUtils.getValue(this.style,mxShapeMockupCheckboxGroup.prototype.cst.MAIN_TEXT,"Option 1").toString().split(",")).length,l=Math.max(1.5*a,15),r=0,p=-1,m=s*l;i=Math.max(i,m);for(var h=0;h<s;h++){var x=o[h];x.charAt(0)===mxShapeMockupCheckboxGroup.prototype.cst.SELECTED&&(x=o[h].substring(1),p=h),(x=mxUtils.getSizeForString(x,a,mxConstants.DEFAULT_FONTFAMILY).width)>r&&(r=x)}for(e.rect(0,0,Math.max(n,5+r+30),i),e.fillAndStroke(),e.setShadow(!1),e.setFontSize(a),h=0;h<s;h++)n=(h*l+.5*l)*i/m,(x=o[h]).charAt(0)===mxShapeMockupCheckboxGroup.prototype.cst.SELECTED?(e.setFontColor(t[1]),x=o[h].substring(1),p=h):e.setFontColor(t[0]),e.text(32.5,n,0,0,x,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),n-=7.5,e.setFillColor("#dddddd"),e.setStrokeColor("#999999"),p===h?(e.setGradient("#aaaaaa","#666666",7.5,n,15,15,mxConstants.DIRECTION_SOUTH,1,1),e.rect(7.5,n,15,15),e.fillAndStroke(),e.setStrokeColor("#333333"),e.begin(),e.moveTo(11.25,n+7.5),e.lineTo(15,n+11.25),e.lineTo(18.75,n+3.75),e.stroke()):(e.setGradient("#eeeeee","#cccccc",7.5,n,15,15,mxConstants.DIRECTION_SOUTH,1,1),e.rect(7.5,n,15,15),e.fillAndStroke()),p=-1},mxCellRenderer.registerShape(mxShapeMockupCheckboxGroup.prototype.cst.SHAPE_CHECKBOX_GROUP,mxShapeMockupCheckboxGroup),mxUtils.extend(mxShapeMockupRadioGroup,mxShape),mxShapeMockupRadioGroup.prototype.cst={MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SELECTED:"+",SHAPE_RADIO_GROUP:"mxgraph.mockup.forms.radioGroup"},mxShapeMockupRadioGroup.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxShapeMockupRadioGroup.prototype.cst.TEXT_COLOR,"#666666,#008cff").toString().split(",");var a=mxUtils.getValue(this.style,mxShapeMockupRadioGroup.prototype.cst.TEXT_SIZE,"17").toString(),s=(o=mxUtils.getValue(this.style,mxShapeMockupRadioGroup.prototype.cst.MAIN_TEXT,"Option 1").toString().split(",")).length,l=Math.max(1.5*a,15),r=0,p=-1,m=s*l;i=Math.max(i,m);for(var h=0;h<s;h++){var x=o[h];x.charAt(0)===mxShapeMockupRadioGroup.prototype.cst.SELECTED&&(x=o[h].substring(1),p=h),(x=mxUtils.getSizeForString(x,a,mxConstants.DEFAULT_FONTFAMILY).width)>r&&(r=x)}for(e.rect(0,0,Math.max(n,5+r+30),i),e.fillAndStroke(),e.setShadow(!1),e.setFontSize(a),h=0;h<s;h++)n=(h*l+.5*l)*i/m,(x=o[h]).charAt(0)===mxShapeMockupRadioGroup.prototype.cst.SELECTED?(e.setFontColor(t[1]),x=o[h].substring(1),p=h):e.setFontColor(t[0]),e.text(32.5,n,0,0,x,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),n-=7.5,e.setStrokeColor("#999999"),p===h?(e.setGradient("#aaaaaa","#666666",7.5,n,15,15,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(7.5,n,15,15),e.fillAndStroke(),e.setFillColor("#333333"),e.setStrokeColor("#333333"),e.ellipse(11.25,n+3.75,7.5,7.5)):(e.setGradient("#eeeeee","#cccccc",7.5,n,15,15,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(7.5,n,15,15)),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupRadioGroup.prototype.cst.SHAPE_RADIO_GROUP,mxShapeMockupRadioGroup),mxUtils.extend(mxShapeMockupColorPicker,mxShape),mxShapeMockupColorPicker.prototype.cst={COLOR:"chosenColor",SHAPE_COLOR_PICKER:"mxgraph.mockup.forms.colorPicker"},mxShapeMockupColorPicker.prototype.customProperties=[{name:"chosenColor",dispName:"Current Color",type:"color"}],mxShapeMockupColorPicker.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupColorPicker.prototype.cst.COLOR,"#aaddff");e.translate(t,o),e.setStrokeColor("#999999"),e.roundrect(0,0,n,i,.05*n,.05*i),e.fillAndStroke(),e.setShadow(!1),e.setFillColor(a),e.rect(.1*n,.1*i,.8*n,.8*i),e.fill(),e.setFillColor("#ffffff"),e.begin(),e.moveTo(.75*n,.75*i),e.lineTo(.75*n,i),e.lineTo(.95*n,i),e.arcTo(.05*n,.05*i,0,0,0,n,.95*i),e.lineTo(n,.75*i),e.close(),e.fill(),e.setFillColor("#999999"),e.begin(),e.moveTo(.77*n,.77*i),e.lineTo(.875*n,.98*i),e.lineTo(.98*n,.77*i),e.close(),e.fill(),e.roundrect(0,0,n,i,.05*n,.05*i),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupColorPicker.prototype.cst.SHAPE_COLOR_PICKER,mxShapeMockupColorPicker),mxUtils.extend(mxShapeMockupComboBox,mxShape),mxShapeMockupComboBox.prototype.cst={MAIN_TEXT:"mainText",FILL_COLOR2:"fillColor2",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_COMBO_BOX:"mxgraph.mockup.forms.comboBox"},mxShapeMockupComboBox.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"}],mxShapeMockupComboBox.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i),this.mainText(e,t,o,n,i)},mxShapeMockupComboBox.prototype.background=function(e,t,o,n,i){e.setFillColor("#ffffff"),e.roundrect(0,0,n,i,5,5),e.fillAndStroke()},mxShapeMockupComboBox.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxShapeMockupComboBox.prototype.cst.FILL_COLOR2,"").toString(),e.setGradient(t,o,n-30,0,30,i,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(n-30,0),e.lineTo(n-5,0),e.arcTo(5,5,0,0,1,n,5),e.lineTo(n,i-5),e.arcTo(5,5,0,0,1,n-5,i),e.lineTo(n-30,i),e.close(),e.fillAndStroke(),e.setFillColor("#ffffff"),e.begin(),e.moveTo(n-22,.5*i-5),e.lineTo(n-15,.5*i+5),e.lineTo(n-8,.5*i-5),e.fill()},mxShapeMockupComboBox.prototype.mainText=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupComboBox.prototype.cst.MAIN_TEXT,"Main Text"),o=mxUtils.getValue(this.style,mxShapeMockupComboBox.prototype.cst.TEXT_COLOR,"#666666").toString(),n=mxUtils.getValue(this.style,mxShapeMockupComboBox.prototype.cst.TEXT_SIZE,"17").toString(),e.begin(),e.setFontSize(n),e.setFontColor(o),e.text(5,.5*i,0,0,t,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupComboBox.prototype.cst.SHAPE_COMBO_BOX,mxShapeMockupComboBox),mxUtils.extend(mxShapeMockupSpinner,mxShape),mxShapeMockupSpinner.prototype.cst={LAYOUT:"spinLayout",SPINNER_STYLE:"spinStyle",ADJ_STYLE:"adjStyle",LAYOUT_RIGHT:"right",LAYOUT_LEFT:"left",LAYOUT_TOP:"top",LAYOUT_BOTTOM:"bottom",LAYOUT_VERTICAL:"vertical",LAYOUT_HORIZONTAL:"horizontal",SPINNER_MERGED:"merged",SPINNER_NORMAL:"normal",ADJ_TRIANGLE:"triangle",ADJ_PLUSMINUS:"plusMinus",ADJ_ARROW:"arrow",MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_SPINNER:"mxgraph.mockup.forms.spinner"},mxShapeMockupSpinner.prototype.customProperties=[{name:"spinLayout",dispName:"Layout",type:"enum",enumList:[{val:"right",dispName:"Right"},{val:"left",dispName:"Left"},{val:"top",dispName:"Top"},{val:"bottom",dispName:"Bottom"},{val:"vertical",dispName:"Vertical"},{val:"horizontal",dispName:"Horizontal"}]},{name:"spinStyle",dispName:"Spinner Style",type:"enum",enumList:[{val:"merged",dispName:"Merged"},{val:"normal",dispName:"Normal"}]},{name:"adjStyle",dispName:"Button Style",type:"enum",enumList:[{val:"triangle",dispName:"Triangle"},{val:"plusMinus",dispName:"+/-"},{val:"arrow",dispName:"Arrow"}]}],mxShapeMockupSpinner.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.LAYOUT,mxShapeMockupSpinner.prototype.cst.LAYOUT_RIGHT);e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i,a),this.mainText(e,n,i,a)},mxShapeMockupSpinner.prototype.background=function(e,t,o){e.setFillColor("#ffffff"),e.roundrect(0,0,t,o,10,10),e.fillAndStroke()},mxShapeMockupSpinner.prototype.foreground=function(e,t,o,n){var i=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.SPINNER_STYLE,mxShapeMockupSpinner.prototype.cst.SPINNER_NORMAL),a=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.ADJ_STYLE,mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE),s=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");e.setFillColor(s),i===mxShapeMockupSpinner.prototype.cst.SPINNER_NORMAL&&(n===mxShapeMockupSpinner.prototype.cst.LAYOUT_RIGHT?(e.begin(),e.moveTo(t-20,0),e.lineTo(t-20,o),e.moveTo(t-20,.5*o),e.lineTo(t,.5*o),e.stroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_LEFT?(e.begin(),e.moveTo(20,0),e.lineTo(20,o),e.moveTo(20,.5*o),e.lineTo(0,.5*o),e.stroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_TOP?(e.begin(),e.moveTo(0,15),e.lineTo(t,15),e.moveTo(.5*t,15),e.lineTo(.5*t,0),e.stroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_BOTTOM?(e.begin(),e.moveTo(0,o-15),e.lineTo(t,o-15),e.moveTo(.5*t,o-15),e.lineTo(.5*t,o),e.stroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_VERTICAL?(e.begin(),e.moveTo(0,15),e.lineTo(t,15),e.moveTo(0,o-15),e.lineTo(t,o-15),e.stroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_HORIZONTAL&&(e.begin(),e.moveTo(20,0),e.lineTo(20,o),e.moveTo(t-20,0),e.lineTo(t-20,o),e.stroke())),e.setStrokeColor(s),n===mxShapeMockupSpinner.prototype.cst.LAYOUT_RIGHT?a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(t-14,.25*o+4.5),e.lineTo(t-10,.25*o-2.5),e.lineTo(t-6,.25*o+4.5),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(t-10,.25*o-4),e.lineTo(t-10,.25*o+4),e.moveTo(t-14,.25*o),e.lineTo(t-6,.25*o),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(t-14,.25*o+1.5),e.lineTo(t-10,.25*o-2.5),e.lineTo(t-6,.25*o+1.5),e.close(),e.moveTo(t-10,.25*o+4.5),e.lineTo(t-10,.25*o-2.5),e.fillAndStroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_LEFT?a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(14,.25*o+4.5),e.lineTo(10,.25*o-2.5),e.lineTo(6,.25*o+4.5),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(10,.25*o-4),e.lineTo(10,.25*o+4),e.moveTo(14,.25*o),e.lineTo(6,.25*o),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(14,.25*o+1.5),e.lineTo(10,.25*o-2.5),e.lineTo(6,.25*o+1.5),e.close(),e.moveTo(10,.25*o+4.5),e.lineTo(10,.25*o-2.5),e.fillAndStroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_TOP?a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(.75*t+4,12),e.lineTo(.75*t,5),e.lineTo(.75*t-4,12),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(.75*t,3.5),e.lineTo(.75*t,11.5),e.moveTo(.75*t+4,7.5),e.lineTo(.75*t-4,7.5),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(.75*t+4,9),e.lineTo(.75*t,5),e.lineTo(.75*t-4,9),e.close(),e.moveTo(.75*t,12),e.lineTo(.75*t,5),e.fillAndStroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_BOTTOM?a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(.75*t+4,o-5),e.lineTo(.75*t,o-12),e.lineTo(.75*t-4,o-5),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(.75*t,o-3.5),e.lineTo(.75*t,o-11.5),e.moveTo(.75*t+4,o-7.5),e.lineTo(.75*t-4,o-7.5),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(.75*t+4,o-6),e.lineTo(.75*t,o-10),e.lineTo(.75*t-4,o-6),e.close(),e.moveTo(.75*t,o-3),e.lineTo(.75*t,o-10),e.fillAndStroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_VERTICAL?a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(.5*t+4,12),e.lineTo(.5*t,5),e.lineTo(.5*t-4,12),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(.5*t,3.5),e.lineTo(.5*t,11.5),e.moveTo(.5*t+4,7.5),e.lineTo(.5*t-4,7.5),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(.5*t+4,9),e.lineTo(.5*t,5),e.lineTo(.5*t-4,9),e.close(),e.moveTo(.5*t,12),e.lineTo(.5*t,5),e.fillAndStroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_HORIZONTAL&&(a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(t-6,.5*o+4.5),e.lineTo(t-10,.5*o-2.5),e.lineTo(t-14,.5*o+4.5),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(t-10,.5*o-4),e.lineTo(t-10,.5*o+4),e.moveTo(t-14,.5*o),e.lineTo(t-6,.5*o),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(t-14,.5*o+1.5),e.lineTo(t-10,.5*o-2.5),e.lineTo(t-6,.5*o+1.5),e.close(),e.moveTo(t-10,.5*o+4.5),e.lineTo(t-10,.5*o-2.5),e.fillAndStroke())),n===mxShapeMockupSpinner.prototype.cst.LAYOUT_RIGHT?a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(t-14,.75*o-4.5),e.lineTo(t-10,.75*o+2.5),e.lineTo(t-6,.75*o-4.5),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(t-14,.75*o),e.lineTo(t-6,.75*o),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(t-14,.75*o-1.5),e.lineTo(t-10,.75*o+2.5),e.lineTo(t-6,.75*o-1.5),e.close(),e.moveTo(t-10,.75*o-4.5),e.lineTo(t-10,.75*o+2.5),e.fillAndStroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_LEFT?a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(14,.75*o-4.5),e.lineTo(10,.75*o+2.5),e.lineTo(6,.75*o-4.5),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(14,.75*o),e.lineTo(6,.75*o),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(14,.75*o-1.5),e.lineTo(10,.75*o+2.5),e.lineTo(6,.75*o-1.5),e.close(),e.moveTo(10,.75*o-4.5),e.lineTo(10,.75*o+2.5),e.fillAndStroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_TOP?a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(.25*t+4,5),e.lineTo(.25*t,12),e.lineTo(.25*t-4,5),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(.25*t+4,7.5),e.lineTo(.25*t-4,7.5),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(.25*t+4,6),e.lineTo(.25*t,10),e.lineTo(.25*t-4,6),e.close(),e.moveTo(.25*t,3),e.lineTo(.25*t,10),e.fillAndStroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_BOTTOM?a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(.25*t+4,o-12),e.lineTo(.25*t,o-5),e.lineTo(.25*t-4,o-12),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(.25*t+4,o-7.5),e.lineTo(.25*t-4,o-7.5),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(.25*t+4,o-9),e.lineTo(.25*t,o-5),e.lineTo(.25*t-4,o-9),e.close(),e.moveTo(.25*t,o-12),e.lineTo(.25*t,o-5),e.fillAndStroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_VERTICAL?a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(.5*t+4,o-12),e.lineTo(.5*t,o-5),e.lineTo(.5*t-4,o-12),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(.5*t+4,o-7.5),e.lineTo(.5*t-4,o-7.5),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(.5*t+4,o-9),e.lineTo(.5*t,o-5),e.lineTo(.5*t-4,o-9),e.close(),e.moveTo(.5*t,o-12),e.lineTo(.5*t,o-5),e.fillAndStroke()):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_HORIZONTAL&&(a===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(e.begin(),e.moveTo(6,.5*o-4.5),e.lineTo(10,.5*o+2.5),e.lineTo(14,.5*o-4.5),e.close(),e.fillAndStroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(e.begin(),e.moveTo(14,.5*o),e.lineTo(6,.5*o),e.stroke()):a===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(e.begin(),e.moveTo(14,.5*o-1.5),e.lineTo(10,.5*o+2.5),e.lineTo(6,.5*o-1.5),e.close(),e.moveTo(10,.5*o-4.5),e.lineTo(10,.5*o+2.5),e.fillAndStroke()))},mxShapeMockupSpinner.prototype.mainText=function(e,t,o,n){var i=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.MAIN_TEXT,"100").toString(),a=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.TEXT_SIZE,"17"),s=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.TEXT_COLOR,"#666666");e.setFontSize(a),e.setFontColor(s),n===mxShapeMockupSpinner.prototype.cst.LAYOUT_RIGHT?e.text(.5*(t-20),.5*o,0,0,i,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_LEFT?e.text(.5*(t+20),.5*o,0,0,i,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_TOP?e.text(.5*t,.5*(o+15),0,0,i,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):n===mxShapeMockupSpinner.prototype.cst.LAYOUT_BOTTOM?e.text(.5*t,.5*(o-15),0,0,i,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):(n===mxShapeMockupSpinner.prototype.cst.LAYOUT_VERTICAL||n===mxShapeMockupSpinner.prototype.cst.LAYOUT_HORIZONTAL)&&e.text(.5*t,.5*o,0,0,i,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupSpinner.prototype.cst.SHAPE_SPINNER,mxShapeMockupSpinner),mxUtils.extend(mxShapeMockupMenuBar,mxShape),mxShapeMockupMenuBar.prototype.cst={MAIN_TEXT:"mainText",SHAPE_MENU_BAR:"mxgraph.mockup.forms.menuBar",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",TEXT_SIZE:"textSize"},mxShapeMockupMenuBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.MAIN_TEXT,"+Menu 1, Menu 2, Menu 3").toString().split(","),s=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.TEXT_COLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.TEXT_COLOR2,"#ffffff"),r=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.TEXT_SIZE,"17").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.STROKE_COLOR2,"#c4c4c4"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),x=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.FILL_COLOR2,"#008cff"),c=a.length,u=Array(c),S=0,T=-1,d=0;d<c;d++){var C=a[d];C.charAt(0)===mxShapeMockupMenuBar.prototype.cst.SELECTED&&(C=a[d].substring(1),T=d),u[d]=mxUtils.getSizeForString(C,r,mxConstants.DEFAULT_FONTFAMILY).width,S+=u[d]}for(i=Math.max(i,1.5*r,20),S=10*c+S,n=Math.max(n,S),e.translate(t,o),this.background(e,n,i,10,c,u,5,S,p,m,h,x,T),e.setShadow(!1),d=t=0;d<c;d++)d===T?e.setFontColor(l):e.setFontColor(s),t+=5,this.buttonText(e,t,i,a[d],u[d],r,S,n),t=t+u[d]+5},mxShapeMockupMenuBar.prototype.background=function(e,t,o,n,i,a,s,l,r,p,m,h,x){for(e.setStrokeColor(r),e.setFillColor(m),e.rect(0,0,t,o),e.fillAndStroke(),e.setStrokeColor(p),e.begin(),n=1;n<i;n++)if(n!==x&&n!==x+1){for(var c=p=0;c<n;c++)p+=a[c]+2*s;p=p*t/l,e.moveTo(p,0),e.lineTo(p,o)}if(e.stroke(),-1!==x){for(i=0,e.setFillColor(h),n=0;n<x;n++)i+=a[n]+2*s;i=i*t/l,e.rect(i,0,(a[x]+2*s)*t/l+i-i,o),e.fill()}e.setStrokeColor(r),e.setFillColor(m),e.rect(0,0,t,o),e.stroke()},mxShapeMockupMenuBar.prototype.buttonText=function(e,t,o,n,i,a,s,l){n.charAt(0)===mxShapeMockupMenuBar.prototype.cst.SELECTED&&(n=n.substring(1)),e.setFontSize(a),e.text((t+.5*i)*l/s,.5*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupMenuBar.prototype.cst.SHAPE_MENU_BAR,mxShapeMockupMenuBar),mxUtils.extend(mxShapeMockupHorSlider,mxShape),mxShapeMockupHorSlider.prototype.cst={STYLE:"sliderStyle",SLIDER_BASIC:"basic",SLIDER_FANCY:"fancy",SLIDER_POS:"sliderPos",HANDLE_TRIANGLE:"triangle",HANDLE_CIRCLE:"circle",HANDLE_HANDLE:"handle",HANDLE_STYLE:"handleStyle",FILL_COLOR2:"fillColor2",SHAPE_HOR_SLIDER:"mxgraph.mockup.forms.horSlider"},mxShapeMockupHorSlider.prototype.customProperties=[{name:"sliderStyle",dispName:"Slider Style",type:"enum",enumList:[{val:"basic",dispName:"Basic"},{val:"fancy",dispName:"Fancy"}]},{name:"handleStyle",dispName:"Handle Style",type:"enum",enumList:[{val:"triangle",dispName:"Triangle"},{val:"circle",dispName:"Circle"},{val:"handle",dispName:"Handle"}]},{name:"sliderPos",dispName:"Handle Position",type:"float"},{name:"fillColor2",dispName:"Fill2 Color",type:"color"}],mxShapeMockupHorSlider.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupHorSlider.prototype.cst.STYLE,mxShapeMockupHorSlider.prototype.cst.SLIDER_BASIC);e.translate(t,o),this.background(e,n,i,5,a),e.setShadow(!1),this.foreground(e,n,i,5,a),this.sliderPos=20},mxShapeMockupHorSlider.prototype.background=function(e,t,o,n,i){i===mxShapeMockupHorSlider.prototype.cst.SLIDER_BASIC?(e.begin(),e.moveTo(0,.5*o),e.lineTo(t,.5*o),e.stroke()):i===mxShapeMockupHorSlider.prototype.cst.SLIDER_FANCY&&(e.roundrect(0,.5*o-n,t,2*n,n,n),e.fillAndStroke())},mxShapeMockupHorSlider.prototype.foreground=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupHorSlider.prototype.cst.SLIDER_POS,"20"),s=mxUtils.getValue(this.style,mxShapeMockupHorSlider.prototype.cst.HANDLE_STYLE,mxShapeMockupHorSlider.prototype.cst.HANDLE_CIRCLE),l=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),r=mxUtils.getValue(this.style,mxShapeMockupHorSlider.prototype.cst.FILL_COLOR2,"#ddeeff"),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");a=Math.min(100,a),a=Math.max(0,a),i===mxShapeMockupHorSlider.prototype.cst.SLIDER_BASIC?(e.setStrokeColor(r),i=t*a/100,e.begin(),e.moveTo(0,.5*o),e.lineTo(i,.5*o),e.stroke(),e.setStrokeColor(p)):i===mxShapeMockupHorSlider.prototype.cst.SLIDER_FANCY&&(i=10+(t-10)*a/100,e.setFillColor(r),e.roundrect(0,.5*o-n,i,2*n,n,n),e.fillAndStroke(),e.setFillColor(l)),t=5+(t-10)*a/100,s===mxShapeMockupHorSlider.prototype.cst.HANDLE_CIRCLE?(e.ellipse(t-10,.5*o-10,20,20),e.fillAndStroke()):s===mxShapeMockupHorSlider.prototype.cst.HANDLE_TRIANGLE?(e.begin(),e.moveTo(t-10,.5*o+10),e.lineTo(t,.5*o-10),e.lineTo(t+10,.5*o+10),e.close(),e.fillAndStroke()):s===mxShapeMockupHorSlider.prototype.cst.HANDLE_HANDLE&&(e.begin(),e.moveTo(t-7,.5*o+10),e.lineTo(t-7,.5*o),e.lineTo(t,.5*o-10),e.lineTo(t+7,.5*o),e.lineTo(t+7,.5*o+10),e.close(),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeMockupHorSlider.prototype.cst.SHAPE_HOR_SLIDER,mxShapeMockupHorSlider),Graph.handleFactory[mxShapeMockupHorSlider.prototype.cst.SHAPE_HOR_SLIDER]=function(e){return[Graph.createHandle(e,["sliderPos"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"sliderPos",this.sliderPos))));return new mxPoint(e.x+(e.width-10)*t/e.width/100*e.width+5,e.y+e.height/2)}),(function(e,t){this.state.style.sliderPos=Math.round(1e3*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/1e3}))]},mxUtils.extend(mxShapeMockupListBox,mxShape),mxShapeMockupListBox.prototype.cst={MAIN_TEXT:"mainText",SUB_TEXT:"subText",BUTTON_TEXT:"buttonText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SELECTED_COLOR:"selectedColor",SELECTED:"+",SHAPE_LIST_BOX:"mxgraph.mockup.forms.listBox"},mxShapeMockupListBox.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupListBox.prototype.cst.TEXT_SIZE,"17").toString(),r=-1,p=n,m=mxUtils.getValue(this.style,mxShapeMockupListBox.prototype.cst.SUB_TEXT,"Sub Text").toString().split(","),h=0;h<m.length;h++){var x=m[h];x.charAt(0)===mxShapeMockupListBox.prototype.cst.SELECTED&&(x=m[h].substring(1),r=h),(x=mxUtils.getSizeForString(x,l,mxConstants.DEFAULT_FONTFAMILY).width)>p&&(p=x)}e.translate(t,o),n=Math.min(n,p),i=Math.max(i,30+m.length*l*1.5),this.background(e,n,i,a,s),e.setShadow(!1),this.foreground(e,n,i,s,r,m,l)},mxShapeMockupListBox.prototype.background=function(e,t,o,n,i){e.setFillColor(n),e.setStrokeColor(i),e.rect(0,0,t,o),e.fillAndStroke()},mxShapeMockupListBox.prototype.foreground=function(e,t,o,n,i,a,s){for(mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1"),n=mxUtils.getValue(this.style,mxShapeMockupListBox.prototype.cst.SELECTED_COLOR,"#ddeeff"),-1!==i&&(e.setFillColor(n),e.rect(0,30+i*s*1.5,t,1.5*s),e.fill()),e.begin(),e.moveTo(0,30),e.lineTo(t,30),e.stroke(),i=mxUtils.getValue(this.style,mxShapeMockupListBox.prototype.cst.MAIN_TEXT,"Window Title").toString(),n=mxUtils.getValue(this.style,mxShapeMockupListBox.prototype.cst.TEXT_COLOR,"#666666,#008cff").toString().split(","),e.setFontColor(n[1]),e.setFontSize(s),e.text(10,15,0,0,i,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontColor(n[0]),i=0;i<a.length;i++)(n=a[i]).charAt(0)===mxShapeMockupListBox.prototype.cst.SELECTED&&(n=a[i].substring(1)),e.text(10,30+s*(1.5*i+.75),0,0,n,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);e.rect(0,0,t,o),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupListBox.prototype.cst.SHAPE_LIST_BOX,mxShapeMockupListBox),mxUtils.extend(mxShapeMockupPwField,mxShape),mxShapeMockupPwField.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_PW_FIELD:"mxgraph.mockup.forms.pwField"},mxShapeMockupPwField.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupPwField.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxShapeMockupPwField.prototype.foreground=function(e,t,o){t=mxUtils.getValue(this.style,mxShapeMockupPwField.prototype.cst.MAIN_TEXT,"******");var n=mxUtils.getValue(this.style,mxShapeMockupPwField.prototype.cst.TEXT_COLOR,"#666666"),i=mxUtils.getValue(this.style,mxShapeMockupPwField.prototype.cst.TEXT_SIZE,"17");e.setFontColor(n),e.setFontSize(i),e.text(5,.5*o,0,0,t,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupPwField.prototype.cst.SHAPE_PW_FIELD,mxShapeMockupPwField),mxUtils.extend(mxShapeMockupSplitter,mxShape),mxShapeMockupSplitter.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_SPLITTER:"mxgraph.mockup.forms.splitter"},mxShapeMockupSplitter.prototype.paintVertexShape=function(e,t,o,n,i){n=Math.max(n,35),e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupSplitter.prototype.background=function(e,t,o){e.begin(),e.moveTo(0,.5*o-5),e.lineTo(t,.5*o-5),e.lineTo(t,.5*o+5),e.lineTo(0,.5*o+5),e.close(),e.fill()},mxShapeMockupSplitter.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");e.begin(),e.moveTo(0,.5*o-5),e.lineTo(t,.5*o-5),e.moveTo(t,.5*o+5),e.lineTo(0,.5*o+5),e.stroke(),e.setFillColor(n),e.ellipse(.5*t-17,.5*o-2,4,4),e.fill(),e.ellipse(.5*t-2,.5*o-2,4,4),e.fill(),e.ellipse(.5*t+13,.5*o-2,4,4),e.fill()},mxCellRenderer.registerShape(mxShapeMockupSplitter.prototype.cst.SHAPE_SPLITTER,mxShapeMockupSplitter),mxUtils.extend(mxShapeMockupWedgeBar,mxShape),mxShapeMockupWedgeBar.prototype.cst={BLOCK:"block",CONE:"cone",HALF_CONE:"halfCone",ROUND:"round",TEXT_SIZE:"textSize",TAB_NAMES:"tabs",TAB_STYLE:"tabStyle",STYLE_FILLCOLOR2:"fillColor2",TEXT_COLOR:"textColor",SEL_TEXT_COLOR:"textColor2",SHAPE_WEDGE_BAR:"mxgraph.mockup.forms.wedgeBar"},mxShapeMockupWedgeBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TEXT_SIZE,"17").toString(),s=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TAB_NAMES,"Tab 1,+Tab 2,Tab 3").toString().split(","),l=1.5*a,r=s.length,p=20+5*(r-1)+20*r,m=[],h=-1,x=0;x<r;x++){var c=s[x];"+"===c.charAt(0)&&(c=c.substring(1),h=x),c=mxUtils.getSizeForString(c,a,mxConstants.DEFAULT_FONTFAMILY).width,m[x]=0===c?42:c,p+=m[x]}n=Math.max(n,p),i=Math.max(i,l+5),e.translate(t,o),e.setShadow(!1),this.backTabs(e,n,i,5,l,10,5,10,r,m,h),this.focusTab(e,n,i,5,l,10,5,10,r,m,h),this.tabText(e,n,i,5,l,10,5,10,r,m,h,s)},mxShapeMockupWedgeBar.prototype.backTabs=function(e,t,o,n,i,a,s,l,r,p,m){for(t=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TAB_STYLE,mxShapeMockupWedgeBar.prototype.cst.BLOCK),o=0;o<r;o++){var h=p[o]+2*l;m!==o&&(t===mxShapeMockupWedgeBar.prototype.cst.BLOCK?(e.begin(),e.moveTo(a,i),e.lineTo(a,0),e.lineTo(a+h,0),e.lineTo(a+h,i)):t===mxShapeMockupWedgeBar.prototype.cst.CONE?(e.begin(),e.moveTo(a,i),e.lineTo(a+.5*l,0),e.lineTo(a+h-.5*l,0),e.lineTo(a+h,i)):t===mxShapeMockupWedgeBar.prototype.cst.HALF_CONE?(e.begin(),e.moveTo(a,i),e.lineTo(a+.5*l,0),e.lineTo(a+h,0),e.lineTo(a+h,i)):t===mxShapeMockupWedgeBar.prototype.cst.ROUND&&(e.begin(),e.moveTo(a-n,i),e.arcTo(n,n,0,0,0,a,i-n),e.lineTo(a,n),e.arcTo(n,n,0,0,1,a+n,0),e.lineTo(a+h-n,0),e.arcTo(n,n,0,0,1,a+h,n),e.lineTo(a+h,i-n),e.arcTo(n,n,0,0,0,a+h+n,i)),e.fillAndStroke()),a=a+h+s}},mxShapeMockupWedgeBar.prototype.focusTab=function(e,t,o,n,i,a,s,l,r,p,m){for(t=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TAB_STYLE,mxShapeMockupWedgeBar.prototype.cst.BLOCK),o=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.STYLE_FILLCOLOR2,"#008cff"),e.setStrokeColor(o),e.setFillColor(o),o=0;o<=m;o++)r=p[o]+2*l,m===o&&(t===mxShapeMockupWedgeBar.prototype.cst.BLOCK?(e.begin(),e.moveTo(a,i),e.lineTo(a,0),e.lineTo(a+r,0),e.lineTo(a+r,i)):t===mxShapeMockupWedgeBar.prototype.cst.CONE?(e.begin(),e.moveTo(a,i),e.lineTo(a+.5*l,0),e.lineTo(a+r-.5*l,0),e.lineTo(a+r,i)):t===mxShapeMockupWedgeBar.prototype.cst.HALF_CONE?(e.begin(),e.moveTo(a,i),e.lineTo(a+.5*l,0),e.lineTo(a+r,0),e.lineTo(a+r,i)):t===mxShapeMockupWedgeBar.prototype.cst.ROUND&&(e.begin(),e.moveTo(a-n,i),e.arcTo(n,n,0,0,0,a,i-n),e.lineTo(a,n),e.arcTo(n,n,0,0,1,a+n,0),e.lineTo(a+r-n,0),e.arcTo(n,n,0,0,1,a+r,n),e.lineTo(a+r,i-n),e.arcTo(n,n,0,0,0,a+r+n,i)),e.fillAndStroke()),a=a+r+s},mxShapeMockupWedgeBar.prototype.tabText=function(e,t,o,n,i,a,s,l,r,p,m,h){for(t=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TEXT_COLOR,"#666666"),o=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.SEL_TEXT_COLOR,"#ffffff"),n=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TEXT_SIZE,"17").toString(),e.setFontColor(t),e.setFontSize(n),n=0;n<r;n++){var x=h[n];n===m&&e.setFontColor(o),"+"===x.charAt(0)&&(x=x.substring(1));var c=p[n]+2*l;e.text(a+l,.5*i,0,0,x,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),a=a+c+s,n===m&&e.setFontColor(t)}},mxCellRenderer.registerShape(mxShapeMockupWedgeBar.prototype.cst.SHAPE_WEDGE_BAR,mxShapeMockupWedgeBar),mxUtils.extend(mxShapeMockupSearchBox,mxShape),mxShapeMockupSearchBox.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",STROKE_COLOR2:"strokeColor2",SHAPE_SEARCH_BOX:"mxgraph.mockup.forms.searchBox"},mxShapeMockupSearchBox.prototype.customProperties=[{name:"strokeColor2",dispName:"Icon Color",type:"color"}],mxShapeMockupSearchBox.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupSearchBox.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxShapeMockupSearchBox.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxShapeMockupSearchBox.prototype.cst.MAIN_TEXT,"Search"),i=mxUtils.getValue(this.style,mxShapeMockupSearchBox.prototype.cst.TEXT_COLOR,"#666666"),a=mxUtils.getValue(this.style,mxShapeMockupSearchBox.prototype.cst.STROKE_COLOR2,"#008cff"),s=mxUtils.getValue(this.style,mxShapeMockupSearchBox.prototype.cst.TEXT_SIZE,"17");e.setFontColor(i),e.setFontSize(s),e.text(5,.5*o,0,0,n,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setStrokeColor(a),e.ellipse(t-15,.5*o-8,10,10),e.stroke(),e.begin(),e.moveTo(t-19,.5*o+9),e.lineTo(t-13,.5*o+1),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupSearchBox.prototype.cst.SHAPE_SEARCH_BOX,mxShapeMockupSearchBox),mxUtils.extend(mxShapeMockupSignIn,mxShape),mxShapeMockupSignIn.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",TEXT_SIZE:"textSize",TEXT_SIZE2:"textSize2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SHAPE_SIGN_IN:"mxgraph.mockup.forms.signIn"},mxShapeMockupSignIn.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupSignIn.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxShapeMockupSignIn.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.MAIN_TEXT,"Sign In,User Name:,johndoe,Password:,********,Forgot Password?,New User,SIGN IN,SIGN UP").toString().split(","),i=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.TEXT_COLOR,"#666666"),a=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.TEXT_COLOR2,"#ffffff"),s=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.TEXT_SIZE,"12"),l=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.TEXT_SIZE2,"15"),r=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.STROKE_COLOR2,"#ddeeff"),p=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.FILL_COLOR2,"#66bbff");e.setFillColor(p),e.roundrect(.09*t,.52*o,.36*t,.09*o,5,5),e.fill(),e.roundrect(.09*t,.84*o,.36*t,.09*o,5,5),e.fill(),e.rect(.05*t,.22*o,.75*t,.08*o),e.stroke(),e.rect(.05*t,.4*o,.75*t,.08*o),e.stroke(),e.setStrokeColor(r),e.setStrokeWidth(2),e.begin(),e.moveTo(.05*t,.12*o),e.lineTo(.95*t,.12*o),e.moveTo(.05*t,.72*o),e.lineTo(.95*t,.72*o),e.stroke(),e.setFontColor(i),e.setFontSize(s),e.text(.05*t,.1*o,0,0,n[0],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,0,null,0,0,0),e.text(.05*t,.2*o,0,0,n[1],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,0,null,0,0,0),e.text(.075*t,.26*o,0,0,n[2],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.05*t,.38*o,0,0,n[3],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,0,null,0,0,0),e.text(.075*t,.44*o,0,0,n[4],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.05*t,.8*o,0,0,n[6],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setStrokeWidth(1),e.setFontColor("#9999ff"),e.setStrokeColor("#9999ff"),i=mxUtils.getSizeForString(n[5],s,mxConstants.DEFAULT_FONTFAMILY).width,e.text(.05*t,.7*o,0,0,n[5],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,0,null,0,0,0),e.begin(),e.moveTo(.05*t,.7*o),e.lineTo(.05*t+i,.7*o),e.stroke(),e.setFontColor(a),e.setFontStyle(mxConstants.FONT_BOLD),e.setFontSize(l),e.text(.27*t,.565*o,0,0,n[7],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.27*t,.885*o,0,0,n[8],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupSignIn.prototype.cst.SHAPE_SIGN_IN,mxShapeMockupSignIn),mxUtils.extend(mxShapeMockupCalendar,mxShape),mxShapeMockupCalendar.prototype.cst={SHAPE_CALENDAR:"mxgraph.mockup.forms.calendar",DAYS:"days",SELECTED_DAY:"selDay",PREV_DAYS:"prevDays",FIRST_DAY:"firstDay",START_ON:"startOn",DAY_NAMES:"dayNames",MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2"},mxShapeMockupCalendar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupCalendar.prototype.background=function(e,t,o){e.roundrect(0,0,t,o,.0312*t,.0286*o),e.fillAndStroke()},mxShapeMockupCalendar.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999"),i=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),a=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.STROKE_COLOR2,"#008cff"),s=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.FILL_COLOR2,"#ddeeff"),l=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.MAIN_TEXT,""),r=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.TEXT_SIZE,"15"),p=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.TEXT_COLOR,"#999999"),m=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.TEXT_COLOR2,"#ffffff"),h=parseInt(mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.DAYS,"30"),10),x=parseInt(mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.PREV_DAYS,"31"),10),c=parseInt(mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.FIRST_DAY,"0"),10),u=parseInt(mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.START_ON,"6",10)),S=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.DAY_NAMES,"Mo,Tu,We,Th,Fr,Sa,Su").toString().split(","),T=parseInt(mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.SELECTED_DAY,"24"),10);for(fistDay=Math.max(c,0),u=Math.max(u,0),fistDay=Math.min(c,6),u=Math.min(u,6),e.roundrect(.05*t,.0457*o,.1438*t,.1029*o,.025*t,.0229*o),e.stroke(),e.roundrect(.8125*t,.0457*o,.1438*t,.1029*o,.025*t,.0229*o),e.stroke(),e.setStrokeWidth(2),e.setStrokeColor(a),e.begin(),e.moveTo(.1438*t,.0743*o),e.lineTo(.1*t,.0971*o),e.lineTo(.1438*t,.12*o),e.moveTo(.8625*t,.0743*o),e.lineTo(.9062*t,.0971*o),e.lineTo(.8625*t,.12*o),e.stroke(),e.setFontSize(r),e.setFontColor(p),e.text(.5*t,.0971*o,0,0,l,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),l=.875*t/7,r=0;7>r;r++)p=.0625*t+.5*l+r*l,6<(C=r+u)&&(C-=7),e.text(p,.2114*o,0,0,S[C],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);e.setStrokeWidth(1);var d=0,C=S=-1;if(c!==u){for(e.setStrokeColor(n),e.setFillColor(s),0>(c-=u)&&(c+=7),r=0;r<c;r++)p=.0625*t+r*l,e.rect(p,.2686*o,l,.1143*o),e.fillAndStroke(),e.text(p+.5*l,.2686*o+.5*l,0,0,(x-c+r+1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);d=c}for(e.setFillColor(i),e.setStrokeColor(n),r=n=0;r<h;r++)p=.0625*t+d*l,x=.2686*o+n*o*.1143,(i=r+1)===T?(S=p,C=x):(e.rect(p,x,l,.1143*o),e.fillAndStroke(),e.text(p+.5*l,x+.5*l,0,0,i.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)),6>d?d++:(d=0,n++);for(r=1,e.setFillColor(s);6>n;)p=.0625*t+d*l,x=.2686*o+n*o*.1143,e.rect(p,x,l,.1143*o),e.fillAndStroke(),e.text(p+.5*l,x+.5*l,0,0,r.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),6>d?d++:(d=0,n++),r++;0<=S&&(e.setStrokeColor("#ff0000"),e.setStrokeWidth(2),e.setFillColor(a),e.setFontColor(m),e.rect(S,C,l,.1143*o),e.fillAndStroke(),e.text(S+.5*l,C+.5*l,0,0,T.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0))},mxCellRenderer.registerShape(mxShapeMockupCalendar.prototype.cst.SHAPE_CALENDAR,mxShapeMockupCalendar),mxUtils.extend(mxShapeMockupEmailForm,mxShape),mxShapeMockupEmailForm.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",SHOW_CC:"showCC",SHOW_BCC:"showBCC",TEXT_SIZE:"textSize",SHAPE_EMAIL_FORM:"mxgraph.mockup.forms.emailForm"},mxShapeMockupEmailForm.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupEmailForm.prototype.cst.TEXT_SIZE,"12"),s=mxUtils.getValue(this.style,mxShapeMockupEmailForm.prototype.cst.SHOW_CC,"true"),l=mxUtils.getValue(this.style,mxShapeMockupEmailForm.prototype.cst.SHOW_BCC,"true"),r=4*a,p=0;"true"===s&&p++,"true"===l&&p++,n=Math.max(n,5*a),i=Math.max(i,10.5*a+p*a*3),e.translate(t,o),this.background(e,n,i,a,r,s,l),e.setShadow(!1),this.foreground(e,n,i,a,r,s,l)},mxShapeMockupEmailForm.prototype.background=function(e,t,o,n,i,a,s){var l=9*n;"true"===a&&(l+=3*n,e.rect(i,9*n,t-i,1.5*n),e.fillAndStroke()),"true"===s&&(e.rect(i,l,t-i,1.5*n),l+=3*n,e.fillAndStroke()),e.rect(i,0,t-i,1.5*n),e.fillAndStroke(),e.rect(i,3*n,t-i,1.5*n),e.fillAndStroke(),e.rect(i,6*n,t-i,1.5*n),e.fillAndStroke(),e.rect(0,l,t,o-l),e.fillAndStroke()},mxShapeMockupEmailForm.prototype.foreground=function(e,t,o,n,i,a,s){t=mxUtils.getValue(this.style,mxShapeMockupEmailForm.prototype.cst.MAIN_TEXT,"john@jgraph.com,Greeting,fred@jgraph.com,,,Lorem ipsum").toString().split(","),o=mxUtils.getValue(this.style,mxShapeMockupEmailForm.prototype.cst.TEXT_COLOR,"#666666"),e.setFontColor(o),e.setFontSize(n),e.text(i-.5*n,.75*n,0,0,"From",mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(i-.5*n,3.75*n,0,0,"Subject",mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(i-.5*n,6.75*n,0,0,"To",mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(i+.5*n,.75*n,0,0,t[0],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(i+.5*n,3.75*n,0,0,t[1],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(i+.5*n,6.75*n,0,0,t[2],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),o=9*n,"true"===a&&(o+=3*n,e.text(i-.5*n,9.75*n,0,0,"CC",mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(i+.5*n,9.75*n,0,0,t[3],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)),"true"===s&&(e.text(i-.5*n,o+.75*n,0,0,"BCC",mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(i+.5*n,o+.75*n,0,0,t[4],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),o+=3*n),e.text(.5*n,o+.75*n,0,0,t[5],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupEmailForm.prototype.cst.SHAPE_EMAIL_FORM,mxShapeMockupEmailForm),mxUtils.extend(mxShapeMockupFormsRRect,mxShape),mxShapeMockupFormsRRect.prototype.cst={RRECT:"mxgraph.mockup.forms.rrect",R_SIZE:"rSize"},mxShapeMockupFormsRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupFormsRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupFormsRRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupFormsRRect.prototype.cst.RRECT,mxShapeMockupFormsRRect),mxUtils.extend(mxShapeMockupFormsAnchor,mxShape),mxShapeMockupFormsAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.forms.anchor"},mxShapeMockupFormsAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeMockupFormsAnchor.prototype.cst.ANCHOR,mxShapeMockupFormsAnchor),mxUtils.extend(mxShapeMockupFormsCheckbox,mxShape),mxShapeMockupFormsCheckbox.prototype.cst={CHECKBOX:"mxgraph.mockup.forms.checkbox"},mxShapeMockupFormsCheckbox.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,n,i),e.fillAndStroke(),e.begin(),e.moveTo(.8*n,.2*i),e.lineTo(.4*n,.8*i),e.lineTo(.25*n,.6*i),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupFormsCheckbox.prototype.cst.CHECKBOX,mxShapeMockupFormsCheckbox),mxUtils.extend(mxShapeMockupFormsURect,mxShape),mxShapeMockupFormsURect.prototype.cst={U_RECT:"mxgraph.mockup.forms.uRect"},mxShapeMockupFormsURect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,i),e.lineTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupFormsURect.prototype.cst.U_RECT,mxShapeMockupFormsURect),mxUtils.extend(mxShapeMockupBarChart,mxShape),mxShapeMockupBarChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",FILL_COLOR2:"fillColor2",FILL_COLOR3:"fillColor3",SHAPE_BAR_CHART:"mxgraph.mockup.graphics.barChart"},mxShapeMockupBarChart.prototype.customProperties=[{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"},{name:"strokeColor3",dispName:"Stroke3 Color",type:"color"},{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"fillColor3",dispName:"Fill3 Color",type:"color"}],mxShapeMockupBarChart.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),"none"!==mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none")&&e.setShadow(!1),this.bars(e,t,o,n,i)},mxShapeMockupBarChart.prototype.background=function(e,t,o,n,i,a,s){e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupBarChart.prototype.bars=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupBarChart.prototype.cst.STROKE_COLOR2,"none"),o=mxUtils.getValue(this.style,mxShapeMockupBarChart.prototype.cst.STROKE_COLOR3,"#666666");var a=mxUtils.getValue(this.style,mxShapeMockupBarChart.prototype.cst.FILL_COLOR2,"#008cff"),s=mxUtils.getValue(this.style,mxShapeMockupBarChart.prototype.cst.FILL_COLOR3,"#dddddd"),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");e.setStrokeColor(t),e.setFillColor(a),e.rect(0,.2*i,.75*n,.05*i),e.fillAndStroke(),e.rect(0,.45*i,.6*n,.05*i),e.fillAndStroke(),e.rect(0,.7*i,.95*n,.05*i),e.fillAndStroke(),e.setFillColor(s),e.rect(0,.25*i,.85*n,.05*i),e.fillAndStroke(),e.rect(0,.5*i,.65*n,.05*i),e.fillAndStroke(),e.rect(0,.75*i,.8*n,.05*i),e.fillAndStroke(),e.setStrokeWidth(2*l),e.setStrokeColor(o),e.setShadow(!1),e.begin(),e.moveTo(0,0),e.lineTo(0,i),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupBarChart.prototype.cst.SHAPE_BAR_CHART,mxShapeMockupBarChart),mxUtils.extend(mxShapeMockupColumnChart,mxShape),mxShapeMockupColumnChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",FILL_COLOR2:"fillColor2",FILL_COLOR3:"fillColor3",SHAPE_COLUMN_CHART:"mxgraph.mockup.graphics.columnChart"},mxShapeMockupColumnChart.prototype.customProperties=[{name:"strokeColor2",dispName:"Bar Stroke Color",type:"color"},{name:"strokeColor3",dispName:"Coord System Color",type:"color"},{name:"fillColor2",dispName:"Bar1 Color",type:"color"},{name:"fillColor3",dispName:"Bar2 Color",type:"color"}],mxShapeMockupColumnChart.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),"none"!==mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none")&&e.setShadow(!1),this.bars(e,t,o,n,i)},mxShapeMockupColumnChart.prototype.background=function(e,t,o,n,i,a,s){e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupColumnChart.prototype.bars=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupColumnChart.prototype.cst.STROKE_COLOR2,"none"),o=mxUtils.getValue(this.style,mxShapeMockupColumnChart.prototype.cst.STROKE_COLOR3,"#666666");var a=mxUtils.getValue(this.style,mxShapeMockupColumnChart.prototype.cst.FILL_COLOR2,"#008cff"),s=mxUtils.getValue(this.style,mxShapeMockupColumnChart.prototype.cst.FILL_COLOR3,"#dddddd"),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");e.setStrokeColor(t),e.setFillColor(a),e.rect(.2*n,.25*i,.05*n,.75*i),e.fillAndStroke(),e.rect(.45*n,.4*i,.05*n,.6*i),e.fillAndStroke(),e.rect(.7*n,.05*i,.05*n,.95*i),e.fillAndStroke(),e.setFillColor(s),e.rect(.25*n,.15*i,.05*n,.85*i),e.fillAndStroke(),e.rect(.5*n,.35*i,.05*n,.65*i),e.fillAndStroke(),e.rect(.75*n,.2*i,.05*n,.8*i),e.fillAndStroke(),e.setStrokeWidth(2*l),e.setStrokeColor(o),e.setShadow(!1),e.begin(),e.moveTo(0,0),e.lineTo(0,i),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupColumnChart.prototype.cst.SHAPE_COLUMN_CHART,mxShapeMockupColumnChart),mxUtils.extend(mxShapeMockupLineChart,mxShape),mxShapeMockupLineChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",STROKE_COLOR4:"strokeColor4",SHAPE_LINE_CHART:"mxgraph.mockup.graphics.lineChart"},mxShapeMockupLineChart.prototype.customProperties=[{name:"strokeColor2",dispName:"Coord. System Color",type:"color"},{name:"strokeColor3",dispName:"Line1 Color",type:"color"},{name:"strokeColor4",dispName:"Line2 Color",type:"color"}],mxShapeMockupLineChart.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),"none"!==mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none")&&e.setShadow(!1),this.bars(e,t,o,n,i)},mxShapeMockupLineChart.prototype.background=function(e,t,o,n,i,a,s){e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupLineChart.prototype.bars=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupLineChart.prototype.cst.STROKE_COLOR2,"#666666"),o=mxUtils.getValue(this.style,mxShapeMockupLineChart.prototype.cst.STROKE_COLOR3,"#008cff");var a=mxUtils.getValue(this.style,mxShapeMockupLineChart.prototype.cst.STROKE_COLOR4,"#dddddd"),s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");e.setStrokeWidth(2*s),e.setStrokeColor(a),e.begin(),e.moveTo(0,i),e.lineTo(.3*n,.5*i),e.lineTo(.6*n,.74*i),e.lineTo(.9*n,.24*i),e.stroke(),e.setStrokeColor(o),e.begin(),e.moveTo(0,i),e.lineTo(.3*n,.65*i),e.lineTo(.6*n,.6*i),e.lineTo(.9*n,.35*i),e.stroke(),e.setStrokeColor(t),e.setShadow(!1),e.begin(),e.moveTo(0,0),e.lineTo(0,i),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupLineChart.prototype.cst.SHAPE_LINE_CHART,mxShapeMockupLineChart),mxUtils.extend(mxShapeMockupPieChart,mxShape),mxShapeMockupPieChart.prototype.cst={PARTS:"parts",PART_COLORS:"partColors",SHAPE_PIE_CHART:"mxgraph.mockup.graphics.pieChart"},mxShapeMockupPieChart.prototype.customProperties=[{name:"partsCount",dispName:"partsCount",type:"int",defVal:4,dependentProps:["partColors","parts"]},{name:"partColors",dispName:"Part Colors",type:"staticArr",subType:"color",sizeProperty:"partsCount",subDefVal:"#FFFFFF"},{name:"parts",dispName:"Part Sizes",type:"staticArr",subType:"int",sizeProperty:"partsCount",subDefVal:"10"}],mxShapeMockupPieChart.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupPieChart.prototype.background=function(e,t,o,n,i,a,s){e.ellipse(0,0,n,i),e.fillAndStroke()},mxShapeMockupPieChart.prototype.foreground=function(e,t,o,n,i){o=(t=mxUtils.getValue(this.style,mxShapeMockupPieChart.prototype.cst.PARTS,"10,20,30").toString().split(",")).length;for(var a=mxUtils.getValue(this.style,mxShapeMockupPieChart.prototype.cst.PART_COLORS,"#333333,#666666,#999999").toString().split(","),s=0,l=0;l<o;l++)s+=parseInt(t[l],10);for(l=0;l<o;l++){a.length>l?e.setFillColor(a[l]):e.setFillColor("#ff0000");var r,p=0;.5==(r=parseInt(t[l],10)/s)&&(r=.501);for(var m=0;m<l;m++)p+=parseInt(t[m],10)/s;r+=p;var h=2*Math.PI*p,x=2*Math.PI*r,c=(m=.5*n-n*Math.sin(h)*.5,h=.5*i-i*Math.cos(h)*.5,.5*n-n*Math.sin(x)*.5),u=(x=.5*i-i*Math.cos(x)*.5,1);.5>r-p&&(u=0),e.begin(),e.moveTo(.5*n,.5*i),e.lineTo(c,x),e.arcTo(.5*n,.5*i,0,u,1,m,h),e.close(),e.fillAndStroke()}},mxCellRenderer.registerShape(mxShapeMockupPieChart.prototype.cst.SHAPE_PIE_CHART,mxShapeMockupPieChart),mxUtils.extend(mxShapeMockupIconGrid,mxShape),mxShapeMockupIconGrid.prototype.cst={GRID_SIZE:"gridSize",SHAPE_ICON_GRID:"mxgraph.mockup.graphics.iconGrid"},mxShapeMockupIconGrid.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxShapeMockupIconGrid.prototype.cst.GRID_SIZE,"3,3").toString().split(","),this.background(e,n,i,t),e.setShadow(!1),this.foreground(e,n,i,t)},mxShapeMockupIconGrid.prototype.background=function(e,t,o,n){t/=parseInt(n[0],10)+.5*(n[0]-1),o/=parseInt(n[1],10)+.5*(n[1]-1);for(var i=0;i<n[0];i++)for(var a=0;a<n[1];a++)e.rect(1.5*t*i,1.5*o*a,t,o),e.fillAndStroke()},mxShapeMockupIconGrid.prototype.foreground=function(e,t,o,n){t/=parseInt(n[0],10)+.5*(n[0]-1),o/=parseInt(n[1],10)+.5*(n[1]-1);for(var i=0;i<n[0];i++)for(var a=0;a<n[1];a++)e.begin(),e.moveTo(1.5*t*i,1.5*o*a),e.lineTo(1.5*t*i+t,1.5*o*a+o),e.moveTo(1.5*t*i+t,1.5*o*a),e.lineTo(1.5*t*i,1.5*o*a+o),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupIconGrid.prototype.cst.SHAPE_ICON_GRID,mxShapeMockupIconGrid),mxUtils.extend(mxShapeMockupBubbleChart,mxShape),mxShapeMockupBubbleChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",FILL_COLOR2:"fillColor2",FILL_COLOR3:"fillColor3",SHAPE_BUBBLE_CHART:"mxgraph.mockup.graphics.bubbleChart"},mxShapeMockupBubbleChart.prototype.customProperties=[{name:"strokeColor2",dispName:"Bubble Stroke Color",type:"color"},{name:"strokeColor3",dispName:"Coord. System Color",type:"color"},{name:"fillColor2",dispName:"Bubble1 Color",type:"color"},{name:"fillColor3",dispName:"Bubble2 Color",type:"color"}],mxShapeMockupBubbleChart.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),"none"!==mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none")&&e.setShadow(!1),this.bars(e,t,o,n,i)},mxShapeMockupBubbleChart.prototype.background=function(e,t,o,n,i,a,s){e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupBubbleChart.prototype.bars=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupBubbleChart.prototype.cst.STROKE_COLOR2,"none");t=mxUtils.getValue(this.style,mxShapeMockupBubbleChart.prototype.cst.STROKE_COLOR3,"#666666");var s=mxUtils.getValue(this.style,mxShapeMockupBubbleChart.prototype.cst.FILL_COLOR2,"#008cff");o=mxUtils.getValue(this.style,mxShapeMockupBubbleChart.prototype.cst.FILL_COLOR3,"#dddddd");var l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");e.setStrokeColor(a),e.setFillColor(s),a=.14*Math.min(i,n),e.ellipse(.4*n-a,.45*i-a,2*a,2*a),e.fillAndStroke(),a=.1*Math.min(i,n),e.ellipse(.1*n-a,.8*i-a,2*a,2*a),e.fillAndStroke(),a=.22*Math.min(i,n),e.ellipse(.7*n-a,.7*i-a,2*a,2*a),e.fillAndStroke(),e.setFillColor(o),a=.19*Math.min(i,n),e.ellipse(.15*n-a,.25*i-a,2*a,2*a),e.fillAndStroke(),a=.12*Math.min(i,n),e.ellipse(.48*n-a,.7*i-a,2*a,2*a),e.fillAndStroke(),a=.1*Math.min(i,n),e.ellipse(.74*n-a,.17*i-a,2*a,2*a),e.fillAndStroke(),e.setStrokeWidth(2*l),e.setStrokeColor(t),e.setShadow(!1),e.begin(),e.moveTo(0,0),e.lineTo(0,i),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupBubbleChart.prototype.cst.SHAPE_BUBBLE_CHART,mxShapeMockupBubbleChart),mxUtils.extend(mxShapeMockupGauge,mxShape),mxShapeMockupGauge.prototype.cst={SCALE_COLORS:"scaleColors",GAUGE_LABELS:"gaugeLabels",NEEDLE_COLOR:"needleColor",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",GAUGE_POS:"gaugePos",SHAPE_GAUGE:"mxgraph.mockup.graphics.gauge"},mxShapeMockupGauge.prototype.customProperties=[{name:"scaleColors",dispName:"Scale Colors",type:"String"},{name:"needleColor",dispName:"Needle Color",type:"color"},{name:"gaugePos",dispName:"Needle Position",type:"float",min:0,max:100,defVal:25}],mxShapeMockupGauge.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupGauge.prototype.background=function(e,t,o){e.ellipse(0,0,t,o),e.fillAndStroke()},mxShapeMockupGauge.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.GAUGE_POS,"0"),i=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.SCALE_COLORS,"#888888,#aaaaaa,#444444").toString().split(","),a=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.GAUGE_LABELS,"CPU[%],0,100").toString().split(","),s=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.NEEDLE_COLOR,"#008cff"),l=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),r=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.TEXT_COLOR,"#666666"),p=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.TEXT_SIZE,"12");n=Math.max(0,n),n=Math.min(100,n),e.setFillColor(i[1]),e.begin(),e.moveTo(.05*t,.5*o),e.arcTo(.4*t,.4*o,0,0,1,.95*t,.5*o),e.lineTo(t,.5*o),e.arcTo(.5*t,.5*o,0,0,0,0,.5*o),e.close(),e.fill(),e.setFillColor(i[0]),e.begin(),e.moveTo(.05*t,.5*o),e.arcTo(.45*t,.45*o,0,0,0,.182*t,.818*o),e.lineTo(.146*t,.854*o),e.arcTo(.5*t,.5*o,0,0,1,0,.5*o),e.close(),e.fill(),e.setFillColor(i[2]),e.begin(),e.moveTo(t,.5*o),e.arcTo(.5*t,.5*o,0,0,1,.854*t,.854*o),e.lineTo(.818*t,.818*o),e.arcTo(.45*t,.45*o,0,0,0,.95*t,.5*o),e.close(),e.fill(),e.setFontSize(p),e.setFontColor(r),e.text(.5*t,.3*o,0,0,a[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.2*t,.85*o,0,0,a[1],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8*t,.85*o,0,0,a[2],mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),n=2*Math.PI*parseFloat(n)/100*.75+1.25*Math.PI,i=.5*t+.38*t*Math.sin(n),a=.5*o-.38*o*Math.cos(n),e.setFillColor(s),e.begin(),e.moveTo(i,a),i=.5*t+.05*t*Math.cos(n),a=.5*o+.05*o*Math.sin(n),e.lineTo(i,a),s=.5*t+-.05*t*Math.sin(n),i=.5*o- -.05*o*Math.cos(n),e.arcTo(.05*t,.05*o,0,0,1,s,i),s=.5*t-.05*t*Math.cos(n),i=.5*o-.05*o*Math.sin(n),e.arcTo(.05*t,.05*o,0,0,1,s,i),e.close(),e.fill(),e.setFillColor(l),e.begin(),e.moveTo(.49*t,.49*o),e.lineTo(.51*t,.49*o),e.lineTo(.51*t,.51*o),e.lineTo(.49*t,.51*o),e.close(),e.fill(),e.begin(),e.ellipse(0,0,t,o),e.stroke(),e.begin(),e.moveTo(.146*t,.854*o),e.lineTo(.219*t,.781*o),e.moveTo(.854*t,.854*o),e.lineTo(.781*t,.781*o),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupGauge.prototype.cst.SHAPE_GAUGE,mxShapeMockupGauge),Graph.handleFactory[mxShapeMockupGauge.prototype.cst.SHAPE_GAUGE]=function(e){return[Graph.createHandle(e,["gaugePos"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"gaugePos",this.gaugePos))));return new mxPoint(e.x+.2*e.width+.6*t*e.width/100,e.y+.8*e.height)}),(function(e,t){this.state.style.gaugePos=Math.round(1e3*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/1e3}))]},mxUtils.extend(mxShapeMockupPlotChart,mxShape),mxShapeMockupPlotChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SHAPES_COLORS:"fillColor2",SHAPE_PLOT_CHART:"mxgraph.mockup.graphics.plotChart"},mxShapeMockupPlotChart.prototype.customProperties=[{name:"strokeColor2",dispName:"Bubble Stroke Color",type:"color"},{name:"strokeColor3",dispName:"Coord. System Color",type:"color"},{name:"fillColor2",dispName:"Shapes Color",type:"string"}],mxShapeMockupPlotChart.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),"none"!==mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none")&&e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupPlotChart.prototype.background=function(e,t,o,n,i,a,s){e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupPlotChart.prototype.foreground=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupPlotChart.prototype.cst.STROKE_COLOR2,"#dddddd");t=mxUtils.getValue(this.style,mxShapeMockupPlotChart.prototype.cst.STROKE_COLOR3,"#666666"),o=mxUtils.getValue(this.style,mxShapeMockupPlotChart.prototype.cst.SHAPES_COLORS,"#00aaff,#0044ff,#008cff").toString().split(",");var s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1"),l=.03*Math.min(n,i);e.setStrokeColor(a),e.setFillColor(o[0]),a=.2*n;var r=.8*i;e.begin(),e.moveTo(a-.5*l,r-.5*l),e.lineTo(a+.5*l,r-.5*l),e.lineTo(a+.5*l,r+.5*l),e.lineTo(a-.5*l,r+.5*l),e.close(),e.fillAndStroke(),a=.3*n,r=.65*i,e.begin(),e.moveTo(a-.5*l,r-.5*l),e.lineTo(a+.5*l,r-.5*l),e.lineTo(a+.5*l,r+.5*l),e.lineTo(a-.5*l,r+.5*l),e.close(),e.fillAndStroke(),a=.6*n,r=.44*i,e.begin(),e.moveTo(a-.5*l,r-.5*l),e.lineTo(a+.5*l,r-.5*l),e.lineTo(a+.5*l,r+.5*l),e.lineTo(a-.5*l,r+.5*l),e.close(),e.fillAndStroke(),a=.85*n,r=.9*i,e.begin(),e.moveTo(a-.5*l,r-.5*l),e.lineTo(a+.5*l,r-.5*l),e.lineTo(a+.5*l,r+.5*l),e.lineTo(a-.5*l,r+.5*l),e.close(),e.fillAndStroke(),e.setFillColor(o[1]),a=.08*n,r=.65*i,e.begin(),e.moveTo(a,r-.5*l),e.lineTo(a+.5*l,r+.5*l),e.lineTo(a-.5*l,r+.5*l),e.close(),e.fillAndStroke(),a=.58*n,r=.85*i,e.begin(),e.moveTo(a,r-.5*l),e.lineTo(a+.5*l,r+.5*l),e.lineTo(a-.5*l,r+.5*l),e.close(),e.fillAndStroke(),a=.72*n,r=.92*i,e.begin(),e.moveTo(a,r-.5*l),e.lineTo(a+.5*l,r+.5*l),e.lineTo(a-.5*l,r+.5*l),e.close(),e.fillAndStroke(),e.setFillColor(o[2]),a=.32*n,r=.28*i,e.begin(),e.moveTo(a,r-.75*l),e.lineTo(a+.75*l,r),e.lineTo(a,r+.75*l),e.lineTo(a-.75*l,r),e.close(),e.fillAndStroke(),a=.92*n,r=.45*i,e.begin(),e.moveTo(a,r-.75*l),e.lineTo(a+.75*l,r),e.lineTo(a,r+.75*l),e.lineTo(a-.75*l,r),e.close(),e.fillAndStroke(),a=.81*n,r=.37*i,e.begin(),e.moveTo(a,r-.75*l),e.lineTo(a+.75*l,r),e.lineTo(a,r+.75*l),e.lineTo(a-.75*l,r),e.close(),e.fillAndStroke(),a=.51*n,r=.7*i,e.begin(),e.moveTo(a,r-.75*l),e.lineTo(a+.75*l,r),e.lineTo(a,r+.75*l),e.lineTo(a-.75*l,r),e.close(),e.fillAndStroke(),e.setStrokeWidth(2*s),e.setStrokeColor(t),e.setShadow(!1),e.begin(),e.moveTo(0,0),e.lineTo(0,i),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupPlotChart.prototype.cst.SHAPE_PLOT_CHART,mxShapeMockupPlotChart),mxUtils.extend(mxShapeMockupGanttChart,mxShape),mxShapeMockupGanttChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SHAPES_COLORS:"fillColor2",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_GANTT_CHART:"mxgraph.mockup.graphics.ganttChart"},mxShapeMockupGanttChart.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupGanttChart.prototype.background=function(e,t,o,n,i,a,s){e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupGanttChart.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupGanttChart.prototype.cst.SHAPES_COLORS,"#888888,#bbbbbb").toString().split(","),mxUtils.getValue(this.style,mxShapeMockupGanttChart.prototype.cst.TEXT_COLOR,"#666666"),mxUtils.getValue(this.style,mxShapeMockupGanttChart.prototype.cst.TEXT_SIZE,"#12"),e.begin(),e.moveTo(0,.13*i),e.lineTo(n,.13*i),e.moveTo(.4*n,0),e.lineTo(.4*n,i),e.moveTo(.4*n,.065*i),e.lineTo(n,.065*i),e.moveTo(.03*n,0),e.lineTo(.03*n,.13*i),e.moveTo(.1*n,0),e.lineTo(.1*n,.13*i),e.moveTo(.315*n,0),e.lineTo(.315*n,.13*i),e.moveTo(.45*n,.065*i),e.lineTo(.45*n,.13*i),e.moveTo(.5*n,.065*i),e.lineTo(.5*n,i),e.moveTo(.55*n,.065*i),e.lineTo(.55*n,.13*i),e.moveTo(.6*n,.065*i),e.lineTo(.6*n,i),e.moveTo(.65*n,.065*i),e.lineTo(.65*n,.13*i),e.moveTo(.7*n,.065*i),e.lineTo(.7*n,i),e.moveTo(.75*n,0),e.lineTo(.75*n,.13*i),e.moveTo(.8*n,.065*i),e.lineTo(.8*n,i),e.moveTo(.85*n,.065*i),e.lineTo(.85*n,.13*i),e.moveTo(.9*n,.065*i),e.lineTo(.9*n,i),e.moveTo(.95*n,.065*i),e.lineTo(.95*n,.13*i),e.stroke(),e.setFillColor(t[0]),e.begin(),e.moveTo(.41*n,.15*i),e.lineTo(.64*n,.15*i),e.lineTo(.64*n,.18*i),e.lineTo(.625*n,.21*i),e.lineTo(.61*n,.18*i),e.lineTo(.44*n,.18*i),e.lineTo(.425*n,.21*i),e.lineTo(.41*n,.18*i),e.close(),e.moveTo(.41*n,.24*i),e.lineTo(.49*n,.24*i),e.lineTo(.49*n,.275*i),e.lineTo(.41*n,.275*i),e.close(),e.moveTo(.46*n,.31*i),e.lineTo(.64*n,.31*i),e.lineTo(.64*n,.345*i),e.lineTo(.46*n,.345*i),e.close(),e.moveTo(.56*n,.39*i),e.lineTo(.69*n,.39*i),e.lineTo(.69*n,.425*i),e.lineTo(.56*n,.425*i),e.close(),e.fill(),e.setFillColor(t[1]),e.begin(),e.moveTo(.46*n,.32*i),e.lineTo(.58*n,.32*i),e.lineTo(.58*n,.335*i),e.lineTo(.46*n,.335*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeMockupGanttChart.prototype.cst.SHAPE_GANTT_CHART,mxShapeMockupGanttChart),mxUtils.extend(mxShapeMockupSimpleIcon,mxShape),mxShapeMockupSimpleIcon.prototype.cst={SIMPLE_ICON:"mxgraph.mockup.graphics.simpleIcon"},mxShapeMockupSimpleIcon.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,n,i),e.fillAndStroke(),e.begin(),e.moveTo(0,0),e.lineTo(n,i),e.moveTo(0,i),e.lineTo(n,0),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupSimpleIcon.prototype.cst.SIMPLE_ICON,mxShapeMockupSimpleIcon),mxUtils.extend(mxShapeMockupGraphicsAnchor,mxShape),mxShapeMockupGraphicsAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.graphics.anchor"},mxShapeMockupGraphicsAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeMockupGraphicsAnchor.prototype.cst.ANCHOR,mxShapeMockupGraphicsAnchor),mxUtils.extend(mxShapeMockupGraphicsRRect,mxShape),mxShapeMockupGraphicsRRect.prototype.cst={RRECT:"mxgraph.mockup.graphics.rrect",R_SIZE:"rSize"},mxShapeMockupGraphicsRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupGraphicsRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupGraphicsRRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupGraphicsRRect.prototype.cst.RRECT,mxShapeMockupGraphicsRRect),mxUtils.extend(mxShapeMockupCurlyBrace,mxShape),mxShapeMockupCurlyBrace.prototype.cst={SHAPE_CURLY_BRACE:"mxgraph.mockup.markup.curlyBrace"},mxShapeMockupCurlyBrace.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeMockupCurlyBrace.prototype.background=function(e,t,o,n,i){t=.5*i,o=Math.min(.125*n,t),e.begin(),e.moveTo(0,t+o),e.arcTo(o,o,0,0,1,o,t),e.lineTo(.5*n-o,t),e.arcTo(o,o,0,0,0,.5*n,t-o),e.arcTo(o,o,0,0,0,.5*n+o,t),e.lineTo(n-o,t),e.arcTo(o,o,0,0,1,n,t+o),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupCurlyBrace.prototype.cst.SHAPE_CURLY_BRACE,mxShapeMockupCurlyBrace),mxUtils.extend(mxShapeMockupLine,mxShape),mxShapeMockupLine.prototype.cst={SHAPE_LINE:"mxgraph.mockup.markup.line"},mxShapeMockupLine.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupLine.prototype.cst.SHAPE_LINE,mxShapeMockupLine),mxUtils.extend(mxShapeMockupScratchOut,mxShape),mxShapeMockupScratchOut.prototype.cst={SHAPE_SCRATCH_OUT:"mxgraph.mockup.markup.scratchOut"},mxShapeMockupScratchOut.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(.038*n,.095*i),e.curveTo(.038*n,.095*i,.289*n,-.045*i,.186*n,.05*i),e.curveTo(.084*n,.145*i,-.046*n,.251*i,.072*n,.208*i),e.curveTo(.191*n,.164*i,.522*n,-.09*i,.366*n,.062*i),e.curveTo(.21*n,.215*i,-.094*n,.38*i,.108*n,.304*i),e.curveTo(.309*n,.228*i,.73*n,-.126*i,.544*n,.096*i),e.curveTo(.358*n,.319*i,-.168*n,.592*i,.108*n,.476*i),e.curveTo(.382*n,.36*i,.972*n,-.138*i,.779*n,.114*i),e.curveTo(.585*n,.365*i,-.12*n,.688*i,.071*n,.639*i),e.curveTo(.262*n,.59*i,1.174*n,.012*i,.936*n,.238*i),e.curveTo(.699*n,.462*i,-.216*n,.855*i,.085*n,.806*i),e.curveTo(.386*n,.758*i,1.185*n,.26*i,.935*n,.534*i),e.curveTo(.685*n,.808*i,-.186*n,.94*i,.236*n,.895*i),e.curveTo(.659*n,.85*i,1.095*n,.608*i,.905*n,.769*i),e.curveTo(.715*n,.93*i,.286*n,.962*i,.661*n,.931*i),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupScratchOut.prototype.cst.SHAPE_SCRATCH_OUT,mxShapeMockupScratchOut),mxUtils.extend(mxShapeMockupRedX,mxShape),mxShapeMockupRedX.prototype.cst={SHAPE_RED_X:"mxgraph.mockup.markup.redX"},mxShapeMockupRedX.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(.1*n,0),e.lineTo(.5*n,.4*i),e.lineTo(.9*n,0),e.lineTo(n,.1*i),e.lineTo(.6*n,.5*i),e.lineTo(n,.9*i),e.lineTo(.9*n,i),e.lineTo(.5*n,.6*i),e.lineTo(.1*n,i),e.lineTo(0,.9*i),e.lineTo(.4*n,.5*i),e.lineTo(0,.1*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupRedX.prototype.cst.SHAPE_RED_X,mxShapeMockupRedX),mxUtils.extend(mxShapeMockupPlaybackControls,mxShape),mxShapeMockupPlaybackControls.prototype.cst={SHAPE_PLAYBACK_CONTROLS:"mxgraph.mockup.misc.playbackControls",FILL_COLOR2:"fillColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR3:"fillColor3",STROKE_COLOR3:"strokeColor3"},mxShapeMockupPlaybackControls.prototype.customProperties=[{name:"fillColor2",dispName:"Outline Color",type:"color"},{name:"fillColor3",dispName:"Symbol Color",type:"color"},{name:"strokeColor2",dispName:"Outline Stroke Color",type:"color"},{name:"strokeColor3",dispName:"Symbol Stroke Color",type:"color"}],mxShapeMockupPlaybackControls.prototype.paintVertexShape=function(e,t,o,n,i){i=Math.max(i,30),n=Math.max(225,n),e.translate(t,o),this.background(e,n,i,30),e.setShadow(!1),this.foreground(e,n,i,30,22)},mxShapeMockupPlaybackControls.prototype.background=function(e,t,o,n){e.rect(0,.5*(o-n),t,n),e.fillAndStroke()},mxShapeMockupPlaybackControls.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapeMockupPlaybackControls.prototype.cst.FILL_COLOR2,"#99ddff");var a=mxUtils.getValue(this.style,mxShapeMockupPlaybackControls.prototype.cst.STROKE_COLOR2,"none"),s=mxUtils.getValue(this.style,mxShapeMockupPlaybackControls.prototype.cst.FILL_COLOR3,"#ffffff"),l=mxUtils.getValue(this.style,mxShapeMockupPlaybackControls.prototype.cst.STROKE_COLOR3,"none");e.setStrokeColor(a),e.setFillColor(t),e.ellipse(10,.5*o-.5*i,i,i),e.fillAndStroke(),e.ellipse(40,.5*o-.5*i,i,i),e.fillAndStroke(),e.ellipse(70,.5*o-.5*i,i,i),e.fillAndStroke(),e.ellipse(100,.5*o-.5*i,i,i),e.fillAndStroke(),e.ellipse(130,.5*o-.5*i,i,i),e.fillAndStroke(),e.ellipse(160,.5*o-.5*i,i,i),e.fillAndStroke(),e.ellipse(190,.5*o-.5*i,i,i),e.fillAndStroke(),e.setStrokeColor(l),e.setFillColor(s),o=.5*o-.5*n,e.begin(),e.moveTo(16,o+10),e.lineTo(16,o+20),e.lineTo(18,o+20),e.lineTo(18,o+10),e.close(),e.moveTo(20,o+15),e.lineTo(25,o+20),e.lineTo(25,o+10),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(44,o+15),e.lineTo(49,o+20),e.lineTo(49,o+10),e.close(),e.moveTo(51,o+15),e.lineTo(56,o+20),e.lineTo(56,o+10),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(77,o+15),e.lineTo(82,o+20),e.lineTo(82,o+10),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(108,o+10),e.lineTo(108,o+20),e.lineTo(110,o+20),e.lineTo(110,o+10),e.close(),e.moveTo(117,o+15),e.lineTo(112,o+20),e.lineTo(112,o+10),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(144,o+15),e.lineTo(139,o+20),e.lineTo(139,o+10),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(171,o+15),e.lineTo(166,o+20),e.lineTo(166,o+10),e.close(),e.moveTo(178,o+15),e.lineTo(173,o+20),e.lineTo(173,o+10),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(203,o+10),e.lineTo(203,o+20),e.lineTo(205,o+20),e.lineTo(205,o+10),e.close(),e.moveTo(201,o+15),e.lineTo(196,o+20),e.lineTo(196,o+10),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupPlaybackControls.prototype.cst.SHAPE_PLAYBACK_CONTROLS,mxShapeMockupPlaybackControls),mxUtils.extend(mxShapeMockupProgressBar,mxShape),mxShapeMockupProgressBar.prototype.cst={SHAPE_PROGRESS_BAR:"mxgraph.mockup.misc.progressBar",BAR_POS:"barPos",FILL_COLOR2:"fillColor2"},mxShapeMockupProgressBar.prototype.customProperties=[{name:"fillColor2",dispName:"Outline Color",type:"color"},{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:80}],mxShapeMockupProgressBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupProgressBar.prototype.background=function(e,t,o){e.roundrect(0,.5*o-5,t,10,5,5),e.fillAndStroke()},mxShapeMockupProgressBar.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxShapeMockupProgressBar.prototype.cst.FILL_COLOR2,"#ddeeff"),i=mxUtils.getValue(this.style,mxShapeMockupProgressBar.prototype.cst.BAR_POS,"80");i=Math.min(i,100),t=0+(t-0)*(i=Math.max(i,0))/100,e.setFillColor(n),e.roundrect(0,.5*o-5,t,10,5,5),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupProgressBar.prototype.cst.SHAPE_PROGRESS_BAR,mxShapeMockupProgressBar),Graph.handleFactory[mxShapeMockupProgressBar.prototype.cst.SHAPE_PROGRESS_BAR]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(e.x+t*e.width/100,e.y+.5*e.height)}),(function(e,t){this.state.style.barPos=Math.round(1e3*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/1e3}))]},mxUtils.extend(mxShapeMockupShoppingCart,mxShape),mxShapeMockupShoppingCart.prototype.cst={SHAPE_SHOPPING_CART:"mxgraph.mockup.misc.shoppingCart"},mxShapeMockupShoppingCart.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.translate(t,o),e.setStrokeWidth(3),e.begin(),e.moveTo(.975*n,.025*i),e.lineTo(.82*n,.055*i),e.lineTo(.59*n,.66*i),e.lineTo(.7*n,.765*i),e.arcTo(.06*n,.06*i,0,0,1,.665*n,.86*i),e.lineTo(.05*n,.86*i),e.moveTo(.74*n,.26*i),e.lineTo(.03*n,.28*i),e.lineTo(.065*n,.61*i),e.lineTo(.59*n,.66*i),e.stroke(),e.setStrokeWidth(1),e.begin(),e.moveTo(.15*n,.28*i),e.lineTo(.15*n,.62*i),e.moveTo(.265*n,.275*i),e.lineTo(.265*n,.63*i),e.moveTo(.38*n,.27*i),e.lineTo(.38*n,.64*i),e.moveTo(.495*n,.265*i),e.lineTo(.495*n,.65*i),e.moveTo(.61*n,.265*i),e.lineTo(.61*n,.61*i),e.stroke(),e.begin(),e.moveTo(.69*n,.405*i),e.lineTo(.045*n,.405*i),e.moveTo(.645*n,.52*i),e.lineTo(.055*n,.52*i),e.stroke(),e.setFillColor(a),e.ellipse(.075*n,.89*i,.1*n,.1*i),e.fillAndStroke(),e.ellipse(.62*n,.89*i,.1*n,.1*i),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupShoppingCart.prototype.cst.SHAPE_SHOPPING_CART,mxShapeMockupShoppingCart),mxUtils.extend(mxShapeMockupRating,mxShape),mxShapeMockupRating.prototype.cst={SHAPE_RATING:"mxgraph.mockup.misc.rating",RATING_STYLE:"ratingStyle",RATING_SCALE:"ratingScale",RATING_HEART:"heart",RATING_STAR:"star",EMPTY_FILL_COLOR:"emptyFillColor",GRADE:"grade"},mxShapeMockupRating.prototype.customProperties=[{name:"ratingStyle",dispName:"Style",type:"enum",enumList:[{val:"heart",dispName:"Heart"},{val:"star",dispName:"Star"}]},{name:"ratingScale",dispName:"Max. Rating",type:"int"},{name:"grade",dispName:"Current Rating",type:"int"},{name:"emptyFillColor",dispName:"Fill2 Color",type:"color"}],mxShapeMockupRating.prototype.paintVertexShape=function(e,t,o,n,i){n=mxUtils.getValue(this.style,mxShapeMockupRating.prototype.cst.RATING_STYLE,mxShapeMockupRating.prototype.cst.RATING_STAR);var a=mxUtils.getValue(this.style,mxShapeMockupRating.prototype.cst.GRADE,"5"),s=mxUtils.getValue(this.style,mxShapeMockupRating.prototype.cst.RATING_SCALE,"10");if(e.translate(t,o),n===mxShapeMockupRating.prototype.cst.RATING_STAR)for(t=0;t<a;t++)e.begin(),e.moveTo(t*i*1.5,.33*i),e.lineTo(t*i*1.5+.364*i,.33*i),e.lineTo(t*i*1.5+.475*i,0),e.lineTo(t*i*1.5+.586*i,.33*i),e.lineTo(t*i*1.5+.95*i,.33*i),e.lineTo(t*i*1.5+.66*i,.551*i),e.lineTo(t*i*1.5+.775*i,.9*i),e.lineTo(t*i*1.5+.475*i,.684*i),e.lineTo(t*i*1.5+.175*i,.9*i),e.lineTo(t*i*1.5+.29*i,.551*i),e.close(),e.fillAndStroke();else if(n===mxShapeMockupRating.prototype.cst.RATING_HEART)for(t=0;t<a;t++)e.begin(),e.moveTo(t*i*1.5+.519*i,.947*i),e.curveTo(t*i*1.5+.558*i,.908*i,t*i*1.5+.778*i,.682*i,t*i*1.5+.916*i,.54*i),e.curveTo(t*i*1.5+1.039*i,.414*i,t*i*1.5+1.036*i,.229*i,t*i*1.5+.924*i,.115*i),e.curveTo(t*i*1.5+.812*i,0,t*i*1.5+.631*i,0,t*i*1.5+.519*i,.115*i),e.curveTo(t*i*1.5+.408*i,0,t*i*1.5+.227*i,0,t*i*1.5+.115*i,.115*i),e.curveTo(t*i*1.5+.03*i,.229*i,t*i*1.5,.414*i,t*i*1.5+.123*i,.54*i),e.close(),e.fillAndStroke();if(t=mxUtils.getValue(this.style,mxShapeMockupRating.prototype.cst.EMPTY_FILL_COLOR,"#ffffff"),e.setFillColor(t),n===mxShapeMockupRating.prototype.cst.RATING_STAR)for(t=a;t<s;t++)e.begin(),e.moveTo(t*i*1.5,.33*i),e.lineTo(t*i*1.5+.364*i,.33*i),e.lineTo(t*i*1.5+.475*i,0),e.lineTo(t*i*1.5+.586*i,.33*i),e.lineTo(t*i*1.5+.95*i,.33*i),e.lineTo(t*i*1.5+.66*i,.551*i),e.lineTo(t*i*1.5+.775*i,.9*i),e.lineTo(t*i*1.5+.475*i,.684*i),e.lineTo(t*i*1.5+.175*i,.9*i),e.lineTo(t*i*1.5+.29*i,.551*i),e.close(),e.fillAndStroke();else if(n===mxShapeMockupRating.prototype.cst.RATING_HEART)for(t=a;t<s;t++)e.begin(),e.moveTo(t*i*1.5+.519*i,.947*i),e.curveTo(t*i*1.5+.558*i,.908*i,t*i*1.5+.778*i,.682*i,t*i*1.5+.916*i,.54*i),e.curveTo(t*i*1.5+1.039*i,.414*i,t*i*1.5+1.036*i,.229*i,t*i*1.5+.924*i,.115*i),e.curveTo(t*i*1.5+.812*i,0,t*i*1.5+.631*i,0,t*i*1.5+.519*i,.115*i),e.curveTo(t*i*1.5+.408*i,0,t*i*1.5+.227*i,0,t*i*1.5+.115*i,.115*i),e.curveTo(t*i*1.5+.03*i,.229*i,t*i*1.5,.414*i,t*i*1.5+.123*i,.54*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupRating.prototype.cst.SHAPE_RATING,mxShapeMockupRating),mxUtils.extend(mxShapeMockupMail,mxShape),mxShapeMockupMail.prototype.cst={SHAPE_MAIL:"mxgraph.mockup.misc.mail2"},mxShapeMockupMail.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,n,i),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(0,0),e.lineTo(.5*n,.5*i),e.lineTo(n,0),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupMail.prototype.cst.SHAPE_MAIL,mxShapeMockupMail),mxUtils.extend(mxShapeMockupVolumeSlider,mxShape),mxShapeMockupVolumeSlider.prototype.cst={SHAPE_VOLUME_SLIDER:"mxgraph.mockup.misc.volumeSlider",BAR_POS:"barPos",FILL_COLOR2:"fillColor2"},mxShapeMockupVolumeSlider.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"barPos",dispName:"Handle Position",type:"float"}],mxShapeMockupVolumeSlider.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=mxUtils.getValue(this.style,mxShapeMockupVolumeSlider.prototype.cst.BAR_POS,"80"),t=mxUtils.getValue(this.style,mxShapeMockupVolumeSlider.prototype.cst.FILL_COLOR2,"#ddeeff"),mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999"),o=Math.min(o,100),o=Math.max(o,0),i=Math.max(i,25);var a=(n=Math.max(n,87.5))-25,s=.5*(i-25);e.begin(),e.moveTo(a+1.25,s+8.75),e.lineTo(a+3.75,s+8.75),e.lineTo(a+7.5,s+5),e.lineTo(a+7.5,s+20),e.lineTo(a+3.75,s+16.25),e.lineTo(a+1.25,s+16.25),e.close(),e.fill(),o=0+(n-32.5-0)*o/100,a=n-25,s=.5*(i-25),e.begin(),e.moveTo(a+10,s+8.75),e.arcTo(5,7.5,0,0,1,a+10,s+16.25),e.moveTo(a+10.625,s+6.25),e.arcTo(5.625,8.75,0,0,1,a+10.625,s+18.75),e.moveTo(a+12.5,s+5),e.arcTo(6.25,10,0,0,1,a+12.5,s+20),e.fillAndStroke(),i=.5*(i-25),e.roundrect(0,i+8.75,n-32.5,7.5,5,5),e.fill(),e.setShadow(!1),e.setFillColor(t),e.roundrect(0,i+8.75,o,7.5,5,5),e.fill(),e.ellipse(o-6.25,i+6.25,12.5,12.5),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupVolumeSlider.prototype.cst.SHAPE_VOLUME_SLIDER,mxShapeMockupVolumeSlider),Graph.handleFactory[mxShapeMockupVolumeSlider.prototype.cst.SHAPE_VOLUME_SLIDER]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(e.x+t*(e.width-32.5)/100,e.y+.5*e.height)}),(function(e,t){this.state.style.barPos=Math.round(1e3*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/1e3}))]},mxUtils.extend(mxShapeMockupEdit,mxShape),mxShapeMockupEdit.prototype.cst={SHAPE_EDIT:"mxgraph.mockup.misc.editIcon"},mxShapeMockupEdit.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");e.translate(t,o),e.roundrect(0,0,n,i,.05*n,.05*i),e.fillAndStroke(),e.setShadow(!1),e.setFillColor(a),e.begin(),e.moveTo(.11*n,.8*i),e.lineTo(.2*n,.89*i),e.lineTo(.05*n,.95*i),e.close(),e.moveTo(.74*n,.16*i),e.lineTo(.84*n,.26*i),e.lineTo(.22*n,.88*i),e.lineTo(.12*n,.78*i),e.close(),e.moveTo(.755*n,.145*i),e.lineTo(.82*n,.08*i),e.lineTo(.92*n,.18*i),e.lineTo(.855*n,.245*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeMockupEdit.prototype.cst.SHAPE_EDIT,mxShapeMockupEdit),mxUtils.extend(mxShapeMockupPrint,mxShape),mxShapeMockupPrint.prototype.cst={SHAPE_PRINT:"mxgraph.mockup.misc.printIcon"},mxShapeMockupPrint.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");e.translate(t,o),e.roundrect(0,0,n,i,.05*n,.05*i),e.fillAndStroke(),e.setShadow(!1),e.setFillColor(a),e.begin(),e.moveTo(.15*n,.58*i),e.arcTo(.03*n,.03*i,0,0,1,.18*n,.55*i),e.lineTo(.82*n,.55*i),e.arcTo(.03*n,.03*i,0,0,1,.85*n,.58*i),e.lineTo(.85*n,.82*i),e.arcTo(.03*n,.03*i,0,0,1,.82*n,.85*i),e.lineTo(.18*n,.85*i),e.arcTo(.03*n,.03*i,0,0,1,.15*n,.82*i),e.close(),e.moveTo(.7*n,.52*i),e.lineTo(.3*n,.52*i),e.lineTo(.3*n,.15*i),e.lineTo(.55*n,.15*i),e.lineTo(.55*n,.3*i),e.lineTo(.7*n,.3*i),e.close(),e.moveTo(.57*n,.15*i),e.lineTo(.7*n,.28*i),e.lineTo(.57*n,.28*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeMockupPrint.prototype.cst.SHAPE_PRINT,mxShapeMockupPrint),mxUtils.extend(mxShapeMockupShare,mxShape),mxShapeMockupShare.prototype.cst={SHAPE_SHARE:"mxgraph.mockup.misc.shareIcon"},mxShapeMockupShare.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");e.translate(t,o),e.roundrect(0,0,n,i,.05*n,.05*i),e.fillAndStroke(),e.setShadow(!1),e.setFillColor(a),e.begin(),e.moveTo(.15*n,.18*i),e.arcTo(.03*n,.03*i,0,0,1,.18*n,.15*i),e.lineTo(.82*n,.15*i),e.arcTo(.03*n,.03*i,0,0,1,.85*n,.18*i),e.lineTo(.85*n,.82*i),e.arcTo(.03*n,.03*i,0,0,1,.82*n,.85*i),e.lineTo(.18*n,.85*i),e.arcTo(.03*n,.03*i,0,0,1,.15*n,.82*i),e.close(),e.fill(),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e.setFillColor(t),e.begin(),e.moveTo(.563*n,.34*i),e.arcTo(.095*n,.095*i,0,1,1,.603*n,.42*i),e.lineTo(.44*n,.5*i),e.lineTo(.602*n,.582*i),e.arcTo(.095*n,.095*i,0,1,1,.563*n,.653*i),e.lineTo(.403*n,.575*i),e.arcTo(.095*n,.095*i,0,1,1,.4*n,.42*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeMockupShare.prototype.cst.SHAPE_SHARE,mxShapeMockupShare),mxUtils.extend(mxShapeMockupTrashcan,mxShape),mxShapeMockupTrashcan.prototype.cst={SHAPE_TRASHCAN:"mxgraph.mockup.misc.trashcanIcon"},mxShapeMockupTrashcan.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");e.translate(t,o),e.roundrect(0,0,n,i,.05*n,.05*i),e.fillAndStroke(),e.setShadow(!1),e.setFillColor(a),e.begin(),e.moveTo(.24*n,.24*i),e.arcTo(.04*n,.04*i,0,0,1,.24*n,.16*i),e.lineTo(.4*n,.16*i),e.lineTo(.4*n,.12*i),e.lineTo(.6*n,.12*i),e.lineTo(.6*n,.16*i),e.lineTo(.76*n,.16*i),e.arcTo(.04*n,.04*i,0,0,1,.76*n,.24*i),e.close(),e.fill(),e.roundrect(.26*n,.3*i,.1*n,.6*i,.06*n,.06*i),e.fill(),e.roundrect(.44*n,.3*i,.1*n,.6*i,.06*n,.06*i),e.fill(),e.roundrect(.62*n,.3*i,.1*n,.6*i,.06*n,.06*i),e.fill()},mxCellRenderer.registerShape(mxShapeMockupTrashcan.prototype.cst.SHAPE_TRASHCAN,mxShapeMockupTrashcan),mxUtils.extend(mxShapeMockupCopyright,mxShape),mxShapeMockupCopyright.prototype.cst={SHAPE_COPYRIGHT:"mxgraph.mockup.misc.copyrightIcon"},mxShapeMockupCopyright.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");e.translate(t,o),e.ellipse(0,0,n,i),e.fillAndStroke(),e.setShadow(!1),e.setFillColor(a),e.begin(),e.moveTo(.713*n,.288*i),e.arcTo(.3*n,.3*i,0,1,0,.713*n,.712*i),e.lineTo(.784*n,.783*i),e.arcTo(.4*n,.4*i,0,1,1,.784*n,.217*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeMockupCopyright.prototype.cst.SHAPE_COPYRIGHT,mxShapeMockupCopyright),mxUtils.extend(mxShapeMockupRegistered,mxShape),mxShapeMockupRegistered.prototype.cst={SHAPE_REGISTERED:"mxgraph.mockup.misc.registeredIcon"},mxShapeMockupRegistered.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");e.translate(t,o),e.ellipse(0,0,n,i),e.fillAndStroke(),e.setShadow(!1),e.setFillColor(a),e.begin(),e.moveTo(.29*n,.9*i),e.lineTo(.29*n,.09*i),e.lineTo(.5*n,.09*i),e.arcTo(.2195*n,.2195*i,0,0,1,.545*n,.525*i),e.lineTo(.738*n,.91*i),e.lineTo(.674*n,.91*i),e.lineTo(.4825*n,.53*i),e.lineTo(.35*n,.53*i),e.lineTo(.35*n,.9*i),e.close(),e.moveTo(.35*n,.47*i),e.lineTo(.5*n,.47*i),e.arcTo(.15*n,.15*i,0,0,0,.5*n,.15*i),e.lineTo(.35*n,.15*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeMockupRegistered.prototype.cst.SHAPE_REGISTERED,mxShapeMockupRegistered),mxUtils.extend(mxShapeMockupVolume,mxShape),mxShapeMockupVolume.prototype.cst={SHAPE_VOLUME:"mxgraph.mockup.misc.volumeIcon"},mxShapeMockupVolume.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");e.translate(t,o),e.roundrect(0,0,n,i,.05*n,.05*i),e.fillAndStroke(),e.setShadow(!1),e.setFillColor(a),e.begin(),e.moveTo(.1*n,.3*i),e.lineTo(.3*n,.3*i),e.lineTo(.5*n,.15*i),e.lineTo(.5*n,.85*i),e.lineTo(.3*n,.7*i),e.lineTo(.1*n,.7*i),e.close(),e.fill(),e.begin(),e.moveTo(.6*n,.4*i),e.arcTo(.2*n,.2*i,0,0,1,.6*n,.6*i),e.moveTo(.7*n,.3*i),e.arcTo(.3*n,.3*i,0,0,1,.7*n,.7*i),e.moveTo(.8*n,.2*i),e.arcTo(.4*n,.4*i,0,0,1,.8*n,.8*i),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupVolume.prototype.cst.SHAPE_VOLUME,mxShapeMockupVolume),mxUtils.extend(mxShapeMockupRuler,mxShape),mxShapeMockupRuler.prototype.cst={SHAPE_RULER:"mxgraph.mockup.misc.ruler",ORIENTATION:"rulerOrient",UNIT_SIZE:"unitSize",FACE_UP:"up",FACE_DOWN:"down"},mxShapeMockupRuler.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupRuler.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxShapeMockupRuler.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxShapeMockupRuler.prototype.cst.ORIENTATION,mxShapeMockupRuler.prototype.cst.FACE_DOWN),i=mxUtils.getValue(this.style,mxShapeMockupRuler.prototype.cst.UNIT_SIZE,"10"),a=i=Math.max(i,1),s=1;if(n===mxShapeMockupRuler.prototype.cst.FACE_DOWN){for(e.begin();a<t;)0==(n=s%10)?e.moveTo(a,.5*o):5===n?e.moveTo(a,.7*o):e.moveTo(a,.8*o),e.lineTo(a,o),a+=i,s+=1;e.stroke()}else if(n===mxShapeMockupRuler.prototype.cst.FACE_UP){for(e.begin();a<t;)0==(n=s%10)?e.moveTo(a,.5*o):5===n?e.moveTo(a,.3*o):e.moveTo(a,.2*o),e.lineTo(a,0),a+=i,s+=1;e.stroke()}},mxCellRenderer.registerShape(mxShapeMockupRuler.prototype.cst.SHAPE_RULER,mxShapeMockupRuler),mxUtils.extend(mxShapeMockupRuler2,mxShape),mxShapeMockupRuler2.prototype.cst={SHAPE_RULER:"mxgraph.mockup.misc.ruler2",ORIENTATION:"rulerOrient",UNIT_SIZE:"dx",FACE_UP:"up",FACE_DOWN:"down"},mxShapeMockupRuler2.prototype.customProperties=[{name:"rulerOrient",dispName:"Orientation",defVal:"up",type:"enum",enumList:[{val:"up",dispName:"Up"},{val:"down",dispName:"Down"}]},{name:"dx",dispName:"Unit Size",type:"float",min:0,defVal:100}],mxShapeMockupRuler2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupRuler2.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxShapeMockupRuler2.prototype.foreground=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupRuler2.prototype.cst.ORIENTATION,mxShapeMockupRuler2.prototype.cst.FACE_DOWN);o=mxUtils.getValue(this.style,mxConstants.STYLE_FONTCOLOR,"#000000"),t=mxUtils.getValue(this.style,"dx","100"),this.state.style.spacingLeft=Math.round(1e3*Math.max(0,Math.min(n,t)))/1e3-4,t=Math.max(t/10,1),e.setFontColor(o),o=t;var s=1;if(a===mxShapeMockupRuler2.prototype.cst.FACE_DOWN){for(e.begin();o<n;)0==(a=s%10)?(e.moveTo(o,i-10),e.lineTo(o,i),a=this.state.view.graph.getLabel(this.state.cell),isNaN(a)||(e.stroke(),a=s*Math.round(100*a)/1e3,10!=s&&0!=a&&e.text(o,.5*(i-10),0,0,a.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.begin())):(5===a?e.moveTo(o,i-6):e.moveTo(o,i-4),e.lineTo(o,i)),o+=t,s+=1;e.stroke()}else if(a===mxShapeMockupRuler2.prototype.cst.FACE_UP){for(e.begin();o<n;)0==(a=s%10)?(e.moveTo(o,10),e.lineTo(o,0),a=this.state.view.graph.getLabel(this.state.cell),isNaN(a)||(e.stroke(),a=s*Math.round(100*a)/1e3,10!=s&&0!=a&&e.text(o,.5*(i+10),0,0,a.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.begin())):(5===a?e.moveTo(o,6):e.moveTo(o,4),e.lineTo(o,0)),o+=t,s+=1;e.stroke()}},mxCellRenderer.registerShape(mxShapeMockupRuler2.prototype.cst.SHAPE_RULER,mxShapeMockupRuler2),Graph.handleFactory[mxShapeMockupRuler2.prototype.cst.SHAPE_RULER]=function(e){return[Graph.createHandle(e,"dx spacingLeft align varticalAlign spacingBottom spacingTop spacingRight spacing".split(" "),(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+e.height-10)}),(function(e,t){this.state.style.dx=Math.round(1e3*Math.max(0,Math.min(e.width,t.x-e.x)))/1e3,this.state.style.spacingLeft=Math.round(1e3*Math.max(0,Math.min(e.width,t.x-e.x)))/1e3-4,this.state.style.align="left",this.state.style.verticalAlign="middle","down"==mxUtils.getValue(this.state.style,"rulerOrient","1")?(this.state.style.spacingBottom=10,this.state.style.spacingTop=0):(this.state.style.spacingBottom=0,this.state.style.spacingTop=10),this.state.style.spacingRight=0,this.state.style.spacing=0}))]},mxUtils.extend(mxShapeMockupRevisionTable,mxShape),mxShapeMockupRevisionTable.prototype.cst={SHAPE_REVISION_TABLE:"mxgraph.mockup.misc.revisionTable",MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize"},mxShapeMockupRevisionTable.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupRevisionTable.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxShapeMockupRevisionTable.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxShapeMockupRevisionTable.prototype.cst.MAIN_TEXT,"").toString().split(","),i=mxUtils.getValue(this.style,mxShapeMockupRevisionTable.prototype.cst.TEXT_COLOR,"#999999"),a=mxUtils.getValue(this.style,mxShapeMockupRevisionTable.prototype.cst.TEXT_SIZE,"17");e.begin(),e.moveTo(0,.33*o),e.lineTo(t,.33*o),e.moveTo(0,.67*o),e.lineTo(t,.67*o),e.moveTo(.125*t,.33*o),e.lineTo(.125*t,o),e.moveTo(.5*t,.33*o),e.lineTo(.5*t,o),e.stroke(),e.setFontSize(a),e.setFontColor(i),e.text(.5*t,.165*o,0,0,n[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.0625*t,.5*o,0,0,n[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.3125*t,.5*o,0,0,n[2],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.75*t,.5*o,0,0,n[3],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.0625*t,.835*o,0,0,n[4],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.3125*t,.835*o,0,0,n[5],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.75*t,.835*o,0,0,n[6],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupRevisionTable.prototype.cst.SHAPE_REVISION_TABLE,mxShapeMockupRevisionTable),mxUtils.extend(mxShapeMockupStatusBar,mxShape),mxShapeMockupStatusBar.prototype.cst={SHAPE_STATUS_BAR:"mxgraph.mockup.misc.statusBar",MAIN_TEXT:"mainText",FILL_COLOR2:"fillColor2",STROKE_COLOR2:"strokeColor2",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize"},mxShapeMockupStatusBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),n=Math.max(n,105),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupStatusBar.prototype.background=function(e,t,o){e.rect(0,.5*o-15,t,30),e.fillAndStroke()},mxShapeMockupStatusBar.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxShapeMockupStatusBar.prototype.cst.FILL_COLOR2,"#ddeeff"),i=mxUtils.getValue(this.style,mxShapeMockupStatusBar.prototype.cst.STROKE_COLOR2,"#008cff"),a=mxUtils.getValue(this.style,mxShapeMockupStatusBar.prototype.cst.MAIN_TEXT,"").toString().split(","),s=mxUtils.getValue(this.style,mxShapeMockupStatusBar.prototype.cst.TEXT_COLOR,"#999999"),l=mxUtils.getValue(this.style,mxShapeMockupStatusBar.prototype.cst.TEXT_SIZE,"17");e.setFillColor(n),e.roundrect(5,.5*o-10,.46*(t-75),20,5,5),e.fill(),e.roundrect(10+.46*(t-75),.5*o-10,.23*(t-75),20,5,5),e.fill(),e.roundrect(15+.69*(t-75),.5*o-10,.276*(t-75),20,5,5),e.fill(),e.setFontSize(l),e.setFontColor(s),e.text(10,.5*o,0,0,a[0],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(10+.575*(t-75),.5*o,0,0,a[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(15+.828*(t-75),.5*o,0,0,a[2],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setStrokeColor(i),e.ellipse(t-25,.5*o-10,20,20),e.stroke(),e.begin(),e.moveTo(t-55,.5*o+10),e.lineTo(t-35,.5*o+10),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupStatusBar.prototype.cst.SHAPE_STATUS_BAR,mxShapeMockupStatusBar),mxUtils.extend(mxShapeMockupPin,mxShape),mxShapeMockupPin.prototype.cst={SHAPE_PIN:"mxgraph.mockup.misc.pin",FILL_COLOR2:"fillColor2",FILL_COLOR3:"fillColor3"},mxShapeMockupPin.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"fillColor3",dispName:"Fill3 Color",type:"color"}],mxShapeMockupPin.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupPin.prototype.cst.FILL_COLOR2,"#000000"),s=mxUtils.getValue(this.style,mxShapeMockupPin.prototype.cst.FILL_COLOR3,"#000000"),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.setShadow(!1),e.translate(t,o),e.setStrokeWidth(3),e.setStrokeColor("#666666"),e.begin(),e.moveTo(.5*n,.4*i),e.lineTo(.5*n,i),e.stroke(),e.setStrokeWidth(2),e.setStrokeColor(l),e.setGradient(a,s,0,0,n,.4*i,mxConstants.DIRECTION_SOUTH,1,1),e.setAlpha(.9),e.ellipse(0,0,n,.4*i),e.fillAndStroke(),e.setFillColor("#ffffff"),e.setAlpha(.5),e.ellipse(.2*n,.08*i,.3*n,.12*i),e.fill()},mxCellRenderer.registerShape(mxShapeMockupPin.prototype.cst.SHAPE_PIN,mxShapeMockupPin),mxUtils.extend(mxShapeMockupMiscRRect,mxShape),mxShapeMockupMiscRRect.prototype.cst={RRECT:"mxgraph.mockup.misc.rrect",R_SIZE:"rSize"},mxShapeMockupMiscRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeMockupMiscRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupMiscRRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupMiscRRect.prototype.cst.RRECT,mxShapeMockupMiscRRect),mxUtils.extend(mxShapeMockupMiscAnchor,mxShape),mxShapeMockupMiscAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.misc.anchor"},mxShapeMockupMiscAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeMockupMiscAnchor.prototype.cst.ANCHOR,mxShapeMockupMiscAnchor),mxUtils.extend(mxShapeMockupBreadcrumb,mxShape),mxShapeMockupBreadcrumb.prototype.cst={SHAPE_BREADCRUMB:"mxgraph.mockup.navigation.breadcrumb",MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2"},mxShapeMockupBreadcrumb.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeMockupBreadcrumb.prototype.cst.MAIN_TEXT,"Layer 1, Layer 2, Layer 3").toString().split(","),s=mxUtils.getValue(this.style,mxShapeMockupBreadcrumb.prototype.cst.TEXT_COLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupBreadcrumb.prototype.cst.TEXT_COLOR2,"#008cff"),r=mxUtils.getValue(this.style,mxShapeMockupBreadcrumb.prototype.cst.TEXT_SIZE,"17").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#c4c4c4"),m=a.length,h=Array(m),x=0,c=0;c<m;c++)h[c]=mxUtils.getSizeForString(a[c],r,mxConstants.DEFAULT_FONTFAMILY).width,x+=h[c];for(i=Math.max(i,1.5*r,20),x=20*m+x,n=Math.max(n,x),e.translate(t,o),e.setShadow(!1),this.separators(e,n,i,m,h,10,x,p),c=t=0;c<m;c++)c+1===m?e.setFontColor(l):e.setFontColor(s),t+=10,this.buttonText(e,t,i,a[c],h[c],r,x,n),t=t+h[c]+10},mxShapeMockupBreadcrumb.prototype.separators=function(e,t,o,n,i,a,s,l){for(e.setStrokeColor(l),o*=.5,e.begin(),l=1;l<n;l++){for(var r=0,p=0;p<l;p++)r+=i[p]+2*a;r=r*t/s,e.moveTo(r-2.5,o-5),e.lineTo(r+2.5,o),e.lineTo(r-2.5,o+5)}e.stroke()},mxShapeMockupBreadcrumb.prototype.buttonText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(a),e.text((t+.5*i)*l/s,.5*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupBreadcrumb.prototype.cst.SHAPE_BREADCRUMB,mxShapeMockupBreadcrumb),mxUtils.extend(mxShapeMockupStepBar,mxShape),mxShapeMockupStepBar.prototype.cst={SHAPE_STEP_BAR:"mxgraph.mockup.navigation.stepBar",SELECTED:"+",MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2"},mxShapeMockupStepBar.prototype.customProperties=[{name:"mainText",dispName:"Text",type:"string"},{name:"textSize",dispName:"Text Size",type:"float"},{name:"textColor",dispName:"Text Color",type:"color"},{name:"textColor2",dispName:"Text2 Color",type:"color"}],mxShapeMockupStepBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeMockupStepBar.prototype.cst.MAIN_TEXT,"Step 1, Step 2, Step 3").toString().split(","),s=mxUtils.getValue(this.style,mxShapeMockupStepBar.prototype.cst.TEXT_COLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupStepBar.prototype.cst.TEXT_COLOR2,"#008cff"),r=mxUtils.getValue(this.style,mxShapeMockupStepBar.prototype.cst.TEXT_SIZE,"17").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#c4c4c4"),m=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),h=a.length,x=Array(h),c=0,u=-1,S=0;S<h;S++){var T=a[S];T.charAt(0)===mxShapeMockupStepBar.prototype.cst.SELECTED&&(T=a[S].substring(1),u=S),x[S]=mxUtils.getSizeForString(T,r,mxConstants.DEFAULT_FONTFAMILY).width,c+=x[S]}for(i=Math.max(i,1.5*r,20),c=20*h+c,n=Math.max(n,c),e.translate(t,o),this.stepLineBg(e,n,i,h,x,10,c,p,r,n),e.setShadow(!1),this.stepLineFg(e,n,i,h,x,10,c,p,m,l,r,n,u),S=t=0;S<h;S++)S>=u?e.setFontColor(l):e.setFontColor(s),t+=10,this.buttonText(e,t,i,a[S],x[S],r,c,n),t=t+x[S]+10},mxShapeMockupStepBar.prototype.stepLineBg=function(e,t,o,n,i,a,s,l,r,p){for(e.setStrokeColor(l),e.setFillColor(l),o=2*r,p=r=l=0;p<n;p++){for(var m=0,h=0;h<p;h++)m+=i[h]+2*a;m=(m+=.5*i[p]+a)*t/s,0===p?l=m:p+1===n&&(r=m),e.begin(),e.ellipse(m-10,o-10,20,20),e.fillAndStroke()}e.begin(),e.rect(l,o-2,r-l,4),e.fillAndStroke()},mxShapeMockupStepBar.prototype.stepLineFg=function(e,t,o,n,i,a,s,l,r,p,m,h,x){e.setStrokeColor(r),o=2*m,m=n=0,h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");for(var c=0;c<=x;c++){for(var u=0,S=0;S<c;S++)u+=i[S]+2*a;u=(u+=.5*i[c]+a)*t/s,0===c?n=u:c===x&&(m=u)}for(e.setFillColor(r),e.begin(),e.rect(n,o-1.125,m-n,2.25),e.fill(),e.setFillColor(l),c=0;c<=x;c++){for(S=u=0;S<c;S++)u+=i[S]+2*a;u=(u+=.5*i[c]+a)*t/s,c<x?(e.setStrokeWidth(h),e.begin(),e.ellipse(u-7.5,o-7.5,15,15),e.fillAndStroke(),e.setStrokeWidth(.5*h),e.begin(),e.ellipse(u-4.5,o-4.5,9,9)):(e.setStrokeWidth(h),e.setFillColor(l),e.setStrokeColor(l),e.begin(),e.ellipse(u-10,o-10,20,20),e.fillAndStroke(),e.setStrokeWidth(h),e.setFillColor("#ffffff"),e.setStrokeColor("#ffffff"),e.begin(),e.ellipse(u-7.5,o-7.5,15,15),e.fillAndStroke(),e.setFillColor(p),e.setStrokeColor(p),e.setStrokeWidth(.5*h),e.begin(),e.ellipse(u-5.25,o-5.25,10.5,10.5)),e.fillAndStroke()}},mxShapeMockupStepBar.prototype.buttonText=function(e,t,o,n,i,a,s,l){n.charAt(0)===mxShapeMockupStepBar.prototype.cst.SELECTED&&(n=n.substring(1)),e.begin(),e.setFontSize(a),e.text((t+.5*i)*l/s,.5*a,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupStepBar.prototype.cst.SHAPE_STEP_BAR,mxShapeMockupStepBar),mxUtils.extend(mxShapeMockupCoverFlow,mxShape),mxShapeMockupCoverFlow.prototype.cst={SHAPE_COVER_FLOW:"mxgraph.mockup.navigation.coverFlow"},mxShapeMockupCoverFlow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(.0924*n,.07*i),e.lineTo(.005*n,.01*i),e.lineTo(.005*n,.99*i),e.lineTo(.0924*n,.93*i),e.moveTo(.1774*n,.09*i),e.lineTo(.0924*n,.01*i),e.lineTo(.0924*n,.99*i),e.lineTo(.1774*n,.91*i),e.moveTo(.3373*n,.22*i),e.lineTo(.1774*n,.01*i),e.lineTo(.1774*n,.99*i),e.lineTo(.3373*n,.78*i),e.moveTo(.912*n,.07*i),e.lineTo(.998*n,.01*i),e.lineTo(.998*n,.99*i),e.lineTo(.912*n,.93*i),e.moveTo(.8271*n,.09*i),e.lineTo(.912*n,.01*i),e.lineTo(.912*n,.99*i),e.lineTo(.8271*n,.91*i),e.moveTo(.6672*n,.22*i),e.lineTo(.8271*n,.01*i),e.lineTo(.8271*n,.99*i),e.lineTo(.6672*n,.78*i),e.moveTo(.3373*n,.005*i),e.lineTo(.3373*n,.995*i),e.lineTo(.6672*n,.995*i),e.lineTo(.6672*n,.005*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupCoverFlow.prototype.cst.SHAPE_COVER_FLOW,mxShapeMockupCoverFlow),mxUtils.extend(mxShapeMockupScrollBar,mxShape),mxShapeMockupScrollBar.prototype.cst={SHAPE_SCROLL_BAR:"mxgraph.mockup.navigation.scrollBar",FILL_COLOR2:"fillColor2",STROKE_COLOR2:"strokeColor2",BAR_POS:"barPos"},mxShapeMockupScrollBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float"},{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"}],mxShapeMockupScrollBar.prototype.paintVertexShape=function(e,t,o,n,i){n=Math.max(n,40),e.translate(t,o),this.background(e,n,20,20),e.setShadow(!1),this.foreground(e,n,20,20),this.barPos=20},mxShapeMockupScrollBar.prototype.background=function(e,t,o,n){e.rect(0,0,t,o),e.fillAndStroke(),e.begin(),e.moveTo(n,0),e.lineTo(n,o),e.moveTo(t-n,0),e.lineTo(t-n,o),e.stroke()},mxShapeMockupScrollBar.prototype.foreground=function(e,t,o,n){var i=mxUtils.getValue(this.style,mxShapeMockupScrollBar.prototype.cst.BAR_POS,"20"),a=mxUtils.getValue(this.style,mxShapeMockupScrollBar.prototype.cst.FILL_COLOR2,"#99ddff"),s=mxUtils.getValue(this.style,mxShapeMockupScrollBar.prototype.cst.STROKE_COLOR2,"none");i=Math.max(0,i),i=Math.min(100,i),e.setStrokeColor(s),e.setFillColor(a),e.begin(),e.moveTo(.2*n,.5*o),e.lineTo(.8*n,.2*o),e.lineTo(.8*n,.8*o),e.close(),e.moveTo(t-.2*n,.5*o),e.lineTo(t-.8*n,.2*o),e.lineTo(t-.8*n,.8*o),e.close(),e.fillAndStroke(),a=t-n,t=Math.min(60,a-n),e.roundrect(n+(a-t/2-(n+t/2))*i/100,.15*o,t,.7*o,5,5),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupScrollBar.prototype.cst.SHAPE_SCROLL_BAR,mxShapeMockupScrollBar),Graph.handleFactory[mxShapeMockupScrollBar.prototype.cst.SHAPE_SCROLL_BAR]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(e.x+(e.width-100)*t/e.width/100*e.width+50,e.y+10)}),(function(e,t){this.state.style.barPos=Math.round(1e3*Math.max(0,Math.min(100,100*(t.x-e.x-50)/(e.width-100))))/1e3}))]},mxUtils.extend(mxShapeMockupPagination,mxShape),mxShapeMockupPagination.prototype.cst={MAIN_TEXT:"linkText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SHAPE_PAGINATION:"mxgraph.mockup.navigation.pagination"},mxShapeMockupPagination.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupPagination.prototype.cst.MAIN_TEXT,"0-9 A B C D E F G H I J K L M N O P Q R S T U V X Y Z"),s=mxUtils.getValue(this.style,mxShapeMockupPagination.prototype.cst.TEXT_SIZE,"17"),l=mxUtils.getValue(this.style,mxShapeMockupPagination.prototype.cst.TEXT_COLOR,"#0000ff");e.translate(t,o),t=mxUtils.getSizeForString(a,s,mxConstants.DEFAULT_FONTFAMILY).width,e.setStrokeColor(l),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.5*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.begin(),e.moveTo(.5*n-.5*t,.5*(i+parseInt(s,10))),e.lineTo(.5*n+.5*t,.5*(i+parseInt(s,10))),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupPagination.prototype.cst.SHAPE_PAGINATION,mxShapeMockupPagination),mxUtils.extend(mxShapeMockupPageControl,mxShape),mxShapeMockupPageControl.prototype.cst={SHAPE_PAGE_CONTROL:"mxgraph.mockup.navigation.pageControl"},mxShapeMockupPageControl.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#000000"),o=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");var a=Math.min(.5*i,.05*n);e.setFillColor(o),e.ellipse(0,.5*i-a,2*a,2*a),e.fill(),e.setFillColor(t),e.ellipse(.35*n-a,.5*i-a,2*a,2*a),e.fill(),e.ellipse(.65*n-a,.5*i-a,2*a,2*a),e.fill(),e.ellipse(n-2*a,.5*i-a,2*a,2*a),e.fill()},mxCellRenderer.registerShape(mxShapeMockupPageControl.prototype.cst.SHAPE_PAGE_CONTROL,mxShapeMockupPageControl),mxUtils.extend(mxShapeMockupMapNavigator,mxShape),mxShapeMockupMapNavigator.prototype.cst={SHAPE_MAP_NAVIGATOR:"mxgraph.mockup.navigation.mapNavigator",FILL_COLOR2:"fillColor2",STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3"},mxShapeMockupMapNavigator.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"},{name:"strokeColor3",dispName:"Stroke3 Color",type:"color"}],mxShapeMockupMapNavigator.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupMapNavigator.prototype.background=function(e,t,o){e.ellipse(0,0,t,.6*o),e.fillAndStroke(),e.begin(),e.moveTo(.35*t,.584*o),e.lineTo(.35*t,.95*o),e.arcTo(.083*t,.05*o,0,0,0,.43*t,o),e.lineTo(.56*t,o),e.arcTo(.083*t,.05*o,0,0,0,.65*t,.95*o),e.lineTo(.65*t,.584*o),e.fillAndStroke()},mxShapeMockupMapNavigator.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxShapeMockupMapNavigator.prototype.cst.FILL_COLOR2,"#99ddff"),i=mxUtils.getValue(this.style,mxShapeMockupMapNavigator.prototype.cst.STROKE_COLOR2,"none"),a=mxUtils.getValue(this.style,mxShapeMockupMapNavigator.prototype.cst.STROKE_COLOR3,"#ffffff");e.setFillColor(n),e.setStrokeColor(i),e.ellipse(.4*t,.65*o,.2*t,.12*o),e.fillAndStroke(),e.ellipse(.4*t,.85*o,.2*t,.12*o),e.fillAndStroke(),e.begin(),e.moveTo(.1806*t,.34*o),e.lineTo(.1357*t,.366*o),e.lineTo(.0228*t,.3*o),e.lineTo(.1357*t,.234*o),e.lineTo(.1806*t,.26*o),e.lineTo(.1142*t,.3*o),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.433*t,.108*o),e.lineTo(.3881*t,.08*o),e.lineTo(.4994*t,.012*o),e.lineTo(.6123*t,.08*o),e.lineTo(.5658*t,.108*o),e.lineTo(.4994*t,.068*o),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8198*t,.262*o),e.lineTo(.868*t,.233*o),e.lineTo(.9776*t,.3*o),e.lineTo(.868*t,.367*o),e.lineTo(.8198*t,.341*o),e.lineTo(.8863*t,.3*o),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5641*t,.493*o),e.lineTo(.6123*t,.522*o),e.lineTo(.4994*t,.588*o),e.lineTo(.3881*t,.521*o),e.lineTo(.4363*t,.493*o),e.lineTo(.4994*t,.533*o),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3333*t,.32*o),e.lineTo(.3333*t,.28*o),e.lineTo(.4163*t,.3*o),e.close(),e.moveTo(.4662*t,.2*o),e.lineTo(.5326*t,.2*o),e.lineTo(.4994*t,.25*o),e.close(),e.moveTo(.6654*t,.28*o),e.lineTo(.6654*t,.32*o),e.lineTo(.5824*t,.3*o),e.close(),e.moveTo(.5326*t,.4*o),e.lineTo(.4662*t,.4*o),e.lineTo(.4994*t,.35*o),e.close(),e.fillAndStroke(),e.setStrokeWidth(2),e.setStrokeColor(a),e.begin(),e.moveTo(.5*t,.67*o),e.lineTo(.5*t,.75*o),e.moveTo(.43*t,.71*o),e.lineTo(.57*t,.71*o),e.moveTo(.43*t,.91*o),e.lineTo(.57*t,.91*o),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupMapNavigator.prototype.cst.SHAPE_MAP_NAVIGATOR,mxShapeMockupMapNavigator),mxUtils.extend(mxShapeMockupNavigationAnchor,mxShape),mxShapeMockupNavigationAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.navigation.anchor"},mxShapeMockupNavigationAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeMockupNavigationAnchor.prototype.cst.ANCHOR,mxShapeMockupNavigationAnchor),mxUtils.extend(mxShapeMockupLink,mxShape),mxShapeMockupLink.prototype.cst={LINK_TEXT:"linkText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SHAPE_LINK:"mxgraph.mockup.text.link"},mxShapeMockupLink.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupLink.prototype.cst.LINK_TEXT,"Link"),s=mxUtils.getValue(this.style,mxShapeMockupLink.prototype.cst.TEXT_SIZE,"17"),l=mxUtils.getValue(this.style,mxShapeMockupLink.prototype.cst.TEXT_COLOR,"#0000ff");e.translate(t,o),t=mxUtils.getSizeForString(a,s,mxConstants.DEFAULT_FONTFAMILY).width,e.setStrokeColor(l),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.5*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.begin(),e.moveTo(.5*n-.5*t,.5*(i+parseInt(s,10))),e.lineTo(.5*n+.5*t,.5*(i+parseInt(s,10))),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupLink.prototype.cst.SHAPE_LINK,mxShapeMockupLink),mxUtils.extend(mxShapeMockupLinkBar,mxShape),mxShapeMockupLinkBar.prototype.cst={MAIN_TEXT:"mainText",SHAPE_LINK_BAR:"mxgraph.mockup.text.linkBar",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",TEXT_SIZE:"textSize"},mxShapeMockupLinkBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.MAIN_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),s=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.TEXT_COLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.TEXT_COLOR2,"#ffffff"),r=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.TEXT_SIZE,"17").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.STROKE_COLOR2,"#c4c4c4"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),x=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.FILL_COLOR2,"#008cff"),c=a.length,u=Array(c),S=0,T=-1,d=0;d<c;d++){var C=a[d];C.charAt(0)===mxShapeMockupLinkBar.prototype.cst.SELECTED&&(C=a[d].substring(1),T=d),C=mxUtils.getSizeForString(C,r,mxConstants.DEFAULT_FONTFAMILY).width,u[d]=0===C?42:C,S+=u[d]}for(i=Math.max(i,1.5*r,20),S=10*c+S,n=Math.max(n,S),e.translate(t,o),this.background(e,n,i,10,c,u,5,S,p,m,h,x,T),e.setShadow(!1),d=t=0;d<c;d++)d===T?(e.setFontColor(l),e.setStrokeColor(l)):(e.setFontColor(s),e.setStrokeColor(s)),t+=5,this.buttonText(e,t,i,a[d],u[d],r,S,n),t=t+u[d]+5},mxShapeMockupLinkBar.prototype.background=function(e,t,o,n,i,a,s,l,r,p,m,h,x){for(e.begin(),e.setStrokeColor(r),e.setFillColor(m),e.rect(0,0,t,o),e.fillAndStroke(),e.setStrokeColor(p),e.begin(),n=1;n<i;n++)if(n!==x&&n!==x+1){for(var c=p=0;c<n;c++)p+=a[c]+2*s;p=p*t/l,e.moveTo(p,0),e.lineTo(p,o)}for(e.stroke(),p=0,e.setFillColor(h),n=0;n<x;n++)p+=a[n]+2*s;p=p*t/l,a=(a[x]+2*s)*t/l,a+=p,0===x?(e.rect(0,0,a,o),e.fill()):(x===i-1||-1!==x)&&(e.rect(p,0,a-p,o),e.fill()),e.setStrokeColor(r),e.setFillColor(m),e.rect(0,0,t,o),e.stroke()},mxShapeMockupLinkBar.prototype.buttonText=function(e,t,o,n,i,a,s,l){n.charAt(0)===mxShapeMockupLinkBar.prototype.cst.SELECTED&&(n=n.substring(1)),e.begin(),e.setFontSize(a),e.text((t+.5*i)*l/s,.5*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);var r=.5*mxUtils.getSizeForString(n,a,mxConstants.DEFAULT_FONTFAMILY).width;null!==n&&""!==n&&(e.begin(),e.moveTo((t+.5*i)*l/s-r,.5*o+.5*a),e.lineTo((t+.5*i)*l/s+r,.5*o+.5*a),e.stroke())},mxCellRenderer.registerShape(mxShapeMockupLinkBar.prototype.cst.SHAPE_LINK_BAR,mxShapeMockupLinkBar),mxUtils.extend(mxShapeMockupCallout,mxShape),mxShapeMockupCallout.prototype.cst={CALLOUT_TEXT:"linkText",CALLOUT_DIR:"callDir",CALLOUT_STYLE:"callStyle",STYLE_LINE:"line",STYLE_RECT:"rect",STYLE_ROUNDRECT:"roundRect",DIR_NW:"NW",DIR_NE:"NE",DIR_SE:"SE",DIR_SW:"SW",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SHAPE_CALLOUT:"mxgraph.mockup.text.callout"},mxShapeMockupCallout.prototype.customProperties=[{name:"callDir",dispName:"Direction",type:"enum",enumList:[{val:"NW",dispName:"North-West"},{val:"NE",dispName:"North-East"},{val:"SE",dispName:"South-East"},{val:"SW",dispName:"South-West"}]},{name:"callStyle",dispName:"Style",type:"enum",enumList:[{val:"line",dispName:"Line"},{val:"rect",dispName:"Rectangle"}]}],mxShapeMockupCallout.prototype.paintVertexShape=function(e,t,o,n,i){var a,s=mxUtils.getValue(this.style,mxShapeMockupCallout.prototype.cst.CALLOUT_TEXT,"Callout"),l=mxUtils.getValue(this.style,mxShapeMockupCallout.prototype.cst.TEXT_SIZE,"17"),r=mxUtils.getValue(this.style,mxShapeMockupCallout.prototype.cst.TEXT_COLOR,"#666666"),p=mxUtils.getValue(this.style,mxShapeMockupCallout.prototype.cst.CALLOUT_STYLE,mxShapeMockupCallout.prototype.cst.STYLE_LINE),m=mxUtils.getValue(this.style,mxShapeMockupCallout.prototype.cst.CALLOUT_DIR,mxShapeMockupCallout.prototype.cst.DIR_NW);0==(a=1.2*(a=mxUtils.getSizeForString(s,l,mxConstants.DEFAULT_FONTFAMILY).width))&&(a=70),e.translate(t,o),e.setFontSize(l),e.setFontColor(r),t=1.5*l,m===mxShapeMockupCallout.prototype.cst.DIR_NW?(p===mxShapeMockupCallout.prototype.cst.STYLE_LINE?(e.begin(),e.moveTo(0,t),e.lineTo(a,t),e.lineTo(n,i),e.stroke()):p===mxShapeMockupCallout.prototype.cst.STYLE_RECT?(e.rect(0,0,a,t),e.fillAndStroke(),e.begin(),e.moveTo(.5*a,t),e.lineTo(n,i),e.stroke()):p===mxShapeMockupCallout.prototype.cst.STYLE_ROUNDRECT&&(e.roundrect(0,0,a,t,.25*t,.25*t),e.fillAndStroke(),e.begin(),e.moveTo(.5*a,t),e.lineTo(n,i),e.stroke()),e.text(.5*a,.5*t,0,0,s,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)):m===mxShapeMockupCallout.prototype.cst.DIR_NE?(p===mxShapeMockupCallout.prototype.cst.STYLE_LINE?(e.begin(),e.moveTo(n,t),e.lineTo(n-a,t),e.lineTo(0,i),e.stroke()):p===mxShapeMockupCallout.prototype.cst.STYLE_RECT?(e.rect(n-a,0,a,t),e.fillAndStroke(),e.begin(),e.moveTo(n-.5*a,t),e.lineTo(0,i),e.stroke()):p===mxShapeMockupCallout.prototype.cst.STYLE_ROUNDRECT&&(e.roundrect(n-a,0,a,t,.25*t,.25*t),e.fillAndStroke(),e.begin(),e.moveTo(n-.5*a,t),e.lineTo(0,i),e.stroke()),e.text(n-.5*a,.5*t,0,0,s,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)):m===mxShapeMockupCallout.prototype.cst.DIR_SE?(p===mxShapeMockupCallout.prototype.cst.STYLE_LINE?(e.begin(),e.moveTo(n,i),e.lineTo(n-a,i),e.lineTo(0,0),e.stroke()):p===mxShapeMockupCallout.prototype.cst.STYLE_RECT?(e.rect(n-a,i-t,a,t),e.fillAndStroke(),e.begin(),e.moveTo(n-.5*a,i-t),e.lineTo(0,0),e.stroke()):p===mxShapeMockupCallout.prototype.cst.STYLE_ROUNDRECT&&(e.roundrect(n-a,i-t,a,t,.25*t,.25*t),e.fillAndStroke(),e.begin(),e.moveTo(n-.5*a,i-t),e.lineTo(0,0),e.stroke()),e.text(n-.5*a,i-.5*t,0,0,s,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)):m===mxShapeMockupCallout.prototype.cst.DIR_SW&&(p===mxShapeMockupCallout.prototype.cst.STYLE_LINE?(e.begin(),e.moveTo(0,i),e.lineTo(a,i),e.lineTo(n,0),e.stroke()):p===mxShapeMockupCallout.prototype.cst.STYLE_RECT?(e.rect(0,i-t,a,t),e.fillAndStroke(),e.begin(),e.moveTo(.5*a,i-t),e.lineTo(n,0),e.stroke()):p===mxShapeMockupCallout.prototype.cst.STYLE_ROUNDRECT&&(e.roundrect(0,i-t,a,t,.25*t,.25*t),e.fillAndStroke(),e.begin(),e.moveTo(.5*a,i-t),e.lineTo(n,0),e.stroke()),e.text(.5*a,i-.5*t,0,0,s,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0))},mxCellRenderer.registerShape(mxShapeMockupCallout.prototype.cst.SHAPE_CALLOUT,mxShapeMockupCallout),mxUtils.extend(mxShapeMockupStickyNote,mxShape),mxShapeMockupStickyNote.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_STICKY_NOTE:"mxgraph.mockup.text.stickyNote"},mxShapeMockupStickyNote.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupStickyNote.prototype.background=function(e,t,o){e.setFillColor("#ffffcc"),e.begin(),e.moveTo(.03*t,.07*o),e.lineTo(.89*t,.06*o),e.arcTo(2.81*t,2.92*o,1,0,0,.99*t,.98*o),e.lineTo(.09*t,.99*o),e.arcTo(2.81*t,2.92*o,1,0,1,.03*t,.07*o),e.close(),e.fill()},mxShapeMockupStickyNote.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxShapeMockupStickyNote.prototype.cst.MAIN_TEXT,"Note line 1,Note line 2,Note line 3").toString().split(","),i=mxUtils.getValue(this.style,mxShapeMockupStickyNote.prototype.cst.TEXT_COLOR,"#666666").toString(),a=mxUtils.getValue(this.style,mxShapeMockupStickyNote.prototype.cst.TEXT_SIZE,"17").toString();e.setFillColor("#ff3300"),e.begin(),e.moveTo(.28*t,0),e.lineTo(.59*t,0),e.lineTo(.6*t,.12*o),e.lineTo(.28*t,.13*o),e.close(),e.fill(),e.setFontSize(a),e.setFontColor(i),i=n.length*a*1.5;for(var s=0;s<n.length;s++)e.text(t/2,(o-i)/2+s*a*1.5+.75*a,0,0,n[s],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupStickyNote.prototype.cst.SHAPE_STICKY_NOTE,mxShapeMockupStickyNote),mxUtils.extend(mxShapeMockupStickyNote2,mxShape),mxShapeMockupStickyNote2.prototype.cst={SHAPE_STICKY_NOTE:"mxgraph.mockup.text.stickyNote2"},mxShapeMockupStickyNote2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupStickyNote2.prototype.background=function(e,t,o){e.begin(),e.moveTo(.03*t,.07*o),e.lineTo(.89*t,.06*o),e.arcTo(2.81*t,2.92*o,1,0,0,.99*t,.98*o),e.lineTo(.09*t,.99*o),e.arcTo(2.81*t,2.92*o,1,0,1,.03*t,.07*o),e.close(),e.fill()},mxShapeMockupStickyNote2.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,"strokeColor","#000000");e.setFillColor(n),e.begin(),e.moveTo(.28*t,0),e.lineTo(.59*t,0),e.lineTo(.6*t,.12*o),e.lineTo(.28*t,.13*o),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeMockupStickyNote2.prototype.cst.SHAPE_STICKY_NOTE,mxShapeMockupStickyNote2),mxUtils.extend(mxShapeMockupBulletedList,mxShape),mxShapeMockupBulletedList.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",BULLET_STYLE:"bulletStyle",STYLE_HYPHEN:"hyphen",STYLE_NUM:"number",STYLE_DOT:"dot",SHAPE_BULLETED_LIST:"mxgraph.mockup.text.bulletedList"},mxShapeMockupBulletedList.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupBulletedList.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxShapeMockupBulletedList.prototype.foreground=function(e,t,o){t=mxUtils.getValue(this.style,mxShapeMockupBulletedList.prototype.cst.MAIN_TEXT,"Note line 1,Note line 2,Note line 3").toString().split(",");var n=mxUtils.getValue(this.style,mxShapeMockupBulletedList.prototype.cst.TEXT_COLOR,"#666666");o=mxUtils.getValue(this.style,mxShapeMockupBulletedList.prototype.cst.TEXT_SIZE,"17");var i=mxUtils.getValue(this.style,mxShapeMockupBulletedList.prototype.cst.BULLET_STYLE,"none");for(e.setFontColor(n),e.setFontSize(o),n=0;n<t.length;n++){var a;a=i===mxShapeMockupBulletedList.prototype.cst.STYLE_NUM?n+1+") "+t[n]:i===mxShapeMockupBulletedList.prototype.cst.STYLE_HYPHEN?"- "+t[n]:i===mxShapeMockupBulletedList.prototype.cst.STYLE_DOT?String.fromCharCode(8226)+" "+t[n]:"  "+t[n],e.text(10,n*o*1.5+.75*o,0,0,a,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)}},mxCellRenderer.registerShape(mxShapeMockupBulletedList.prototype.cst.SHAPE_BULLETED_LIST,mxShapeMockupBulletedList),mxUtils.extend(mxShapeMockupTextBox,mxShape),mxShapeMockupTextBox.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_TEXT_BOX:"mxgraph.mockup.text.textBox"},mxShapeMockupTextBox.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupTextBox.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxShapeMockupTextBox.prototype.foreground=function(e,t,o){t=mxUtils.getValue(this.style,mxShapeMockupTextBox.prototype.cst.MAIN_TEXT,"Note line 1").toString().split(",");var n=mxUtils.getValue(this.style,mxShapeMockupTextBox.prototype.cst.TEXT_COLOR,"#666666");for(o=mxUtils.getValue(this.style,mxShapeMockupTextBox.prototype.cst.TEXT_SIZE,"17"),e.setFontColor(n),e.setFontSize(o),n=0;n<t.length;n++)e.text(5,n*o*1.5+.75*o,0,0,t[n],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeMockupTextBox.prototype.cst.SHAPE_TEXT_BOX,mxShapeMockupTextBox),mxUtils.extend(mxShapeMockupCaptcha,mxShape),mxShapeMockupCaptcha.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_CAPTCHA:"mxgraph.mockup.text.captcha"},mxShapeMockupCaptcha.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupCaptcha.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxShapeMockupCaptcha.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxShapeMockupCaptcha.prototype.cst.MAIN_TEXT,"Note line 1"),i=mxUtils.getValue(this.style,mxShapeMockupCaptcha.prototype.cst.TEXT_COLOR,"#666666"),a=mxUtils.getValue(this.style,mxShapeMockupCaptcha.prototype.cst.TEXT_SIZE,"25");e.setFillColor("#88aaff"),e.begin(),e.moveTo(0,0),e.lineTo(.35*t,0),e.lineTo(.55*t,.85*o),e.lineTo(.4*t,.75*o),e.close(),e.fill(),e.begin(),e.moveTo(.7*t,.1*o),e.lineTo(.95*t,.23*o),e.lineTo(t,.4*o),e.lineTo(t,.9*o),e.lineTo(t,o),e.lineTo(.8*t,o),e.close(),e.fill(),e.setFontColor(i),e.setFontSize(a),e.text(.5*t,.5*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.rect(0,0,t,o),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupCaptcha.prototype.cst.SHAPE_CAPTCHA,mxShapeMockupCaptcha),mxUtils.extend(mxShapeMockupAlphanumeric,mxShape),mxShapeMockupAlphanumeric.prototype.cst={MAIN_TEXT:"linkText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SHAPE_ALPHANUMERIC:"mxgraph.mockup.text.alphanumeric"},mxShapeMockupAlphanumeric.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeMockupAlphanumeric.prototype.cst.MAIN_TEXT,"0-9 A B C D E F G H I J K L M N O P Q R S T U V X Y Z"),s=mxUtils.getValue(this.style,mxShapeMockupAlphanumeric.prototype.cst.TEXT_SIZE,"17"),l=mxUtils.getValue(this.style,mxShapeMockupAlphanumeric.prototype.cst.TEXT_COLOR,"#0000ff");e.translate(t,o),t=mxUtils.getSizeForString(a,s,mxConstants.DEFAULT_FONTFAMILY).width,e.setStrokeColor(l),e.setFontSize(s),e.setFontColor(l),e.text(.5*n,.5*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.begin(),e.moveTo(.5*n-.5*t,.5*(i+parseInt(s,10))),e.lineTo(.5*n+.5*t,.5*(i+parseInt(s,10))),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupAlphanumeric.prototype.cst.SHAPE_ALPHANUMERIC,mxShapeMockupAlphanumeric),mxUtils.extend(mxShapeMockupTextRRect,mxShape),mxShapeMockupTextRRect.prototype.cst={RRECT:"mxgraph.mockup.text.rrect",R_SIZE:"rSize"},mxShapeMockupTextRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupTextRRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupTextRRect.prototype.cst.RRECT,mxShapeMockupTextRRect);var mxMockupC={BAR_HEIGHT:"barHeight",BAR_POS:"barPos",BG_STYLE:"bgStyle",BG_FLAT_GREEN:"bgGreen",BG_FLAT_WHITE:"bgWhite",BG_FLAT_GRAY:"bgGray",BG_FLAT_CUSTOM:"bgFlat",BG_MAP:"bgMap",BG_STRIPED:"bgStriped",BUTTON_STYLE:"buttonStyle",BUTTON_TEXT:"buttonText",BUTTON_STATE:"buttonState",CHEVRON:"chevron",GRID_SIZE:"gridSize",POINTER_BOTTOM:"bottom",POINTER_POS:"pointerPos",POINTER_TOP:"top",ROUND:"round",SELECTED:"+",STATE_ON:"on",STATE_OFF:"off",SUB_TEXT:"subText",SHAPE_IADD_ICON:"mxgraph.ios.iAddIcon",SHAPE_IALERT_BOX:"mxgraph.ios.iAlertBox",SHAPE_IALPHA_LIST:"mxgraph.ios.iAlphaList",SHAPE_IAPP_BAR:"mxgraph.ios.iAppBar",SHAPE_IARROW_ICON:"mxgraph.ios.iArrowIcon",SHAPE_IBG_FLAT:"mxgraph.ios.iBgFlat",SHAPE_IBG_MAP:"mxgraph.ios.iBgMap",SHAPE_IBG_STRIPED:"mxgraph.ios.iBgStriped",SHAPE_IBUTTON:"mxgraph.ios.iButton",SHAPE_IBUTTON_BACK:"mxgraph.ios.iButtonBack",SHAPE_IBUTTON_FORWARD:"mxgraph.ios.iButtonFw",SHAPE_IBUTTON_BAR:"mxgraph.ios.iButtonBar",SHAPE_ICALL_BUTTONS:"mxgraph.ios.iCallButtons",SHAPE_ICALL_DIALOG:"mxgraph.ios.iCallDialog",SHAPE_ICHECKBOX_GROUP:"mxgraph.ios.iCheckboxGroup",SHAPE_ICHECK_ICON:"mxgraph.ios.iCheckIcon",SHAPE_ICLOUD_PROGRESS_BAR:"mxgraph.ios.iCloudProgressBar",SHAPE_ICOMBO_BOX:"mxgraph.ios.iComboBox",SHAPE_ICOPY:"mxgraph.ios.iCopy",SHAPE_ICOPY_AREA:"mxgraph.ios.iCopyArea",SHAPE_IICON_GRID:"mxgraph.ios.iIconGrid",SHAPE_IDELETE_APP:"mxgraph.ios.iDeleteApp",SHAPE_IDELETE_ICON:"mxgraph.ios.iDeleteIcon",SHAPE_IDOWNLOAD_BAR:"mxgraph.ios.iDownloadBar",SHAPE_IDIALOG_BOX:"mxgraph.ios.iDialogBox",SHAPE_IDIRECTION:"mxgraph.ios.iDir",SHAPE_IHOME_PAGE_CONTROL:"mxgraph.ios.iHomePageControl",SHAPE_IKEYB_LETTERS:"mxgraph.ios.iKeybLett",SHAPE_IKEYB_NUMBERS:"mxgraph.ios.iKeybNumb",SHAPE_IKEYB_SYMBOLS:"mxgraph.ios.iKeybSymb",SHAPE_ILOCATION_BAR:"mxgraph.ios.iLocBar",SHAPE_ILOCK_BUTTON:"mxgraph.ios.iLockButton",SHAPE_IHOR_BUTTON_BAR:"mxgraph.ios.iHorButtonBar",SHAPE_IINFO_ICON:"mxgraph.ios.iInfoIcon",SHAPE_ION_OFF_BUTTON:"mxgraph.ios.iOnOffButton",SHAPE_IOPTION:"mxgraph.ios.iOption",SHAPE_IPAGE_CONTROL:"mxgraph.ios.iPageControl",SHAPE_IPAD:"mxgraph.ios.iPad",SHAPE_IPHONE:"mxgraph.ios.iPhone",SHAPE_IPIN:"mxgraph.ios.iPin",SHAPE_IPREV_NEXT:"mxgraph.ios.iPrevNext",SHAPE_IPROGRESS_BAR:"mxgraph.ios.iProgressBar",SHAPE_IRADIO_GROUP:"mxgraph.ios.iRadioGroup",SHAPE_ISLIDER:"mxgraph.ios.iSlider",SHAPE_ISORT_FIND_ICON:"mxgraph.ios.iSortFindIcon",SHAPE_ITEXT_INPUT:"mxgraph.ios.iTextInput",SHAPE_ITOP_BAR:"mxgraph.ios.iTopBar",SHAPE_ITOP_BAR_LOCKED:"mxgraph.ios.iTopBarLocked",SHAPE_IURL_BAR:"mxgraph.ios.iURLBar",SHAPE_IVIDEO_CONTROLS:"mxgraph.ios.iVideoControls",SHAPE_ISCREEN_NAME_BAR:"mxgraph.ios.iScreenNameBar",STYLE_FILLCOLOR2:"fillColor2",STYLE_FILLCOLOR3:"fillColor3",STYLE_TEXTCOLOR:"textColor",STYLE_TEXTCOLOR2:"textColor2",STYLE_STROKECOLOR2:"strokeColor2",STYLE_STROKECOLOR3:"strokeColor3"};function mxShapeMockupiPhone(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiBgFlat(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiBgStriped(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiBgMap(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiButtonBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiAppBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiTopBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiTopBar2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiTopBarLocked(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiButtonBack(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiButtonForward(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiPrevNextButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiTextInput(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiRadioGroup(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiCheckboxGroup(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiComboBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiOnOffButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiAlertBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiDialogBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiLockButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiArrowIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiDeleteIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiAddIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiInfoIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiSortFindIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiCheckIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiKeybLetters(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiKeybNumbers(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiKeybSymbols(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiDeleteApp(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiDirection(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiLocationBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiCallDialog(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiCallButtons(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiOption(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiAlphaList(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiHorButtonBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiPin(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiVideoControls(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiURLBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiSlider(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiProgressBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiCloudProgressBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiDownloadBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiScreenNameBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiIconGrid(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiCopy(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiCopyArea(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiHomePageControl(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiPageControl(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupiPad(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIosTopButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIosBottomButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeIosAnchor(e,t,o,n){mxShape.call(this),this.bounds=e}function mxShapeIosCheckbox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeMockupFancyRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dArrowNE(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dArrowSE(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dArrowSW(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dArrowNW(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dArrowlessNE(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dDashedEdgeDouble(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dDashedArrowlessEdge(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dDashedEdge(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dFlatEdge(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dFlatDoubleEdge(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dAMI(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dSnapshot(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dApplication(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dApplicationServer(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dCloudFront(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dDataCenter(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dDataServer(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dElasticLoadBalancing(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dInstance(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dInternetGateway(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dOracleDataCenter(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dOracleDatabaseServer(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dRdsMaster(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dRds(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dRoute53(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dS3Bucket(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dS3(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dSimpleDB(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dSqs(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dVpcGateway(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dWebServer(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dDynamoDB(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dElasticMapReduce(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dRdsSlave(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dAMI2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dEbs(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dOracleServer(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dSecureConnection(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dEmailService(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dWorker(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dApplication2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dElasticBeanstalk(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dSimpleDB2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dWorkflowService(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dDecider(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dSearchEngine(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dSecurityTokenService(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dGlacier(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dCustomerGateway(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dRedshift(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dLambda(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws3dEbs2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws4ProductIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws4ResourceIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws4Group(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws4GroupCenter(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAws4Group2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidTabBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidPhone(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidStatusBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidCheckboxGroup(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidRadioGroup(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidMenuBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidTextSelHandles(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidIndeterminateSpinner(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidAnchor(e,t,o,n){mxShape.call(this),this.bounds=e}function mxShapeAndroidRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidCheckbox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidProgressBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx1=.8,this.dx2=.6}function mxShapeAndroidProgressScrubberDisabled(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.3}function mxShapeAndroidProgressScrubberFocused(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.3}function mxShapeAndroidProgressScrubberPressed(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.3}function mxShapeAndroidQuickscroll2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=.5}function mxShapeAndroidQuickscroll3(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=.5}function mxShapeAndroidScrollbars2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeAndroidSpinner2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMateLocation(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMateBusiness(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMateBusinessObject(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMateRepresentation(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMateProduct(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMateApplication(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMateTech(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMateMotivational(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMateGap(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Application(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Component(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Collaboration(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Interface(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Process(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Function(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Interaction(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Service(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Requirement(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Constraint(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Event(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Event2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Actor(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Role(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3BusinessObject(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Contract(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Product(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Representation(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Deliverable(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Location(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Gap(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Tech(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Distribution(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Resource(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Capability(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Course(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Node(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Device(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3SysSw(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Artifact(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3CommNetw(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxArchiMate3Path(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeArrows2Arrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.notch=0}function mxShapeArrows2TwoWayArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5}function mxShapeArrows2StylisedArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.notch=0,this.feather=.5}function mxShapeArrows2SharpArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx2=this.dx1=this.dy1=.5,this.notch=0}function mxShapeArrows2SharpArrow2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx3=this.dy3=this.dx2=this.dx1=this.dy1=.5,this.notch=0}function mxShapeArrows2CalloutArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.arrowHead=this.notch=0}function mxShapeArrows2BendArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.notch=0,this.arrowHead=40}function mxShapeArrows2BendDoubleArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.notch=0,this.arrowHead=40}function mxShapeArrows2CalloutDoubleArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.arrowHead=this.notch=0}function mxShapeArrows2CalloutQuadArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.arrowHead=this.notch=0}function mxShapeArrows2CalloutDouble90Arrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx1=this.dy1=.5,this.arrowHead=this.dy2=this.dx2=0}function mxShapeArrows2QuadArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.arrowHead=this.notch=0}function mxShapeArrows2TriadArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.arrowHead=0}function mxShapeArrows2TailedArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.arrowHead=this.notch=0}function mxShapeArrows2TailedNotchedArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.arrowHead=this.notch=0}function mxShapeArrows2StripedArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.notch=0}function mxShapeArrows2JumpInArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.arrowHead=40}function mxShapeArrows2UTurnArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.arrowHead=40}function mxAtlassianJiraIssue(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicCross(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicRectCallout(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5}function mxShapeBasicRoundRectCallout(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=this.dy=.5,this.size=10}function mxShapeBasicWave(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=.5}function mxShapeBasicOctagon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicIsoCube(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.isoAngle=15}function mxShapeBasicTriangleAcute(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicTriangleObtuse(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicDrop(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBasicCone2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5,this.dy=.9}function mxShapeBasicPyramid(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx1=.5,this.dx2=.6,this.dy1=.9,this.dy2=.8}function mxShapeBasic4PointStar2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.8}function mxShapeBasicDiagSnipRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicDiagRoundRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicCornerRoundRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicPlaque(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicFrame(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicPlaqueFrame(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicRoundedFrame(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicFrameCorner(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicDiagStripe(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicDonut(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicLayeredRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicShadedButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicPie(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.startAngle=.25,this.endAngle=.75}function mxShapeBasicArc(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.startAngle=.25,this.endAngle=.75}function mxShapeBasicPartConcEllipse(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.startAngle=.25,this.endAngle=.75,this.arcWidth=.5}function mxShapeBasicNumEntryVert(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=.5}function mxShapeBasicBendingArch(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.startAngle=.25,this.endAngle=.75,this.arcWidth=.5}function mxShapeBasicThreeCornerRoundRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBasicRect2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.rectStyle="square",this.size=10,this.absoluteCornerSize=!0,this.indent=2,this.rectOutline="single"}function mxShapeBasicPolygon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=this.dx=.5}function mxShapeBasicPatternFillRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeBootstrapRRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapTopButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapBottomButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapRightButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapLeftButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapLeftButtonStriped(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapRoundedButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapTabTop(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapImage(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapCheckbox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapCheckbox2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapRadioButton(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapRadioButton2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapHorLines(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapUserTwo(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapRating(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBoostrapAnchor(e,t,o,n){mxShape.call(this),this.bounds=e}function mxShapeBootstrapRangeInput(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.3}function mxShapeBootstrapSwitch(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeBootstrapX(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeInfographicPopover(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=this.dx=.5}function mxShapeC4Person(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxCabinetsCabinet(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxCabinetsCoverPlate(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxCabinetsDimension(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxCabinetsDimensionBottom(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeCisco19Rect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeCiscoSafeCompositeIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeDFDStart(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeDFDArchive(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeDFDCheck2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeDFDDataStoreID(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeDFDExternalEntity(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeDFDLoop(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeEipMessageExpiration(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeEipReturnAddress(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeEipAnchor(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeEipMessageChannel(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeEipDatatypeChannel(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeEipDeadLetterChannel(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeEipInvalidMessageChannel(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeElectricalTestPoint(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeElectricalStraightBus(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeElectricalTwoLineBusElbow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.notch=0}function mxShapeElectricalThreeLineBusElbow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.notch=0}function mxShapeElectricalFourLineBusElbow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.notch=0}function mxShapeElectricalEightLineBusElbow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.notch=0}function mxShapeElectricalLogicGate(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeElectricalBuffer(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeElectricalDualInLineIC(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeElectricalQFPIC(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeElectricalMux(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeElectricalBatteryStack(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeElectricalDCSource3_v2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeElectricalSource(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanWall(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanWallCorner(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanWallU(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanRoom(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanWindow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanDimension(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanDimensionBottom(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanStairs(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanStairsRest(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanDoorLeft(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanDoorRight(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanDoorDouble(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanDoorUneven(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.3}function mxFloorplanDoorOpposing(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.3}function mxFloorplanDoorRevolving(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxFloorplanDoorPocket(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxFloorplanDoorDoublePocket(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxFloorplanDoorBypass(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxFloorplanDoorBifold(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxFloorplanDoorSlidingGlass(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxFloorplanOverhead(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxFloorplanOpening(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxFloorplanWindowGlider(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxFloorplanWindowGarden(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.windowPanes=3}function mxFloorplanWindowBow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.windowPanes=3}function mxFloorplanWindowBay(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.windowPanes=3}function mxFloorplanDoorAccordion(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxFloorplanDoorDoubleAction(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeFlowchartDocument2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.size=.5}function mxShapeGCP2DoubleRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGCP2HexIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlPlayer(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlSwitch(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlMarginRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlSliderNormal(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlSlider2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlSliderFocused(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlSliderDisabled(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlSliderDisabled2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlSliderDiscrete(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlSliderDiscreteDots(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeGmdlProgressBar(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx1=.8}function mxShapeIBMBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeInfographicNumEntryVert(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=.5}function mxShapeInfographicBendingArch(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.startAngle=.25,this.endAngle=.75,this.arcWidth=.5}function mxShapeInfographicParallelogram(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=10}function mxShapeInfographicRibbonRolled(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=185,this.dy=15}function mxShapeInfographicRibbonDoubleFolded(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=25,this.dy=15}function mxShapeInfographicRibbonFrontFolded(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.notch=this.dy=this.dx=.5}function mxShapeInfographicRibbonBackFolded(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.notch=this.dy=this.dx=.5}function mxShapeInfographicBanner(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.notch=this.dy=this.dx=.5}function mxShapeInfographicCircularCallout(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=.5}function mxShapeInfographicShadedTriangle(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeInfographicShadedPyramid(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeInfographicPyramidStep(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeInfographicCylinder(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeInfographicCircularCallout2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=.5}function mxShapeInfographicBannerSingleFold(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.notch=this.dx2=this.dy=this.dx=.5}function mxShapeInfographicShadedCube(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.isoAngle=15}function mxShapeInfographicPartConcEllipse(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.startAngle=.25,this.endAngle=.75,this.arcWidth=.5}function mxShapeInfographicBannerHalfFold(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.notch=this.dx2=this.dx=.5}function mxShapeInfographicCircularDial(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=.5}function mxShapeInfographicRibbonSimple(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.notch2=this.notch1=.5}function mxShapeInfographicBarCallout(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=this.dx=.5}function mxShapeInfographicFlag(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dy=this.dx=.5}function mxShapeKubernetesIcon(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanBoatShipment(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanSafetyStock(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanDataBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanCustomerSupplier(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanDedicatedProcess(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanSharedProcess(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanWorkcell(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanInventoryBox(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanPushArrow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanSupermarket(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanMaterialPull(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanFifoLane(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanTruckShipment(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanProductionControl(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanFifoSequence(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanProductionKanban(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanWithdrawalKanban(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanSignalKanban(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanSequencedPullBall(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanRailShipment(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanWarehouse(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanTimeline(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanCrossDock(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanOrders(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanBatchedKanban(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanControlCenter(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxLeanElectronicInfoShape(){mxArrow.call(this)}function mxLeanManualInfoShape(){mxArrow.call(this)}function mxShapeLeanTimeline(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeNetworksBus(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeNetworksCommLinkEdge(){mxArrow.call(this)}function mxShapeSysMLComposite(){mxCylinder.call(this)}function mxShapeSysMLPackage(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLPackage2(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLNone(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLRect(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLPortOne(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLPortTwo(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLPortThree(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLPortFour(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLItemFlow(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLItemFlowLeft(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLItemFlowRight(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLNestedPort(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLParametricDiagram(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLConstraintProperty(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLCallBehaviorAction(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLAcceptEventAction(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLTimeEvent(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLSendSignalAction(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLActivityFinal(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLActivityParameterNode(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLControlOperator(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLFlowFinal(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLIsControl(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLIsStream(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLIsActStream(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLParameterSet(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLParameterActivitySet(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLProbability(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLActivityProbability(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLObjectFlowRight(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLObjectFlowLeft(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLActivityPartition(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLContinuation(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLCoregion(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLDimension(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLCompositeState(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}mxUtils.extend(mxShapeMockupiPhone,mxShape),mxShapeMockupiPhone.prototype.customProperties=[{name:"bgStyle",dispName:"Background",type:"enum",enumList:[{val:"bgGreen",dispName:"Green"},{val:"bgWhite",dispName:"White"},{val:"bgGray",dispName:"Gray"},{val:"bgFlat",dispName:"Flat"},{val:"bgMap",dispName:"Map"},{val:"bgStriped",dispName:"Striped"}]}],mxShapeMockupiPhone.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i,25),e.setShadow(!1),this.foreground(e,t,o,n,i,25)},mxShapeMockupiPhone.prototype.background=function(e,t,o,n,i,a){e.setFillColor("#000000"),e.setStrokeColor("#000000"),e.roundrect(0,0,n,i,a,a),e.fillAndStroke()},mxShapeMockupiPhone.prototype.foreground=function(e,t,o,n,i,a){if(e.setStrokeWidth(1.5),e.begin(),e.setGradient("#808080","#000000",.325*n,0,.675*n,.5*i,mxConstants.DIRECTION_SOUTH,1,1),e.moveTo(.325*n,0),e.lineTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,.5*i),e.lineTo(.7*n,.5*i),e.close(),e.fill(),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,""),o=mxUtils.getValue(this.style,mxMockupC.BG_STYLE,mxMockupC.BG_FLAT_GREEN),e.setStrokeWidth(1),o===mxMockupC.BG_FLAT_WHITE)e.setFillColor("#ffffff"),e.rect(.0625*n,.15*i,.875*n,.7*i),e.fill();else if(o===mxMockupC.BG_FLAT_GREEN)e.setFillColor("#1f2923"),e.rect(.0625*n,.15*i,.875*n,.7*i),e.fill();else if(o===mxMockupC.BG_FLAT_GRAY)e.setFillColor("#dddddd"),e.rect(.0625*n,.15*i,.875*n,.7*i),e.fill();else if(o===mxMockupC.BG_FLAT_CUSTOM)e.setFillColor(t),e.rect(.0625*n,.15*i,.875*n,.7*i),e.fill();else if(o===mxMockupC.BG_STRIPED){t=n,o=i,e.translate(.0625*n,.15*i),n*=.875,i*=.7,e.setFillColor("#5D7585"),e.rect(0,0,n,i),e.fillAndStroke(),e.setStrokeColor("#657E8F");var s=5;for(e.begin();s<n;)e.moveTo(s,0),e.lineTo(s,i),s+=5;e.stroke(),e.setStrokeColor("#18211b"),e.begin(),e.rect(0,0,n,i),e.stroke(),n=t,i=o,e.translate(.0625*-n,.15*-i)}else o===mxMockupC.BG_MAP&&(t=n,o=i,e.translate(.0625*n,.15*i),n*=.875,i*=.7,e.setFillColor("#ffffff"),e.rect(0,0,n,i),e.fillAndStroke(),e.setFillColor("#96D1FF"),e.setStrokeColor("#008cff"),e.setStrokeWidth(1),e.begin(),e.moveTo(0,0),e.lineTo(.1171*n,0),e.lineTo(.1136*n,.0438*i),e.lineTo(.0993*n,.054*i),e.lineTo(0,.0446*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.1993*n,0),e.lineTo(.1914*n,.03884*i),e.lineTo(.1536*n,.0362*i),e.lineTo(.1586*n,0),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.24*n,0),e.lineTo(.2257*n,.054*i),e.lineTo(.2414*n,.0674*i),e.lineTo(.4707*n,.0835*i),e.lineTo(.5264*n,.0906*i),e.lineTo(.6429*n,.0929*i),e.arcTo(.0857*n,.0536*i,0,0,0,.7193*n,.0621*i),e.arcTo(.48*n,.2143*i,0,0,0,.7286*n,0),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8*n,0),e.lineTo(.7886*n,.04554*i),e.arcTo(.0857*n,.0536*i,0,0,0,.8164*n,.0875*i),e.arcTo(.1429*n,.0893*i,0,0,0,.88*n,.1036*i),e.lineTo(n,.1112*i),e.lineTo(n,0),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.0933*i),e.lineTo(.08*n,.1036*i),e.lineTo(.1021*n,.1246*i),e.lineTo(.1007*n,.1768*i),e.lineTo(.0471*n,.2241*i),e.lineTo(0,.2527*i),e.close(),e.fillAndStroke(),e.ellipse(.1214*n,.0603*i,.0843*n,.0576*i),e.fillAndStroke(),e.begin(),e.moveTo(.1293*n,.1924*i),e.lineTo(.1729*n,.142*i),e.lineTo(.1407*n,.1411*i),e.lineTo(.14*n,.1777*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4586*n,.1241*i),e.lineTo(.455*n,.1835*i),e.lineTo(.3893*n,.2246*i),e.lineTo(.2171*n,.1362*i),e.lineTo(.2171*n,.1308*i),e.lineTo(.2293*n,.1214*i),e.lineTo(.2857*n,.1174*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5079*n,.1134*i),e.lineTo(.7307*n,.1223*i),e.lineTo(.7279*n,.1625*i),e.lineTo(.715*n,.1772*i),e.lineTo(.6929*n,.1688*i),e.lineTo(.625*n,.1795*i),e.lineTo(.4779*n,.2835*i),e.lineTo(.395*n,.2299*i),e.lineTo(.4657*n,.1826*i),e.lineTo(.4707*n,.1223*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.1362*i),e.lineTo(.7643*n,.1237*i),e.lineTo(.7543*n,.1562*i),e.lineTo(.7643*n,.1585*i),e.lineTo(.9186*n,.2366*i),e.lineTo(n,.1732*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2079*n,.1545*i),e.lineTo(.3886*n,.2536*i),e.lineTo(.3414*n,.2933*i),e.lineTo(.1743*n,.1969*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.1579*n,.2134*i),e.lineTo(.3221*n,.3067*i),e.lineTo(.2957*n,.3237*i),e.lineTo(.1157*n,.2424*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.405*n,.2656*i),e.lineTo(.31*n,.3353*i),e.lineTo(.3693*n,.3661*i),e.lineTo(.4571*n,.2982*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.7121*n,.1848*i),e.lineTo(.6879*n,.1754*i),e.lineTo(.6329*n,.1844*i),e.lineTo(.61*n,.2018*i),e.lineTo(.6207*n,.2085*i),e.lineTo(.4986*n,.2982*i),e.lineTo(.535*n,.3237*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5557*n,.3379*i),e.lineTo(.7464*n,.1826*i),e.lineTo(.8036*n,.2076*i),e.lineTo(.595*n,.3616*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8293*n,.2188*i),e.lineTo(.8979*n,.2509*i),e.lineTo(.6936*n,.4125*i),e.lineTo(.6171*n,.3737*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.2138*i),e.lineTo(.6821*n,.4603*i),e.lineTo(.815*n,.5277*i),e.lineTo(n,.4*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.317*i),e.lineTo(.0971*n,.2554*i),e.lineTo(.4121*n,.4143*i),e.lineTo(.3736*n,.4415*i),e.lineTo(.315*n,.4076*i),e.lineTo(.3093*n,.4116*i),e.lineTo(.3686*n,.4455*i),e.lineTo(.285*n,.5045*i),e.lineTo(.1114*n,.4134*i),e.lineTo(.025*n,.4603*i),e.lineTo(.0371*n,.4723*i),e.lineTo(.1114*n,.4371*i),e.lineTo(.2871*n,.5312*i),e.lineTo(.1929*n,.6058*i),e.lineTo(.2271*n,.6705*i),e.lineTo(.17*n,.7147*i),e.lineTo(.0314*n,.6321*i),e.lineTo(0,.6246*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.48*n,.3121*i),e.lineTo(.5157*n,.3375*i),e.lineTo(.4314*n,.3982*i),e.lineTo(.3929*n,.3786*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3086*n,.5179*i),e.lineTo(.53*n,.3518*i),e.lineTo(.5757*n,.3745*i),e.lineTo(.3479*n,.5411*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5964*n,.3884*i),e.lineTo(.6736*n,.4277*i),e.lineTo(.445*n,.5991*i),e.lineTo(.3664*n,.5531*i),e.lineTo(.5057*n,.4545*i),e.lineTo(.5507*n,.4754*i),e.lineTo(.5571*n,.4723*i),e.lineTo(.5114*n,.4504*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4793*n,.6161*i),e.lineTo(.6771*n,.4643*i),e.lineTo(.8086*n,.5326*i),e.lineTo(.7471*n,.5817*i),e.lineTo(.7214*n,.567*i),e.lineTo(.715*n,.571*i),e.lineTo(.7421*n,.5871*i),e.lineTo(.6014*n,.6933*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.4371*i),e.lineTo(.8443*n,.546*i),e.lineTo(.9071*n,.5701*i),e.lineTo(n,.5022*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8407*n,.5504*i),e.lineTo(.8993*n,.5759*i),e.lineTo(.6757*n,.7416*i),e.lineTo(.6286*n,.7139*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.5321*i),e.lineTo(.6979*n,.7549*i),e.lineTo(.7457*n,.7781*i),e.lineTo(.9814*n,.6094*i),e.lineTo(n,.6067*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.6254*i),e.lineTo(.7664*n,.792*i),e.lineTo(.9586*n,.9062*i),e.lineTo(n,.8786*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3093*n,.5464*i),e.lineTo(.4271*n,.6152*i),e.lineTo(.245*n,.7643*i),e.lineTo(.185*n,.7228*i),e.lineTo(.2493*n,.6728*i),e.lineTo(.2214*n,.6143*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.65*i),e.lineTo(.2179*n,.7826*i),e.lineTo(.1136*n,.8424*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.7272*i),e.lineTo(.0821*n,.859*i),e.lineTo(0,.9085*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4529*n,.6366*i),e.lineTo(.575*n,.7143*i),e.lineTo(.39*n,.8621*i),e.lineTo(.2657*n,.7902*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.9415*i),e.lineTo(.1036*n,.8821*i),e.lineTo(.2343*n,.959*i),e.lineTo(.1721*n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2586*n,.7951*i),e.lineTo(.3829*n,.8674*i),e.lineTo(.2543*n,.9451*i),e.lineTo(.1279*n,.8692*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2836*n,.9639*i),e.lineTo(.4207*n,.8772*i),e.lineTo(.605*n,.7321*i),e.lineTo(.6521*n,.7634*i),e.lineTo(.3486*n,i),e.lineTo(.3393*n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3879*n,i),e.lineTo(.6721*n,.7759*i),e.lineTo(.7171*n,.7982*i),e.lineTo(.4564*n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4986*n,i),e.lineTo(.7386*n,.8125*i),e.lineTo(.9307*n,.925*i),e.lineTo(.8264*n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8671*n,i),e.lineTo(.9464*n,.9491*i),e.lineTo(n,.975*i),e.lineTo(n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2295*n,i),e.lineTo(.2648*n,.9792*i),e.lineTo(.2981*n,i),e.close(),e.fillAndStroke(),n=t,i=o,e.translate(.0625*-n,.15*-i));e.setStrokeWidth(1),e.setStrokeColor("#18211b"),e.rect(.0625*n,.15*i,.875*n,.7*i),e.stroke(),e.setStrokeWidth(1.5),e.setAlpha(.8),e.setStrokeColor("#dddddd"),e.roundrect(0,0,n,i,a,a),e.stroke(),a=22.5,e.begin(),e.setStrokeColor("#666666"),e.roundrect(5,5,n-10,i-10,a,a),e.stroke(),e.setAlpha(1),e.ellipse(.4875*n,.04125*i,.025*n,.0125*i),e.setStrokeWidth(2.5),e.setStrokeColor("#000000"),e.setFillColor("#000099"),e.fillAndStroke(),e.begin(),e.setStrokeWidth(1.5),e.setFillColor("#444444"),e.setStrokeColor("#333333"),e.roundrect(.375*n,.075*i,.25*n,.01875*i,.02*n,.01*i),e.fillAndStroke(),e.setGradient("#bbbbbb","#000000",.4*n,.875*i,.2*n,.1*i,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(.4*n,.875*i,.2*n,.1*i),e.fill(),e.setAlpha(.5),e.ellipse(.404*n,.876*i,.19*n,.095*i),e.stroke(),e.begin(),e.setAlpha(.85),e.setFillColor("#000000"),e.moveTo(.4025*n,.925*i),e.arcTo(.0975*n,.04625*i,0,0,1,.5975*n,.925*i),e.arcTo(.2*n,.1*i,0,0,1,.4025*n,.925*i),e.close(),e.fillAndStroke(),e.begin(),e.setAlpha(.7),e.setStrokeWidth(1.5),e.setStrokeColor("#dddddd"),e.roundrect(.4575*n,.905*i,.0875*n,.04375*i,.00625*i,.00625*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IPHONE,mxShapeMockupiPhone),mxUtils.extend(mxShapeMockupiBgFlat,mxShape),mxShapeMockupiBgFlat.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeMockupiBgFlat.prototype.background=function(e,t,o,n,i){e.begin(),e.rect(0,0,n,i),e.fillAndStroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IBG_FLAT,mxShapeMockupiBgFlat),mxUtils.extend(mxShapeMockupiBgStriped,mxShape),mxShapeMockupiBgStriped.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiBgStriped.prototype.background=function(e,t,o,n,i){e.setStrokeWidth(1),e.begin(),e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupiBgStriped.prototype.foreground=function(e,t,o,n,i){for(t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,""),o=mxUtils.getValue(this.style,mxMockupC.STYLE_STROKECOLOR2,""),e.setStrokeColor(o),o=5,e.begin();o<n;)e.moveTo(o,0),e.lineTo(o,i),o+=5;e.stroke(),e.setStrokeColor(t),e.begin(),e.rect(0,0,n,i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IBG_STRIPED,mxShapeMockupiBgStriped),mxUtils.extend(mxShapeMockupiBgMap,mxShape),mxShapeMockupiBgMap.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiBgMap.prototype.background=function(e,t,o,n,i){e.begin(),e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupiBgMap.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,""),o=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"");var a=mxUtils.getValue(this.style,mxMockupC.STYLE_STROKECOLOR2,"");e.setFillColor(t),e.setStrokeColor(a),e.setStrokeWidth(.5),e.begin(),e.moveTo(0,0),e.lineTo(.1171*n,0),e.lineTo(.1136*n,.0438*i),e.lineTo(.0993*n,.054*i),e.lineTo(0,.0446*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.1993*n,0),e.lineTo(.1914*n,.03884*i),e.lineTo(.1536*n,.0362*i),e.lineTo(.1586*n,0),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.24*n,0),e.lineTo(.2257*n,.054*i),e.lineTo(.2414*n,.0674*i),e.lineTo(.4707*n,.0835*i),e.lineTo(.5264*n,.0906*i),e.lineTo(.6429*n,.0929*i),e.arcTo(.0857*n,.0536*i,0,0,0,.7193*n,.0621*i),e.arcTo(.48*n,.2143*i,0,0,0,.7286*n,0),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8*n,0),e.lineTo(.7886*n,.04554*i),e.arcTo(.0857*n,.0536*i,0,0,0,.8164*n,.0875*i),e.arcTo(.1429*n,.0893*i,0,0,0,.88*n,.1036*i),e.lineTo(n,.1112*i),e.lineTo(n,0),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.0933*i),e.lineTo(.08*n,.1036*i),e.lineTo(.1021*n,.1246*i),e.lineTo(.1007*n,.1768*i),e.lineTo(.0471*n,.2241*i),e.lineTo(0,.2527*i),e.close(),e.fillAndStroke(),e.ellipse(.1214*n,.0603*i,.0843*n,.0576*i),e.fillAndStroke(),e.begin(),e.moveTo(.1293*n,.1924*i),e.lineTo(.1729*n,.142*i),e.lineTo(.1407*n,.1411*i),e.lineTo(.14*n,.1777*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4586*n,.1241*i),e.lineTo(.455*n,.1835*i),e.lineTo(.3893*n,.2246*i),e.lineTo(.2171*n,.1362*i),e.lineTo(.2171*n,.1308*i),e.lineTo(.2293*n,.1214*i),e.lineTo(.2857*n,.1174*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5079*n,.1134*i),e.lineTo(.7307*n,.1223*i),e.lineTo(.7279*n,.1625*i),e.lineTo(.715*n,.1772*i),e.lineTo(.6929*n,.1688*i),e.lineTo(.625*n,.1795*i),e.lineTo(.4779*n,.2835*i),e.lineTo(.395*n,.2299*i),e.lineTo(.4657*n,.1826*i),e.lineTo(.4707*n,.1223*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.1362*i),e.lineTo(.7643*n,.1237*i),e.lineTo(.7543*n,.1562*i),e.lineTo(.7643*n,.1585*i),e.lineTo(.9186*n,.2366*i),e.lineTo(n,.1732*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2079*n,.1545*i),e.lineTo(.3886*n,.2536*i),e.lineTo(.3414*n,.2933*i),e.lineTo(.1743*n,.1969*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.1579*n,.2134*i),e.lineTo(.3221*n,.3067*i),e.lineTo(.2957*n,.3237*i),e.lineTo(.1157*n,.2424*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.405*n,.2656*i),e.lineTo(.31*n,.3353*i),e.lineTo(.3693*n,.3661*i),e.lineTo(.4571*n,.2982*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.7121*n,.1848*i),e.lineTo(.6879*n,.1754*i),e.lineTo(.6329*n,.1844*i),e.lineTo(.61*n,.2018*i),e.lineTo(.6207*n,.2085*i),e.lineTo(.4986*n,.2982*i),e.lineTo(.535*n,.3237*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5557*n,.3379*i),e.lineTo(.7464*n,.1826*i),e.lineTo(.8036*n,.2076*i),e.lineTo(.595*n,.3616*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8293*n,.2188*i),e.lineTo(.8979*n,.2509*i),e.lineTo(.6936*n,.4125*i),e.lineTo(.6171*n,.3737*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.2138*i),e.lineTo(.6821*n,.4603*i),e.lineTo(.815*n,.5277*i),e.lineTo(n,.4*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.317*i),e.lineTo(.0971*n,.2554*i),e.lineTo(.4121*n,.4143*i),e.lineTo(.3736*n,.4415*i),e.lineTo(.315*n,.4076*i),e.lineTo(.3093*n,.4116*i),e.lineTo(.3686*n,.4455*i),e.lineTo(.285*n,.5045*i),e.lineTo(.1114*n,.4134*i),e.lineTo(.025*n,.4603*i),e.lineTo(.0371*n,.4723*i),e.lineTo(.1114*n,.4371*i),e.lineTo(.2871*n,.5312*i),e.lineTo(.1929*n,.6058*i),e.lineTo(.2271*n,.6705*i),e.lineTo(.17*n,.7147*i),e.lineTo(.0314*n,.6321*i),e.lineTo(0,.6246*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.48*n,.3121*i),e.lineTo(.5157*n,.3375*i),e.lineTo(.4314*n,.3982*i),e.lineTo(.3929*n,.3786*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3086*n,.5179*i),e.lineTo(.53*n,.3518*i),e.lineTo(.5757*n,.3745*i),e.lineTo(.3479*n,.5411*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5964*n,.3884*i),e.lineTo(.6736*n,.4277*i),e.lineTo(.445*n,.5991*i),e.lineTo(.3664*n,.5531*i),e.lineTo(.5057*n,.4545*i),e.lineTo(.5507*n,.4754*i),e.lineTo(.5571*n,.4723*i),e.lineTo(.5114*n,.4504*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4793*n,.6161*i),e.lineTo(.6771*n,.4643*i),e.lineTo(.8086*n,.5326*i),e.lineTo(.7471*n,.5817*i),e.lineTo(.7214*n,.567*i),e.lineTo(.715*n,.571*i),e.lineTo(.7421*n,.5871*i),e.lineTo(.6014*n,.6933*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.4371*i),e.lineTo(.8443*n,.546*i),e.lineTo(.9071*n,.5701*i),e.lineTo(n,.5022*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8407*n,.5504*i),e.lineTo(.8993*n,.5759*i),e.lineTo(.6757*n,.7416*i),e.lineTo(.6286*n,.7139*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.5321*i),e.lineTo(.6979*n,.7549*i),e.lineTo(.7457*n,.7781*i),e.lineTo(.9814*n,.6094*i),e.lineTo(n,.6067*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.6254*i),e.lineTo(.7664*n,.792*i),e.lineTo(.9586*n,.9062*i),e.lineTo(n,.8786*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3093*n,.5464*i),e.lineTo(.4271*n,.6152*i),e.lineTo(.245*n,.7643*i),e.lineTo(.185*n,.7228*i),e.lineTo(.2493*n,.6728*i),e.lineTo(.2214*n,.6143*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.65*i),e.lineTo(.2179*n,.7826*i),e.lineTo(.1136*n,.8424*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.7272*i),e.lineTo(.0821*n,.859*i),e.lineTo(0,.9085*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4529*n,.6366*i),e.lineTo(.575*n,.7143*i),e.lineTo(.39*n,.8621*i),e.lineTo(.2657*n,.7902*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.9415*i),e.lineTo(.1036*n,.8821*i),e.lineTo(.2343*n,.959*i),e.lineTo(.1721*n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2586*n,.7951*i),e.lineTo(.3829*n,.8674*i),e.lineTo(.2543*n,.9451*i),e.lineTo(.1279*n,.8692*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2836*n,.9639*i),e.lineTo(.4207*n,.8772*i),e.lineTo(.605*n,.7321*i),e.lineTo(.6521*n,.7634*i),e.lineTo(.3486*n,i),e.lineTo(.3393*n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3879*n,i),e.lineTo(.6721*n,.7759*i),e.lineTo(.7171*n,.7982*i),e.lineTo(.4564*n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4986*n,i),e.lineTo(.7386*n,.8125*i),e.lineTo(.9307*n,.925*i),e.lineTo(.8264*n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8671*n,i),e.lineTo(.9464*n,.9491*i),e.lineTo(n,.975*i),e.lineTo(n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2295*n,i),e.lineTo(.2648*n,.9792*i),e.lineTo(.2981*n,i),e.close(),e.fillAndStroke(),e.setStrokeWidth(1),e.setStrokeColor(o),e.begin(),e.rect(0,0,n,i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IBG_MAP,mxShapeMockupiBgMap),mxUtils.extend(mxShapeMockupiButtonBar,mxShape),mxShapeMockupiButtonBar.prototype.customProperties=[{name:"buttonText",dispName:"Labels",type:"string"},{name:"textColor",dispName:"Text Color",type:"color"},{name:"textColor2",dispName:"Text2 Color",type:"color"},{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"}],mxShapeMockupiButtonBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),s=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR,"#666666"),l=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#ffffff"),r=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxMockupC.STYLE_STROKECOLOR2,"#c4c4c4"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),x=a.length,c=0,u=-1,S=0;S<x;S++){var T=a[S];T.charAt(0)===mxMockupC.SELECTED&&(T=a[S].substring(1),u=S),(T=mxUtils.getSizeForString(T,r,mxConstants.DEFAULT_FONTFAMILY).width)>c&&(c=T)}var d=1.5*r,C=x*d;for(i=Math.max(i,C),n=Math.max(n,5+c),e.translate(t,o),this.background(e,n,i,2.5,x,2.5,x*d,p,m,h,u,d),e.setShadow(!1),this.foreground(e,n,i,2.5,x,2.5,x*d,p,m,h,u,d),S=T=0;S<x;S++)S===u?e.setFontColor(l):e.setFontColor(s),T+=2.5,this.buttonText(e,n,(S*d+.5*d)*i/C,a[S],r,m)},mxShapeMockupiButtonBar.prototype.background=function(e,t,o,n,i,a,s,l,r,p,m,h){e.begin(),e.setStrokeWidth(1),e.setStrokeColor(l),e.setFillColor(p),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.fillAndStroke()},mxShapeMockupiButtonBar.prototype.foreground=function(e,t,o,n,i,a,s,l,r,p,m,h){for(a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1"),e.setStrokeWidth(a),e.setStrokeColor(r),e.begin(),r=1;r<i;r++)r!==m&&r!==m+1&&(a=r*h*o/s,e.moveTo(0,a),e.lineTo(t,a));e.stroke(),e.setStrokeColor(mxConstants.NONE),0===m?(e.begin(),s=h*o/s,e.setGradient("#5D7585","#008cff",0,0,t,s,mxConstants.DIRECTION_SOUTH,1,1),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,s),e.lineTo(0,s),e.close(),e.fill()):m===i-1?(e.begin(),i=o-h*o/s,e.setGradient("#5D7585","#008cff",0,i,t,o-i,mxConstants.DIRECTION_SOUTH,1,1),e.moveTo(0,i),e.lineTo(t,i),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.fill()):-1!==m&&(e.begin(),i=h*m*o/s,s=h*(m+1)*o/s,e.setGradient("#5D7585","#008cff",0,i,t,s-i,mxConstants.DIRECTION_SOUTH,1,1),e.moveTo(0,i),e.lineTo(t,i),e.lineTo(t,s),e.lineTo(0,s),e.close(),e.fill()),e.begin(),e.setStrokeColor(l),e.setFillColor(p),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.stroke()},mxShapeMockupiButtonBar.prototype.buttonText=function(e,t,o,n,i,a){n.charAt(0)===mxMockupC.SELECTED&&(n=n.substring(1)),e.setFontSize(i),e.text(10,o,0,0,n,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),n=.5*i,e.setStrokeWidth(.3*i),e.setStrokeColor(a),e.begin(),e.moveTo(t-20-n,o-n),e.lineTo(t-20,o),e.lineTo(t-20-n,o+n),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IBUTTON_BAR,mxShapeMockupiButtonBar),mxUtils.extend(mxShapeMockupiAppBar,mxShape),mxShapeMockupiAppBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiAppBar.prototype.background=function(e,t,o,n,i){e.setGradient("#eeeeee","#999999",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.rect(0,0,n,i),e.fill()},mxShapeMockupiAppBar.prototype.foreground=function(e,t,o,n,i){e.setFillColor("#0099ff"),e.rect(5,.5*i+1.75,1.5,2.5),e.fill(),e.rect(7,.5*i+.75,1.5,3.5),e.fill(),e.rect(9,.5*i-.25,1.5,4.5),e.fill(),e.rect(11,.5*i-1.25,1.5,5.5),e.fill(),e.rect(13,.5*i-2.25,1.5,6.5),e.fill(),e.rect(15,.5*i-3.25,1.5,7.5),e.fill(),e.setFillColor("#999999"),e.ellipse(n-56.5,.5*i-4,8,8),e.fill(),e.setStrokeColor("#cccccc"),e.begin(),e.moveTo(n-52.5,.5*i-3),e.lineTo(n-52.5,.5*i),e.lineTo(n-54.5,.5*i),e.stroke(),e.setStrokeWidth(.5),e.setStrokeColor("#333333"),e.setFillColor("#990000"),e.begin(),e.moveTo(n-45.5,.5*i),e.lineTo(n-37.5,.5*i-5),e.lineTo(n-41.5,.5*i+4),e.lineTo(n-42,.5*i+.5),e.close(),e.fillAndStroke(),e.setFillColor("#999999"),e.setStrokeColor("#999999"),e.begin(),e.moveTo(n-28.5,.5*i+3.5),e.arcTo(3.5,3.5,0,1,1,n-26.5,.5*i+1),e.stroke(),e.begin(),e.moveTo(n-27.25,.5*i+.25),e.lineTo(n-25.75,.5*i+.25),e.lineTo(n-26.5,.5*i+1.5),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n-31,.5*i-.5),e.arcTo(1,1.5,0,0,1,n-29,.5*i-.5),e.stroke(),e.rect(n-31.5,.5*i-.5,3,2),e.fillAndStroke(),e.setGradient("#eeeeee","#444444",n-20,.5*i-3,16.5,6,mxConstants.DIRECTION_NORTH,1,1),e.begin(),e.moveTo(n-20,.5*i-3),e.lineTo(n-5,.5*i-3),e.lineTo(n-5,.5*i-1),e.lineTo(n-3.5,.5*i-1),e.lineTo(n-3.5,.5*i+1),e.lineTo(n-5,.5*i+1),e.lineTo(n-5,.5*i+3),e.lineTo(n-20,.5*i+3),e.close(),e.fill(),e.setGradient("#E2FFEB","#008215",n-20,.5*i-3,10,6,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(n-20,.5*i-3),e.lineTo(n-10,.5*i-3),e.lineTo(n-10,.5*i+3),e.lineTo(n-20,.5*i+3),e.close(),e.fill(),e.setStrokeColor("#666666"),e.begin(),e.moveTo(n-20,.5*i-3),e.lineTo(n-5,.5*i-3),e.lineTo(n-5,.5*i-1),e.lineTo(n-3.5,.5*i-1),e.lineTo(n-3.5,.5*i+1),e.lineTo(n-5,.5*i+1),e.lineTo(n-5,.5*i+3),e.lineTo(n-20,.5*i+3),e.close(),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IAPP_BAR,mxShapeMockupiAppBar),mxUtils.extend(mxShapeMockupiTopBar,mxShape),mxShapeMockupiTopBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiTopBar.prototype.background=function(e,t,o,n,i){e.setAlpha(.5),e.setFillColor("#999999"),e.rect(0,0,n,i),e.fill()},mxShapeMockupiTopBar.prototype.foreground=function(e,t,o,n,i){e.setFillColor("#cccccc"),e.setStrokeColor("#cccccc"),e.setFontColor("#cccccc"),e.setFontSize(7.5),e.rect(5,.5*i+1.75,1.5,2.5),e.fill(),e.rect(7,.5*i+.75,1.5,3.5),e.fill(),e.rect(9,.5*i-.25,1.5,4.5),e.fill(),e.rect(11,.5*i-1.25,1.5,5.5),e.fill(),e.rect(13,.5*i-2.25,1.5,6.5),e.fill(),e.rect(15,.5*i-3.25,1.5,7.5),e.fill(),e.text(18,.5*i,0,0,"CARRIER",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.5*i,0,0,"11:15AM",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.begin(),e.moveTo(n-19,.5*i-2),e.lineTo(n-10,.5*i-2),e.lineTo(n-10,.5*i+2),e.lineTo(n-19,.5*i+2),e.close(),e.fill(),e.begin(),e.moveTo(n-20,.5*i-3),e.lineTo(n-5,.5*i-3),e.lineTo(n-5,.5*i-1),e.lineTo(n-3.5,.5*i-1),e.lineTo(n-3.5,.5*i+1),e.lineTo(n-5,.5*i+1),e.lineTo(n-5,.5*i+3),e.lineTo(n-20,.5*i+3),e.close(),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_ITOP_BAR,mxShapeMockupiTopBar),mxUtils.extend(mxShapeMockupiTopBar2,mxShape),mxShapeMockupiTopBar2.prototype.cst={SHAPE_ITOP_BAR2:"mxgraph.ios.iTopBar2"},mxShapeMockupiTopBar2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiTopBar2.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fill()},mxShapeMockupiTopBar2.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.setStrokeColor(t),e.rect(5,.5*i+1.75,1.5,2.5),e.fill(),e.rect(7,.5*i+.75,1.5,3.5),e.fill(),e.rect(9,.5*i-.25,1.5,4.5),e.fill(),e.rect(11,.5*i-1.25,1.5,5.5),e.fill(),e.rect(13,.5*i-2.25,1.5,6.5),e.fill(),e.rect(15,.5*i-3.25,1.5,7.5),e.fill(),e.begin(),e.moveTo(n-19,.5*i-2),e.lineTo(n-10,.5*i-2),e.lineTo(n-10,.5*i+2),e.lineTo(n-19,.5*i+2),e.close(),e.fill(),e.begin(),e.moveTo(n-20,.5*i-3),e.lineTo(n-5,.5*i-3),e.lineTo(n-5,.5*i-1),e.lineTo(n-3.5,.5*i-1),e.lineTo(n-3.5,.5*i+1),e.lineTo(n-5,.5*i+1),e.lineTo(n-5,.5*i+3),e.lineTo(n-20,.5*i+3),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupiTopBar2.prototype.cst.SHAPE_ITOP_BAR2,mxShapeMockupiTopBar2),mxUtils.extend(mxShapeMockupiTopBarLocked,mxShape),mxShapeMockupiTopBarLocked.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiTopBarLocked.prototype.background=function(e,t,o,n,i){e.setFillColor("#000000"),e.rect(0,0,n,i),e.fill()},mxShapeMockupiTopBarLocked.prototype.foreground=function(e,t,o,n,i){e.setFillColor("#cccccc"),e.setStrokeColor("#cccccc"),e.rect(5,.5*i+1.75,1.5,2.5),e.fill(),e.rect(7,.5*i+.75,1.5,3.5),e.fill(),e.rect(9,.5*i-.25,1.5,4.5),e.fill(),e.rect(11,.5*i-1.25,1.5,5.5),e.fill(),e.rect(13,.5*i-2.25,1.5,6.5),e.fill(),e.rect(15,.5*i-3.25,1.5,7.5),e.fill(),e.begin(),e.moveTo(.5*n-2,.5*i-1),e.arcTo(2,3,0,0,1,.5*n+2,.5*i-1),e.stroke(),e.rect(.5*n-3,.5*i-1,6,4),e.fillAndStroke(),e.begin(),e.moveTo(n-19,.5*i-2),e.lineTo(n-10,.5*i-2),e.lineTo(n-10,.5*i+2),e.lineTo(n-19,.5*i+2),e.close(),e.fill(),e.begin(),e.moveTo(n-20,.5*i-3),e.lineTo(n-5,.5*i-3),e.lineTo(n-5,.5*i-1),e.lineTo(n-3.5,.5*i-1),e.lineTo(n-3.5,.5*i+1),e.lineTo(n-5,.5*i+1),e.lineTo(n-5,.5*i+3),e.lineTo(n-20,.5*i+3),e.close(),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_ITOP_BAR_LOCKED,mxShapeMockupiTopBarLocked),mxUtils.extend(mxShapeMockupiButton,mxShape),mxShapeMockupiButton.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text"),s=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8.5").toString();e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.mainText(e,t,o,n,i,a,l,s)},mxShapeMockupiButton.prototype.background=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(0,0,n,i,2.5,2.5),e.fill()},mxShapeMockupiButton.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(n/2,i/2,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_IBUTTON,mxShapeMockupiButton),mxUtils.extend(mxShapeMockupiButtonBack,mxShape),mxShapeMockupiButtonBack.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text"),s=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17").toString();e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.mainText(e,t,o,n,i,a,l,s)},mxShapeMockupiButtonBack.prototype.background=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),rSize=2.5,e.begin(),e.moveTo(n,rSize),e.arcTo(rSize,rSize,0,0,0,n-rSize,0),e.lineTo(10,0),e.lineTo(.87,.5*i-.75),e.arcTo(rSize,rSize,0,0,0,.87,.5*i+.75),e.lineTo(10,i),e.lineTo(n-rSize,i),e.arcTo(rSize,rSize,0,0,0,n,i-rSize),e.close(),e.fill()},mxShapeMockupiButtonBack.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*n+2.5,.5*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_IBUTTON_BACK,mxShapeMockupiButtonBack),mxUtils.extend(mxShapeMockupiButtonForward,mxShape),mxShapeMockupiButtonForward.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text"),s=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17").toString();e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.mainText(e,t,o,n,i,a,l,s)},mxShapeMockupiButtonForward.prototype.background=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),rSize=2.5,e.begin(),e.moveTo(0,rSize),e.arcTo(rSize,rSize,0,0,1,rSize,0),e.lineTo(n-10,0),e.lineTo(n-.87,.5*i-.75),e.arcTo(rSize,rSize,0,0,1,n-.87,.5*i+.75),e.lineTo(n-10,i),e.lineTo(rSize,i),e.arcTo(rSize,rSize,0,0,1,0,i-rSize),e.close(),e.fill()},mxShapeMockupiButtonForward.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(.5*n-2.5,.5*i,0,0,a,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_IBUTTON_FORWARD,mxShapeMockupiButtonForward),mxUtils.extend(mxShapeMockupiPrevNextButton,mxShape),mxShapeMockupiPrevNextButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiPrevNextButton.prototype.background=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(0,0,n,i,5,5),e.fill(),e.begin(),e.moveTo(.5*n,0),e.lineTo(.5*n,i),e.stroke()},mxShapeMockupiPrevNextButton.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR3,"").toString(),e.setFillColor(t),e.begin(),e.moveTo(.25*n,.25*i),e.lineTo(.35*n,.75*i),e.lineTo(.15*n,.75*i),e.close(),e.fill(),e.begin(),e.moveTo(.75*n,.75*i),e.lineTo(.85*n,.25*i),e.lineTo(.65*n,.25*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IPREV_NEXT,mxShapeMockupiPrevNextButton),mxUtils.extend(mxShapeMockupiTextInput,mxShape),mxShapeMockupiTextInput.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text"),s=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#000000").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8").toString();e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.mainText(e,t,o,n,i,a,l,s)},mxShapeMockupiTextInput.prototype.background=function(e,t,o,n,i){e.roundrect(0,0,n,i,2.5,2.5),e.fillAndStroke()},mxShapeMockupiTextInput.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(2,.5*i,0,0,a,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_ITEXT_INPUT,mxShapeMockupiTextInput),mxUtils.extend(mxShapeMockupiRadioGroup,mxShape),mxShapeMockupiRadioGroup.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),s=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8").toString();o=(t=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Option 1").toString().split(",")).length;var l=Math.max(1.5*s,5),r=0,p=-1,m=o*l;i=Math.max(i,m);for(var h=0;h<o;h++){var x=t[h];x.charAt(0)===mxMockupC.SELECTED&&(x=t[h].substring(1),p=h),(x=mxUtils.getSizeForString(x,s,mxConstants.DEFAULT_FONTFAMILY).width)>r&&(r=x)}for(e.roundrect(0,0,Math.max(n,5+r+10),i,2.5,2.5),e.fillAndStroke(),e.setShadow(!1),e.setFontSize(s),e.setFontColor(a),h=0;h<o;h++)n=(h*l+.5*l)*i/m,(x=t[h]).charAt(0)===mxMockupC.SELECTED&&(x=t[h].substring(1),p=h),e.text(12.5,n,0,0,x,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),n-=2.5,e.setFillColor("#dddddd"),e.setStrokeColor("#000000"),p===h?(e.setGradient("#aaaaaa","#666666",2.5,n,5,5,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(2.5,n,5,5),e.fillAndStroke(),e.setFillColor("#333333"),e.setStrokeColor("#333333"),e.ellipse(3.75,n+1.25,2.5,2.5)):(e.setGradient("#eeeeee","#cccccc",2.5,n,5,5,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(2.5,n,5,5)),e.fillAndStroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IRADIO_GROUP,mxShapeMockupiRadioGroup),mxUtils.extend(mxShapeMockupiCheckboxGroup,mxShape),mxShapeMockupiCheckboxGroup.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),s=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8").toString();o=(t=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Option 1").toString().split(",")).length;var l=Math.max(1.5*s,5),r=0,p=-1,m=o*l;i=Math.max(i,m);for(var h=0;h<o;h++){var x=t[h];x.charAt(0)===mxMockupC.SELECTED&&(x=t[h].substring(1),p=h),(x=mxUtils.getSizeForString(x,s,mxConstants.DEFAULT_FONTFAMILY).width)>r&&(r=x)}for(e.roundrect(0,0,Math.max(n,5+r+10),i,2.5,2.5),e.fillAndStroke(),e.setShadow(!1),e.setFontSize(s),e.setFontColor(a),h=0;h<o;h++)n=(h*l+.5*l)*i/m,(x=t[h]).charAt(0)===mxMockupC.SELECTED&&(x=t[h].substring(1),p=h),e.text(12.5,n,0,0,x,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),n-=2.5,e.setFillColor("#dddddd"),e.setStrokeColor("#000000"),p===h?(e.setGradient("#aaaaaa","#666666",2.5,n,5,5,mxConstants.DIRECTION_SOUTH,1,1),e.rect(2.5,n,5,5),e.fillAndStroke(),e.setStrokeColor("#333333"),e.begin(),e.moveTo(3.75,n+2.5),e.lineTo(5,n+3.75),e.lineTo(6.25,n+1.25),e.stroke()):(e.setGradient("#eeeeee","#cccccc",2.5,n,5,5,mxConstants.DIRECTION_SOUTH,1,1),e.rect(2.5,n,5,5),e.fillAndStroke()),p=-1},mxCellRenderer.registerShape(mxMockupC.SHAPE_ICHECKBOX_GROUP,mxShapeMockupiCheckboxGroup),mxUtils.extend(mxShapeMockupiComboBox,mxShape),mxShapeMockupiComboBox.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text"),s=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8.5").toString();e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i),this.mainText(e,t,o,n,i,a,l,s)},mxShapeMockupiComboBox.prototype.background=function(e,t,o,n,i){e.setFillColor("#ffffff"),e.roundrect(0,0,n,i,2.5,2.5),e.fillAndStroke()},mxShapeMockupiComboBox.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,n-30,0,30,i,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(n-15,0),e.lineTo(n-2.5,0),e.arcTo(2.5,2.5,0,0,1,n,2.5),e.lineTo(n,i-2.5),e.arcTo(2.5,2.5,0,0,1,n-2.5,i),e.lineTo(n-15,i),e.close(),e.fillAndStroke(),e.setFillColor("#ffffff"),e.begin(),e.moveTo(n-11,5),e.lineTo(n-7.5,10),e.lineTo(n-4,5),e.fill()},mxShapeMockupiComboBox.prototype.mainText=function(e,t,o,n,i,a,s,l){e.begin(),e.setFontSize(s),e.setFontColor(l),e.text(2.5,.5*i,0,0,a,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_ICOMBO_BOX,mxShapeMockupiComboBox),mxUtils.extend(mxShapeMockupiOnOffButton,mxShape),mxShapeMockupiOnOffButton.prototype.customProperties=[{name:"buttonState",dispName:"State",type:"enum",enumList:[{val:"on",dispName:"On"},{val:"off",dispName:"Off"}]}],mxShapeMockupiOnOffButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),n=Math.max(n,2*i);var a=mxUtils.getValue(this.style,mxMockupC.BUTTON_STATE,mxMockupC.STATE_ON);this.background(e,t,o,n,i,a),e.setShadow(!1),this.foreground(e,t,o,n,i,a),this.mainText(e,t,o,n,i,a)},mxShapeMockupiOnOffButton.prototype.background=function(e,t,o,n,i,a){a===mxMockupC.STATE_ON?(e.setGradient("#E2FFEB","#008215",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(0,0,n,i,.5*i,.5*i),e.fillAndStroke()):a===mxMockupC.STATE_OFF&&(e.setGradient("#cc9999","#881100",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(0,0,n,i,.5*i,.5*i),e.fillAndStroke())},mxShapeMockupiOnOffButton.prototype.foreground=function(e,t,o,n,i,a){a===mxMockupC.STATE_ON?(e.setGradient("#ffffff","#888888",n-i,0,i,i,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(n-i,0,i,i)):(e.setGradient("#ffffff","#888888",0,0,i,i,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(0,0,i,i)),e.fillAndStroke()},mxShapeMockupiOnOffButton.prototype.mainText=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,"mainText",null),e.setFontColor("#ffffff"),e.setFontSize(8.5),""!=t&&(a===mxMockupC.STATE_ON?e.text(.5*n-.4*i,.5*i,0,0,t||"ON",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):a===mxMockupC.STATE_OFF&&e.text(.5*n+.4*i,.5*i,0,0,t||"OFF",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0))},mxCellRenderer.registerShape(mxMockupC.SHAPE_ION_OFF_BUTTON,mxShapeMockupiOnOffButton),mxUtils.extend(mxShapeMockupiAlertBox,mxShape),mxShapeMockupiAlertBox.prototype.paintVertexShape=function(e,t,o,n,i){n=Math.max(n,15),i=Math.max(i,15),e.translate(t,o),rSize=7.5,this.background(e,t,o,n,i,rSize),e.setShadow(!1),this.foreground(e,t,o,n,i,rSize)},mxShapeMockupiAlertBox.prototype.background=function(e,t,o,n,i,a){e.setGradient("#497198","#193168",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.setAlpha(.8),e.setStrokeWidth(1),e.roundrect(0,0,n,i,a,a),e.fillAndStroke()},mxShapeMockupiAlertBox.prototype.foreground=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text").toString().split(","),e.setStrokeColor("#497198"),e.setGradient("#497198","#c5cee1",0,0,n,22.5,mxConstants.DIRECTION_SOUTH,1,1),e.setAlpha(.5),e.begin(),e.moveTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,17.5),e.arcTo(1.67*n,2.5*i,0,0,1,0,17.5),e.lineTo(0,a),e.arcTo(a,a,0,0,1,a,0),e.close(),e.fillAndStroke(),e.setAlpha(.8),e.setStrokeColor("#ffffff"),e.setStrokeWidth(1),e.roundrect(0,0,n,i,a,a),e.stroke(),e.setGradient("#497198","#c5cee1",5,i-50,n-20,20,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(5,i-25,n-10,20,2.5,2.5),e.fillAndStroke(),e.setAlpha(.9),e.setFontSize(9.5),e.setFontColor("#ffffff"),e.text(.5*n,.15*i,0,0,t[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontSize(8),e.text(.5*n,.4*i,0,0,t[2],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.55*i,0,0,t[3],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontSize(8.5),e.text(.5*n,i-15,0,0,t[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_IALERT_BOX,mxShapeMockupiAlertBox),mxUtils.extend(mxShapeMockupiDialogBox,mxShape),mxShapeMockupiDialogBox.prototype.paintVertexShape=function(e,t,o,n,i){n=Math.max(n,15),i=Math.max(i,15),e.translate(t,o),rSize=7.5,this.background(e,t,o,n,i,rSize),e.setShadow(!1),this.foreground(e,t,o,n,i,rSize)},mxShapeMockupiDialogBox.prototype.background=function(e,t,o,n,i,a){e.setGradient("#497198","#193168",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.setAlpha(.8),e.setStrokeWidth(1),e.roundrect(0,0,n,i,a,a),e.fillAndStroke()},mxShapeMockupiDialogBox.prototype.foreground=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text").toString().split(","),e.setStrokeColor("#497198"),e.setGradient("#497198","#c5cee1",0,0,n,22.5,mxConstants.DIRECTION_SOUTH,1,1),e.setAlpha(.5),e.begin(),e.moveTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,17.5),e.arcTo(1.67*n,2.5*i,0,0,1,0,17.5),e.lineTo(0,a),e.arcTo(a,a,0,0,1,a,0),e.close(),e.fillAndStroke(),e.setAlpha(.8),e.setStrokeColor("#ffffff"),e.setStrokeWidth(1),e.roundrect(0,0,n,i,a,a),e.stroke(),e.setGradient("#497198","#c5cee1",5,i-25,.5*n-10,20,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(5,i-25,.5*n-10,20,2.5,2.5),e.fillAndStroke(),e.roundrect(.5*n+2.5,i-25,.5*n-10,20,2.5,2.5),e.fillAndStroke(),e.setAlpha(.9),e.setFontSize(9.5),e.setFontColor("#ffffff"),e.text(.5*n,.15*i,0,0,t[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontSize(8),e.text(.5*n,.4*i,0,0,t[3],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.55*i,0,0,t[4],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontSize(8.5),e.text(.25*n,i-15,0,0,t[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.75*n,i-15,0,0,t[2],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_IDIALOG_BOX,mxShapeMockupiDialogBox),mxUtils.extend(mxShapeMockupiLockButton,mxShape),mxShapeMockupiLockButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setShadow(!1),e.setAlpha(.7),e.setGradient("#4A4F56","#70757B",0,0,n,i,mxConstants.DIRECTION_NORTH,1,1),e.rect(0,0,n,i),e.fill(),e.setAlpha(.8),e.setGradient("#18232D","#1F2933",10,10,154,30,mxConstants.DIRECTION_NORTH,1,1),e.roundrect(10,.5*i-15,n-20,30,7.5,7.5),e.fill(),e.setAlpha(1),e.setGradient("#E9F3FD","#ADB7C1",12.5,12.5,40,25,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(12.5,.5*i-12.5,40,25,5,5),e.fill(),e.setAlpha(.8),e.setStrokeWidth(.5),e.setStrokeColor("#aabbbb"),e.setGradient("#AEB7C1","#667079",20,17.5,25,15,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(20,.5*i-3.5),e.lineTo(35,.5*i-3.5),e.lineTo(35,.5*i-7.5),e.lineTo(45,.5*i),e.lineTo(35,.5*i+7.5),e.lineTo(35,.5*i+3.5),e.lineTo(20,.5*i+3.5),e.close(),e.fillAndStroke(),""!=mxUtils.getValue(this.style,"mainText",null)&&(e.setFontSize(12.5),e.setFontColor("#cccccc"),e.text(n/2+20.5,i/2,0,0,"slide to unlock",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0))},mxCellRenderer.registerShape(mxMockupC.SHAPE_ILOCK_BUTTON,mxShapeMockupiLockButton),mxUtils.extend(mxShapeMockupiArrowIcon,mxShape),mxShapeMockupiArrowIcon.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();e.translate(t,o),this.background(e,t,o,n,i,a),e.setShadow(!1),this.foreground(e,t,o,n,i,a)},mxShapeMockupiArrowIcon.prototype.background=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.setStrokeWidth(1.5),e.setStrokeColor(a),e.ellipse(0,0,n,i),e.fillAndStroke()},mxShapeMockupiArrowIcon.prototype.foreground=function(e,t,o,n,i,a){e.setStrokeWidth(2.5),e.begin(),e.moveTo(.4*n,.22*i),e.lineTo(.65*n,.5*i),e.lineTo(.4*n,.78*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IARROW_ICON,mxShapeMockupiArrowIcon),mxUtils.extend(mxShapeMockupiDeleteIcon,mxShape),mxShapeMockupiDeleteIcon.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();e.translate(t,o),this.background(e,t,o,n,i,a),e.setShadow(!1),this.foreground(e,t,o,n,i,a)},mxShapeMockupiDeleteIcon.prototype.background=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.setStrokeWidth(1.5),e.setStrokeColor(a),e.ellipse(0,0,n,i),e.fillAndStroke()},mxShapeMockupiDeleteIcon.prototype.foreground=function(e,t,o,n,i,a){e.setStrokeWidth(2.5),e.begin(),e.moveTo(.25*n,.5*i),e.lineTo(.75*n,.5*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IDELETE_ICON,mxShapeMockupiDeleteIcon),mxUtils.extend(mxShapeMockupiAddIcon,mxShape),mxShapeMockupiAddIcon.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString(),s=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),l=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();e.setGradient(s,l,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.setStrokeColor(a),e.translate(t,o),this.background(e,t,o,n,i,a),e.setShadow(!1),this.foreground(e,t,o,n,i,a)},mxShapeMockupiAddIcon.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(1.5),e.ellipse(0,0,n,i),e.fillAndStroke()},mxShapeMockupiAddIcon.prototype.foreground=function(e,t,o,n,i,a){e.setStrokeWidth(2.5),e.begin(),e.moveTo(.25*n,.5*i),e.lineTo(.75*n,.5*i),e.moveTo(.5*n,.25*i),e.lineTo(.5*n,.75*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IADD_ICON,mxShapeMockupiAddIcon),mxUtils.extend(mxShapeMockupiInfoIcon,mxShape),mxShapeMockupiInfoIcon.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();e.translate(t,o),this.background(e,t,o,n,i,a),e.setShadow(!1),this.foreground(e,t,o,n,i,a)},mxShapeMockupiInfoIcon.prototype.background=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.setStrokeWidth(1.5),e.setStrokeColor(a),e.ellipse(0,0,n,i),e.fillAndStroke()},mxShapeMockupiInfoIcon.prototype.foreground=function(e,t,o,n,i,a){e.setStrokeWidth(2.5),e.begin(),e.setFillColor("#ffffff"),e.moveTo(.47*n,.334*i),e.arcTo(.1*n,.15*i,60,0,1,.61*n,.42*i),e.lineTo(.51*n,.7*i),e.arcTo(.026*n,.03*i,30,0,0,.54*n,.74*i),e.lineTo(.608*n,.684*i),e.arcTo(.02*n,.015*i,0,0,1,.638*n,.706*i),e.arcTo(.45*n,.45*i,0,0,1,.42*n,.865*i),e.arcTo(.1*n,.08*i,-15,0,1,.325*n,.77*i),e.lineTo(.358*n,.66*i),e.lineTo(.435*n,.46*i),e.arcTo(.023*n,.03*i,0,0,0,.4*n,.43*i),e.lineTo(.338*n,.484*i),e.arcTo(.01*n,.015*i,45,0,1,.31*n,.47*i),e.arcTo(.3*n,.3*i,0,0,1,.47*n,.334*i),e.fill(),e.begin(),e.moveTo(.5438*n,.141*i),e.arcTo(.0776*n,.0898*i,40,0,1,.6671*n,.2308*i),e.arcTo(.0776*n,.0898*i,40,0,1,.5438*n,.141*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IINFO_ICON,mxShapeMockupiInfoIcon),mxUtils.extend(mxShapeMockupiSortFindIcon,mxShape),mxShapeMockupiSortFindIcon.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();e.translate(t,o),this.background(e,t,o,n,i,a),e.setShadow(!1),this.foreground(e,t,o,n,i,a)},mxShapeMockupiSortFindIcon.prototype.background=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.setStrokeWidth(1.5),e.setStrokeColor(a),e.roundrect(0,0,n,i,.1*n,.1*i),e.fillAndStroke()},mxShapeMockupiSortFindIcon.prototype.foreground=function(e,t,o,n,i,a){e.setStrokeWidth(Math.min(i,n)/20),e.begin(),e.setFillColor("#ffffff"),e.moveTo(.1*n,.25*i),e.lineTo(.9*n,.25*i),e.moveTo(.1*n,.4*i),e.lineTo(.9*n,.4*i),e.moveTo(.1*n,.55*i),e.lineTo(.6*n,.55*i),e.moveTo(.1*n,.7*i),e.lineTo(.5*n,.7*i),e.stroke(),e.begin(),e.ellipse(.6*n,.6*i,.2*n,.2*i),e.stroke(),e.begin(),e.moveTo(.77*n,.77*i),e.lineTo(.85*n,.85*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_ISORT_FIND_ICON,mxShapeMockupiSortFindIcon),mxUtils.extend(mxShapeMockupiCheckIcon,mxShape),mxShapeMockupiCheckIcon.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();e.translate(t,o),this.background(e,t,o,n,i,a),e.setShadow(!1),this.foreground(e,t,o,n,i,a)},mxShapeMockupiCheckIcon.prototype.background=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.setStrokeWidth(1.5),e.setStrokeColor(a),e.ellipse(0,0,n,i),e.fillAndStroke()},mxShapeMockupiCheckIcon.prototype.foreground=function(e,t,o,n,i,a){e.setStrokeWidth(2.5),e.begin(),e.moveTo(.25*n,.5*i),e.lineTo(.5*n,.65*i),e.lineTo(.75*n,.25*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_ICHECK_ICON,mxShapeMockupiCheckIcon),mxUtils.extend(mxShapeMockupiKeybLetters,mxShape),mxShapeMockupiKeybLetters.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0),this.foreground(e,t,o,n,i)},mxShapeMockupiKeybLetters.prototype.background=function(e,t,o,n,i){e.setGradient("#8A97A7","#425163",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.rect(0,0,n,i),e.fill()},mxShapeMockupiKeybLetters.prototype.foreground=function(e,t,o,n,i,a){e.setGradient("#EEF3F9","#DBE2E9",.0086*n,.03*i,.0776*n,.19*i,mxConstants.DIRECTION_SOUTH,1,1),rSizeX=.0144*n,rSizeY=.025*i,e.setFontSize(10.5),e.setFontColor("#000000"),e.roundrect(.0086*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.0474*n,.125*i,0,0,"Q",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.1092*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.148*n,.125*i,0,0,"W",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.2098*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.2486*n,.125*i,0,0,"E",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.3103*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.3491*n,.125*i,0,0,"R",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.4109*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.4497*n,.125*i,0,0,"T",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.5115*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.5503*n,.125*i,0,0,"Y",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.6121*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.6509*n,.125*i,0,0,"U",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.7126*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.7514*n,.125*i,0,0,"I",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.8132*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.852*n,.125*i,0,0,"O",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.9138*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.9526*n,.125*i,0,0,"P",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.0632*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.102*n,.375*i,0,0,"A",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.1638*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.2026*n,.375*i,0,0,"S",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.2644*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.3032*n,.375*i,0,0,"D",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.3649*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.4037*n,.375*i,0,0,"F",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.4655*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.5043*n,.375*i,0,0,"G",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.5661*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.6049*n,.375*i,0,0,"H",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.6667*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.7055*n,.375*i,0,0,"J",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.7672*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.806*n,.375*i,0,0,"K",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.8678*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.9066*n,.375*i,0,0,"L",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.1638*n,.53*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.2026*n,.625*i,0,0,"Z",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.2644*n,.53*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.3032*n,.625*i,0,0,"X",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.3649*n,.53*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.4037*n,.625*i,0,0,"C",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.4655*n,.53*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.5043*n,.625*i,0,0,"V",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.5661*n,.53*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.6049*n,.625*i,0,0,"B",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.6667*n,.53*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.7055*n,.625*i,0,0,"N",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.7672*n,.53*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.806*n,.625*i,0,0,"M",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.2644*n,.78*i,.4799*n,.19*i,rSizeX,rSizeY),e.fill(),e.setFontColor("#666666"),e.text(.5043*n,.875*i,0,0,"space",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontColor("#ffffff"),e.setGradient("#8B98A8","#677488",.0115*n,.53*i,.1207*n,.19*i,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(.0115*n,.53*i,.1207*n,.19*i,rSizeX,rSizeY),e.fill(),e.setGradient("#8B98A8","#677488",.8736*n,.53*i,.115*n,.19*i,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(.8736*n,.53*i,.115*n,.19*i,rSizeX,rSizeY),e.fill(),e.setGradient("#8B98A8","#677488",.0115*n,.78*i,.2299*n,.19*i,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(.0115*n,.78*i,.2299*n,.19*i,rSizeX,rSizeY),e.fill(),e.setGradient("#8B98A8","#677488",.7672*n,.78*i,.2213*n,.19*i,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(.7672*n,.78*i,.2213*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.1264*n,.875*i,0,0,".?123",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8779*n,.875*i,0,0,"return",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setShadow(!1),e.setLineJoin("round"),e.setStrokeColor("#ffffff"),e.setFillColor("#ffffff"),e.setStrokeWidth(1.5),e.begin(),e.moveTo(.0402*n,.635*i),e.lineTo(.0718*n,.58*i),e.lineTo(.1034*n,.635*i),e.lineTo(.0862*n,.635*i),e.lineTo(.0862*n,.67*i),e.lineTo(.0575*n,.67*i),e.lineTo(.0575*n,.635*i),e.close(),e.stroke(),e.begin(),e.moveTo(.9109*n,.585*i),e.lineTo(.9655*n,.585*i),e.lineTo(.9655*n,.665*i),e.lineTo(.9109*n,.665*i),e.lineTo(.8879*n,.625*i),e.close(),e.fillAndStroke(),e.setStrokeColor("#677488"),e.begin(),e.moveTo(.9224*n,.605*i),e.lineTo(.9454*n,.645*i),e.moveTo(.9224*n,.645*i),e.lineTo(.9454*n,.605*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IKEYB_LETTERS,mxShapeMockupiKeybLetters),mxUtils.extend(mxShapeMockupiKeybNumbers,mxShape),mxShapeMockupiKeybNumbers.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0),this.foreground(e,t,o,n,i)},mxShapeMockupiKeybNumbers.prototype.background=function(e,t,o,n,i){e.setGradient("#8A97A7","#425163",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.rect(0,0,n,i),e.fill()},mxShapeMockupiKeybNumbers.prototype.foreground=function(e,t,o,n,i,a){e.setGradient("#EEF3F9","#DBE2E9",.0086*n,.03*i,.0776*n,.19*i,mxConstants.DIRECTION_SOUTH,1,1),rSizeX=.0144*n,rSizeY=.025*i,e.setFontSize(10.5),e.setFontColor("#000000"),e.roundrect(.0086*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.0474*n,.125*i,0,0,"1",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.1092*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.148*n,.125*i,0,0,"2",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.2098*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.2486*n,.125*i,0,0,"3",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.3103*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.3491*n,.125*i,0,0,"4",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.4109*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.4497*n,.125*i,0,0,"5",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.5115*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.5503*n,.125*i,0,0,"6",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.6121*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.6509*n,.125*i,0,0,"7",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.7126*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.7514*n,.125*i,0,0,"8",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.8132*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.852*n,.125*i,0,0,"9",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.9138*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.9526*n,.125*i,0,0,"0",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.0086*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.0474*n,.375*i,0,0,"-",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.1092*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.148*n,.375*i,0,0,"/",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.2098*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.2486*n,.375*i,0,0,":",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.3103*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.3491*n,.375*i,0,0,";",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.4109*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.4497*n,.375*i,0,0,"(",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.5115*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.5503*n,.375*i,0,0,")",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.6121*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.6509*n,.375*i,0,0,"$",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.7126*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.7514*n,.375*i,0,0,"&",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.8132*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.852*n,.375*i,0,0,"@",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.9138*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.9526*n,.375*i,0,0,'"',mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.1638*n,.53*i,.1178*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.2227*n,.625*i,0,0,".",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.3046*n,.53*i,.1178*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.3635*n,.625*i,0,0,",",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.4454*n,.53*i,.1178*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.5043*n,.625*i,0,0,"?",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.5862*n,.53*i,.1178*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.6451*n,.625*i,0,0,"!",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.727*n,.53*i,.1178*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.7859*n,.625*i,0,0,"'",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.2644*n,.78*i,.4799*n,.19*i,rSizeX,rSizeY),e.fill(),e.setFontColor("#666666"),e.text(.5043*n,.875*i,0,0,"space",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setGradient("#8B98A8","#677488",.0115*n,.53*i,.1207*n,.19*i,mxConstants.DIRECTION_SOUTH,1,1),e.setFontColor("#ffffff"),e.roundrect(.0115*n,.53*i,.1207*n,.19*i,rSizeX,rSizeY),e.fill(),e.roundrect(.8736*n,.53*i,.115*n,.19*i,rSizeX,rSizeY),e.fill(),e.roundrect(.0115*n,.78*i,.2299*n,.19*i,rSizeX,rSizeY),e.fill(),e.roundrect(.7672*n,.78*i,.2213*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.0718*n,.625*i,0,0,"#+=",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.1264*n,.875*i,0,0,"ABC",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8779*n,.875*i,0,0,"return",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setShadow(!1),e.setLineJoin("round"),e.setStrokeColor("#ffffff"),e.setFillColor("#ffffff"),e.setStrokeWidth(1.5),e.begin(),e.moveTo(.9109*n,.585*i),e.lineTo(.9655*n,.585*i),e.lineTo(.9655*n,.665*i),e.lineTo(.9109*n,.665*i),e.lineTo(.8879*n,.625*i),e.close(),e.fillAndStroke(),e.setStrokeColor("#677488"),e.begin(),e.moveTo(.9224*n,.605*i),e.lineTo(.9454*n,.645*i),e.moveTo(.9224*n,.645*i),e.lineTo(.9454*n,.605*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IKEYB_NUMBERS,mxShapeMockupiKeybNumbers),mxUtils.extend(mxShapeMockupiKeybSymbols,mxShape),mxShapeMockupiKeybSymbols.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0),this.foreground(e,t,o,n,i)},mxShapeMockupiKeybSymbols.prototype.background=function(e,t,o,n,i){e.setGradient("#8A97A7","#425163",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.rect(0,0,n,i),e.fill()},mxShapeMockupiKeybSymbols.prototype.foreground=function(e,t,o,n,i,a){e.setGradient("#EEF3F9","#DBE2E9",.0086*n,.03*i,.0776*n,.19*i,mxConstants.DIRECTION_SOUTH,1,1),rSizeX=.0144*n,rSizeY=.025*i,e.setFontSize(10.5),e.setFontColor("#000000"),e.roundrect(.0086*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.0474*n,.125*i,0,0,"[",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.1092*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.148*n,.125*i,0,0,"]",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.2098*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.2486*n,.125*i,0,0,"{",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.3103*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.3491*n,.125*i,0,0,"}",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.4109*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.4497*n,.125*i,0,0,"#",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.5115*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.5503*n,.125*i,0,0,"%",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.6121*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.6509*n,.125*i,0,0,"^",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.7126*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.7514*n,.125*i,0,0,"*",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.8132*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.852*n,.125*i,0,0,"+",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.9138*n,.03*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.9526*n,.125*i,0,0,"=",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.0086*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.0474*n,.375*i,0,0,"_",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.1092*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.148*n,.375*i,0,0,"\\",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.2098*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.2486*n,.375*i,0,0,"|",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.3103*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.3491*n,.375*i,0,0,"~",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.4109*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.4497*n,.375*i,0,0,"<",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.5115*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.5503*n,.375*i,0,0,">",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.6121*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.6509*n,.375*i,0,0,String.fromCharCode(128),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.7126*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.7514*n,.375*i,0,0,String.fromCharCode(163),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.8132*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.852*n,.375*i,0,0,String.fromCharCode(165),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.9138*n,.28*i,.0776*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.9526*n,.375*i,0,0,String.fromCharCode(149),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.1638*n,.53*i,.1178*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.2227*n,.625*i,0,0,".",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.3046*n,.53*i,.1178*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.3635*n,.625*i,0,0,",",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.4454*n,.53*i,.1178*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.5043*n,.625*i,0,0,"?",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.5862*n,.53*i,.1178*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.6451*n,.625*i,0,0,"!",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.727*n,.53*i,.1178*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.7859*n,.625*i,0,0,"'",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.roundrect(.2644*n,.78*i,.4799*n,.19*i,rSizeX,rSizeY),e.fill(),e.setFontColor("#666666"),e.text(.5043*n,.875*i,0,0,"space",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setGradient("#8B98A8","#677488",.0115*n,.53*i,.1207*n,.19*i,mxConstants.DIRECTION_SOUTH,1,1),e.setFontColor("#ffffff"),e.roundrect(.0115*n,.53*i,.1207*n,.19*i,rSizeX,rSizeY),e.fill(),e.roundrect(.8736*n,.53*i,.115*n,.19*i,rSizeX,rSizeY),e.fill(),e.roundrect(.0115*n,.78*i,.2299*n,.19*i,rSizeX,rSizeY),e.fill(),e.roundrect(.7672*n,.78*i,.2213*n,.19*i,rSizeX,rSizeY),e.fill(),e.text(.0718*n,.625*i,0,0,"123",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.1264*n,.875*i,0,0,"ABC",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8779*n,.875*i,0,0,"return",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setShadow(!1),e.setLineJoin("round"),e.setStrokeColor("#ffffff"),e.setFillColor("#ffffff"),e.setStrokeWidth(1.5),e.begin(),e.moveTo(.9109*n,.585*i),e.lineTo(.9655*n,.585*i),e.lineTo(.9655*n,.665*i),e.lineTo(.9109*n,.665*i),e.lineTo(.8879*n,.625*i),e.close(),e.fillAndStroke(),e.setStrokeColor("#677488"),e.begin(),e.moveTo(.9224*n,.605*i),e.lineTo(.9454*n,.645*i),e.moveTo(.9224*n,.645*i),e.lineTo(.9454*n,.605*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IKEYB_SYMBOLS,mxShapeMockupiKeybSymbols),mxUtils.extend(mxShapeMockupiDeleteApp,mxShape),mxShapeMockupiDeleteApp.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();e.translate(t,o),this.background(e,t,o,n,i,a),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiDeleteApp.prototype.background=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString(),e.setGradient(t,o,0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.setStrokeWidth(1.5),e.setStrokeColor(a),e.ellipse(0,0,n,i),e.fillAndStroke()},mxShapeMockupiDeleteApp.prototype.foreground=function(e,t,o,n,i){e.setStrokeWidth(2.5),e.begin(),e.moveTo(.3*n,.3*i),e.lineTo(.7*n,.7*i),e.moveTo(.3*n,.7*i),e.lineTo(.7*n,.3*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IDELETE_APP,mxShapeMockupiDeleteApp),mxUtils.extend(mxShapeMockupiDirection,mxShape),mxShapeMockupiDirection.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiDirection.prototype.background=function(e,t,o,n,i){e.setStrokeWidth(.5),e.setStrokeColor("#008cff"),e.ellipse(0,0,n,i),e.stroke()},mxShapeMockupiDirection.prototype.foreground=function(e,t,o,n,i){e.setAlpha(1),e.setGradient("#ffffff","#ffffff",.29*n,.2*i,.42*n,.3*i,mxConstants.DIRECTION_NORTH,1,0),e.begin(),e.moveTo(.29*n,.2*i),e.lineTo(.5*n,.5*i),e.lineTo(.71*n,.2*i),e.fillAndStroke(),e.setStrokeColor("#006cdf"),e.setGradient("#ffffff","#007cef",.47*n,.47*i,.06*n,.06*i,mxConstants.DIRECTION_SOUTH,1,1),e.setAlpha(1),e.ellipse(.47*n,.47*i,.06*n,.06*i),e.fillAndStroke(),e.setFillColor("#ffffff"),e.setAlpha(.8),e.ellipse(.4825*n,.4825*i,.015*n,.015*i),e.fill()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IDIRECTION,mxShapeMockupiDirection),mxUtils.extend(mxShapeMockupiLocationBar,mxShape),mxShapeMockupiLocationBar.prototype.customProperties=[{name:"buttonText",dispName:"Text",type:"string"},{name:"barPos",dispName:"Callout Position",type:"float",min:0,defVal:80},{name:"pointerPos",dispName:"Callout Orientation",type:"enum",enumList:[{val:"bottom",dispName:"Bottom"},{val:"top",dispName:"Top"}]}],mxShapeMockupiLocationBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiLocationBar.prototype.background=function(e,t,o,n,i){o=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80"),o=Math.min(o,100),o=Math.max(o,0),t=mxUtils.getValue(this.style,mxMockupC.POINTER_POS,mxMockupC.POINTER_BOTTOM),o=10+(n-20)*o/100,e.setStrokeWidth(.5),e.setStrokeColor("#000000"),e.setAlpha(.7),e.begin(),t===mxMockupC.POINTER_BOTTOM?(e.setGradient("#000000","#888888",0,0,n,i,mxConstants.DIRECTION_NORTH,1,1),e.moveTo(0,2.5),e.arcTo(2.5,2.5,0,0,1,2.5,0),e.lineTo(n-2.5,0),e.arcTo(2.5,2.5,0,0,1,n,2.5),e.lineTo(n,i-2.5-7.5),e.arcTo(2.5,2.5,0,0,1,n-2.5,i-7.5),e.lineTo(o+7.5,i-7.5),e.lineTo(o,i),e.lineTo(o-7.5,i-7.5),e.lineTo(2.5,i-7.5),e.arcTo(2.5,2.5,0,0,1,0,i-2.5-7.5)):t===mxMockupC.POINTER_TOP&&(e.setGradient("#000000","#888888",0,0,n,i,mxConstants.DIRECTION_NORTH,1,1),e.moveTo(0,10),e.arcTo(2.5,2.5,0,0,1,2.5,7.5),e.lineTo(o-7.5,7.5),e.lineTo(o,0),e.lineTo(o+7.5,7.5),e.lineTo(n-2.5,7.5),e.arcTo(2.5,2.5,0,0,1,n,10),e.lineTo(n,i-2.5),e.arcTo(2.5,2.5,0,0,1,n-2.5,i),e.lineTo(2.5,i),e.arcTo(2.5,2.5,0,0,1,0,i-2.5)),e.close(),e.fillAndStroke()},mxShapeMockupiLocationBar.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxMockupC.POINTER_POS,mxMockupC.POINTER_BOTTOM),o=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Some Location"),e.setAlpha(1),e.setFontColor("#ffffff"),e.setFontSize(9.5),t===mxMockupC.POINTER_BOTTOM?(e.text(5,.5*(i-7.5),0,0,o,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.translate(n-20,.5*(i-7.5)-7.5)):(e.text(5,.5*(i+7.5),0,0,o,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.translate(n-20,.5*(i+7.5)-7.5)),i=n=15,e.setGradient("#8BbEff","#135Ec8",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.setStrokeWidth(1.5),e.setStrokeColor("#ffffff"),e.ellipse(0,0,n,i),e.fillAndStroke(),e.setStrokeWidth(2.5),e.begin(),e.moveTo(.4*n,.22*i),e.lineTo(.65*n,.5*i),e.lineTo(.4*n,.78*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_ILOCATION_BAR,mxShapeMockupiLocationBar),mxUtils.extend(mxShapeMockupiCallDialog,mxShape),mxShapeMockupiCallDialog.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i,5),e.setShadow(!1),this.foreground(e,t,o,n,i,5)},mxShapeMockupiCallDialog.prototype.background=function(e,t,o,n,i,a){e.setAlpha(.8),e.setStrokeColor("#888888"),e.setStrokeWidth(1.5),e.setFillColor("#000000"),e.roundrect(0,0,n,i,a,a),e.fillAndStroke()},mxShapeMockupiCallDialog.prototype.foreground=function(e,t,o,n,i,a){e.begin(),e.moveTo(.33*n,0),e.lineTo(.33*n,i),e.moveTo(.67*n,0),e.lineTo(.67*n,i),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke(),e.setStrokeColor("#000000"),e.setFillColor("#ffffff"),e.setStrokeWidth(.5),e.roundrect(.1433*n,.104*i,.0417*n,.148*i,.02*n,.024*i),e.fill(),e.begin(),e.moveTo(.14*n,.188*i),e.lineTo(.14*n,.228*i),e.arcTo(.025*n,.03*i,0,0,0,.19*n,.228*i),e.lineTo(.19*n,.188*i),e.lineTo(.2*n,.188*i),e.lineTo(.2*n,.228*i),e.arcTo(.0367*n,.044*i,0,0,1,.17*n,.27*i),e.lineTo(.17*n,.296*i),e.lineTo(.195*n,.296*i),e.lineTo(.195*n,.308*i),e.lineTo(.1367*n,.308*i),e.lineTo(.1367*n,.296*i),e.lineTo(.16*n,.296*i),e.lineTo(.16*n,.27*i),e.arcTo(.0367*n,.044*i,0,0,1,.13*n,.228*i),e.lineTo(.13*n,.188*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.1033*n,.108*i),e.lineTo(.24*n,.286*i),e.lineTo(.2317*n,.298*i),e.lineTo(.095*n,.12*i),e.close(),e.fillAndStroke(),e.rect(.44*n,.128*i,.033*n,.04*i),e.fill(),e.rect(.485*n,.128*i,.033*n,.04*i),e.fill(),e.rect(.53*n,.128*i,.033*n,.04*i),e.fill(),e.rect(.44*n,.186*i,.033*n,.04*i),e.fill(),e.rect(.485*n,.186*i,.033*n,.04*i),e.fill(),e.rect(.53*n,.186*i,.033*n,.04*i),e.fill(),e.rect(.44*n,.244*i,.033*n,.04*i),e.fill(),e.rect(.485*n,.244*i,.033*n,.04*i),e.fill(),e.rect(.53*n,.244*i,.033*n,.04*i),e.fill(),e.begin(),e.moveTo(.7567*n,.18*i),e.lineTo(.785*n,.18*i),e.lineTo(.825*n,.128*i),e.lineTo(.825*n,.28*i),e.lineTo(.79*n,.234*i),e.lineTo(.7567*n,.234*i),e.close(),e.fill(),e.setStrokeWidth(1.5),e.setStrokeColor("#ffffff"),e.begin(),e.moveTo(.8383*n,.16*i),e.arcTo(.0533*n,.064*i,0,0,1,.8383*n,.252*i),e.moveTo(.8583*n,.134*i),e.arcTo(.0817*n,.098*i,0,0,1,.8583*n,.276*i),e.moveTo(.8767*n,.11*i),e.arcTo(.1133*n,.136*i,0,0,1,.8767*n,.304*i),e.stroke(),e.begin(),e.moveTo(.1467*n,.62*i),e.lineTo(.1833*n,.62*i),e.lineTo(.1833*n,.676*i),e.lineTo(.2267*n,.676*i),e.lineTo(.2267*n,.724*i),e.lineTo(.1833*n,.724*i),e.lineTo(.1833*n,.78*i),e.lineTo(.1467*n,.78*i),e.lineTo(.1467*n,.724*i),e.lineTo(.105*n,.724*i),e.lineTo(.105*n,.676*i),e.lineTo(.1467*n,.676*i),e.close(),e.fill(),e.rect(.4517*n,.624*i,.0333*n,.152*i),e.fill(),e.rect(.5183*n,.624*i,.0333*n,.152*i),e.fill(),e.begin(),e.moveTo(.76*n,.752*i),e.arcTo(.1*n,.12*i,0,0,1,.8033*n,.728*i),e.arcTo(.0167*n,.02*i,0,0,0,.8167*n,.712*i),e.lineTo(.8175*n,.7*i),e.arcTo(.0267*n,.06*i,0,0,1,.8067*n,.644*i),e.arcTo(.0287*n,.0344*i,0,0,1,.8633*n,.644*i),e.arcTo(.0267*n,.06*i,0,0,1,.855*n,.7*i),e.arcTo(.05*n,.724*i,0,0,1,.8633*n,.724*i),e.arcTo(.1667*n,.75*i,0,0,1,.9083*n,.75*i),e.lineTo(.9083*n,.78*i),e.lineTo(.76*n,.78*i),e.close(),e.fill(),e.setFontColor("#ffffff"),e.setFontSize(8.5),e.text(.1667*n,.35*i,0,0,"mute",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.35*i,0,0,"keypad",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8333*n,.35*i,0,0,"speaker",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.1667*n,.85*i,0,0,"add",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.85*i,0,0,"pause",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8333*n,.85*i,0,0,"contacts",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setGradient("#808080","#ffffff",0,0,n,.308*i,mxConstants.DIRECTION_NORTH,1,1),e.setAlpha(.4),e.begin(),e.moveTo(0,.308*i),e.lineTo(0,a),e.arcTo(a,a,0,0,1,a,0),e.lineTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,.308*i),e.arcTo(1.5*n,1.8*i,0,0,1,0,.308*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxMockupC.SHAPE_ICALL_DIALOG,mxShapeMockupiCallDialog),mxUtils.extend(mxShapeMockupiCallButtons,mxShape),mxShapeMockupiCallButtons.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiCallButtons.prototype.background=function(e,t,o,n,i){e.setStrokeWidth(.5),e.setStrokeColor("#008cff"),e.setGradient("#0F1B2B","#4F5B6B",0,0,n,i,mxConstants.DIRECTION_NORTH,1,1),e.rect(0,0,n,i),e.fillAndStroke()},mxShapeMockupiCallButtons.prototype.foreground=function(e,t,o,n,i){e.begin(),e.moveTo(0,.1667*i),e.lineTo(n,.1667*i),e.moveTo(0,.3333*i),e.lineTo(n,.3333*i),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.moveTo(0,.6667*i),e.lineTo(n,.6667*i),e.moveTo(0,.8333*i),e.lineTo(n,.8333*i),e.moveTo(.3333*n,.1667*i),e.lineTo(.3333*n,i),e.moveTo(.6667*n,.1667*i),e.lineTo(.6667*n,i),e.stroke(),e.setFontSize(15.5),e.setFontColor("#ffffff"),e.setFontStyle(mxConstants.FONT_BOLD),e.text(.5*n,.0834*i,0,0,"(123) 456-7890",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.1667*n,.22*i,0,0,"1",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.22*i,0,0,"2",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8333*n,.22*i,0,0,"3",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.1667*n,.3867*i,0,0,"3",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.3867*i,0,0,"4",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8333*n,.3867*i,0,0,"5",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.1667*n,.5534*i,0,0,"6",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.5534*i,0,0,"7",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8333*n,.5534*i,0,0,"8",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontSize(27.5),e.text(.1667*n,.76*i,0,0,"*",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontSize(15.5),e.text(.5*n,.72*i,0,0,"0",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8333*n,.75*i,0,0,"#",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setGradient("#E2FFEB","#008215",.3333*n,.8333*i,.3333*n,.1667*i,mxConstants.DIRECTION_SOUTH,1,1),e.rect(.3333*n,.8333*i,.3333*n,.1667*i),e.fillAndStroke(),e.text(.5*n,.9168*i,0,0,"Call",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontStyle(0),e.setFontSize(8),e.setFontColor("#bbbbbb"),e.text(.5*n,.28*i,0,0,"ABC",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8333*n,.28*i,0,0,"DEF",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.1667*n,.4467*i,0,0,"GHI",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.4467*i,0,0,"JKL",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8333*n,.4467*i,0,0,"MNO",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.1667*n,.6134*i,0,0,"PQRS",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.6134*i,0,0,"TUV",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.8333*n,.6134*i,0,0,"WXYZ",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.78*i,0,0,"+",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFillColor("#ffffff"),e.begin(),e.moveTo(.1028*n,.9464*i),e.arcTo(.0862*n,.0652*i,0,0,1,.1402*n,.9333*i),e.arcTo(.0144*n,.0109*i,0,0,0,.1517*n,.9246*i),e.lineTo(.1524*n,.9181*i),e.arcTo(.023*n,.0326*i,0,0,1,.143*n,.8877*i),e.arcTo(.0247*n,.0187*i,0,0,1,.1919*n,.8877*i),e.arcTo(.023*n,.0326*i,0,0,1,.1847*n,.9181*i),e.arcTo(.0431*n,.0174*i,0,0,0,.1919*n,.9311*i),e.arcTo(.1437*n,.1087*i,0,0,1,.2307*n,.9453*i),e.lineTo(.2307*n,.9616*i),e.lineTo(.1028*n,.9616*i),e.close(),e.fill(),e.setStrokeColor("#ffffff"),e.setStrokeWidth(2.5),e.setLineJoin("round"),e.begin(),e.moveTo(.79*n,.89*i),e.lineTo(.9*n,.89*i),e.lineTo(.9*n,.95*i),e.lineTo(.79*n,.95*i),e.lineTo(.76*n,.92*i),e.close(),e.fillAndStroke(),e.setStrokeColor("#0F1B2B"),e.begin(),e.moveTo(.82*n,.907*i),e.lineTo(.85*n,.933*i),e.moveTo(.82*n,.933*i),e.lineTo(.85*n,.907*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_ICALL_BUTTONS,mxShapeMockupiCallButtons),mxUtils.extend(mxShapeMockupiOption,mxShape),mxShapeMockupiOption.prototype.customProperties=[{name:"buttonText",dispName:"Text",type:"string"},{name:"barPos",dispName:"Callout Position",type:"float",min:0,defVal:80},{name:"pointerPos",dispName:"Callout Orientation",type:"enum",enumList:[{val:"bottom",dispName:"Bottom"},{val:"top",dispName:"Top"}]}],mxShapeMockupiOption.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeMockupiOption.prototype.background=function(e,t,o,n,i){o=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80"),o=Math.min(o,100),o=Math.max(o,0),t=mxUtils.getValue(this.style,mxMockupC.POINTER_POS,mxMockupC.POINTER_BOTTOM),o=10+(n-20)*o/100,e.setStrokeWidth(.5),e.setStrokeColor("#000000"),e.setAlpha(.9),e.begin(),t===mxMockupC.POINTER_BOTTOM?(e.setGradient("#000000","#888888",0,0,n,i,mxConstants.DIRECTION_NORTH,1,1),e.moveTo(0,2.5),e.arcTo(2.5,2.5,0,0,1,2.5,0),e.lineTo(n-2.5,0),e.arcTo(2.5,2.5,0,0,1,n,2.5),e.lineTo(n,i-2.5-7.5),e.arcTo(2.5,2.5,0,0,1,n-2.5,i-7.5),e.lineTo(o+7.5,i-7.5),e.lineTo(o,i),e.lineTo(o-7.5,i-7.5),e.lineTo(2.5,i-7.5),e.arcTo(2.5,2.5,0,0,1,0,i-2.5-7.5)):t===mxMockupC.POINTER_TOP&&(e.setGradient("#000000","#888888",0,0,n,i,mxConstants.DIRECTION_NORTH,1,1),e.moveTo(0,10),e.arcTo(2.5,2.5,0,0,1,2.5,7.5),e.lineTo(o-7.5,7.5),e.lineTo(o,0),e.lineTo(o+7.5,7.5),e.lineTo(n-2.5,7.5),e.arcTo(2.5,2.5,0,0,1,n,10),e.lineTo(n,i-2.5),e.arcTo(2.5,2.5,0,0,1,n-2.5,i),e.lineTo(2.5,i),e.arcTo(2.5,2.5,0,0,1,0,i-2.5)),e.close(),e.fillAndStroke()},mxShapeMockupiOption.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Some Location"),o=mxUtils.getValue(this.style,mxMockupC.POINTER_POS,mxMockupC.POINTER_BOTTOM),e.setAlpha(1),e.setFontColor("#ffffff"),e.setFontSize(9.5),o===mxMockupC.POINTER_BOTTOM?e.text(.5*n,.5*(i-7.5),0,0,t,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):e.text(.5*n,.5*(i+7.5),0,0,t,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_IOPTION,mxShapeMockupiOption),mxUtils.extend(mxShapeMockupiAlphaList,mxShape),mxShapeMockupiAlphaList.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setShadow(!1),t=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8"),e.setFontColor("#999999"),e.setFontSize(t),e.text(.5*n,.069*i,0,0,"A",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.1035*i,0,0,"B",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.138*i,0,0,"C",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.1725*i,0,0,"D",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.207*i,0,0,"E",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.2415*i,0,0,"F",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.276*i,0,0,"G",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.3105*i,0,0,"H",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.345*i,0,0,"I",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.3795*i,0,0,"J",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.414*i,0,0,"K",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.4485*i,0,0,"L",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.483*i,0,0,"M",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.5175*i,0,0,"N",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.552*i,0,0,"O",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.5865*i,0,0,"P",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.621*i,0,0,"Q",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.6555*i,0,0,"R",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.69*i,0,0,"S",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.7245*i,0,0,"T",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.759*i,0,0,"U",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.7935*i,0,0,"V",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.828*i,0,0,"W",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.8625*i,0,0,"X",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.897*i,0,0,"Y",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.9315*i,0,0,"Z",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.text(.5*n,.966*i,0,0,"#",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setStrokeColor("#999999"),e.ellipse(.5*n-2.25,.0345*i-3.5,4.5,4.5),e.stroke(),e.begin(),e.moveTo(.5*n-4.25,.0345*i+3),e.lineTo(.5*n-1.75,.0345*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IALPHA_LIST,mxShapeMockupiAlphaList),mxUtils.extend(mxShapeMockupiHorButtonBar,mxShape),mxShapeMockupiHorButtonBar.prototype.customProperties=[{name:"buttonText",dispName:"Labels",type:"string"},{name:"textColor",dispName:"Text Color",type:"color"},{name:"textColor2",dispName:"Text2 Color",type:"color"},{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"}],mxShapeMockupiHorButtonBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),s=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR,"#666666"),l=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#ffffff"),r=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8.5").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxMockupC.STYLE_STROKECOLOR2,"#c4c4c4"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),x=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"#008cff"),c=a.length,u=Array(c),S=0,T=-1,d=0;d<c;d++){var C=a[d];C.charAt(0)===mxMockupC.SELECTED&&(C=a[d].substring(1),T=d),u[d]=mxUtils.getSizeForString(C,r,mxConstants.DEFAULT_FONTFAMILY).width,S+=u[d]}for(i=Math.max(i,1.5*r,10),S=5*c+S,n=Math.max(n,S),e.translate(t,o),this.background(e,n,i,2.5,c,u,2.5,S,p,m,h,x,T),e.setShadow(!1),d=t=0;d<c;d++)d===T?e.setFontColor(l):e.setFontColor(s),t+=2.5,this.buttonText(e,t,i,a[d],u[d],r,S,n),t=t+u[d]+2.5},mxShapeMockupiHorButtonBar.prototype.background=function(e,t,o,n,i,a,s,l,r,p,m,h,x){for(e.begin(),e.setStrokeColor(r),e.setFillColor(m),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.fillAndStroke(),e.setStrokeColor(p),e.begin(),p=1;p<i;p++)if(p!==x&&p!==x+1){for(var c=h=0;c<p;c++)h+=a[c]+2*s;h=h*t/l,e.moveTo(h,0),e.lineTo(h,o)}for(e.stroke(),h=0,e.setStrokeColor(mxConstants.NONE),p=0;p<x;p++)h+=a[p]+2*s;h=h*t/l,a=(a[x]+2*s)*t/l,a+=h,0===x?(e.setGradient("#5D7585","#008cff",0,0,a,o,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(a,0),e.lineTo(a,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.fill()):x===i-1?(e.setGradient("#5D7585","#008cff",h,0,a-h,o,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(h,0),e.lineTo(a-n,0),e.arcTo(n,n,0,0,1,a,n),e.lineTo(a,o-n),e.arcTo(n,n,0,0,1,a-n,o),e.lineTo(h,o),e.close(),e.fill()):-1!==x&&(e.setGradient("#5D7585","#008cff",h,0,a-h,o,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(h,0),e.lineTo(a,0),e.lineTo(a,o),e.lineTo(h,o),e.close(),e.fill()),e.setStrokeColor(r),e.setFillColor(m),e.begin(),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n),e.arcTo(n,n,0,0,1,t-n,o),e.lineTo(n,o),e.arcTo(n,n,0,0,1,0,o-n),e.close(),e.stroke()},mxShapeMockupiHorButtonBar.prototype.buttonText=function(e,t,o,n,i,a,s,l){n.charAt(0)===mxMockupC.SELECTED&&(n=n.substring(1)),e.begin(),e.setFontSize(a),e.text((t+.5*i)*l/s,.5*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_IHOR_BUTTON_BAR,mxShapeMockupiHorButtonBar),mxUtils.extend(mxShapeMockupiPin,mxShape),mxShapeMockupiPin.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"fillColor3",dispName:"Fill3 Color",type:"color"}],mxShapeMockupiPin.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"#000000"),s=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR3,"#000000"),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.setShadow(!1),e.translate(t,o),e.setStrokeWidth(1.5),e.setStrokeColor("#666666"),e.begin(),e.moveTo(.5*n,.4*i),e.lineTo(.5*n,i),e.stroke(),e.setStrokeWidth(1),e.setStrokeColor(l),e.setGradient(a,s,0,0,n,.4*i,mxConstants.DIRECTION_SOUTH,1,1),e.setAlpha(.9),e.ellipse(0,0,n,.4*i),e.fillAndStroke(),e.setFillColor("#ffffff"),e.setAlpha(.5),e.ellipse(.2*n,.08*i,.3*n,.12*i),e.fill()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IPIN,mxShapeMockupiPin),mxUtils.extend(mxShapeMockupiVideoControls,mxShape),mxShapeMockupiVideoControls.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:20}],mxShapeMockupiVideoControls.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setStrokeWidth(1),e.setFillColor("#000000"),e.setStrokeColor("#bbbbbb"),e.setAlpha(.7),e.roundrect(0,0,n,i,5,5),e.fillAndStroke(),e.setShadow(!1),this.foreground(e,n,i,5)},mxShapeMockupiVideoControls.prototype.foreground=function(e,t,o,n){e.setGradient("#ffffff","#ffffff",0,0,t,.5*o,mxConstants.DIRECTION_SOUTH,.8,.1),e.begin(),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,.5*o),e.lineTo(0,.5*o),e.close(),e.fill(),e.setAlpha(1),e.setFillColor("#ffffff"),e.setStrokeColor("#ffffff");var i=.1*t,a=.35*o;e.begin(),e.moveTo(i-7.5,a-2.5),e.arcTo(6,6,0,0,1,i,a-2.5),e.arcTo(6,6,0,0,1,i+7.5,a-2.5),e.lineTo(i+7.5,a+4),e.arcTo(6,6,0,0,0,i,a+4),e.arcTo(6,6,0,0,0,i-7.5,a+4),e.close(),e.stroke(),e.begin(),e.moveTo(i,a-2.5),e.lineTo(i,a+4),e.stroke(),i=.3*t,e.rect(i-7.5,a-5,1,10),e.fill(),e.begin(),e.moveTo(i-6.5,a),e.lineTo(i+.5,a-5),e.lineTo(i+.5,a+5),e.close(),e.fill(),e.begin(),e.moveTo(i+.5,a),e.lineTo(i+7.5,a-5),e.lineTo(i+7.5,a+5),e.close(),e.fill(),i=.5*t,e.begin(),e.moveTo(i-6,a-5),e.lineTo(i+6,a),e.lineTo(i-6,a+5),e.close(),e.fill(),i=.7*t,e.begin(),e.moveTo(i-7.5,a-5),e.lineTo(i-.5,a),e.lineTo(i-7.5,a+5),e.close(),e.fill(),e.begin(),e.moveTo(i-.5,a-5),e.lineTo(i+6.5,a),e.lineTo(i-.5,a+5),e.close(),e.fill(),e.rect(i+6.5,a-5,1,10),e.fill(),i=.9*t,e.rect(i-7.5,a-4,15,8),e.stroke(),e.setStrokeWidth(.5),e.begin(),e.moveTo(i-7.5,a-4),e.lineTo(i,a+1.5),e.lineTo(i+7.5,a-4),e.stroke(),e.begin(),e.moveTo(i-7.5,a+4),e.lineTo(i-2,a),e.stroke(),e.begin(),e.moveTo(i+7.5,a+4),e.lineTo(i+2,a),e.stroke(),e.setGradient("#444444","#ffffff",.1*t,.75*o-2.5,.8*t,5,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(.1*t,.75*o-2.5,.8*t,5,2.5,2.5),e.fill(),i=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80"),i=Math.min(i,100),i=(a=.1*t)+(t-2*a)*(i=Math.max(i,0))/100,e.setGradient("#96D1FF","#003377",.1*t,.75*o-5,i-.1*t,10,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(i,.75*o-2.5),e.lineTo(i,.75*o+2.5),e.lineTo(.1*t+2.5,.75*o+2.5),e.arcTo(2.5,2.5,0,0,1,.1*t+2.5,.75*o-2.5),e.close(),e.fill(),e.setStrokeColor("#999999"),e.setGradient("#444444","#ffffff",i-5,.75*o-5,10,10,mxConstants.DIRECTION_NORTH,1,1),e.ellipse(i-5,.75*o-5,10,10),e.fillAndStroke(),e.setStrokeColor("#dddddd"),e.roundrect(0,0,t,o,n,n),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IVIDEO_CONTROLS,mxShapeMockupiVideoControls),Graph.handleFactory[mxMockupC.SHAPE_IVIDEO_CONTROLS]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",40))));return new mxPoint(e.x+.1*e.width+t*e.width*.8/100,e.y+.75*e.height)}),(function(e,t){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(t.x-.1*e.width-e.x)/(.8*e.width))))/100}))]},mxUtils.extend(mxShapeMockupiURLBar,mxShape),mxShapeMockupiURLBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setGradient("#cccccc","#003377",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.rect(0,0,n,i),e.fill(),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupiURLBar.prototype.foreground=function(e,t,o){e.setStrokeWidth(.5),e.setFillColor("#ffffff"),e.setStrokeColor("#008cff"),e.roundrect(.0287*t,.625*o-6.25,.7184*t,12.5,6.25,6.25),e.fillAndStroke(),e.setGradient("#cccccc","#001144",.7816*t,.625*o-6.25,.1868*t,12.5,mxConstants.DIRECTION_SOUTH,1,1),e.setStrokeColor("#000000"),e.roundrect(.7816*t,.625*o-6.25,.1868*t,12.5,2.5,2.5),e.fillAndStroke(),e.setFillColor("#bbbbbb"),e.ellipse(.7471*t-11.5,.625*o-5,10,10),e.fill(),e.setStrokeColor("#ffffff"),e.setStrokeWidth(1.5),e.begin(),e.moveTo(.7471*t-8.5,.625*o-2.5),e.lineTo(.7471*t-3.5,.625*o+2.5),e.moveTo(.7471*t-8.5,.625*o+2.5),e.lineTo(.7471*t-3.5,.625*o-2.5),e.stroke();var n=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"").toString().split(",");e.setFontColor("#425664"),e.setFontStyle(mxConstants.FONT_BOLD),e.setFontSize(8),e.text(.5*t,.2*o,0,0,n[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontColor("#000000"),e.text(.06*t,.625*o,0,0,n[1],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontColor("#ffffff"),e.text(.875*t,.625*o,0,0,n[2],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_IURL_BAR,mxShapeMockupiURLBar),mxUtils.extend(mxShapeMockupiSlider,mxShape),mxShapeMockupiSlider.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:20}],mxShapeMockupiSlider.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupiSlider.prototype.foreground=function(e,t,o){e.setStrokeWidth(.5),e.setGradient("#444444","#ffffff",0,.5*o-2.5,t,5,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(0,.5*o-2.5,t,5,2.5,2.5),e.fill();var n=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80");n=Math.min(n,100),t=0+(t-0)*(n=Math.max(n,0))/100,e.setGradient("#96D1FF","#003377",2.5,.5*o-2.5,t-2.5,5,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(t,.5*o-2.5),e.lineTo(t,.5*o+2.5),e.lineTo(2.5,.5*o+2.5),e.arcTo(2.5,2.5,0,0,1,2.5,.5*o-2.5),e.close(),e.fill(),e.setStrokeColor("#999999"),e.setGradient("#444444","#ffffff",t-5,.5*o-5,10,10,mxConstants.DIRECTION_NORTH,1,1),e.ellipse(t-5,.5*o-5,10,10),e.fillAndStroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_ISLIDER,mxShapeMockupiSlider),Graph.handleFactory[mxMockupC.SHAPE_ISLIDER]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(e.x+t*e.width/100,e.y+e.height/2)}),(function(e,t){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeMockupiProgressBar,mxShape),mxShapeMockupiProgressBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:40}],mxShapeMockupiProgressBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupiProgressBar.prototype.foreground=function(e,t,o){e.setStrokeWidth(.5),e.setGradient("#444444","#ffffff",0,.5*o-2.5,t,5,mxConstants.DIRECTION_SOUTH,1,1),e.roundrect(0,.5*o-2.5,t,5,2.5,2.5),e.fill();var n=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80");n=Math.min(n,100),t=0+(t-0)*(n=Math.max(n,0))/100,e.setGradient("#96D1FF","#003377",2.5,.5*o-2.5,t-2.5,5,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(t,.5*o-2.5),e.arcTo(2.5,2.5,0,0,1,t,.5*o+2.5),e.lineTo(2.5,.5*o+2.5),e.arcTo(2.5,2.5,0,0,1,2.5,.5*o-2.5),e.close(),e.fill()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IPROGRESS_BAR,mxShapeMockupiProgressBar),Graph.handleFactory[mxMockupC.SHAPE_IPROGRESS_BAR]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(e.x+t*e.width/100,e.y+e.height/2)}),(function(e,t){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeMockupiCloudProgressBar,mxShape),mxShapeMockupiCloudProgressBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:20}],mxShapeMockupiCloudProgressBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupiCloudProgressBar.prototype.foreground=function(e,t,o){e.setStrokeWidth(.5),e.setFillColor("#5C6E86"),e.rect(0,.5*o-2.5,t,5),e.fill();var n=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80");n=Math.min(n,100),t=0+(t-0)*(n=Math.max(n,0))/100,e.setFillColor("#8AD155"),e.rect(0,.5*o-2.5,t,5),e.fill()},mxCellRenderer.registerShape(mxMockupC.SHAPE_ICLOUD_PROGRESS_BAR,mxShapeMockupiCloudProgressBar),Graph.handleFactory[mxMockupC.SHAPE_ICLOUD_PROGRESS_BAR]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(e.x+t*e.width/100,e.y+e.height/2)}),(function(e,t){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeMockupiDownloadBar,mxShape),mxShapeMockupiDownloadBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:30}],mxShapeMockupiDownloadBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setGradient("#00ccff","#0066cc",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.rect(0,0,n,i),e.fill(),e.setShadow(!1),this.foreground(e,n,i)},mxShapeMockupiDownloadBar.prototype.foreground=function(e,t,o){var n=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"");e.setFontColor("#ffffff"),e.setFontStyle(mxConstants.FONT_BOLD),e.setFontSize(8),e.text(.5*t,.2*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);var i=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80");i=Math.min(i,100),i=(n=.1*t)+(t-2*n)*(i=Math.max(i,0))/100,e.setStrokeWidth(.5),e.setGradient("#96D1FF","#003377",n,.65*o-2.5,t-2*n,5,mxConstants.DIRECTION_NORTH,1,1),e.roundrect(n,.65*o-2.5,t-2*n,5,2.5,2.5),e.fill(),e.setGradient("#aaaaaa","#ffffff",n+2.5,.65*o-2.5,i-n-2.5,5,mxConstants.DIRECTION_NORTH,1,1),e.begin(),e.moveTo(i,.65*o-2.5),e.arcTo(2.5,2.5,0,0,1,i,.65*o+2.5),e.lineTo(n+2.5,.65*o+2.5),e.arcTo(2.5,2.5,0,0,1,n+2.5,.65*o-2.5),e.close(),e.fill()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IDOWNLOAD_BAR,mxShapeMockupiDownloadBar),Graph.handleFactory[mxMockupC.SHAPE_IDOWNLOAD_BAR]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",40))));return new mxPoint(e.x+.1*e.width+t*e.width*.8/100,e.y+.65*e.height)}),(function(e,t){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(t.x-.1*e.width-e.x)/(.8*e.width))))/100}))]},mxUtils.extend(mxShapeMockupiScreenNameBar,mxShape),mxShapeMockupiScreenNameBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setStrokeWidth(.5),t=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"#00ff00"),e.setFillColor(t),e.rect(0,0,n,i),e.fill(),e.setShadow(!1),this.foreground(e,n,i,5)},mxShapeMockupiScreenNameBar.prototype.foreground=function(e,t,o,n){n=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR3,"#00ff00"),e.setGradient(n,n,0,0,t,.5*o,mxConstants.DIRECTION_SOUTH,.8,.1),e.rect(0,0,t,.5*o),e.fill(),n=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"");var i=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR,"#00ff00");e.setFontColor(i),e.setFontSize(9.5),e.text(.5*t,.45*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_ISCREEN_NAME_BAR,mxShapeMockupiScreenNameBar),mxUtils.extend(mxShapeMockupiIconGrid,mxShape),mxShapeMockupiIconGrid.prototype.customProperties=[{name:"gridSize",dispName:"Grid Size",type:"string"}],mxShapeMockupiIconGrid.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxMockupC.GRID_SIZE,"3,3").toString().split(","),this.background(e,n,i,t),e.setShadow(!1),this.foreground(e,n,i,t)},mxShapeMockupiIconGrid.prototype.background=function(e,t,o,n){var i=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#00ff00"),a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#00ff00");for(e.setStrokeColor(a),e.setFillColor(i),t/=parseInt(n[0],10)+.5*(n[0]-1),o/=parseInt(n[1],10)+.5*(n[1]-1),i=0;i<n[0];i++)for(a=0;a<n[1];a++)e.rect(1.5*t*i,1.5*o*a,t,o),e.fillAndStroke()},mxShapeMockupiIconGrid.prototype.foreground=function(e,t,o,n){t/=parseInt(n[0],10)+.5*(n[0]-1),o/=parseInt(n[1],10)+.5*(n[1]-1);for(var i=0;i<n[0];i++)for(var a=0;a<n[1];a++)e.begin(),e.moveTo(1.5*t*i,1.5*o*a),e.lineTo(1.5*t*i+t,1.5*o*a+o),e.moveTo(1.5*t*i+t,1.5*o*a),e.lineTo(1.5*t*i,1.5*o*a+o),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IICON_GRID,mxShapeMockupiIconGrid),mxUtils.extend(mxShapeMockupiCopy,mxShape),mxShapeMockupiCopy.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i,5),e.setShadow(!1),this.foreground(e,n,i,5)},mxShapeMockupiCopy.prototype.background=function(e,t,o,n){e.begin(),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,o-n-7.5),e.arcTo(n,n,0,0,1,t-n,o-7.5),e.lineTo(.5*t+7.5,o-7.5),e.lineTo(.5*t,o),e.lineTo(.5*t-7.5,o-7.5),e.lineTo(n,o-7.5),e.arcTo(n,n,0,0,1,0,o-n-7.5),e.close(),e.fillAndStroke()},mxShapeMockupiCopy.prototype.foreground=function(e,t,o,n){var i=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR3,"#00ff00");e.setGradient(i,i,0,0,t,.5*o,mxConstants.DIRECTION_SOUTH,.8,.1),e.begin(),e.moveTo(0,n),e.arcTo(n,n,0,0,1,n,0),e.lineTo(t-n,0),e.arcTo(n,n,0,0,1,t,n),e.lineTo(t,.5*(o-7.5)),e.lineTo(0,.5*(o-7.5)),e.close(),e.fill(),n=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,""),i=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR,"#00ff00"),e.setFontColor(i),e.setFontSize(8.5),e.text(.5*t,.45*(o-7.5),0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_ICOPY,mxShapeMockupiCopy),mxUtils.extend(mxShapeMockupiCopyArea,mxShape),mxShapeMockupiCopyArea.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i,5),e.setShadow(!1),this.foreground(e,n,i,5)},mxShapeMockupiCopyArea.prototype.background=function(e,t,o,n){e.begin(),e.moveTo(.5*t-20,0+n),e.arcTo(n,n,0,0,1,.5*t-20+n,0),e.lineTo(.5*t+20-n,0),e.arcTo(n,n,0,0,1,.5*t+20,n),e.lineTo(.5*t+20,20-n),e.arcTo(n,n,0,0,1,.5*t+20-n,20),e.lineTo(.5*t+7.5,20),e.lineTo(.5*t,27.5),e.lineTo(.5*t-7.5,20),e.lineTo(.5*t-20+n,20),e.arcTo(n,n,0,0,1,.5*t-20,20-n),e.close(),e.fillAndStroke()},mxShapeMockupiCopyArea.prototype.foreground=function(e,t,o,n){e.setAlpha(.3),e.setFillColor("#2266ff"),e.rect(2.5,27.5,t-5,o-30),e.fill(),e.setAlpha(1),27.5<o&&(e.setStrokeColor("#ffffff"),e.setGradient("#88ddff","#2266ff",.5*t-2.5,25,5,5,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(.5*t-2.5,25,5,5),e.fillAndStroke(),e.setGradient("#88ddff","#2266ff",.5*t-2.5,o-5,5,5,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(.5*t-2.5,o-5,5,5),e.fillAndStroke(),e.setGradient("#88ddff","#2266ff",0,.5*o+10,5,5,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(0,.5*o+10,5,5),e.fillAndStroke(),e.setGradient("#88ddff","#2266ff",t-5,.5*o+10,5,5,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(t-5,.5*o+10,5,5),e.fillAndStroke()),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"#00ff00");var i=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#00ff00");e.setFillColor(o),e.setStrokeColor(i),e.begin(),e.moveTo(.5*t-20,0+n),e.arcTo(n,n,0,0,1,.5*t-20+n,0),e.lineTo(.5*t+20-n,0),e.arcTo(n,n,0,0,1,.5*t+20,n),e.lineTo(.5*t+20,20-n),e.arcTo(n,n,0,0,1,.5*t+20-n,20),e.lineTo(.5*t+7.5,20),e.lineTo(.5*t,27.5),e.lineTo(.5*t-7.5,20),e.lineTo(.5*t-20+n,20),e.arcTo(n,n,0,0,1,.5*t-20,20-n),e.close(),e.fillAndStroke(),o=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR3,"#00ff00"),e.setGradient(o,o,.5*t-20,0,40,10,mxConstants.DIRECTION_SOUTH,.8,.1),e.begin(),e.moveTo(.5*t-20,n),e.arcTo(n,n,0,0,1,.5*t-20+n,0),e.lineTo(.5*t+20-n,0),e.arcTo(n,n,0,0,1,.5*t+20,n),e.lineTo(.5*t+20,10),e.lineTo(.5*t-20,10),e.close(),e.fill(),n=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,""),o=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR,"#00ff00"),e.setFontColor(o),e.setFontSize(8.5),e.text(.5*t,8.75,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxMockupC.SHAPE_ICOPY_AREA,mxShapeMockupiCopyArea),mxUtils.extend(mxShapeMockupiHomePageControl,mxShape),mxShapeMockupiHomePageControl.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#000000"),o=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setStrokeColor(o),e.setFillColor(t),t=Math.min(.5*i,.05*n),e.ellipse(.35*n-t,.5*i-t,2*t,2*t),e.fill(),e.ellipse(.65*n-t,.5*i-t,2*t,2*t),e.fill(),e.ellipse(n-2*t,.5*i-t,2*t,2*t),e.fill(),e.ellipse(.2*t,.5*i-.8*t,1.2*t,1.2*t),e.stroke(),e.begin(),e.moveTo(1.15*t,.5*i+.25*t),e.lineTo(1.6*t,.5*i+.8*t),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IHOME_PAGE_CONTROL,mxShapeMockupiHomePageControl),mxUtils.extend(mxShapeMockupiPageControl,mxShape),mxShapeMockupiPageControl.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#000000"),o=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");var a=Math.min(.5*i,.05*n);e.setFillColor(o),e.ellipse(0,.5*i-a,2*a,2*a),e.fill(),e.setFillColor(t),e.ellipse(.35*n-a,.5*i-a,2*a,2*a),e.fill(),e.ellipse(.65*n-a,.5*i-a,2*a,2*a),e.fill(),e.ellipse(n-2*a,.5*i-a,2*a,2*a),e.fill()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IPAGE_CONTROL,mxShapeMockupiPageControl),mxUtils.extend(mxShapeMockupiPad,mxShape),mxShapeMockupiPad.prototype.customProperties=[{name:"bgStyle",dispName:"Background",type:"enum",enumList:[{val:"bgGreen",dispName:"Green"},{val:"bgWhite",dispName:"White"},{val:"bgGray",dispName:"Gray"},{val:"bgFlat",dispName:"Flat"},{val:"bgMap",dispName:"Map"},{val:"bgStriped",dispName:"Striped"}]}],mxShapeMockupiPad.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i,25),e.setShadow(!1),this.foreground(e,t,o,n,i,25)},mxShapeMockupiPad.prototype.background=function(e,t,o,n,i,a){e.setFillColor("#000000"),e.setStrokeColor("#000000"),e.roundrect(0,0,n,i,a,a),e.fillAndStroke()},mxShapeMockupiPad.prototype.foreground=function(e,t,o,n,i,a){if(e.setStrokeWidth(1.5),e.setStrokeColor("#999999"),e.begin(),e.setStrokeColor("none"),e.setFillColor("#808080"),e.setGradient("#808080","#000000",.325*n,0,.675*n,.5*i,mxConstants.DIRECTION_SOUTH,1,1),e.moveTo(.325*n,0),e.lineTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,.5*i),e.lineTo(.7*n,.5*i),e.close(),e.fillAndStroke(),e.begin(),e.setFillColor("#1f2923"),e.setStrokeColor("#18211b"),e.setStrokeWidth(1),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,""),o=mxUtils.getValue(this.style,mxMockupC.BG_STYLE,mxMockupC.BG_FLAT_GREEN),e.setStrokeWidth(1),o===mxMockupC.BG_FLAT_WHITE)e.setFillColor("#ffffff"),e.rect(.0928*n,.08*i,.8144*n,.816*i),e.fill();else if(o===mxMockupC.BG_FLAT_GREEN)e.setFillColor("#1f2923"),e.rect(.0928*n,.08*i,.8144*n,.816*i),e.fill();else if(o===mxMockupC.BG_FLAT_GRAY)e.setFillColor("#dddddd"),e.rect(.0928*n,.08*i,.8144*n,.816*i),e.fill();else if(o===mxMockupC.BG_FLAT_CUSTOM)e.setFillColor(t),e.rect(.0928*n,.08*i,.8144*n,.816*i),e.fill();else if(o===mxMockupC.BG_STRIPED){t=n,o=i,e.translate(.0928*n,.08*i),n*=.8144,i*=.816,e.setFillColor("#5D7585"),e.rect(0,0,n,i),e.fillAndStroke(),e.setStrokeColor("#657E8F");var s=7;for(e.begin();s<n;)e.moveTo(s,0),e.lineTo(s,i),s+=7;e.stroke(),e.setStrokeColor("#18211b"),e.begin(),e.rect(0,0,n,i),e.stroke(),n=t,i=o,e.translate(.0928*-n,.08*-i)}else o===mxMockupC.BG_MAP&&(t=n,o=i,e.translate(.0928*n,.08*i),n*=.8144,i*=.816,e.setFillColor("#ffffff"),e.rect(0,0,n,i),e.fillAndStroke(),e.setFillColor("#96D1FF"),e.setStrokeColor("#008cff"),e.setStrokeWidth(.5),e.begin(),e.moveTo(0,0),e.lineTo(.1171*n,0),e.lineTo(.1136*n,.0438*i),e.lineTo(.0993*n,.054*i),e.lineTo(0,.0446*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.1993*n,0),e.lineTo(.1914*n,.03884*i),e.lineTo(.1536*n,.0362*i),e.lineTo(.1586*n,0),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.24*n,0),e.lineTo(.2257*n,.054*i),e.lineTo(.2414*n,.0674*i),e.lineTo(.4707*n,.0835*i),e.lineTo(.5264*n,.0906*i),e.lineTo(.6429*n,.0929*i),e.arcTo(.0857*n,.0536*i,0,0,0,.7193*n,.0621*i),e.arcTo(.48*n,.2143*i,0,0,0,.7286*n,0),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8*n,0),e.lineTo(.7886*n,.04554*i),e.arcTo(.0857*n,.0536*i,0,0,0,.8164*n,.0875*i),e.arcTo(.1429*n,.0893*i,0,0,0,.88*n,.1036*i),e.lineTo(n,.1112*i),e.lineTo(n,0),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.0933*i),e.lineTo(.08*n,.1036*i),e.lineTo(.1021*n,.1246*i),e.lineTo(.1007*n,.1768*i),e.lineTo(.0471*n,.2241*i),e.lineTo(0,.2527*i),e.close(),e.fillAndStroke(),e.ellipse(.1214*n,.0603*i,.0843*n,.0576*i),e.fillAndStroke(),e.begin(),e.moveTo(.1293*n,.1924*i),e.lineTo(.1729*n,.142*i),e.lineTo(.1407*n,.1411*i),e.lineTo(.14*n,.1777*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4586*n,.1241*i),e.lineTo(.455*n,.1835*i),e.lineTo(.3893*n,.2246*i),e.lineTo(.2171*n,.1362*i),e.lineTo(.2171*n,.1308*i),e.lineTo(.2293*n,.1214*i),e.lineTo(.2857*n,.1174*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5079*n,.1134*i),e.lineTo(.7307*n,.1223*i),e.lineTo(.7279*n,.1625*i),e.lineTo(.715*n,.1772*i),e.lineTo(.6929*n,.1688*i),e.lineTo(.625*n,.1795*i),e.lineTo(.4779*n,.2835*i),e.lineTo(.395*n,.2299*i),e.lineTo(.4657*n,.1826*i),e.lineTo(.4707*n,.1223*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.1362*i),e.lineTo(.7643*n,.1237*i),e.lineTo(.7543*n,.1562*i),e.lineTo(.7643*n,.1585*i),e.lineTo(.9186*n,.2366*i),e.lineTo(n,.1732*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2079*n,.1545*i),e.lineTo(.3886*n,.2536*i),e.lineTo(.3414*n,.2933*i),e.lineTo(.1743*n,.1969*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.1579*n,.2134*i),e.lineTo(.3221*n,.3067*i),e.lineTo(.2957*n,.3237*i),e.lineTo(.1157*n,.2424*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.405*n,.2656*i),e.lineTo(.31*n,.3353*i),e.lineTo(.3693*n,.3661*i),e.lineTo(.4571*n,.2982*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.7121*n,.1848*i),e.lineTo(.6879*n,.1754*i),e.lineTo(.6329*n,.1844*i),e.lineTo(.61*n,.2018*i),e.lineTo(.6207*n,.2085*i),e.lineTo(.4986*n,.2982*i),e.lineTo(.535*n,.3237*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5557*n,.3379*i),e.lineTo(.7464*n,.1826*i),e.lineTo(.8036*n,.2076*i),e.lineTo(.595*n,.3616*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8293*n,.2188*i),e.lineTo(.8979*n,.2509*i),e.lineTo(.6936*n,.4125*i),e.lineTo(.6171*n,.3737*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.2138*i),e.lineTo(.6821*n,.4603*i),e.lineTo(.815*n,.5277*i),e.lineTo(n,.4*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.317*i),e.lineTo(.0971*n,.2554*i),e.lineTo(.4121*n,.4143*i),e.lineTo(.3736*n,.4415*i),e.lineTo(.315*n,.4076*i),e.lineTo(.3093*n,.4116*i),e.lineTo(.3686*n,.4455*i),e.lineTo(.285*n,.5045*i),e.lineTo(.1114*n,.4134*i),e.lineTo(.025*n,.4603*i),e.lineTo(.0371*n,.4723*i),e.lineTo(.1114*n,.4371*i),e.lineTo(.2871*n,.5312*i),e.lineTo(.1929*n,.6058*i),e.lineTo(.2271*n,.6705*i),e.lineTo(.17*n,.7147*i),e.lineTo(.0314*n,.6321*i),e.lineTo(0,.6246*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.48*n,.3121*i),e.lineTo(.5157*n,.3375*i),e.lineTo(.4314*n,.3982*i),e.lineTo(.3929*n,.3786*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3086*n,.5179*i),e.lineTo(.53*n,.3518*i),e.lineTo(.5757*n,.3745*i),e.lineTo(.3479*n,.5411*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5964*n,.3884*i),e.lineTo(.6736*n,.4277*i),e.lineTo(.445*n,.5991*i),e.lineTo(.3664*n,.5531*i),e.lineTo(.5057*n,.4545*i),e.lineTo(.5507*n,.4754*i),e.lineTo(.5571*n,.4723*i),e.lineTo(.5114*n,.4504*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4793*n,.6161*i),e.lineTo(.6771*n,.4643*i),e.lineTo(.8086*n,.5326*i),e.lineTo(.7471*n,.5817*i),e.lineTo(.7214*n,.567*i),e.lineTo(.715*n,.571*i),e.lineTo(.7421*n,.5871*i),e.lineTo(.6014*n,.6933*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.4371*i),e.lineTo(.8443*n,.546*i),e.lineTo(.9071*n,.5701*i),e.lineTo(n,.5022*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8407*n,.5504*i),e.lineTo(.8993*n,.5759*i),e.lineTo(.6757*n,.7416*i),e.lineTo(.6286*n,.7139*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.5321*i),e.lineTo(.6979*n,.7549*i),e.lineTo(.7457*n,.7781*i),e.lineTo(.9814*n,.6094*i),e.lineTo(n,.6067*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,.6254*i),e.lineTo(.7664*n,.792*i),e.lineTo(.9586*n,.9062*i),e.lineTo(n,.8786*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3093*n,.5464*i),e.lineTo(.4271*n,.6152*i),e.lineTo(.245*n,.7643*i),e.lineTo(.185*n,.7228*i),e.lineTo(.2493*n,.6728*i),e.lineTo(.2214*n,.6143*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.65*i),e.lineTo(.2179*n,.7826*i),e.lineTo(.1136*n,.8424*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.7272*i),e.lineTo(.0821*n,.859*i),e.lineTo(0,.9085*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4529*n,.6366*i),e.lineTo(.575*n,.7143*i),e.lineTo(.39*n,.8621*i),e.lineTo(.2657*n,.7902*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,.9415*i),e.lineTo(.1036*n,.8821*i),e.lineTo(.2343*n,.959*i),e.lineTo(.1721*n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2586*n,.7951*i),e.lineTo(.3829*n,.8674*i),e.lineTo(.2543*n,.9451*i),e.lineTo(.1279*n,.8692*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2836*n,.9639*i),e.lineTo(.4207*n,.8772*i),e.lineTo(.605*n,.7321*i),e.lineTo(.6521*n,.7634*i),e.lineTo(.3486*n,i),e.lineTo(.3393*n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3879*n,i),e.lineTo(.6721*n,.7759*i),e.lineTo(.7171*n,.7982*i),e.lineTo(.4564*n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.4986*n,i),e.lineTo(.7386*n,.8125*i),e.lineTo(.9307*n,.925*i),e.lineTo(.8264*n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.8671*n,i),e.lineTo(.9464*n,.9491*i),e.lineTo(n,.975*i),e.lineTo(n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.2295*n,i),e.lineTo(.2648*n,.9792*i),e.lineTo(.2981*n,i),e.close(),e.fillAndStroke(),n=t,i=o,e.translate(.0928*-n,.08*-i));e.setStrokeWidth(1),e.setStrokeColor("#18211b"),e.rect(.0928*n,.08*i,.8144*n,.816*i),e.stroke(),e.setStrokeWidth(1.5),e.setAlpha(.8),e.setStrokeColor("#dddddd"),e.begin(),e.moveTo(0,a),e.arcTo(a,a,0,0,1,a,0),e.lineTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,i-a),e.arcTo(a,a,0,0,1,n-a,i),e.lineTo(a,i),e.arcTo(a,a,0,0,1,0,i-a),e.close(),e.stroke(),a=22.5,e.begin(),e.setStrokeColor("#666666"),e.begin(),e.moveTo(2.5,2.5+a),e.arcTo(a,a,0,0,1,2.5+a,2.5),e.lineTo(n-a-5,2.5),e.arcTo(a,a,0,0,1,n-2.5,a+2.5),e.lineTo(n-2.5,i-a-2.5),e.arcTo(a,a,0,0,1,n-a-2.5,i-2.5),e.lineTo(a+2.5,i-2.5),e.arcTo(a,a,0,0,1,2.5,i-a-2.5),e.close(),e.stroke(),e.setAlpha(1),e.ellipse(.4948*n,.0444*i,.0103*n,.008*i),e.setStrokeWidth(2.5),e.setStrokeColor("#000000"),e.setFillColor("#000099"),e.fillAndStroke(),e.setGradient("#bbbbbb","#000000",.4588*n,.912*i,.0825*n,.064*i,mxConstants.DIRECTION_SOUTH,1,1),e.ellipse(.4588*n,.912*i,.0825*n,.064*i),e.fill(),e.setAlpha(.5),e.ellipse(.4588*n,.912*i,.0825*n,.064*i),e.stroke(),e.begin(),e.setAlpha(.85),e.setFillColor("#000000"),e.moveTo(.4598*n,.944*i),e.arcTo(.0402*n,.0296*i,0,0,1,.5402*n,.944*i),e.arcTo(.0825*n,.064*i,0,0,1,.4598*n,.944*i),e.close(),e.fillAndStroke(),e.begin(),e.setAlpha(.7),e.setStrokeWidth(1.5),e.setStrokeColor("#dddddd"),e.roundrect(.4814*n,.9296*i,.0371*n,.0288*i,.00515*i,.004*i),e.stroke()},mxCellRenderer.registerShape(mxMockupC.SHAPE_IPAD,mxShapeMockupiPad),mxUtils.extend(mxShapeMockupRRect,mxShape),mxShapeMockupRRect.prototype.cst={RRECT:"mxgraph.ios.rrect",R_SIZE:"rSize"},mxShapeMockupRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:5}],mxShapeMockupRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupRRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeMockupRRect.prototype.cst.RRECT,mxShapeMockupRRect),mxUtils.extend(mxShapeIosTopButton,mxShape),mxShapeIosTopButton.prototype.cst={TOP_BUTTON:"mxgraph.ios.topButton",R_SIZE:"rSize"},mxShapeIosTopButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:5}],mxShapeIosTopButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeIosTopButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeIosTopButton.prototype.cst.TOP_BUTTON,mxShapeIosTopButton),mxUtils.extend(mxShapeIosBottomButton,mxShape),mxShapeIosBottomButton.prototype.cst={BOTTOM_BUTTON:"mxgraph.ios.bottomButton",R_SIZE:"rSize"},mxShapeIosBottomButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:5}],mxShapeIosBottomButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeIosBottomButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i-t),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(t,i),e.arcTo(t,t,0,0,1,0,i-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeIosBottomButton.prototype.cst.BOTTOM_BUTTON,mxShapeIosBottomButton),mxUtils.extend(mxShapeIosAnchor,mxShape),mxShapeIosAnchor.prototype.cst={ANCHOR:"mxgraph.ios.anchor"},mxShapeIosAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeIosAnchor.prototype.cst.ANCHOR,mxShapeIosAnchor),mxUtils.extend(mxShapeIosCheckbox,mxShape),mxShapeIosCheckbox.prototype.cst={CHECKBOX:"mxgraph.ios.checkbox"},mxShapeIosCheckbox.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,n,i),e.fillAndStroke(),e.begin(),e.moveTo(.8*n,.2*i),e.lineTo(.4*n,.8*i),e.lineTo(.25*n,.6*i),e.stroke()},mxCellRenderer.registerShape(mxShapeIosCheckbox.prototype.cst.CHECKBOX,mxShapeIosCheckbox),mxUtils.extend(mxShapeMockupFancyRRect,mxShape),mxShapeMockupFancyRRect.prototype.cst={FANCY_RRECT:"mxgraph.ios.fancyRRect",R_SIZE:"rSize"},mxShapeMockupFancyRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:8}],mxShapeMockupFancyRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeMockupFancyRRect.prototype.cst.R_SIZE,"10")),o=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.roundrect(0,0,n,i,t),e.fillAndStroke(),e.setShadow(!1),e.setStrokeColor(o),e.setGradient(o,"#ffffff",0,0,n,22.5,mxConstants.DIRECTION_SOUTH,1,1),e.setAlpha(.3),e.begin(),e.moveTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,17.5),e.arcTo(1.67*n,2.5*i,0,0,1,0,17.5),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.close(),e.fillAndStroke(),e.setAlpha(.8),e.setStrokeColor(a),e.setStrokeWidth(1),e.roundrect(0,0,n,i,t,t),e.stroke()},mxCellRenderer.registerShape(mxShapeMockupFancyRRect.prototype.cst.FANCY_RRECT,mxShapeMockupFancyRRect),mxUtils.extend(mxShapeAws3dArrowNE,mxShape),mxShapeAws3dArrowNE.prototype.cst={ARROW_NE:"mxgraph.aws3d.arrowNE"},mxShapeAws3dArrowNE.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(n-17,8),e.lineTo(n-21,5.5),e.lineTo(n,0),e.lineTo(n-9.7,12.2),e.lineTo(n-13.9,9.8),e.lineTo(9.7,i-3.5),e.arcTo(6,3,0,0,1,9,i-.4),e.arcTo(5.2,3,0,0,1,1,i-1.4),e.arcTo(6,2.8,0,0,1,3,i-5.4),e.arcTo(5,3,0,0,1,6.7,i-5.2),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAws3dArrowNE.prototype.cst.ARROW_NE,mxShapeAws3dArrowNE),mxUtils.extend(mxShapeAws3dArrowSE,mxShape),mxShapeAws3dArrowSE.prototype.cst={ARROW_SE:"mxgraph.aws3d.arrowSE"},mxShapeAws3dArrowSE.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(n-17,i-8),e.lineTo(n-21,i-5.5),e.lineTo(n,i),e.lineTo(n-9.7,i-12.2),e.lineTo(n-13.9,i-9.8),e.lineTo(9.7,3.5),e.arcTo(6,3,0,0,0,9,.4),e.arcTo(5.2,3,0,0,0,1,1.4),e.arcTo(6,2.8,0,0,0,3,5.4),e.arcTo(5,3,0,0,0,6.7,5.2),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAws3dArrowSE.prototype.cst.ARROW_SE,mxShapeAws3dArrowSE),mxUtils.extend(mxShapeAws3dArrowSW,mxShape),mxShapeAws3dArrowSW.prototype.cst={ARROW_SW:"mxgraph.aws3d.arrowSW"},mxShapeAws3dArrowSW.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(17,i-8),e.lineTo(21,i-5.5),e.lineTo(0,i),e.lineTo(9.7,i-12.2),e.lineTo(13.9,i-9.8),e.lineTo(n-9.7,3.5),e.arcTo(6,3,0,0,1,n-9,.4),e.arcTo(5.2,3,0,0,1,n-1,1.4),e.arcTo(6,2.8,0,0,1,n-3,5.4),e.arcTo(5,3,0,0,1,n-6.7,5.2),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAws3dArrowSW.prototype.cst.ARROW_SW,mxShapeAws3dArrowSW),mxUtils.extend(mxShapeAws3dArrowNW,mxShape),mxShapeAws3dArrowNW.prototype.cst={ARROW_NW:"mxgraph.aws3d.arrowNW"},mxShapeAws3dArrowNW.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(17,8),e.lineTo(21,5.5),e.lineTo(0,0),e.lineTo(9.7,12.2),e.lineTo(13.9,9.8),e.lineTo(n-9.7,i-3.5),e.arcTo(6,3,0,0,0,n-9,i-.4),e.arcTo(5.2,3,0,0,0,n-1,i-1.4),e.arcTo(6,2.8,0,0,0,n-3,i-5.4),e.arcTo(5,3,0,0,0,n-6.7,i-5.2),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAws3dArrowNW.prototype.cst.ARROW_NW,mxShapeAws3dArrowNW),mxUtils.extend(mxShapeAws3dArrowlessNE,mxShape),mxShapeAws3dArrowlessNE.prototype.cst={ARROWLESS_NE:"mxgraph.aws3d.arrowlessNE"},mxShapeAws3dArrowlessNE.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(n-3.1,0),e.lineTo(n,1.8),e.lineTo(9.7,i-3.5),e.arcTo(6,3,0,0,1,9,i-.4),e.arcTo(5.2,3,0,0,1,1,i-1.4),e.arcTo(6,2.8,0,0,1,3,i-5.4),e.arcTo(5,3,0,0,1,6.7,i-5.2),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAws3dArrowlessNE.prototype.cst.ARROWLESS_NE,mxShapeAws3dArrowlessNE),mxUtils.extend(mxShapeAws3dDashedEdgeDouble,mxShape),mxShapeAws3dDashedEdgeDouble.prototype.cst={DASHED_EDGE_DOUBLE:"mxgraph.aws3d.dashedEdgeDouble"},mxShapeAws3dDashedEdgeDouble.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setFillColor("#2D6195"),e.save(),e.setStrokeColor("none"),e.begin(),e.moveTo(21,5.5),e.lineTo(0,0),e.lineTo(9.7,12.2),e.fillAndStroke(),e.begin(),e.moveTo(n-21,i-5.5),e.lineTo(n,i),e.lineTo(n-9.7,i-12.2),e.fillAndStroke(),e.restore(),e.setStrokeColor("#2D6195"),e.setStrokeWidth("4"),e.setDashed("true"),e.setLineCap("round"),e.begin(),e.moveTo(7.675,4.425),e.lineTo(n-7.675,i-4.425),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dDashedEdgeDouble.prototype.cst.DASHED_EDGE_DOUBLE,mxShapeAws3dDashedEdgeDouble),mxUtils.extend(mxShapeAws3dDashedArrowlessEdge,mxShape),mxShapeAws3dDashedArrowlessEdge.prototype.cst={DASHED_ARROWLESS_EDGE:"mxgraph.aws3d.dashedArrowlessEdge"},mxShapeAws3dDashedArrowlessEdge.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setStrokeColor("#2D6195"),e.setStrokeWidth("4"),e.setDashed("true"),e.setLineCap("round"),e.begin(),e.moveTo(0,0),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dDashedArrowlessEdge.prototype.cst.DASHED_ARROWLESS_EDGE,mxShapeAws3dDashedArrowlessEdge),mxUtils.extend(mxShapeAws3dDashedEdge,mxShape),mxShapeAws3dDashedEdge.prototype.cst={DASHED_EDGE:"mxgraph.aws3d.dashedEdge"},mxShapeAws3dDashedEdge.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setFillColor("#2D6195"),e.save(),e.setStrokeColor("none"),e.begin(),e.moveTo(n-21,5.5),e.lineTo(n,0),e.lineTo(n-9.7,12.2),e.fillAndStroke(),e.restore(),e.setStrokeColor("#2D6195"),e.setStrokeWidth("4"),e.setDashed("true"),e.setLineCap("round"),e.begin(),e.moveTo(n-7.675,4.425),e.lineTo(0,i),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dDashedEdge.prototype.cst.DASHED_EDGE,mxShapeAws3dDashedEdge),mxUtils.extend(mxShapeAws3dFlatEdge,mxShape),mxShapeAws3dFlatEdge.prototype.cst={FLAT_EDGE:"mxgraph.aws3d.flatEdge"},mxShapeAws3dFlatEdge.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setFillColor("#F4B934"),e.setStrokeColor("none"),e.begin(),e.moveTo(n-46,8.8),e.lineTo(n-61.2,0),e.lineTo(n,0),e.lineTo(n,35.5),e.lineTo(n-15.4,26.5),e.lineTo(30.7,i),e.lineTo(0,i-17.7),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAws3dFlatEdge.prototype.cst.FLAT_EDGE,mxShapeAws3dFlatEdge),mxUtils.extend(mxShapeAws3dFlatDoubleEdge,mxShape),mxShapeAws3dFlatDoubleEdge.prototype.cst={FLAT_DOUBLE_EDGE:"mxgraph.aws3d.flatDoubleEdge"},mxShapeAws3dFlatDoubleEdge.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setFillColor("#F4B934"),e.setStrokeColor("none"),e.begin(),e.moveTo(15.3,61.9),e.lineTo(30.8,53.2),e.lineTo(15.4,44.2),e.lineTo(0,53.2),e.lineTo(15.4,8.8),e.lineTo(92.1,0),e.lineTo(76.5,8.8),e.lineTo(92.1,17.7),e.lineTo(107.4,8.8),e.lineTo(n-15.3,i-61.9),e.lineTo(n-30.8,i-53.2),e.lineTo(n-15.4,i-44.2),e.lineTo(n,i-53.2),e.lineTo(n-15.4,i-8.8),e.lineTo(n-92.1,i),e.lineTo(n-76.5,i-8.8),e.lineTo(n-92.1,i-17.7),e.lineTo(n-107.4,i-8.8),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAws3dFlatDoubleEdge.prototype.cst.FLAT_DOUBLE_EDGE,mxShapeAws3dFlatDoubleEdge),mxUtils.extend(mxShapeAws3dAMI,mxShape),mxShapeAws3dAMI.prototype.cst={AMI:"mxgraph.aws3d.ami",SHADING_COLORS:"shadingCols"},mxShapeAws3dAMI.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),o=parseFloat(mxUtils.getValue(this.state.style,"shadow","0")),t=Math.min(t*n/92,t*i/60),e.setStrokeWidth(t),e.setShadow(!1),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==o&&e.setShadow(!0),e.begin(),e.moveTo(0,.6483*i),e.lineTo(.0684*n,.4133*i),e.lineTo(.5326*n,0),e.lineTo(.6685*n,0),e.lineTo(.9359*n,.2367*i),e.lineTo(n,.465*i),e.lineTo(.4*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dAMI.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var a=mxUtils.getValue(this.state.style,"flipH","0");"0"==a?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.65*i),e.lineTo(.0652*n,.5*i),e.lineTo(.3326*n,.7667*i),e.lineTo(.4663*n,.7667*i),e.lineTo(.4*n,i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.4*n,i),e.lineTo(.4641*n,.77*i),e.lineTo(.9326*n,.355*i),e.lineTo(.9347*n,.24*i),e.lineTo(n,.4667*i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.65*i),e.lineTo(.0652*n,.5*i),e.lineTo(.3326*n,.7667*i),e.lineTo(.4663*n,.7667*i),e.lineTo(.4*n,i),e.close(),e.stroke(),e.begin(),e.moveTo(.4*n,i),e.lineTo(.4641*n,.77*i),e.lineTo(.9326*n,.355*i),e.lineTo(.9347*n,.24*i),e.lineTo(n,.4667*i),e.close(),e.stroke(),e.begin(),e.moveTo(.0652*n,.42*i),e.lineTo(.0652*n,.5*i),e.moveTo(.3337*n,.7667*i),e.lineTo(.4*n,i),e.moveTo(.9348*n,.355*i),e.lineTo(n,.4733*i),e.stroke(),e.setLineJoin("miter"),o=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(o),e.begin(),e.moveTo(.1935*n,.42*i),e.lineTo(.5543*n,.0967*i),e.lineTo(.6652*n,.1967*i),e.lineTo(.3*n,.5133*i),e.close(),e.moveTo(.2967*n,.4633*i),e.lineTo(.3837*n,.3883*i),e.lineTo(.3326*n,.3417*i),e.lineTo(.2467*n,.42*i),e.close(),e.moveTo(.362*n,.32*i),e.lineTo(.412*n,.3633*i),e.lineTo(.5054*n,.2867*i),e.lineTo(.4522*n,.24*i),e.close(),e.moveTo(.5293*n,.26*i),e.lineTo(.6109*n,.1933*i),e.lineTo(.5511*n,.145*i),e.lineTo(.4739*n,.2133*i),e.close(),e.moveTo(.3528*n,.557*i),e.lineTo(.7137*n,.2337*i),e.lineTo(.8246*n,.3337*i),e.lineTo(.4593*n,.6503*i),e.close(),e.moveTo(.4561*n,.6003*i),e.lineTo(.543*n,.5253*i),e.lineTo(.492*n,.4787*i),e.lineTo(.4061*n,.557*i),e.close(),e.moveTo(.5213*n,.457*i),e.lineTo(.5713*n,.5003*i),e.lineTo(.6648*n,.4237*i),e.lineTo(.6115*n,.377*i),e.close(),e.moveTo(.6887*n,.397*i),e.lineTo(.7702*n,.3303*i),e.lineTo(.7104*n,.282*i),e.lineTo(.6333*n,.3503*i),e.close(),e.fill(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6483*i),e.lineTo(.0684*n,.4133*i),e.lineTo(.5326*n,0),e.lineTo(.6685*n,0),e.lineTo(.9359*n,.2367*i),e.lineTo(n,.465*i),e.lineTo(.4*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dAMI.prototype.cst.AMI,mxShapeAws3dAMI),mxUtils.extend(mxShapeAws3dSnapshot,mxShape),mxShapeAws3dSnapshot.prototype.cst={SNAPSHOT:"mxgraph.aws3d.snapshot",SHADING_COLORS:"shadingCols"},mxShapeAws3dSnapshot.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/92,t=t*i/60;var a=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));t=Math.min(o,t),e.setStrokeWidth(t),e.setShadow(!1),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==a&&e.setShadow(!0),e.begin(),e.moveTo(n,.6483*i),e.lineTo(.9316*n,.4133*i),e.lineTo(.4674*n,0),e.lineTo(.3315*n,0),e.lineTo(.0641*n,.2367*i),e.lineTo(0,.465*i),e.lineTo(.6*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dSnapshot.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(a=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(n,.65*i),e.lineTo(.9348*n,.52*i),e.lineTo(.6674*n,.7667*i),e.lineTo(.5337*n,.7667*i),e.lineTo(.6*n,i),e.close(),e.fill(),"0"==a?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(.6*n,i),e.lineTo(.5359*n,.77*i),e.lineTo(.0674*n,.355*i),e.lineTo(.0653*n,.24*i),e.lineTo(0,.4667*i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(n,.65*i),e.lineTo(.9348*n,.52*i),e.lineTo(.6674*n,.7667*i),e.lineTo(.5337*n,.7667*i),e.lineTo(.6*n,i),e.close(),e.stroke(),e.begin(),e.moveTo(.6*n,i),e.lineTo(.5359*n,.77*i),e.lineTo(.0674*n,.355*i),e.lineTo(.0653*n,.24*i),e.lineTo(0,.4667*i),e.close(),e.stroke(),e.begin(),e.moveTo(.9348*n,.42*i),e.lineTo(.9348*n,.52*i),e.moveTo(.6663*n,.7667*i),e.lineTo(.6*n,i),e.moveTo(.0652*n,.355*i),e.lineTo(0,.4733*i),e.stroke(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(n,.6483*i),e.lineTo(.9316*n,.4133*i),e.lineTo(.4674*n,0),e.lineTo(.3315*n,0),e.lineTo(.0641*n,.2367*i),e.lineTo(0,.465*i),e.lineTo(.6*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dSnapshot.prototype.cst.SNAPSHOT,mxShapeAws3dSnapshot),mxUtils.extend(mxShapeAws3dApplication,mxShape),mxShapeAws3dApplication.prototype.cst={APPLICATION:"mxgraph.aws3d.application",SHADING_COLORS:"shadingCols"},mxShapeAws3dApplication.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/62,t=t*i/68.8;var a=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));t=Math.min(o,t),e.setShadow(!1),e.setStrokeWidth(t),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==a&&e.setShadow(!0),e.begin(),e.moveTo(0,.2544*i),e.lineTo(.5*n,0),e.lineTo(n,.2544*i),e.lineTo(n,.7485*i),e.lineTo(.5*n,i),e.lineTo(0,.7485*i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dApplication.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(a=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.2544*i),e.lineTo(.5*n,.5015*i),e.lineTo(.5*n,i),e.lineTo(0,.7485*i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.5*n,.5015*i),e.lineTo(n,.2544*i),e.lineTo(n,.7485*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.2544*i),e.lineTo(.5*n,.5015*i),e.lineTo(.5*n,i),e.lineTo(0,.7485*i),e.close(),e.stroke(),e.begin(),e.moveTo(.5*n,.5015*i),e.lineTo(n,.2544*i),e.lineTo(n,.7485*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.setLineJoin("miter"),o=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(o),e.begin(),e.moveTo(.6694*n,.0872*i),e.lineTo(.7629*n,.1337*i),e.lineTo(.2661*n,.3882*i),e.lineTo(.2661*n,.5407*i),e.lineTo(.1742*n,.4953*i),e.lineTo(.1742*n,.3459*i),e.close(),e.moveTo(.8629*n,.1846*i),e.lineTo(.379*n,.4331*i),e.lineTo(.379*n,.5945*i),e.lineTo(.2855*n,.5494*i),e.lineTo(.2855*n,.3953*i),e.lineTo(.7839*n,.1439*i),e.close(),e.fill(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.2544*i),e.lineTo(.5*n,0),e.lineTo(n,.2544*i),e.lineTo(n,.7485*i),e.lineTo(.5*n,i),e.lineTo(0,.7485*i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dApplication.prototype.cst.APPLICATION,mxShapeAws3dApplication),mxUtils.extend(mxShapeAws3dApplicationServer,mxShape),mxShapeAws3dApplicationServer.prototype.cst={APPLICATION_SERVER:"mxgraph.aws3d.application_server",SHADING_COLORS:"shadingCols"},mxShapeAws3dApplicationServer.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/124),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dApplicationServer.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7236*i),e.lineTo(0,.2863*i),e.lineTo(.5*n,0),e.lineTo(n,.2863*i),e.lineTo(n,.7236*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dApplicationServer.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dApplicationServer.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(0,.2863*i),e.lineTo(.5*n,.5726*i),e.lineTo(.5*n,i),e.lineTo(0,.7177*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(n,.2863*i),e.lineTo(.5*n,.5726*i),e.lineTo(.5*n,i),e.lineTo(n,.7177*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.2863*i),e.lineTo(.5*n,.5726*i),e.lineTo(.5*n,i),e.lineTo(0,.7177*i),e.close(),e.stroke(),e.begin(),e.moveTo(n,.2863*i),e.lineTo(.5*n,.5726*i),e.lineTo(.5*n,i),e.lineTo(n,.7177*i),e.close(),e.stroke(),e.setLineJoin("miter"),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.374*n,.4435*i),e.arcTo(.0325*n,.0202*i,0,0,1,.374*n,.4153*i),e.lineTo(.4797*n,.3548*i),e.arcTo(.0325*n,.0161*i,0,0,1,.5203*n,.3548*i),e.lineTo(.626*n,.4153*i),e.arcTo(.0325*n,.0202*i,0,0,1,.626*n,.4411*i),e.lineTo(.5203*n,.5016*i),e.arcTo(.0325*n,.0161*i,0,0,1,.4797*n,.5016*i),e.close(),e.fill(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7236*i),e.lineTo(0,.2863*i),e.lineTo(.5*n,0),e.lineTo(n,.2863*i),e.lineTo(n,.7236*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dApplicationServer.prototype.cst.APPLICATION_SERVER,mxShapeAws3dApplicationServer),mxUtils.extend(mxShapeAws3dCloudFront,mxShape),mxShapeAws3dCloudFront.prototype.cst={CLOUDFRONT:"mxgraph.aws3d.cloudfront",SHADING_COLORS:"shadingCols"},mxShapeAws3dCloudFront.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/103.8,t=t*i/169.8;var a=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));t=Math.min(o,t),e.setShadow(!1),e.setStrokeWidth(t),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==a&&e.setShadow(!0),e.begin(),e.moveTo(0,.7915*i),e.lineTo(0,.7491*i),e.lineTo(.0588*n,.7279*i),e.lineTo(.0588*n,.1036*i),e.lineTo(.3526*n,0),e.lineTo(.9422*n,.2073*i),e.lineTo(.9422*n,.8316*i),e.lineTo(n,.8539*i),e.lineTo(n,.894*i),e.lineTo(.7013*n,i),e.lineTo(.5877*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dCloudFront.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(a=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(.0588*n,.106*i),e.lineTo(.6474*n,.3121*i),e.lineTo(.6474*n,.9352*i),e.lineTo(.7052*n,i),e.lineTo(.5915*n,i),e.lineTo(0,.7915*i),e.lineTo(0,.7491*i),e.lineTo(.0588*n,.7279*i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.6474*n,.3121*i),e.lineTo(.9422*n,.2073*i),e.lineTo(.9422*n,.8363*i),e.lineTo(n,.8539*i),e.lineTo(n,.894*i),e.lineTo(.7013*n,i),e.lineTo(.6474*n,.9305*i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7915*i),e.lineTo(.0559*n,.7291*i),e.lineTo(.6474*n,.9364*i),e.lineTo(.5896*n,i),e.moveTo(.6493*n,.9364*i),e.lineTo(.9412*n,.8333*i),e.lineTo(n,.894*i),e.stroke(),e.begin(),e.moveTo(.0588*n,.106*i),e.lineTo(.6474*n,.3121*i),e.lineTo(.6474*n,.9352*i),e.lineTo(.7052*n,i),e.lineTo(.5915*n,i),e.lineTo(0,.7915*i),e.lineTo(0,.7491*i),e.lineTo(.0588*n,.7279*i),e.close(),e.stroke(),e.begin(),e.moveTo(.6474*n,.3121*i),e.lineTo(.9422*n,.2073*i),e.lineTo(.9422*n,.8363*i),e.lineTo(n,.8539*i),e.lineTo(n,.894*i),e.lineTo(.7013*n,i),e.lineTo(.6474*n,.9305*i),e.close(),e.stroke(),o=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(o),e.begin(),e.moveTo(.3333*n,.6643*i),e.arcTo(.3372*n,.2061*i,0,0,1,.2351*n,.6042*i),e.arcTo(.4528*n,.2768*i,0,0,1,.1724*n,.523*i),e.lineTo(.2428*n,.5677*i),e.lineTo(.2427*n,.5895*i),e.lineTo(.2765*n,.5995*i),e.close(),e.moveTo(.1599*n,.4935*i),e.arcTo(.3372*n,.2061*i,0,0,1,.1522*n,.4146*i),e.arcTo(.1156*n,.0883*i,0,0,1,.2071*n,.3486*i),e.lineTo(.2013*n,.4187*i),e.lineTo(.1859*n,.4146*i),e.lineTo(.1859*n,.4464*i),e.lineTo(.1907*n,.4493*i),e.close(),e.moveTo(.2235*n,.3445*i),e.arcTo(.1927*n,.1767*i,0,0,1,.368*n,.361*i),e.arcTo(.3854*n,.2356*i,0,0,1,.468*n,.4299*i),e.lineTo(.368*n,.4034*i),e.lineTo(.368*n,.394*i),e.lineTo(.3256*n,.3799*i),e.lineTo(.3256*n,.3887*i),e.close(),e.moveTo(.4855*n,.4499*i),e.arcTo(.3854*n,.2356*i,0,0,1,.5337*n,.5395*i),e.arcTo(.3854*n,.2356*i,0,0,1,.5328*n,.6302*i),e.lineTo(.4952*n,.5589*i),e.lineTo(.5019*n,.5595*i),e.lineTo(.5019*n,.5265*i),e.lineTo(.4855*n,.5194*i),e.close(),e.moveTo(.5241*n,.6455*i),e.arcTo(.0963*n,.0589*i,0,0,1,.4663*n,.682*i),e.arcTo(.1445*n,.0883*i,0,0,1,.3642*n,.6761*i),e.lineTo(.4239*n,.6525*i),e.lineTo(.4566*n,.6643*i),e.lineTo(.4566*n,.6413*i),e.close(),e.moveTo(.3507*n,.6667*i),e.lineTo(.2871*n,.5919*i),e.lineTo(.4123*n,.6366*i),e.close(),e.moveTo(.2563*n,.5595*i),e.lineTo(.1753*n,.5088*i),e.lineTo(.2052*n,.4594*i),e.close(),e.moveTo(.2139*n,.4229*i),e.lineTo(.2197*n,.3528*i),e.lineTo(.3256*n,.4028*i),e.lineTo(.2283*n,.4252*i),e.close(),e.moveTo(.2264*n,.4417*i),e.lineTo(.3218*n,.4146*i),e.lineTo(.3353*n,.4181*i),e.lineTo(.3353*n,.4971*i),e.lineTo(.3208*n,.4912*i),e.lineTo(.3208*n,.4965*i),e.lineTo(.2264*n,.4482*i),e.close(),e.moveTo(.2697*n,.5618*i),e.lineTo(.2245*n,.4635*i),e.lineTo(.2331*n,.4588*i),e.lineTo(.3256*n,.5112*i),e.lineTo(.3237*n,.5241*i),e.close(),e.moveTo(.2852*n,.576*i),e.lineTo(.2852*n,.5654*i),e.lineTo(.3391*n,.53*i),e.lineTo(.3516*n,.5347*i),e.lineTo(.4133*n,.6213*i),e.close(),e.moveTo(.368*n,.5141*i),e.lineTo(.368*n,.5088*i),e.lineTo(.3526*n,.5029*i),e.lineTo(.3526*n,.4234*i),e.lineTo(.3622*n,.4276*i),e.lineTo(.4547*n,.5177*i),e.lineTo(.4557*n,.5277*i),e.close(),e.moveTo(.3671*n,.417*i),e.lineTo(.4692*n,.4411*i),e.lineTo(.4721*n,.52*i),e.close(),e.moveTo(.368*n,.5253*i),e.lineTo(.4566*n,.5359*i),e.lineTo(.4566*n,.5453*i),e.lineTo(.4663*n,.5465*i),e.lineTo(.4335*n,.6201*i),e.lineTo(.422*n,.616*i),e.lineTo(.368*n,.5389*i),e.close(),e.moveTo(.4798*n,.5583*i),e.lineTo(.5183*n,.629*i),e.lineTo(.4557*n,.6313*i),e.lineTo(.4557*n,.6237*i),e.lineTo(.447*n,.6225*i),e.close(),e.fill(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7915*i),e.lineTo(0,.7491*i),e.lineTo(.0588*n,.7279*i),e.lineTo(.0588*n,.1036*i),e.lineTo(.3526*n,0),e.lineTo(.9422*n,.2073*i),e.lineTo(.9422*n,.8316*i),e.lineTo(n,.8539*i),e.lineTo(n,.894*i),e.lineTo(.7013*n,i),e.lineTo(.5877*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dCloudFront.prototype.cst.CLOUDFRONT,mxShapeAws3dCloudFront),mxUtils.extend(mxShapeAws3dDataCenter,mxShape),mxShapeAws3dDataCenter.prototype.cst={DATA_CENTER:"mxgraph.aws3d.dataCenter",SHADING_COLORS:"shadingCols"},mxShapeAws3dDataCenter.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/123,t=t*i/142;var a=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));t=Math.min(o,t),e.setShadow(!1),e.setStrokeWidth(t),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==a&&e.setShadow(!0),e.begin(),e.moveTo(0,.7465*i),e.lineTo(0,.25*i),e.lineTo(.5*n,0),e.lineTo(n,.25*i),e.lineTo(n,.7465*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dDataCenter.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(a=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.7465*i),e.lineTo(0,.25*i),e.lineTo(.5*n,.5*i),e.lineTo(.5*n,i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(n,.7465*i),e.lineTo(n,.25*i),e.lineTo(.5*n,.5*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7465*i),e.lineTo(0,.25*i),e.lineTo(.5*n,.5*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.begin(),e.moveTo(n,.7465*i),e.lineTo(n,.25*i),e.lineTo(.5*n,.5*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.setLineCap("round"),e.setStrokeWidth(3*t),e.begin(),e.moveTo(.0894*n,.3838*i),e.lineTo(.4187*n,.5493*i),e.moveTo(.0894*n,.4331*i),e.lineTo(.4187*n,.5986*i),e.moveTo(.0894*n,.4824*i),e.lineTo(.4187*n,.6479*i),e.moveTo(.5854*n,.5493*i),e.lineTo(.9146*n,.3838*i),e.moveTo(.5854*n,.5986*i),e.lineTo(.9146*n,.4331*i),e.moveTo(.5854*n,.6479*i),e.lineTo(.9146*n,.4824*i),e.stroke(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7465*i),e.lineTo(0,.25*i),e.lineTo(.5*n,0),e.lineTo(n,.25*i),e.lineTo(n,.7465*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dDataCenter.prototype.cst.DATA_CENTER,mxShapeAws3dDataCenter),mxUtils.extend(mxShapeAws3dDataServer,mxShape),mxShapeAws3dDataServer.prototype.cst={DATA_SERVER:"mxgraph.aws3d.dataServer",SHADING_COLORS:"shadingCols"},mxShapeAws3dDataServer.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/123,t=t*i/106;var a=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));t=Math.min(o,t),e.setShadow(!1),e.setStrokeWidth(t),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==a&&e.setShadow(!0),e.begin(),e.moveTo(0,.6651*i),e.lineTo(0,.3349*i),e.lineTo(.5*n,0),e.lineTo(n,.3349*i),e.lineTo(n,.6651*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dDataServer.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(a=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.6651*i),e.lineTo(0,.3349*i),e.lineTo(.5*n,.6698*i),e.lineTo(.5*n,i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(n,.6651*i),e.lineTo(n,.3349*i),e.lineTo(.5*n,.6698*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6651*i),e.lineTo(0,.3349*i),e.lineTo(.5*n,.6698*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.begin(),e.moveTo(n,.6651*i),e.lineTo(n,.3349*i),e.lineTo(.5*n,.6698*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.setLineCap("round"),e.setStrokeWidth(3*t),e.begin(),e.moveTo(.0878*n,.4858*i),e.lineTo(.4187*n,.7094*i),e.moveTo(.587*n,.7094*i),e.lineTo(.9187*n,.4858*i),e.stroke(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6651*i),e.lineTo(0,.3349*i),e.lineTo(.5*n,0),e.lineTo(n,.3349*i),e.lineTo(n,.6651*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dDataServer.prototype.cst.DATA_SERVER,mxShapeAws3dDataServer),mxUtils.extend(mxShapeAws3dElasticLoadBalancing,mxShape),mxShapeAws3dElasticLoadBalancing.prototype.cst={ELASTIC_LOAD_BALANCING:"mxgraph.aws3d.elasticLoadBalancing",SHADING_COLORS:"shadingCols"},mxShapeAws3dElasticLoadBalancing.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=(o=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/92;o=o*i/88.17,t=mxUtils.getValue(this.state.style,"strokeColor","#000000");var s=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));o=Math.min(a,o),e.setShadow(!1),e.setStrokeWidth(o),e.save(),e.save(),e.save(),e.save(),e.setStrokeWidth(2*o),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==s&&e.setShadow(!0),e.begin(),e.moveTo(0,.7996*i),e.lineTo(0,.1985*i),e.lineTo(.3315*n,0),e.lineTo(.6685*n,0),e.lineTo(n,.1985*i),e.lineTo(n,.7996*i),e.lineTo(.6685*n,i),e.lineTo(.3315*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),a=mxUtils.getValue(this.state.style,mxShapeAws3dElasticLoadBalancing.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(s=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(a[0]):e.setAlpha(a[1]),e.begin(),e.moveTo(0,.4026*i),e.lineTo(.3315*n,.6011*i),e.lineTo(.6685*n,.6011*i),e.lineTo(.6685*n,i),e.lineTo(.3315*n,i),e.lineTo(0,.7996*i),e.close(),e.fill(),"0"==s?e.setAlpha(a[1]):e.setAlpha(a[0]),e.begin(),e.moveTo(.6685*n,.6011*i),e.lineTo(n,.4026*i),e.lineTo(n,.7996*i),e.lineTo(.6685*n,i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.4026*i),e.lineTo(.3315*n,.6011*i),e.lineTo(.6685*n,.6011*i),e.lineTo(.6685*n,i),e.lineTo(.3315*n,i),e.lineTo(0,.7996*i),e.close(),e.stroke(),e.begin(),e.moveTo(.6685*n,.6011*i),e.lineTo(n,.4026*i),e.lineTo(n,.7996*i),e.lineTo(.6685*n,i),e.close(),e.moveTo(.3315*n,.6011*i),e.lineTo(.3315*n,i),e.stroke(),e.restore(),e.setFillColor(t),e.begin(),e.moveTo(.337*n,.1395*i),e.arcTo(.3043*n,.1928*i,0,0,1,.5*n,.1191*i),e.arcTo(.3043*n,.1928*i,0,0,1,.6739*n,.1645*i),e.arcTo(.3261*n,.2155*i,0,0,1,.8152*n,.3176*i),e.arcTo(.3261*n,.1701*i,0,0,1,.75*n,.4367*i),e.arcTo(.3261*n,.3403*i,0,0,1,.6033*n,.4854*i),e.arcTo(.3261*n,.2268*i,0,0,1,.4348*n,.4741*i),e.arcTo(.3261*n,.2268*i,0,0,1,.2848*n,.4094*i),e.arcTo(.3261*n,.2268*i,0,0,1,.2065*n,.3062*i),e.arcTo(.3261*n,.1701*i,0,0,1,.2446*n,.1928*i),e.arcTo(.2717*n,.1701*i,0,0,1,.337*n,.1395*i),e.fill(),e.restore(),e.begin(),e.moveTo(.2826*n,.372*i),e.lineTo(.362*n,.3232*i),e.lineTo(.4054*n,.3482*i),e.lineTo(.4457*n,.2654*i),e.lineTo(.4185*n,.2643*i),e.lineTo(.4728*n,.2132*i),e.lineTo(.4348*n,.1928*i),e.lineTo(.5141*n,.144*i),e.lineTo(.5837*n,.1883*i),e.lineTo(.5043*n,.2348*i),e.lineTo(.4848*n,.2223*i),e.lineTo(.4967*n,.2688*i),e.lineTo(.463*n,.2665*i),e.lineTo(.4304*n,.3346*i),e.lineTo(.4946*n,.2949*i),e.lineTo(.4761*n,.2858*i),e.lineTo(.5511*n,.2631*i),e.lineTo(.5261*n,.2472*i),e.lineTo(.6043*n,.1996*i),e.lineTo(.6761*n,.2404*i),e.lineTo(.5978*n,.2892*i),e.lineTo(.5652*n,.2699*i),e.lineTo(.5293*n,.3198*i),e.lineTo(.5087*n,.3051*i),e.lineTo(.4543*n,.3391*i),e.lineTo(.563*n,.3221*i),e.lineTo(.5598*n,.3017*i),e.lineTo(.6326*n,.3096*i),e.lineTo(.6163*n,.2994*i),e.lineTo(.6957*n,.2529*i),e.lineTo(.7674*n,.2938*i),e.lineTo(.687*n,.3425*i),e.lineTo(.6489*n,.321*i),e.lineTo(.5707*n,.3539*i),e.lineTo(.5674*n,.3369*i),e.lineTo(.4293*n,.3618*i),e.lineTo(.4641*n,.3834*i),e.lineTo(.3859*n,.4299*i),e.close(),e.fill(),e.setStrokeWidth(2*o),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7996*i),e.lineTo(0,.1985*i),e.lineTo(.3315*n,0),e.lineTo(.6685*n,0),e.lineTo(n,.1985*i),e.lineTo(n,.7996*i),e.lineTo(.6685*n,i),e.lineTo(.3315*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dElasticLoadBalancing.prototype.cst.ELASTIC_LOAD_BALANCING,mxShapeAws3dElasticLoadBalancing),mxUtils.extend(mxShapeAws3dInstance,mxShape),mxShapeAws3dInstance.prototype.cst={INSTANCE:"mxgraph.aws3d.instance",SHADING_COLORS:"shadingCols"},mxShapeAws3dInstance.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/97),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dInstance.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.634*i),e.lineTo(0,.2732*i),e.lineTo(.374*n,0),e.lineTo(.622*n,0),e.lineTo(n,.2732*i),e.lineTo(n,.634*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dInstance.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dInstance.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(0,.2732*i),e.lineTo(.5*n,.6392*i),e.lineTo(.5*n,i),e.lineTo(0,.634*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.5*n,.6392*i),e.lineTo(n,.2732*i),e.lineTo(n,.6392*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.2732*i),e.lineTo(.5*n,.6392*i),e.lineTo(.5*n,i),e.lineTo(0,.634*i),e.close(),e.stroke(),e.begin(),e.moveTo(.5*n,.6392*i),e.lineTo(n,.2732*i),e.lineTo(n,.6392*i),e.lineTo(.5*n,i),e.close(),e.stroke(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.374*n,.4742*i),e.arcTo(.0325*n,.0258*i,0,0,1,.374*n,.4381*i),e.lineTo(.4797*n,.3608*i),e.arcTo(.0325*n,.0206*i,0,0,1,.5203*n,.3608*i),e.lineTo(.626*n,.4381*i),e.arcTo(.0325*n,.0258*i,0,0,1,.626*n,.4711*i),e.lineTo(.5203*n,.5485*i),e.arcTo(.0325*n,.0206*i,0,0,1,.4797*n,.5485*i),e.close(),e.fill(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.634*i),e.lineTo(0,.2732*i),e.lineTo(.374*n,0),e.lineTo(.622*n,0),e.lineTo(n,.2732*i),e.lineTo(n,.634*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dInstance.prototype.cst.INSTANCE,mxShapeAws3dInstance),mxUtils.extend(mxShapeAws3dInternetGateway,mxShape),mxShapeAws3dInternetGateway.prototype.cst={INTERNET_GATEWAY:"mxgraph.aws3d.internetGateway",SHADING_COLORS:"shadingCols"},mxShapeAws3dInternetGateway.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/116.7,t*i/102.8),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dInternetGateway.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(.4199*n,.5447*i),e.lineTo(.4199*n,.035*i),e.lineTo(.8946*n,0),e.lineTo(n,.0691*i),e.lineTo(n,.4134*i),e.lineTo(.6812*n,.7247*i),e.close(),e.fillAndStroke(),e.restore(),e.save(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dInternetGateway.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.4199*n,.5447*i),e.lineTo(.4199*n,.035*i),e.lineTo(.6838*n,.2072*i),e.lineTo(.6838*n,.7247*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.6838*n,.2072*i),e.lineTo(n,.0691*i),e.lineTo(n,.4134*i),e.lineTo(.6838*n,.7247*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.begin(),e.moveTo(.4199*n,.5447*i),e.lineTo(.4199*n,.035*i),e.lineTo(.6838*n,.2072*i),e.lineTo(.6838*n,.7247*i),e.close(),e.stroke(),e.restore(),e.setLineJoin("round"),e.setShadow(!1),e.begin(),e.moveTo(.6838*n,.2072*i),e.lineTo(n,.0691*i),e.lineTo(n,.4134*i),e.lineTo(.6838*n,.7247*i),e.close(),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(.4199*n,.5447*i),e.lineTo(.4199*n,.035*i),e.lineTo(.8946*n,0),e.lineTo(n,.0691*i),e.lineTo(n,.4134*i),e.lineTo(.6812*n,.7247*i),e.close(),e.stroke(),e.restore(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.929*i),e.lineTo(0,.5866*i),e.lineTo(.3171*n,.1031*i),e.lineTo(.5784*n,.2753*i),e.lineTo(.5784*n,.7928*i),e.lineTo(.1054*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dInternetGateway.prototype.foreground=function(e,t,o,n,i,a){e.restore(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setShadow(!1),e.setLineJoin("round"),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dInternetGateway.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var s=mxUtils.getValue(this.state.style,"flipH","0");"0"==s?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.929*i),e.lineTo(0,.5866*i),e.lineTo(.1054*n,.6537*i),e.lineTo(.1054*n,i),e.close(),e.fill(),"0"==s?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.1054*n,i),e.lineTo(.1054*n,.6537*i),e.lineTo(.5784*n,.2753*i),e.lineTo(.5784*n,.7928*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.929*i),e.lineTo(0,.5866*i),e.lineTo(.1054*n,.6537*i),e.lineTo(.1054*n,i),e.close(),e.stroke(),e.begin(),e.moveTo(.1054*n,i),e.lineTo(.1054*n,.6537*i),e.lineTo(.5784*n,.2753*i),e.lineTo(.5784*n,.7928*i),e.close(),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.929*i),e.lineTo(0,.5866*i),e.lineTo(.3171*n,.1031*i),e.lineTo(.5784*n,.2753*i),e.lineTo(.5784*n,.7928*i),e.lineTo(.1054*n,i),e.close(),e.stroke(),e.setFillColor(t),e.begin(),e.moveTo(.7849*n,.5039*i),e.arcTo(.0343*n,.0632*i,0,0,1,.7481*n,.4796*i),e.arcTo(.0857*n,.0973*i,0,0,1,.7661*n,.3911*i),e.arcTo(.06*n,.0681*i,0,0,1,.7712*n,.3356*i),e.arcTo(.0257*n,.0292*i,0,0,1,.7952*n,.32*i),e.arcTo(.1285*n,.1459*i,0,0,1,.8166*n,.2461*i),e.arcTo(.06*n,.0973*i,0,0,1,.8595*n,.2238*i),e.arcTo(.0514*n,.0973*i,0,0,1,.8937*n,.2743*i),e.arcTo(.0428*n,.0778*i,0,0,1,.9323*n,.3093*i),e.arcTo(.0686*n,.0778*i,0,0,1,.928*n,.3716*i),e.arcTo(.0857*n,.0973*i,0,0,1,.8972*n,.4125*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeAws3dInternetGateway.prototype.cst.INTERNET_GATEWAY,mxShapeAws3dInternetGateway),mxUtils.extend(mxShapeAws3dOracleDataCenter,mxShape),mxShapeAws3dOracleDataCenter.prototype.cst={ORACLE_DATA_CENTER:"mxgraph.aws3d.oracleDataCenter"},mxShapeAws3dOracleDataCenter.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/142),e.setStrokeWidth(t),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dOracleDataCenter.prototype.background=function(e,t,o,n,i,a){e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7464*i),e.lineTo(0,.25*i),e.lineTo(.5*n,0),e.lineTo(n,.25*i),e.lineTo(n,.7464*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dOracleDataCenter.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),e.setAlpha("0.1"),e.begin(),e.moveTo(0,.7464*i),e.lineTo(0,.25*i),e.lineTo(.5*n,.5*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.setAlpha("0.3"),e.begin(),e.moveTo(.5*n,.5*i),e.lineTo(n,.25*i),e.lineTo(n,.7464*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.setFillColor("#ff0000"),e.begin(),e.moveTo(0,.5866*i),e.lineTo(.5*n,.8359*i),e.lineTo(n,.5866*i),e.lineTo(n,.6986*i),e.lineTo(.5*n,.9486*i),e.lineTo(0,.6986*i),e.fill(),e.setStrokeWidth(.5*a),e.setStrokeColor("#ffffff"),e.setFillColor("#ffffff"),e.begin(),e.moveTo(0,.5866*i),e.lineTo(.5*n,.8359*i),e.lineTo(n,.5866*i),e.moveTo(n,.6986*i),e.lineTo(.5*n,.9486*i),e.lineTo(0,.6986*i),e.stroke(),e.begin(),e.moveTo(.0813*n,.7113*i),e.arcTo(.0569*n,.0493*i,0,0,1,.065*n,.6831*i),e.arcTo(.065*n,.0563*i,0,0,1,.065*n,.6613*i),e.arcTo(.0163*n,.0141*i,0,0,1,.0797*n,.6549*i),e.lineTo(.122*n,.6754*i),e.arcTo(.065*n,.0563*i,0,0,1,.1358*n,.6937*i),e.arcTo(.065*n,.0563*i,0,0,1,.139*n,.7232*i),e.arcTo(.0179*n,.0155*i,0,0,1,.1187*n,.7296*i),e.close(),e.moveTo(.1163*n,.7183*i),e.arcTo(.0089*n,.0077*i,0,0,0,.1285*n,.7148*i),e.arcTo(.0407*n,.0352*i,0,0,0,.1293*n,.7021*i),e.arcTo(.0407*n,.0352*i,0,0,0,.1179*n,.6831*i),e.lineTo(.087*n,.6676*i),e.arcTo(.0081*n,.007*i,0,0,0,.0764*n,.6697*i),e.arcTo(.0325*n,.0352*i,0,0,0,.078*n,.6937*i),e.arcTo(.0407*n,.0352*i,0,0,0,.087*n,.7035*i),e.close(),e.moveTo(.1439*n,.743*i),e.lineTo(.1439*n,.6866*i),e.lineTo(.1846*n,.707*i),e.arcTo(.0407*n,.0352*i,0,0,1,.1967*n,.7183*i),e.arcTo(.0407*n,.0352*i,0,0,1,.2*n,.738*i),e.arcTo(.0138*n,.0155*i,0,0,1,.1813*n,.743*i),e.lineTo(.1992*n,.769*i),e.lineTo(.187*n,.7641*i),e.lineTo(.1577*n,.7218*i),e.lineTo(.1854*n,.7345*i),e.arcTo(.0041*n,.0035*i,0,0,0,.1911*n,.7317*i),e.arcTo(.0163*n,.0141*i,0,0,0,.1894*n,.7225*i),e.arcTo(.0325*n,.0282*i,0,0,0,.1821*n,.7155*i),e.lineTo(.1528*n,.7007*i),e.lineTo(.1528*n,.7472*i),e.close(),e.moveTo(.2008*n,.7711*i),e.lineTo(.2293*n,.7338*i),e.arcTo(.0065*n,.0056*i,0,0,1,.2382*n,.7324*i),e.arcTo(.0407*n,.0352*i,0,0,1,.2431*n,.7415*i),e.lineTo(.2699*n,.8035*i),e.lineTo(.2602*n,.8007*i),e.lineTo(.252*n,.7859*i),e.lineTo(.2293*n,.7754*i),e.lineTo(.2244*n,.7634*i),e.lineTo(.248*n,.7739*i),e.lineTo(.235*n,.7444*i),e.lineTo(.2122*n,.7768*i),e.close(),e.moveTo(.3244*n,.8225*i),e.lineTo(.3171*n,.8289*i),e.lineTo(.2854*n,.8127*i),e.arcTo(.0407*n,.0352*i,0,0,1,.2724*n,.7986*i),e.arcTo(.0569*n,.0493*i,0,0,1,.265*n,.7746*i),e.arcTo(.0407*n,.0352*i,0,0,1,.2683*n,.762*i),e.arcTo(.0163*n,.0141*i,0,0,1,.2829*n,.757*i),e.lineTo(.3228*n,.7761*i),e.lineTo(.3179*n,.7831*i),e.lineTo(.2878*n,.7683*i),e.arcTo(.0081*n,.007*i,0,0,0,.2789*n,.7697*i),e.arcTo(.0244*n,.0211*i,0,0,0,.2748*n,.7831*i),e.arcTo(.0407*n,.0352*i,0,0,0,.2878*n,.8042*i),e.close(),e.moveTo(.3276*n,.7789*i),e.lineTo(.3366*n,.7831*i),e.lineTo(.3366*n,.8289*i),e.lineTo(.3805*n,.8507*i),e.lineTo(.3748*n,.857*i),e.lineTo(.3317*n,.8359*i),e.arcTo(.0163*n,.0141*i,0,0,1,.3276*n,.8275*i),e.close(),e.moveTo(.435*n,.8775*i),e.lineTo(.4325*n,.8866*i),e.lineTo(.3959*n,.8683*i),e.arcTo(.0407*n,.0352*i,0,0,1,.3862*n,.8563*i),e.arcTo(.0528*n,.0458*i,0,0,1,.3805*n,.8183*i),e.arcTo(.0163*n,.0141*i,0,0,1,.3951*n,.8134*i),e.lineTo(.435*n,.8324*i),e.lineTo(.4285*n,.838*i),e.lineTo(.4008*n,.8246*i),e.arcTo(.0098*n,.0085*i,0,0,0,.3878*n,.831*i),e.lineTo(.4333*n,.8542*i),e.lineTo(.426*n,.8606*i),e.lineTo(.3878*n,.8415*i),e.arcTo(.0325*n,.0282*i,0,0,0,.3976*n,.8585*i),e.close(),e.moveTo(.6171*n,.8063*i),e.arcTo(.0163*n,.0141*i,0,0,1,.6366*n,.8092*i),e.arcTo(.0325*n,.0282*i,0,0,1,.639*n,.8303*i),e.arcTo(.065*n,.0563*i,0,0,1,.6211*n,.8592*i),e.lineTo(.5894*n,.8761*i),e.arcTo(.0203*n,.0176*i,0,0,1,.565*n,.8732*i),e.arcTo(.0407*n,.0352*i,0,0,1,.5659*n,.8458*i),e.arcTo(.0488*n,.0422*i,0,0,1,.5805*n,.8246*i),e.close(),e.moveTo(.5886*n,.8296*i),e.arcTo(.0325*n,.0282*i,0,0,0,.5748*n,.8472*i),e.arcTo(.0325*n,.0282*i,0,0,0,.574*n,.862*i),e.arcTo(.0098*n,.0085*i,0,0,0,.587*n,.8676*i),e.lineTo(.6163*n,.8528*i),e.arcTo(.0407*n,.0352*i,0,0,0,.6285*n,.8359*i),e.arcTo(.0244*n,.0211*i,0,0,0,.6293*n,.8225*i),e.arcTo(.0098*n,.0085*i,0,0,0,.6163*n,.8155*i),e.close(),e.moveTo(.64*n,.85*i),e.lineTo(.64*n,.793*i),e.lineTo(.6854*n,.7718*i),e.arcTo(.0106*n,.0092*i,0,0,1,.7008*n,.7782*i),e.arcTo(.0407*n,.0352*i,0,0,1,.6959*n,.8*i),e.arcTo(.0407*n,.0352*i,0,0,1,.6805*n,.8127*i),e.lineTo(.6992*n,.8218*i),e.lineTo(.6854*n,.8282*i),e.lineTo(.6569*n,.8141*i),e.lineTo(.6805*n,.8021*i),e.arcTo(.0203*n,.0176*i,0,0,0,.6894*n,.7923*i),e.arcTo(.0244*n,.0211*i,0,0,0,.6894*n,.7845*i),e.arcTo(.0041*n,.0035*i,0,0,0,.6837*n,.7831*i),e.lineTo(.6528*n,.7979*i),e.lineTo(.6528*n,.8437*i),e.close(),e.moveTo(.7*n,.8204*i),e.lineTo(.7301*n,.7507*i),e.arcTo(.0098*n,.0085*i,0,0,1,.7358*n,.7444*i),e.arcTo(.0098*n,.0085*i,0,0,1,.7415*n,.7486*i),e.lineTo(.7699*n,.7852*i),e.lineTo(.7602*n,.7908*i),e.lineTo(.7537*n,.7838*i),e.lineTo(.7276*n,.7958*i),e.lineTo(.7228*n,.788*i),e.lineTo(.748*n,.7768*i),e.lineTo(.7358*n,.7585*i),e.lineTo(.7114*n,.8155*i),e.close(),e.moveTo(.8244*n,.7486*i),e.lineTo(.8171*n,.762*i),e.lineTo(.7894*n,.7761*i),e.arcTo(.0244*n,.0211*i,0,0,1,.7683*n,.7746*i),e.arcTo(.0407*n,.0352*i,0,0,1,.7667*n,.7507*i),e.arcTo(.0488*n,.0423*i,0,0,1,.7937*n,.7162*i),e.lineTo(.822*n,.7035*i),e.lineTo(.8171*n,.7155*i),e.lineTo(.7902*n,.7296*i),e.arcTo(.0325*n,.0282*i,0,0,0,.778*n,.743*i),e.arcTo(.0407*n,.0352*i,0,0,0,.7756*n,.7606*i),e.arcTo(.0077*n,.0067*i,0,0,0,.787*n,.767*i),e.close(),e.moveTo(.8366*n,.6949*i),e.lineTo(.8366*n,.7423*i),e.lineTo(.878*n,.7231*i),e.lineTo(.874*n,.7338*i),e.lineTo(.8333*n,.7535*i),e.arcTo(.0041*n,.0035*i,0,0,1,.8268*n,.75*i),e.lineTo(.8268*n,.7007*i),e.close(),e.moveTo(.9342*n,.6472*i),e.lineTo(.9293*n,.6599*i),e.lineTo(.9033*n,.6725*i),e.arcTo(.0325*n,.0282*i,0,0,0,.8927*n,.6817*i),e.arcTo(.0406*n,.0352*i,0,0,0,.887*n,.6937*i),e.lineTo(.9309*n,.6725*i),e.lineTo(.9268*n,.6845*i),e.lineTo(.887*n,.7035*i),e.arcTo(.0089*n,.0077*i,0,0,0,.8992*n,.7106*i),e.lineTo(.935*n,.693*i),e.lineTo(.9285*n,.7063*i),e.lineTo(.9008*n,.7197*i),e.arcTo(.0163*n,.0141*i,0,0,1,.8829*n,.7204*i),e.arcTo(.0407*n,.0352*i,0,0,1,.8764*n,.7028*i),e.arcTo(.065*n,.0563*i,0,0,1,.8959*n,.6669*i),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7464*i),e.lineTo(0,.25*i),e.lineTo(.5*n,.5*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.begin(),e.moveTo(.5*n,.5*i),e.lineTo(n,.25*i),e.lineTo(n,.7464*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7464*i),e.lineTo(0,.25*i),e.lineTo(.5*n,0),e.lineTo(n,.25*i),e.lineTo(n,.7464*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.restore(),e.setShadow(!1),e.setStrokeWidth(3*a),e.setLineCap("round"),e.begin(),e.moveTo(.0894*n,.3838*i),e.lineTo(.4187*n,.5493*i),e.moveTo(.0894*n,.4331*i),e.lineTo(.4187*n,.5986*i),e.moveTo(.0894*n,.4824*i),e.lineTo(.4187*n,.6479*i),e.moveTo(.5854*n,.5492*i),e.lineTo(.9146*n,.3838*i),e.moveTo(.5854*n,.5986*i),e.lineTo(.9146*n,.4331*i),e.moveTo(.5854*n,.6479*i),e.lineTo(.9146*n,.4824*i),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dOracleDataCenter.prototype.cst.ORACLE_DATA_CENTER,mxShapeAws3dOracleDataCenter),mxUtils.extend(mxShapeAws3dOracleDatabaseServer,mxShape),mxShapeAws3dOracleDatabaseServer.prototype.cst={ORACLE_DB_SERVER:"mxgraph.aws3d.oracleDbServer"},mxShapeAws3dOracleDatabaseServer.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/142),e.setStrokeWidth(t),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dOracleDatabaseServer.prototype.background=function(e,t,o,n,i,a){e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dOracleDatabaseServer.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),e.setAlpha("0.1"),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.lineTo(0,.7331*i),e.lineTo(0,.3346*i),e.close(),e.moveTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3308*i),e.fill(),e.setAlpha("0.3"),e.begin(),e.moveTo(.5*n,i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(n,.3308*i),e.lineTo(n,.7331*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.setFillColor("#ff0000"),e.begin(),e.moveTo(0,.5586*i),e.lineTo(.5*n,.8248*i),e.lineTo(n,.5586*i),e.lineTo(n,.6782*i),e.lineTo(.5*n,.9453*i),e.lineTo(0,.6782*i),e.fill(),e.setStrokeWidth(.5*a),e.setStrokeColor("#ffffff"),e.setFillColor("#ffffff"),e.begin(),e.moveTo(0,.5586*i),e.lineTo(.5*n,.8248*i),e.lineTo(n,.5586*i),e.moveTo(n,.6782*i),e.lineTo(.5*n,.9453*i),e.lineTo(0,.6782*i),e.stroke(),e.begin(),e.moveTo(.0813*n,.6918*i),e.arcTo(.0569*n,.0526*i,0,0,1,.065*n,.6616*i),e.arcTo(.065*n,.0601*i,0,0,1,.065*n,.6384*i),e.arcTo(.0163*n,.0151*i,0,0,1,.0797*n,.6315*i),e.lineTo(.122*n,.6534*i),e.arcTo(.065*n,.0601*i,0,0,1,.1358*n,.673*i),e.arcTo(.065*n,.0601*i,0,0,1,.139*n,.7045*i),e.arcTo(.0179*n,.0165*i,0,0,1,.1187*n,.7113*i),e.close(),e.moveTo(.1163*n,.6992*i),e.arcTo(.0089*n,.0082*i,0,0,0,.1285*n,.6955*i),e.arcTo(.0407*n,.0376*i,0,0,0,.1293*n,.6819*i),e.arcTo(.0407*n,.0376*i,0,0,0,.1179*n,.6616*i),e.lineTo(.087*n,.6451*i),e.arcTo(.0081*n,.0075*i,0,0,0,.0764*n,.6473*i),e.arcTo(.0325*n,.0376*i,0,0,0,.078*n,.673*i),e.arcTo(.0407*n,.0376*i,0,0,0,.087*n,.6834*i),e.close(),e.moveTo(.1439*n,.7256*i),e.lineTo(.1439*n,.6654*i),e.lineTo(.1846*n,.6872*i),e.arcTo(.0407*n,.0376*i,0,0,1,.1967*n,.6992*i),e.arcTo(.0407*n,.0376*i,0,0,1,.2*n,.7203*i),e.arcTo(.0138*n,.0165*i,0,0,1,.1813*n,.7256*i),e.lineTo(.1992*n,.7534*i),e.lineTo(.187*n,.7481*i),e.lineTo(.1577*n,.7029*i),e.lineTo(.1854*n,.7165*i),e.arcTo(.0041*n,.0037*i,0,0,0,.1911*n,.7135*i),e.arcTo(.0163*n,.0151*i,0,0,0,.1894*n,.7037*i),e.arcTo(.0325*n,.0301*i,0,0,0,.1821*n,.6962*i),e.lineTo(.1528*n,.6804*i),e.lineTo(.1528*n,.7301*i),e.close(),e.moveTo(.2008*n,.7556*i),e.lineTo(.2293*n,.7158*i),e.arcTo(.0065*n,.006*i,0,0,1,.2382*n,.7143*i),e.arcTo(.0407*n,.0376*i,0,0,1,.2431*n,.724*i),e.lineTo(.2699*n,.7902*i),e.lineTo(.2602*n,.7872*i),e.lineTo(.252*n,.7714*i),e.lineTo(.2293*n,.7602*i),e.lineTo(.2244*n,.7474*i),e.lineTo(.248*n,.7586*i),e.lineTo(.235*n,.7271*i),e.lineTo(.2122*n,.7617*i),e.close(),e.moveTo(.3244*n,.8105*i),e.lineTo(.3171*n,.8173*i),e.lineTo(.2854*n,.8*i),e.arcTo(.0407*n,.0376*i,0,0,1,.2724*n,.785*i),e.arcTo(.0569*n,.0526*i,0,0,1,.265*n,.7593*i),e.arcTo(.0407*n,.0376*i,0,0,1,.2683*n,.7459*i),e.arcTo(.0163*n,.0151*i,0,0,1,.2829*n,.7405*i),e.lineTo(.3228*n,.7609*i),e.lineTo(.3179*n,.7684*i),e.lineTo(.2878*n,.7526*i),e.arcTo(.0081*n,.0075*i,0,0,0,.2789*n,.7541*i),e.arcTo(.0244*n,.0225*i,0,0,0,.2748*n,.7684*i),e.arcTo(.0407*n,.0376*i,0,0,0,.2878*n,.7909*i),e.close(),e.moveTo(.3276*n,.7639*i),e.lineTo(.3366*n,.7684*i),e.lineTo(.3366*n,.8173*i),e.lineTo(.3805*n,.8406*i),e.lineTo(.3748*n,.8473*i),e.lineTo(.3317*n,.8248*i),e.arcTo(.0163*n,.0151*i,0,0,1,.3276*n,.8158*i),e.close(),e.moveTo(.435*n,.8692*i),e.lineTo(.4325*n,.8789*i),e.lineTo(.3959*n,.8594*i),e.arcTo(.0407*n,.0376*i,0,0,1,.3862*n,.8466*i),e.arcTo(.0528*n,.0489*i,0,0,1,.3805*n,.806*i),e.arcTo(.0163*n,.0151*i,0,0,1,.3951*n,.8008*i),e.lineTo(.435*n,.821*i),e.lineTo(.4285*n,.827*i),e.lineTo(.4008*n,.8127*i),e.arcTo(.0098*n,.0091*i,0,0,0,.3878*n,.8196*i),e.lineTo(.4333*n,.8443*i),e.lineTo(.426*n,.8512*i),e.lineTo(.3878*n,.8308*i),e.arcTo(.0325*n,.0301*i,0,0,0,.3976*n,.8489*i),e.close(),e.moveTo(.6171*n,.7932*i),e.arcTo(.0163*n,.0151*i,0,0,1,.6366*n,.7963*i),e.arcTo(.0325*n,.0301*i,0,0,1,.639*n,.8188*i),e.arcTo(.065*n,.0601*i,0,0,1,.6211*n,.8497*i),e.lineTo(.5894*n,.8677*i),e.arcTo(.0203*n,.0188*i,0,0,1,.565*n,.8646*i),e.arcTo(.0407*n,.0376*i,0,0,1,.5659*n,.8354*i),e.arcTo(.0488*n,.0451*i,0,0,1,.5805*n,.8127*i),e.close(),e.moveTo(.5886*n,.8181*i),e.arcTo(.0325*n,.0301*i,0,0,0,.5748*n,.8368*i),e.arcTo(.0325*n,.0301*i,0,0,0,.574*n,.8527*i),e.arcTo(.0098*n,.0091*i,0,0,0,.587*n,.8586*i),e.lineTo(.6163*n,.8428*i),e.arcTo(.0407*n,.0376*i,0,0,0,.6285*n,.8248*i),e.arcTo(.0244*n,.0225*i,0,0,0,.6293*n,.8105*i),e.arcTo(.0098*n,.0091*i,0,0,0,.6163*n,.803*i),e.close(),e.moveTo(.64*n,.8398*i),e.lineTo(.64*n,.779*i),e.lineTo(.6854*n,.7563*i),e.arcTo(.0106*n,.0098*i,0,0,1,.7008*n,.7632*i),e.arcTo(.0407*n,.0376*i,0,0,1,.6959*n,.7865*i),e.arcTo(.0407*n,.0376*i,0,0,1,.6805*n,.8*i),e.lineTo(.6992*n,.8097*i),e.lineTo(.6854*n,.8166*i),e.lineTo(.6569*n,.8015*i),e.lineTo(.6805*n,.7887*i),e.arcTo(.0203*n,.0188*i,0,0,0,.6894*n,.7782*i),e.arcTo(.0244*n,.0225*i,0,0,0,.6894*n,.7699*i),e.arcTo(.0041*n,.0037*i,0,0,0,.6837*n,.7684*i),e.lineTo(.6528*n,.7842*i),e.lineTo(.6528*n,.8331*i),e.close(),e.moveTo(.7*n,.8082*i),e.lineTo(.7301*n,.7338*i),e.arcTo(.0098*n,.0091*i,0,0,1,.7358*n,.7271*i),e.arcTo(.0098*n,.0091*i,0,0,1,.7415*n,.7316*i),e.lineTo(.7699*n,.7707*i),e.lineTo(.7602*n,.7766*i),e.lineTo(.7537*n,.7692*i),e.lineTo(.7276*n,.782*i),e.lineTo(.7228*n,.7736*i),e.lineTo(.748*n,.7617*i),e.lineTo(.7358*n,.7421*i),e.lineTo(.7114*n,.803*i),e.close(),e.moveTo(.8244*n,.7316*i),e.lineTo(.8171*n,.7459*i),e.lineTo(.7894*n,.7609*i),e.arcTo(.0244*n,.0225*i,0,0,1,.7683*n,.7593*i),e.arcTo(.0407*n,.0376*i,0,0,1,.7667*n,.7338*i),e.arcTo(.0488*n,.0452*i,0,0,1,.7937*n,.697*i),e.lineTo(.822*n,.6834*i),e.lineTo(.8171*n,.6962*i),e.lineTo(.7902*n,.7113*i),e.arcTo(.0325*n,.0301*i,0,0,0,.778*n,.7256*i),e.arcTo(.0407*n,.0376*i,0,0,0,.7756*n,.7444*i),e.arcTo(.0077*n,.0072*i,0,0,0,.787*n,.7512*i),e.close(),e.moveTo(.8366*n,.6742*i),e.lineTo(.8366*n,.7248*i),e.lineTo(.878*n,.7043*i),e.lineTo(.874*n,.7158*i),e.lineTo(.8333*n,.7368*i),e.arcTo(.0041*n,.0037*i,0,0,1,.8268*n,.7324*i),e.lineTo(.8268*n,.6804*i),e.close(),e.moveTo(.9342*n,.6233*i),e.lineTo(.9293*n,.6369*i),e.lineTo(.9033*n,.6503*i),e.arcTo(.0325*n,.0301*i,0,0,0,.8927*n,.6601*i),e.arcTo(.0406*n,.0376*i,0,0,0,.887*n,.6729*i),e.lineTo(.9309*n,.6503*i),e.lineTo(.9268*n,.6631*i),e.lineTo(.887*n,.6834*i),e.arcTo(.0089*n,.0082*i,0,0,0,.8992*n,.691*i),e.lineTo(.935*n,.6722*i),e.lineTo(.9285*n,.6864*i),e.lineTo(.9008*n,.7007*i),e.arcTo(.0163*n,.0151*i,0,0,1,.8829*n,.7015*i),e.arcTo(.0407*n,.0376*i,0,0,1,.8764*n,.6827*i),e.arcTo(.065*n,.0601*i,0,0,1,.8959*n,.6443*i),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.moveTo(0,.3346*i),e.lineTo(.126*n,.267*i),e.moveTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.moveTo(n,.3346*i),e.lineTo(.87*n,.267*i),e.moveTo(.378*n,.4023*i),e.lineTo(.622*n,.4023*i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dOracleDatabaseServer.prototype.cst.ORACLE_DB_SERVER,mxShapeAws3dOracleDatabaseServer),mxUtils.extend(mxShapeAws3dRdsMaster,mxShape),mxShapeAws3dRdsMaster.prototype.cst={RDS_MASTER:"mxgraph.aws3d.rdsMaster",SHADING_COLORS:"shadingCols"},mxShapeAws3dRdsMaster.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/133),e.setStrokeWidth(t),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dRdsMaster.prototype.background=function(e,t,o,n,i,a){e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dRdsMaster.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dRdsMaster.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.lineTo(0,.7331*i),e.lineTo(0,.3346*i),e.close(),e.moveTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3308*i),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.5*n,i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(n,.3308*i),e.lineTo(n,.7331*i),e.close(),e.fill(),e.restore(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.setShadow(!1),e.begin(),e.moveTo(.1878*n,.1932*i),e.lineTo(.4854*n,.0414*i),e.lineTo(.5886*n,.094*i),e.lineTo(.4455*n,.2308*i),e.lineTo(.7122*n,.1579*i),e.lineTo(.8171*n,.2098*i),e.lineTo(.5187*n,.3617*i),e.lineTo(.4537*n,.3293*i),e.lineTo(.7016*n,.2053*i),e.lineTo(.3854*n,.2947*i),e.lineTo(.3187*n,.2602*i),e.lineTo(.4959*n,.0992*i),e.lineTo(.2504*n,.2256*i),e.close(),e.fill(),e.setLineJoin("round"),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.moveTo(0,.3346*i),e.lineTo(.126*n,.267*i),e.moveTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.moveTo(n,.3346*i),e.lineTo(.87*n,.267*i),e.moveTo(.378*n,.4023*i),e.lineTo(.622*n,.4023*i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dRdsMaster.prototype.cst.RDS_MASTER,mxShapeAws3dRdsMaster),mxUtils.extend(mxShapeAws3dRds,mxShape),mxShapeAws3dRds.prototype.cst={RDS:"mxgraph.aws3d.rds",SHADING_COLORS:"shadingCols"},mxShapeAws3dRds.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/133),e.setStrokeWidth(t),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dRds.prototype.background=function(e,t,o,n,i,a){e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dRds.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dRds.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.lineTo(0,.7331*i),e.lineTo(0,.3346*i),e.close(),e.moveTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3308*i),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.5*n,i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(n,.3308*i),e.lineTo(n,.7331*i),e.close(),e.fill(),e.restore(),e.setFillColor("#ffffff"),e.setShadow(!1),e.begin(),e.moveTo(0,.6053*i),e.lineTo(.5*n,.8722*i),e.lineTo(n,.6053*i),e.lineTo(n,.6278*i),e.lineTo(.5*n,.8947*i),e.lineTo(0,.6278*i),e.close(),e.fill(),e.setLineJoin("round"),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.moveTo(0,.3346*i),e.lineTo(.126*n,.267*i),e.moveTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.moveTo(n,.3346*i),e.lineTo(.87*n,.267*i),e.moveTo(.378*n,.4023*i),e.lineTo(.622*n,.4023*i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dRds.prototype.cst.RDS,mxShapeAws3dRds),mxUtils.extend(mxShapeAws3dRoute53,mxShape),mxShapeAws3dRoute53.prototype.cst={ROUTE_53:"mxgraph.aws3d.route53",SHADING_COLORS:"shadingCols"},mxShapeAws3dRoute53.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/117,t*i/134.4),e.setStrokeWidth(t),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dRoute53.prototype.background=function(e,t,o,n,i,a){e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6994*i),e.lineTo(0,.2009*i),e.lineTo(.0427*n,.0781*i),e.lineTo(.7974*n,0),e.lineTo(n,.1004*i),e.lineTo(n,.5915*i),e.lineTo(.8376*n,.9784*i),e.lineTo(.5983*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dRoute53.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dRoute53.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(0,.2009*i),e.lineTo(.6009*n,.5007*i),e.lineTo(.8376*n,.4799*i),e.lineTo(.8376*n,.9784*i),e.lineTo(.5966*n,i),e.lineTo(0,.6979*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.8348*n,.4861*i),e.lineTo(.9985*n,.0992*i),e.lineTo(n,.5952*i),e.lineTo(.8404*n,.9747*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.5855*n,.1079*i),e.arcTo(.094*n,.0744*i,0,0,0,.6863*n,.1548*i),e.arcTo(.0855*n,.0446*i,0,0,0,.7761*n,.2031*i),e.lineTo(.7726*n,.2455*i),e.arcTo(.0769*n,.0298*i,0,0,0,.694*n,.2693*i),e.arcTo(.0684*n,.0446*i,0,0,1,.5897*n,.3051*i),e.arcTo(.4274*n,.372*i,0,0,0,.4573*n,.2753*i),e.arcTo(.0855*n,.0744*i,0,0,0,.4188*n,.2344*i),e.lineTo(.3846*n,.2083*i),e.arcTo(.0769*n,.0372*i,0,0,1,.4103*n,.1525*i),e.arcTo(.0855*n,.0409*i,0,0,0,.4906*n,.1079*i),e.close(),e.fill(),e.begin(),e.moveTo(0,.2009*i),e.lineTo(.6009*n,.5007*i),e.lineTo(.8376*n,.4799*i),e.lineTo(.8376*n,.9784*i),e.lineTo(.5966*n,i),e.lineTo(0,.6979*i),e.close(),e.moveTo(.8348*n,.4861*i),e.lineTo(.9985*n,.0992*i),e.lineTo(n,.5952*i),e.lineTo(.8404*n,.9747*i),e.close(),e.moveTo(.6009*n,.5007*i),e.lineTo(.6009*n,i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.6994*i),e.lineTo(0,.2009*i),e.lineTo(.0427*n,.0781*i),e.lineTo(.7974*n,0),e.lineTo(n,.1004*i),e.lineTo(n,.5915*i),e.lineTo(.8376*n,.9784*i),e.lineTo(.5983*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dRoute53.prototype.cst.ROUTE_53,mxShapeAws3dRoute53),mxUtils.extend(mxShapeAws3dS3Bucket,mxShape),mxShapeAws3dS3Bucket.prototype.cst={S3_BUCKET:"mxgraph.aws3d.s3Bucket",SHADING_COLORS:"shadingCols"},mxShapeAws3dS3Bucket.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/61.5,t=t*i/63.8;var a=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));t=Math.min(o,t),e.setShadow(!1),e.setStrokeWidth(t),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==a&&e.setShadow(!0),e.begin(),e.moveTo(0,.2774*i),e.lineTo(.5*n,0),e.lineTo(n,.2774*i),e.lineTo(.7967*n,.8307*i),e.lineTo(.5*n,i),e.lineTo(.1951*n,.8307*i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dS3Bucket.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(a=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.2774*i),e.lineTo(.5*n,.5564*i),e.lineTo(.5*n,i),e.lineTo(.1984*n,.8307*i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.5*n,.5533*i),e.lineTo(n,.2774*i),e.lineTo(.7967*n,.8307*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.2774*i),e.lineTo(.5*n,.5564*i),e.lineTo(n,.2774*i),e.stroke(),e.begin(),e.moveTo(.5*n,.5564*i),e.lineTo(.5*n,i),e.stroke(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.2774*i),e.lineTo(.5008*n,0),e.lineTo(n,.2774*i),e.lineTo(.7967*n,.8307*i),e.lineTo(.5008*n,i),e.lineTo(.1951*n,.8307*i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dS3Bucket.prototype.cst.S3_BUCKET,mxShapeAws3dS3Bucket),mxUtils.extend(mxShapeAws3dS3,mxShape),mxShapeAws3dS3.prototype.cst={S3:"mxgraph.aws3d.s3",SHADING_COLORS:"shadingCols"},mxShapeAws3dS3.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/231.5,t*i/239),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dS3.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7782*i),e.lineTo(0,.3406*i),e.lineTo(.5974*n,0),e.lineTo(n,.2218*i),e.lineTo(n,.6674*i),e.lineTo(.3991*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dS3.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dS3.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(0,.3406*i),e.lineTo(.3991*n,.5548*i),e.lineTo(.3991*n,i),e.lineTo(0,.7782*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.3991*n,.5548*i),e.lineTo(n,.2218*i),e.lineTo(n,.6661*i),e.lineTo(.3991*n,i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.3406*i),e.lineTo(.3991*n,.5548*i),e.lineTo(n,.2218*i),e.moveTo(.3991*n,.5548*i),e.lineTo(.3991*n,i),e.moveTo(.3991*n,.3335*i),e.lineTo(.2009*n,.448*i),e.lineTo(.2009*n,.8891*i),e.moveTo(.5983*n,.2209*i),e.lineTo(.7948*n,.1109*i),e.moveTo(.2022*n,.2218*i),e.lineTo(.5991*n,.4448*i),e.lineTo(.5991*n,.8891*i),e.moveTo(.4004*n,.1117*i),e.lineTo(.7978*n,.3335*i),e.lineTo(.7978*n,.7791*i),e.stroke(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.4773*n,.2155*i),e.arcTo(.0086*n,.0046*i,0,0,1,.4903*n,.2096*i),e.arcTo(.2808*n,.272*i,0,0,1,.6004*n,.2619*i),e.arcTo(.108*n,.105*i,0,0,1,.6177*n,.277*i),e.arcTo(.0065*n,.0063*i,0,0,1,.6099*n,.2879*i),e.arcTo(.1944*n,.1883*i,0,0,1,.5378*n,.2607*i),e.arcTo(.216*n,.2092*i,0,0,1,.4773*n,.2155*i),e.close(),e.fill(),e.begin(),e.moveTo(.4687*n,.2138*i),e.arcTo(.1512*n,.1464*i,0,0,0,.4838*n,.2343*i),e.arcTo(.2376*n,.2301*i,0,0,0,.5529*n,.2774*i),e.arcTo(.1728*n,.1674*i,0,0,0,.6091*n,.2954*i),e.lineTo(.4946*n,.3339*i),e.arcTo(.1944*n,.1883*i,0,0,1,.4549*n,.3205*i),e.arcTo(.1944*n,.1883*i,0,0,1,.419*n,.3004*i),e.arcTo(.1944*n,.1883*i,0,0,1,.3965*n,.2795*i),e.close(),e.fill(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7782*i),e.lineTo(0,.3406*i),e.lineTo(.5974*n,0),e.lineTo(n,.2218*i),e.lineTo(n,.6674*i),e.lineTo(.3991*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dS3.prototype.cst.S3,mxShapeAws3dS3),mxUtils.extend(mxShapeAws3dSimpleDB,mxShape),mxShapeAws3dSimpleDB.prototype.cst={SIMPLE_DB:"mxgraph.aws3d.simpleDb",SHADING_COLORS:"shadingCols"},mxShapeAws3dSimpleDB.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/133),e.setStrokeWidth(t),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dSimpleDB.prototype.background=function(e,t,o,n,i,a){e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dSimpleDB.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dSimpleDB.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.lineTo(0,.7331*i),e.lineTo(0,.3346*i),e.close(),e.moveTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3308*i),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.5*n,i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(n,.3308*i),e.lineTo(n,.7331*i),e.close(),e.fill(),e.restore(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.setShadow(!1),e.begin(),e.moveTo(.1821*n,.182*i),e.lineTo(.4659*n,.0308*i),e.lineTo(.822*n,.2218*i),e.lineTo(.539*n,.3714*i),e.close(),e.fill(),e.setLineJoin("round"),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.moveTo(0,.3346*i),e.lineTo(.126*n,.267*i),e.moveTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.moveTo(n,.3346*i),e.lineTo(.87*n,.267*i),e.moveTo(.378*n,.4023*i),e.lineTo(.622*n,.4023*i),e.stroke(),e.restore(),e.setShadow(!1),t=mxUtils.getValue(this.state.style,"fillColor","#ffffff"),e.setStrokeColor(t),e.setStrokeWidth(2.2*a),e.begin(),e.moveTo(.2382*n,.2218*i),e.lineTo(.5415*n,.0602*i),e.moveTo(.3821*n,.0564*i),e.lineTo(.7737*n,.2656*i),e.moveTo(.2967*n,.0915*i),e.lineTo(.7114*n,.312*i),e.moveTo(.2209*n,.1316*i),e.lineTo(.6179*n,.3434*i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dSimpleDB.prototype.cst.SIMPLE_DB,mxShapeAws3dSimpleDB),mxUtils.extend(mxShapeAws3dSqs,mxShape),mxShapeAws3dSqs.prototype.cst={SQS:"mxgraph.aws3d.sqs",SHADING_COLORS:"shadingCols"},mxShapeAws3dSqs.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/184,t*i/212.75),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dSqs.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7485*i),e.lineTo(0,.584*i),e.lineTo(.1658*n,.1666*i),e.lineTo(.5*n,0),e.lineTo(.8337*n,.1666*i),e.lineTo(n,.584*i),e.lineTo(n,.7485*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dSqs.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dSqs.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.1658*n,.1671*i),e.lineTo(.5*n,.334*i),e.lineTo(.5*n,i),e.lineTo(0,.7485*i),e.lineTo(0,.584*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.5*n,.3344*i),e.lineTo(.8332*n,.1671*i),e.lineTo(n,.584*i),e.lineTo(n,.7509*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(.6674*n,.0844*i),e.lineTo(.3337*n,.2512*i),e.lineTo(.25*n,.7109*i),e.lineTo(.25*n,.8736*i),e.moveTo(.3326*n,.0839*i),e.lineTo(.6674*n,.2512*i),e.lineTo(.75*n,.7053*i),e.lineTo(.75*n,.874*i),e.moveTo(0,.584*i),e.lineTo(.5*n,.8331*i),e.lineTo(n,.584*i),e.moveTo(.1658*n,.1671*i),e.lineTo(.5*n,.334*i),e.lineTo(.8332*n,.1671*i),e.moveTo(.5*n,.334*i),e.lineTo(.5*n,i),e.stroke(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.3337*n,.1511*i),e.lineTo(.4668*n,.0848*i),e.lineTo(.6663*n,.184*i),e.lineTo(.5337*n,.2503*i),e.close(),e.fill(),t=mxUtils.getValue(this.state.style,"fillColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.3902*n,.153*i),e.lineTo(.4701*n,.113*i),e.lineTo(.4701*n,.153*i),e.close(),e.moveTo(.4402*n,.1784*i),e.lineTo(.5196*n,.1384*i),e.lineTo(.5196*n,.1784*i),e.close(),e.moveTo(.4908*n,.2033*i),e.lineTo(.5701*n,.1633*i),e.lineTo(.5701*n,.2033*i),e.close(),e.fill(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7485*i),e.lineTo(0,.584*i),e.lineTo(.1658*n,.1666*i),e.lineTo(.5*n,0),e.lineTo(.8337*n,.1666*i),e.lineTo(n,.584*i),e.lineTo(n,.7485*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dSqs.prototype.cst.SQS,mxShapeAws3dSqs),mxUtils.extend(mxShapeAws3dVpcGateway,mxShape),mxShapeAws3dVpcGateway.prototype.cst={VPC_GATEWAY:"mxgraph.aws3d.vpcGateway",SHADING_COLORS:"shadingCols"},mxShapeAws3dVpcGateway.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/116.7,t*i/102.8),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dVpcGateway.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(.5801*n,.5447*i),e.lineTo(.5801*n,.035*i),e.lineTo(.1054*n,0),e.lineTo(0,.0691*i),e.lineTo(0,.4134*i),e.lineTo(.3188*n,.7247*i),e.close(),e.fillAndStroke(),e.restore(),e.save(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dVpcGateway.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.5801*n,.5447*i),e.lineTo(.5801*n,.035*i),e.lineTo(.3162*n,.2072*i),e.lineTo(.3162*n,.7247*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.3162*n,.2072*i),e.lineTo(0,.0691*i),e.lineTo(0,.4134*i),e.lineTo(.3162*n,.7247*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.begin(),e.moveTo(.5801*n,.5447*i),e.lineTo(.5801*n,.035*i),e.lineTo(.3162*n,.2072*i),e.lineTo(.3162*n,.7247*i),e.close(),e.stroke(),e.restore(),e.setLineJoin("round"),e.setShadow(!1),e.begin(),e.moveTo(.3162*n,.2072*i),e.lineTo(0,.0691*i),e.lineTo(0,.4134*i),e.lineTo(.3162*n,.7247*i),e.close(),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(.5801*n,.5447*i),e.lineTo(.5801*n,.035*i),e.lineTo(.1054*n,0),e.lineTo(0,.0691*i),e.lineTo(0,.4134*i),e.lineTo(.3188*n,.7247*i),e.close(),e.stroke(),e.restore(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(n,.929*i),e.lineTo(n,.5866*i),e.lineTo(.6829*n,.1031*i),e.lineTo(.4216*n,.2753*i),e.lineTo(.4216*n,.7928*i),e.lineTo(.8946*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dVpcGateway.prototype.foreground=function(e,t,o,n,i,a){e.restore(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setShadow(!1),e.setLineJoin("round"),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dVpcGateway.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var s=mxUtils.getValue(this.state.style,"flipH","0");"0"==s?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(n,.929*i),e.lineTo(n,.5866*i),e.lineTo(.8946*n,.6537*i),e.lineTo(.8946*n,i),e.close(),e.fill(),"0"==s?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(.8946*n,i),e.lineTo(.8946*n,.6537*i),e.lineTo(.4216*n,.2753*i),e.lineTo(.4216*n,.7928*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(n,.929*i),e.lineTo(n,.5866*i),e.lineTo(.8946*n,.6537*i),e.lineTo(.8946*n,i),e.close(),e.stroke(),e.begin(),e.moveTo(.8946*n,i),e.lineTo(.8946*n,.6537*i),e.lineTo(.4216*n,.2753*i),e.lineTo(.4216*n,.7928*i),e.close(),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(n,.929*i),e.lineTo(n,.5866*i),e.lineTo(.6829*n,.1031*i),e.lineTo(.4216*n,.2753*i),e.lineTo(.4216*n,.7928*i),e.lineTo(.8946*n,i),e.close(),e.stroke(),e.setFillColor(t),e.begin(),e.moveTo(.5587*n,.7743*i),e.lineTo(.5587*n,.6274*i),e.lineTo(.5775*n,.6342*i),e.lineTo(.5775*n,.57*i),e.arcTo(.0428*n,.0486*i,0,0,1,.6058*n,.5253*i),e.arcTo(.0686*n,.0778*i,0,0,1,.6564*n,.5447*i),e.arcTo(.0857*n,.0973*i,0,0,1,.6847*n,.607*i),e.lineTo(.6847*n,.6877*i),e.lineTo(.7001*n,.6946*i),e.lineTo(.7001*n,.8405*i),e.close(),e.moveTo(.6564*n,.6741*i),e.lineTo(.6564*n,.6177*i),e.arcTo(.06*n,.0681*i,0,0,0,.6392*n,.57*i),e.arcTo(.0343*n,.0389*i,0,0,0,.6195*n,.5574*i),e.arcTo(.0111*n,.0126*i,0,0,0,.6058*n,.5691*i),e.lineTo(.6058*n,.6498*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeAws3dVpcGateway.prototype.cst.VPC_GATEWAY,mxShapeAws3dVpcGateway),mxUtils.extend(mxShapeAws3dWebServer,mxShape),mxShapeAws3dWebServer.prototype.cst={WEB_SERVER:"mxgraph.aws3d.webServer",SHADING_COLORS:"shadingCols"},mxShapeAws3dWebServer.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/106),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dWebServer.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6651*i),e.lineTo(0,.3349*i),e.lineTo(.5*n,0),e.lineTo(n,.3349*i),e.lineTo(n,.6651*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dWebServer.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dWebServer.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(0,.3349*i),e.lineTo(.5*n,.6651*i),e.lineTo(.5*n,i),e.lineTo(0,.6651*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.5*n,.6651*i),e.lineTo(n,.3349*i),e.lineTo(n,.6651*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.3349*i),e.lineTo(.5*n,.6651*i),e.lineTo(.5*n,i),e.lineTo(0,.6651*i),e.close(),e.stroke(),e.begin(),e.moveTo(.5*n,.6651*i),e.lineTo(n,.3349*i),e.lineTo(n,.6651*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.setLineJoin("miter"),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.374*n,.5189*i),e.arcTo(.0325*n,.0236*i,0,0,1,.374*n,.4858*i),e.lineTo(.4797*n,.4151*i),e.arcTo(.0325*n,.0236*i,0,0,1,.5203*n,.4151*i),e.lineTo(.626*n,.4858*i),e.arcTo(.0325*n,.0236*i,0,0,1,.626*n,.516*i),e.lineTo(.5203*n,.5868*i),e.arcTo(.0325*n,.0236*i,0,0,1,.4797*n,.5868*i),e.close(),e.fill(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6651*i),e.lineTo(0,.3349*i),e.lineTo(.5*n,0),e.lineTo(n,.3349*i),e.lineTo(n,.6651*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dWebServer.prototype.cst.WEB_SERVER,mxShapeAws3dWebServer),mxUtils.extend(mxShapeAws3dDynamoDB,mxShape),mxShapeAws3dDynamoDB.prototype.cst={DYNAMO_DB:"mxgraph.aws3d.dynamoDb",SHADING_COLORS:"shadingCols"},mxShapeAws3dDynamoDB.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/181.5,t*i/210),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dDynamoDB.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.8333*i),e.lineTo(0,.1667*i),e.lineTo(.3333*n,.0014*i),e.lineTo(.4986*n,.1667*i),e.lineTo(.6639*n,0),e.lineTo(n,.169*i),e.lineTo(n,.8333*i),e.lineTo(.6667*n,i),e.lineTo(.5014*n,.9162*i),e.lineTo(.3333*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dDynamoDB.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dDynamoDB.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.168*n,.3333*i),e.lineTo(0,.3333*i),e.lineTo(.3333*n,.5*i),e.lineTo(.3333*n,i),e.lineTo(0,.8333*i),e.lineTo(0,.1714*i),e.close(),e.moveTo(.4986*n,.1667*i),e.lineTo(.6667*n,0),e.lineTo(n,.169*i),e.lineTo(.832*n,.3348*i),e.lineTo(n,.3333*i),e.lineTo(.6667*n,.5*i),e.lineTo(.5014*n,.5*i),e.lineTo(.832*n,.3348*i),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.3333*n,.5*i),e.lineTo(.4986*n,.5*i),e.lineTo(.4986*n,.9162*i),e.lineTo(.3333*n,i),e.close(),e.moveTo(.6667*n,i),e.lineTo(.6667*n,.5*i),e.lineTo(n,.3333*i),e.lineTo(.832*n,.3348*i),e.lineTo(n,.169*i),e.lineTo(n,.831*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(.168*n,.3333*i),e.lineTo(0,.3333*i),e.lineTo(.3333*n,.5*i),e.lineTo(.3333*n,i),e.lineTo(0,.8333*i),e.lineTo(0,.1714*i),e.close(),e.moveTo(.4986*n,.1667*i),e.lineTo(.6667*n,0),e.lineTo(n,.169*i),e.lineTo(.832*n,.3348*i),e.lineTo(n,.3333*i),e.lineTo(.6667*n,.5*i),e.lineTo(.5014*n,.5*i),e.lineTo(.832*n,.3348*i),e.close(),e.moveTo(.3333*n,.5*i),e.lineTo(.4986*n,.5*i),e.lineTo(.4986*n,.9162*i),e.lineTo(.3333*n,i),e.close(),e.moveTo(.6667*n,i),e.lineTo(.6667*n,.5*i),e.lineTo(n,.3333*i),e.lineTo(n,.831*i),e.close(),e.moveTo(.168*n,.3333*i),e.lineTo(.5*n,.1667*i),e.moveTo(.168*n,.3333*i),e.lineTo(.5014*n,.5*i),e.stroke(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.4876*n,.2262*i),e.arcTo(.303*n,.2619*i,0,0,1,.5647*n,.25*i),e.arcTo(.4407*n,.381*i,0,0,1,.6419*n,.2905*i),e.arcTo(.303*n,.2619*i,0,0,1,.6799*n,.32*i),e.arcTo(.0132*n,.0076*i,0,0,1,.6634*n,.3314*i),e.arcTo(.303*n,.2619*i,0,0,1,.5978*n,.3119*i),e.arcTo(.4408*n,.381*i,0,0,1,.508*n,.2667*i),e.arcTo(.303*n,.2619*i,0,0,1,.4711*n,.2343*i),e.arcTo(.0132*n,.0076*i,0,0,1,.4876*n,.2262*i),e.close(),e.fill(),e.begin(),e.moveTo(.5124*n,.4143*i),e.arcTo(.1102*n,.0952*i,0,0,1,.4683*n,.4095*i),e.arcTo(.4408*n,.381*i,0,0,1,.3829*n,.3757*i),e.arcTo(.4408*n,.381*i,0,0,1,.3196*n,.3371*i),e.arcTo(.0661*n,.0357*i,0,0,1,.3058*n,.3081*i),e.lineTo(.4612*n,.2333*i),e.arcTo(.0661*n,.0476*i,0,0,0,.4744*n,.2548*i),e.arcTo(.3306*n,.2857*i,0,0,0,.53*n,.2905*i),e.arcTo(.4408*n,.381*i,0,0,0,.6198*n,.3295*i),e.arcTo(.1102*n,.0952*i,0,0,0,.665*n,.3367*i),e.close(),e.moveTo(.5052*n,.3714*i),e.arcTo(.0275*n,.019*i,0,0,1,.5135*n,.3581*i),e.arcTo(.0275*n,.0238*i,0,0,1,.5344*n,.3571*i),e.lineTo(.5405*n,.3471*i),e.arcTo(.0275*n,.0143*i,0,0,1,.5278*n,.3381*i),e.arcTo(.022*n,.0119*i,0,0,1,.5372*n,.3271*i),e.lineTo(.5306*n,.3186*i),e.arcTo(.0331*n,.0286*i,0,0,1,.5041*n,.3143*i),e.arcTo(.0275*n,.0143*i,0,0,1,.4975*n,.3029*i),e.lineTo(.4777*n,.2995*i),e.arcTo(.0331*n,.0286*i,0,0,1,.4628*n,.3033*i),e.arcTo(.0331*n,.0286*i,0,0,1,.4408*n,.2967*i),e.lineTo(.4187*n,.3*i),e.arcTo(.011*n,.0081*i,0,0,1,.4132*n,.3124*i),e.arcTo(.0386*n,.0333*i,0,0,1,.395*n,.3129*i),e.lineTo(.3873*n,.3224*i),e.arcTo(.0165*n,.0143*i,0,0,1,.3994*n,.3333*i),e.arcTo(.0138*n,.0119*i,0,0,1,.3901*n,.3433*i),e.lineTo(.3994*n,.3514*i),e.arcTo(.0331*n,.0286*i,0,0,1,.4215*n,.3548*i),e.arcTo(.0165*n,.0119*i,0,0,1,.4298*n,.3667*i),e.lineTo(.449*n,.3714*i),e.arcTo(.0331*n,.0286*i,0,0,1,.4711*n,.3657*i),e.arcTo(.0331*n,.0286*i,0,0,1,.4887*n,.3724*i),e.close(),e.moveTo(.4986*n,.351*i),e.arcTo(.0441*n,.0381*i,0,0,1,.4804*n,.3552*i),e.arcTo(.1102*n,.0952*i,0,0,1,.443*n,.349*i),e.lineTo(.4413*n,.3529*i),e.lineTo(.4242*n,.3371*i),e.arcTo(.1102*n,.0952*i,0,0,0,.4545*n,.3462*i),e.arcTo(.1102*n,.0952*i,0,0,0,.4793*n,.3476*i),e.arcTo(.0441*n,.0381*i,0,0,0,.4986*n,.3448*i),e.close(),e.moveTo(.503*n,.3349*i),e.arcTo(.1102*n,.0952*i,0,0,0,.4766*n,.3233*i),e.arcTo(.0826*n,.0714*i,0,0,0,.4529*n,.32*i),e.arcTo(.0551*n,.0476*i,0,0,0,.4325*n,.3238*i),e.lineTo(.427*n,.3195*i),e.arcTo(.0826*n,.0714*i,0,0,1,.4556*n,.3157*i),e.arcTo(.0826*n,.0714*i,0,0,1,.4851*n,.3232*i),e.lineTo(.4876*n,.3181*i),e.close(),e.fill(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.8333*i),e.lineTo(0,.1667*i),e.lineTo(.3333*n,.0014*i),e.lineTo(.4986*n,.1667*i),e.lineTo(.6639*n,0),e.lineTo(n,.169*i),e.lineTo(n,.8333*i),e.lineTo(.6667*n,i),e.lineTo(.5014*n,.9162*i),e.lineTo(.3333*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dDynamoDB.prototype.cst.DYNAMO_DB,mxShapeAws3dDynamoDB),mxUtils.extend(mxShapeAws3dElasticMapReduce,mxShape),mxShapeAws3dElasticMapReduce.prototype.cst={ELASTIC_MAP_REDUCE:"mxgraph.aws3d.elasticMapReduce",SHADING_COLORS:"shadingCols"},mxShapeAws3dElasticMapReduce.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/133),e.setStrokeWidth(t),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dElasticMapReduce.prototype.background=function(e,t,o,n,i,a){e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dElasticMapReduce.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dDynamoDB.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.lineTo(0,.7331*i),e.lineTo(0,.3346*i),e.close(),e.moveTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3308*i),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.5*n,i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(n,.3308*i),e.lineTo(n,.7331*i),e.close(),e.fill(),e.restore(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.setShadow(!1),e.begin(),e.moveTo(.3336*n,.1789*i),e.arcTo(.0328*n,.0301*i,0,0,1,.359*n,.1789*i),e.lineTo(.4001*n,.2015*i),e.arcTo(.0074*n,.0068*i,0,0,1,.4008*n,.2135*i),e.lineTo(.3574*n,.2368*i),e.arcTo(.0328*n,.0301*i,0,0,1,.3352*n,.2368*i),e.lineTo(.2934*n,.2143*i),e.arcTo(.0074*n,.0068*i,0,0,1,.2934*n,.2015*i),e.close(),e.moveTo(.3705*n,.1729*i),e.arcTo(.0074*n,.0068*i,0,0,1,.3705*n,.1602*i),e.lineTo(.4139*n,.1368*i),e.arcTo(.0328*n,.0301*i,0,0,1,.4336*n,.1368*i),e.lineTo(.4811*n,.1617*i),e.arcTo(.0074*n,.0068*i,0,0,1,.4811*n,.1708*i),e.lineTo(.4328*n,.1955*i),e.arcTo(.0328*n,.0301*i,0,0,1,.4156*n,.1955*i),e.close(),e.moveTo(.4467*n,.1308*i),e.arcTo(.0074*n,.0068*i,0,0,1,.4467*n,.1203*i),e.lineTo(.491*n,.0962*i),e.arcTo(.0328*n,.0301*i,0,0,1,.5123*n,.0962*i),e.lineTo(.559*n,.1203*i),e.arcTo(.0074*n,.0068*i,0,0,1,.559*n,.1293*i),e.lineTo(.5123*n,.1549*i),e.arcTo(.0328*n,.0301*i,0,0,1,.4918*n,.1549*i),e.close(),e.moveTo(.568*n,.1383*i),e.arcTo(.0328*n,.0301*i,0,0,1,.5918*n,.1383*i),e.lineTo(.6361*n,.1624*i),e.arcTo(.0074*n,.0068*i,0,0,1,.6366*n,.1714*i),e.lineTo(.5885*n,.1955*i),e.arcTo(.0328*n,.0301*i,0,0,1,.568*n,.1955*i),e.lineTo(.523*n,.1714*i),e.arcTo(.0074*n,.0068*i,0,0,1,.523*n,.1616*i),e.close(),e.moveTo(.6451*n,.1789*i),e.arcTo(.0328*n,.0301*i,0,0,1,.6697*n,.1789*i),e.lineTo(.7123*n,.2023*i),e.arcTo(.0074*n,.0068*i,0,0,1,.7123*n,.2128*i),e.lineTo(.6664*n,.2376*i),e.arcTo(.0328*n,.0301*i,0,0,1,.6492*n,.2376*i),e.lineTo(.6016*n,.2135*i),e.arcTo(.0074*n,.0068*i,0,0,1,.6016*n,.2023*i),e.close(),e.moveTo(.6369*n,.2451*i),e.arcTo(.0074*n,.0068*i,0,0,1,.6369*n,.2526*i),e.lineTo(.5172*n,.3173*i),e.arcTo(.0328*n,.0301*i,0,0,1,.4893*n,.3173*i),e.lineTo(.3697*n,.2541*i),e.arcTo(.0074*n,.0068*i,0,0,1,.3697*n,.2436*i),e.lineTo(.4918*n,.1782*i),e.arcTo(.0328*n,.0301*i,0,0,1,.5131*n,.1782*i),e.close(),e.fill(),e.moveTo(0*n,0*i),e.lineTo(0*n,0*i),e.arcTo(0*n,0*i,0,0,1,0*n,0*i),e.setLineJoin("round"),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.moveTo(0,.3346*i),e.lineTo(.126*n,.267*i),e.moveTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.moveTo(n,.3346*i),e.lineTo(.87*n,.267*i),e.moveTo(.378*n,.4023*i),e.lineTo(.622*n,.4023*i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dElasticMapReduce.prototype.cst.ELASTIC_MAP_REDUCE,mxShapeAws3dElasticMapReduce),mxUtils.extend(mxShapeAws3dRdsSlave,mxShape),mxShapeAws3dRdsSlave.prototype.cst={RDS_SLAVE:"mxgraph.aws3d.rdsSlave"},mxShapeAws3dRdsSlave.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/133),e.setStrokeWidth(t),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dRdsSlave.prototype.background=function(e,t,o,n,i,a){e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dRdsSlave.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),e.setAlpha("0.1"),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.lineTo(0,.7331*i),e.lineTo(0,.3346*i),e.close(),e.moveTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3308*i),e.fill(),e.setAlpha("0.3"),e.begin(),e.moveTo(.5*n,i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(n,.3308*i),e.lineTo(n,.7331*i),e.close(),e.fill(),e.restore(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.setShadow(!1),e.begin(),e.moveTo(.2457*n,.2137*i),e.lineTo(.5393*n,.0593*i),e.lineTo(.6875*n,.1377*i),e.arcTo(.0871*n,.0799*i,0,0,1,.7137*n,.1625*i),e.arcTo(.0348*n,.032*i,0,0,1,.7076*n,.1968*i),e.arcTo(.1743*n,.1599*i,0,0,1,.6597*n,.2249*i),e.arcTo(.1307*n,.1199*i,0,0,1,.5943*n,.232*i),e.arcTo(.1307*n,.1199*i,0,0,1,.5542*n,.2225*i),e.arcTo(.0871*n,.0799*i,0,0,1,.5673*n,.2353*i),e.arcTo(.0261*n,.024*i,0,0,1,.5611*n,.2729*i),e.lineTo(.4889*n,.316*i),e.arcTo(.0261*n,.024*i,0,0,0,.4766*n,.3352*i),e.lineTo(.4052*n,.2992*i),e.arcTo(.0173*n,.0159*i,0,0,1,.4121*n,.2841*i),e.lineTo(.4914*n,.2368*i),e.arcTo(.0218*n,.02*i,0,0,0,.4897*n,.2129*i),e.lineTo(.4409*n,.1857*i),e.lineTo(.3145*n,.2529*i),e.close(),e.moveTo(.4801*n,.1633*i),e.lineTo(.5263*n,.1865*i),e.arcTo(.0871*n,.0799*i,0,0,0,.583*n,.1905*i),e.arcTo(.1307*n,.1199*i,0,0,0,.6196*n,.1721*i),e.arcTo(.0261*n,.024*i,0,0,0,.6117*n,.1441*i),e.lineTo(.5655*n,.1193*i),e.fill(),e.setLineJoin("round"),e.begin(),e.moveTo(.126*n,.1316*i),e.lineTo(.126*n,.267*i),e.lineTo(.378*n,.4023*i),e.lineTo(.5*n,.6015*i),e.lineTo(.622*n,.4023*i),e.lineTo(.874*n,.267*i),e.lineTo(.874*n,.1316*i),e.moveTo(0,.3346*i),e.lineTo(.126*n,.267*i),e.moveTo(.5*n,.6015*i),e.lineTo(.5*n,i),e.moveTo(n,.3346*i),e.lineTo(.87*n,.267*i),e.moveTo(.378*n,.4023*i),e.lineTo(.622*n,.4023*i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.7331*i),e.lineTo(0,.3346*i),e.lineTo(.126*n,.1316*i),e.lineTo(.374*n,0),e.lineTo(.626*n,0),e.lineTo(.874*n,.1316*i),e.lineTo(n,.3346*i),e.lineTo(n,.7331*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dRdsSlave.prototype.cst.RDS_SLAVE,mxShapeAws3dRdsSlave),mxUtils.extend(mxShapeAws3dAMI2,mxShape),mxShapeAws3dAMI2.prototype.cst={AMI_2:"mxgraph.aws3d.ami2",SHADING_COLORS:"shadingCols"},mxShapeAws3dAMI2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),o=parseFloat(mxUtils.getValue(this.state.style,"shadow","0")),t=Math.min(t*n/92,t*i/60),e.setStrokeWidth(t),e.setShadow(!1),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==o&&e.setShadow(!0),e.begin(),e.moveTo(0,.572*i),e.lineTo(.0865*n,.284*i),e.lineTo(.4203*n,0),e.lineTo(.5865*n,0),e.lineTo(.919*n,.286*i),e.lineTo(n,.566*i),e.lineTo(.5027*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dAMI2.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var a=mxUtils.getValue(this.state.style,"flipH","0");"0"==a?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.566*i),e.lineTo(.0892*n,.282*i),e.lineTo(.0878*n,.426*i),e.lineTo(.4216*n,.712*i),e.lineTo(.5865*n,.712*i),e.lineTo(.5027*n,i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.5027*n,i),e.lineTo(.5865*n,.712*i),e.lineTo(.9176*n,.43*i),e.lineTo(n,.566*i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.566*i),e.lineTo(.0892*n,.282*i),e.lineTo(.0878*n,.426*i),e.lineTo(.4216*n,.712*i),e.lineTo(.5865*n,.712*i),e.lineTo(.5027*n,i),e.close(),e.moveTo(.5027*n,i),e.lineTo(.5865*n,.712*i),e.lineTo(.9176*n,.43*i),e.lineTo(n,.566*i),e.close(),e.moveTo(0,.572*i),e.lineTo(.0892*n,.422*i),e.moveTo(.5027*n,i),e.lineTo(.4189*n,.708*i),e.moveTo(.9176*n,.43*i),e.lineTo(.9176*n,.29*i),e.stroke(),e.setStrokeWidth(2*t),e.setLineJoin("round"),e.begin(),e.moveTo(.2095*n,.376*i),e.lineTo(.527*n,.104*i),e.lineTo(.6338*n,.194*i),e.lineTo(.3149*n,.468*i),e.close(),e.moveTo(.3716*n,.518*i),e.lineTo(.6892*n,.246*i),e.lineTo(.796*n,.336*i),e.lineTo(.477*n,.61*i),e.close(),e.moveTo(.3108*n,.282*i),e.lineTo(.4257*n,.38*i),e.moveTo(.4189*n,.194*i),e.lineTo(.5297*n,.288*i),e.moveTo(.5838*n,.338*i),e.lineTo(.6892*n,.426*i),e.moveTo(.4757*n,.426*i),e.lineTo(.5838*n,.518*i),e.stroke(),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.572*i),e.lineTo(.0865*n,.284*i),e.lineTo(.4203*n,0),e.lineTo(.5865*n,0),e.lineTo(.919*n,.286*i),e.lineTo(n,.566*i),e.lineTo(.5027*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dAMI2.prototype.cst.AMI_2,mxShapeAws3dAMI2),mxUtils.extend(mxShapeAws3dEbs,mxShape),mxShapeAws3dEbs.prototype.cst={EBS:"mxgraph.aws3d.ebs",SHADING_COLORS:"shadingCols"},mxShapeAws3dEbs.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/92,t=t*i/60;var a=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));t=Math.min(o,t),e.setStrokeWidth(t),e.setShadow(!1),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==a&&e.setShadow(!0),e.begin(),e.moveTo(0,.5276*i),e.lineTo(0,.4188*i),e.lineTo(.071*n,.2898*i),e.lineTo(.4033*n,0),e.lineTo(.9301*n,.464*i),e.lineTo(n,.5863*i),e.lineTo(n,.7035*i),e.lineTo(.6667*n,i),e.lineTo(.5355*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dEbs.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(a=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(.071*n,.2948*i),e.lineTo(.6011*n,.7621*i),e.lineTo(.6667*n,i),e.lineTo(.5355*n,i),e.lineTo(0,.5276*i),e.lineTo(0,.4137*i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.6011*n,.7655*i),e.lineTo(.9344*n,.4724*i),e.lineTo(n,.7035*i),e.lineTo(.6667*n,i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(.071*n,.2948*i),e.lineTo(.6011*n,.7621*i),e.lineTo(.6667*n,i),e.lineTo(.5355*n,i),e.lineTo(0,.5276*i),e.lineTo(0,.4137*i),e.close(),e.moveTo(.6011*n,.7655*i),e.lineTo(.9344*n,.4724*i),e.lineTo(n,.7035*i),e.lineTo(.6667*n,i),e.close(),e.moveTo(.0033*n,.5276*i),e.lineTo(.071*n,.2898*i),e.moveTo(.5325*n,.9976*i),e.lineTo(.603*n,.7593*i),e.stroke(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.5276*i),e.lineTo(0,.4188*i),e.lineTo(.071*n,.2898*i),e.lineTo(.4033*n,0),e.lineTo(.9301*n,.464*i),e.lineTo(n,.5863*i),e.lineTo(n,.7035*i),e.lineTo(.6667*n,i),e.lineTo(.5355*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dEbs.prototype.cst.EBS,mxShapeAws3dEbs),mxUtils.extend(mxShapeAws3dOracleServer,mxShape),mxShapeAws3dOracleServer.prototype.cst={ORACLE_SERVER:"mxgraph.aws3d.oracleServer"},mxShapeAws3dOracleServer.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/123,t*i/133),e.setStrokeWidth(t),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dOracleServer.prototype.background=function(e,t,o,n,i,a){e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7464*i),e.lineTo(0,.25*i),e.lineTo(.5*n,0),e.lineTo(n,.25*i),e.lineTo(n,.7464*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dOracleServer.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),e.setAlpha("0.1"),e.begin(),e.moveTo(0,.7464*i),e.lineTo(0,.25*i),e.lineTo(.5*n,.5*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.setAlpha("0.3"),e.begin(),e.moveTo(.5*n,.5*i),e.lineTo(n,.25*i),e.lineTo(n,.7464*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.setFillColor("#ff0000"),e.begin(),e.moveTo(0,.5866*i),e.lineTo(.5*n,.8359*i),e.lineTo(n,.5866*i),e.lineTo(n,.6986*i),e.lineTo(.5*n,.9486*i),e.lineTo(0,.6986*i),e.fill(),e.setStrokeWidth(.5*a),e.setStrokeColor("#ffffff"),e.setFillColor("#ffffff"),e.begin(),e.moveTo(0,.5866*i),e.lineTo(.5*n,.8359*i),e.lineTo(n,.5866*i),e.moveTo(n,.6986*i),e.lineTo(.5*n,.9486*i),e.lineTo(0,.6986*i),e.stroke(),e.begin(),e.moveTo(.0813*n,.7113*i),e.arcTo(.0569*n,.0493*i,0,0,1,.065*n,.6831*i),e.arcTo(.065*n,.0563*i,0,0,1,.065*n,.6613*i),e.arcTo(.0163*n,.0141*i,0,0,1,.0797*n,.6549*i),e.lineTo(.122*n,.6754*i),e.arcTo(.065*n,.0563*i,0,0,1,.1358*n,.6937*i),e.arcTo(.065*n,.0563*i,0,0,1,.139*n,.7232*i),e.arcTo(.0179*n,.0155*i,0,0,1,.1187*n,.7296*i),e.close(),e.moveTo(.1163*n,.7183*i),e.arcTo(.0089*n,.0077*i,0,0,0,.1285*n,.7148*i),e.arcTo(.0407*n,.0352*i,0,0,0,.1293*n,.7021*i),e.arcTo(.0407*n,.0352*i,0,0,0,.1179*n,.6831*i),e.lineTo(.087*n,.6676*i),e.arcTo(.0081*n,.007*i,0,0,0,.0764*n,.6697*i),e.arcTo(.0325*n,.0352*i,0,0,0,.078*n,.6937*i),e.arcTo(.0407*n,.0352*i,0,0,0,.087*n,.7035*i),e.close(),e.moveTo(.1439*n,.743*i),e.lineTo(.1439*n,.6866*i),e.lineTo(.1846*n,.707*i),e.arcTo(.0407*n,.0352*i,0,0,1,.1967*n,.7183*i),e.arcTo(.0407*n,.0352*i,0,0,1,.2*n,.738*i),e.arcTo(.0138*n,.0155*i,0,0,1,.1813*n,.743*i),e.lineTo(.1992*n,.769*i),e.lineTo(.187*n,.7641*i),e.lineTo(.1577*n,.7218*i),e.lineTo(.1854*n,.7345*i),e.arcTo(.0041*n,.0035*i,0,0,0,.1911*n,.7317*i),e.arcTo(.0163*n,.0141*i,0,0,0,.1894*n,.7225*i),e.arcTo(.0325*n,.0282*i,0,0,0,.1821*n,.7155*i),e.lineTo(.1528*n,.7007*i),e.lineTo(.1528*n,.7472*i),e.close(),e.moveTo(.2008*n,.7711*i),e.lineTo(.2293*n,.7338*i),e.arcTo(.0065*n,.0056*i,0,0,1,.2382*n,.7324*i),e.arcTo(.0407*n,.0352*i,0,0,1,.2431*n,.7415*i),e.lineTo(.2699*n,.8035*i),e.lineTo(.2602*n,.8007*i),e.lineTo(.252*n,.7859*i),e.lineTo(.2293*n,.7754*i),e.lineTo(.2244*n,.7634*i),e.lineTo(.248*n,.7739*i),e.lineTo(.235*n,.7444*i),e.lineTo(.2122*n,.7768*i),e.close(),e.moveTo(.3244*n,.8225*i),e.lineTo(.3171*n,.8289*i),e.lineTo(.2854*n,.8127*i),e.arcTo(.0407*n,.0352*i,0,0,1,.2724*n,.7986*i),e.arcTo(.0569*n,.0493*i,0,0,1,.265*n,.7746*i),e.arcTo(.0407*n,.0352*i,0,0,1,.2683*n,.762*i),e.arcTo(.0163*n,.0141*i,0,0,1,.2829*n,.757*i),e.lineTo(.3228*n,.7761*i),e.lineTo(.3179*n,.7831*i),e.lineTo(.2878*n,.7683*i),e.arcTo(.0081*n,.007*i,0,0,0,.2789*n,.7697*i),e.arcTo(.0244*n,.0211*i,0,0,0,.2748*n,.7831*i),e.arcTo(.0407*n,.0352*i,0,0,0,.2878*n,.8042*i),e.close(),e.moveTo(.3276*n,.7789*i),e.lineTo(.3366*n,.7831*i),e.lineTo(.3366*n,.8289*i),e.lineTo(.3805*n,.8507*i),e.lineTo(.3748*n,.857*i),e.lineTo(.3317*n,.8359*i),e.arcTo(.0163*n,.0141*i,0,0,1,.3276*n,.8275*i),e.close(),e.moveTo(.435*n,.8775*i),e.lineTo(.4325*n,.8866*i),e.lineTo(.3959*n,.8683*i),e.arcTo(.0407*n,.0352*i,0,0,1,.3862*n,.8563*i),e.arcTo(.0528*n,.0458*i,0,0,1,.3805*n,.8183*i),e.arcTo(.0163*n,.0141*i,0,0,1,.3951*n,.8134*i),e.lineTo(.435*n,.8324*i),e.lineTo(.4285*n,.838*i),e.lineTo(.4008*n,.8246*i),e.arcTo(.0098*n,.0085*i,0,0,0,.3878*n,.831*i),e.lineTo(.4333*n,.8542*i),e.lineTo(.426*n,.8606*i),e.lineTo(.3878*n,.8415*i),e.arcTo(.0325*n,.0282*i,0,0,0,.3976*n,.8585*i),e.close(),e.moveTo(.6171*n,.8063*i),e.arcTo(.0163*n,.0141*i,0,0,1,.6366*n,.8092*i),e.arcTo(.0325*n,.0282*i,0,0,1,.639*n,.8303*i),e.arcTo(.065*n,.0563*i,0,0,1,.6211*n,.8592*i),e.lineTo(.5894*n,.8761*i),e.arcTo(.0203*n,.0176*i,0,0,1,.565*n,.8732*i),e.arcTo(.0407*n,.0352*i,0,0,1,.5659*n,.8458*i),e.arcTo(.0488*n,.0422*i,0,0,1,.5805*n,.8246*i),e.close(),e.moveTo(.5886*n,.8296*i),e.arcTo(.0325*n,.0282*i,0,0,0,.5748*n,.8472*i),e.arcTo(.0325*n,.0282*i,0,0,0,.574*n,.862*i),e.arcTo(.0098*n,.0085*i,0,0,0,.587*n,.8676*i),e.lineTo(.6163*n,.8528*i),e.arcTo(.0407*n,.0352*i,0,0,0,.6285*n,.8359*i),e.arcTo(.0244*n,.0211*i,0,0,0,.6293*n,.8225*i),e.arcTo(.0098*n,.0085*i,0,0,0,.6163*n,.8155*i),e.close(),e.moveTo(.64*n,.85*i),e.lineTo(.64*n,.793*i),e.lineTo(.6854*n,.7718*i),e.arcTo(.0106*n,.0092*i,0,0,1,.7008*n,.7782*i),e.arcTo(.0407*n,.0352*i,0,0,1,.6959*n,.8*i),e.arcTo(.0407*n,.0352*i,0,0,1,.6805*n,.8127*i),e.lineTo(.6992*n,.8218*i),e.lineTo(.6854*n,.8282*i),e.lineTo(.6569*n,.8141*i),e.lineTo(.6805*n,.8021*i),e.arcTo(.0203*n,.0176*i,0,0,0,.6894*n,.7923*i),e.arcTo(.0244*n,.0211*i,0,0,0,.6894*n,.7845*i),e.arcTo(.0041*n,.0035*i,0,0,0,.6837*n,.7831*i),e.lineTo(.6528*n,.7979*i),e.lineTo(.6528*n,.8437*i),e.close(),e.moveTo(.7*n,.8204*i),e.lineTo(.7301*n,.7507*i),e.arcTo(.0098*n,.0085*i,0,0,1,.7358*n,.7444*i),e.arcTo(.0098*n,.0085*i,0,0,1,.7415*n,.7486*i),e.lineTo(.7699*n,.7852*i),e.lineTo(.7602*n,.7908*i),e.lineTo(.7537*n,.7838*i),e.lineTo(.7276*n,.7958*i),e.lineTo(.7228*n,.788*i),e.lineTo(.748*n,.7768*i),e.lineTo(.7358*n,.7585*i),e.lineTo(.7114*n,.8155*i),e.close(),e.moveTo(.8244*n,.7486*i),e.lineTo(.8171*n,.762*i),e.lineTo(.7894*n,.7761*i),e.arcTo(.0244*n,.0211*i,0,0,1,.7683*n,.7746*i),e.arcTo(.0407*n,.0352*i,0,0,1,.7667*n,.7507*i),e.arcTo(.0488*n,.0423*i,0,0,1,.7937*n,.7162*i),e.lineTo(.822*n,.7035*i),e.lineTo(.8171*n,.7155*i),e.lineTo(.7902*n,.7296*i),e.arcTo(.0325*n,.0282*i,0,0,0,.778*n,.743*i),e.arcTo(.0407*n,.0352*i,0,0,0,.7756*n,.7606*i),e.arcTo(.0077*n,.0067*i,0,0,0,.787*n,.767*i),e.close(),e.moveTo(.8366*n,.6949*i),e.lineTo(.8366*n,.7423*i),e.lineTo(.878*n,.7231*i),e.lineTo(.874*n,.7338*i),e.lineTo(.8333*n,.7535*i),e.arcTo(.0041*n,.0035*i,0,0,1,.8268*n,.75*i),e.lineTo(.8268*n,.7007*i),e.close(),e.moveTo(.9342*n,.6472*i),e.lineTo(.9293*n,.6599*i),e.lineTo(.9033*n,.6725*i),e.arcTo(.0325*n,.0282*i,0,0,0,.8927*n,.6817*i),e.arcTo(.0406*n,.0352*i,0,0,0,.887*n,.6937*i),e.lineTo(.9309*n,.6725*i),e.lineTo(.9268*n,.6845*i),e.lineTo(.887*n,.7035*i),e.arcTo(.0089*n,.0077*i,0,0,0,.8992*n,.7106*i),e.lineTo(.935*n,.693*i),e.lineTo(.9285*n,.7063*i),e.lineTo(.9008*n,.7197*i),e.arcTo(.0163*n,.0141*i,0,0,1,.8829*n,.7204*i),e.arcTo(.0407*n,.0352*i,0,0,1,.8764*n,.7028*i),e.arcTo(.065*n,.0563*i,0,0,1,.8959*n,.6669*i),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7464*i),e.lineTo(0,.25*i),e.lineTo(.5*n,.5*i),e.lineTo(.5*n,i),e.close(),e.moveTo(.5*n,.5*i),e.lineTo(n,.25*i),e.lineTo(n,.7464*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.setLineJoin("miter"),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.374*n,.3873*i),e.arcTo(.0325*n,.01764*i,0,0,1,.374*n,.3626*i),e.lineTo(.4797*n,.3098*i),e.arcTo(.0325*n,.0141*i,0,0,1,.5203*n,.3098*i),e.lineTo(.626*n,.3626*i),e.arcTo(.0325*n,.01764*i,0,0,1,.626*n,.3852*i),e.lineTo(.5203*n,.438*i),e.arcTo(.0325*n,.0141*i,0,0,1,.4797*n,.438*i),e.close(),e.fill(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7464*i),e.lineTo(0,.25*i),e.lineTo(.5*n,0),e.lineTo(n,.25*i),e.lineTo(n,.7464*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dOracleServer.prototype.cst.ORACLE_SERVER,mxShapeAws3dOracleServer),mxUtils.extend(mxShapeAws3dSecureConnection,mxShape),mxShapeAws3dSecureConnection.prototype.cst={SECURE_CONNECTION:"mxgraph.aws3d.secureConnection"},mxShapeAws3dSecureConnection.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/57,t*i/34),e.setStrokeWidth(t),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dSecureConnection.prototype.background=function(e,t,o,n,i,a){e.begin(),e.moveTo(.0058*n,.3889*i),e.arcTo(.2096*n,.3536*i,0,0,1,.0774*n,.1856*i),e.arcTo(.5241*n,.8839*i,0,0,1,.308*n,.0262*i),e.arcTo(.8735*n,1.4732*i,0,0,1,.6417*n,.056*i),e.arcTo(.6988*n,1.1786*i,0,0,1,.9106*n,.277*i),e.arcTo(.2621*n,.442*i,0,0,1,n,.5451*i),e.arcTo(.2096*n,.3536*i,0,0,1,.9474*n,.7808*i),e.arcTo(.4368*n,.7366*i,0,0,1,.7186*n,.9605*i),e.arcTo(.8735*n,1.4732*i,0,0,1,.3045*n,.9104*i),e.arcTo(.6115*n,1.0312*i,0,0,1,.0687*n,.6747*i),e.arcTo(.2096*n,.3536*i,0,0,1,.0058*n,.3889*i),e.close(),e.fill()},mxShapeAws3dSecureConnection.prototype.foreground=function(e,t,o,n,i,a){t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.2661*n,.5068*i),e.lineTo(.5002*n,.7336*i),e.lineTo(.6626*n,.5775*i),e.lineTo(.6469*n,.5539*i),e.lineTo(.6958*n,.5097*i),e.arcTo(.0874*n,.1473*i,0,0,0,.7325*n,.4066*i),e.arcTo(.0874*n,.1473*i,0,0,0,.6889*n,.3153*i),e.arcTo(.1747*n,.2946*i,0,0,0,.5928*n,.2622*i),e.arcTo(.1398*n,.2357*i,0,0,0,.5107*n,.3005*i),e.lineTo(.446*n,.3654*i),e.lineTo(.4268*n,.3477*i),e.close(),e.moveTo(.4949*n,.4184*i),e.lineTo(.5491*n,.3624*i),e.arcTo(.1222*n,.2062*i,0,0,1,.6277*n,.3536*i),e.arcTo(.0874*n,.1179*i,0,0,1,.6679*n,.3978*i),e.arcTo(.0175*n,.0295*i,0,0,1,.6626*n,.439*i),e.lineTo(.5928*n,.5068*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeAws3dSecureConnection.prototype.cst.SECURE_CONNECTION,mxShapeAws3dSecureConnection),mxUtils.extend(mxShapeAws3dEmailService,mxShape),mxShapeAws3dEmailService.prototype.cst={EMAIL_SERVICE:"mxgraph.aws3d.email_service",SHADING_COLORS:"shadingCols"},mxShapeAws3dEmailService.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/151,t*i/192),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dEmailService.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.8182*i),e.lineTo(0,.1818*i),e.lineTo(.4007*n,0),e.lineTo(.606*n,0),e.lineTo(n,.1792*i),e.lineTo(n,.8182*i),e.lineTo(.5993*n,i),e.lineTo(.4007*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dEmailService.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dEmailService.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(0,.2727*i),e.lineTo(.4007*n,.4546*i),e.lineTo(.5993*n,.4546*i),e.lineTo(.5993*n,i),e.lineTo(.4007*n,i),e.lineTo(0,.8182*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.5993*n,.4546*i),e.lineTo(n,.2727*i),e.lineTo(.8013*n,.1792*i),e.lineTo(.8013*n,.0883*i),e.lineTo(n,.1792*i),e.lineTo(n,.8182*i),e.lineTo(.5993*n,i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.2727*i),e.lineTo(.4007*n,.4546*i),e.lineTo(.5993*n,.4546*i),e.lineTo(.5993*n,i),e.lineTo(.4007*n,i),e.lineTo(0,.8182*i),e.close(),e.stroke(),e.begin(),e.moveTo(.5993*n,.4546*i),e.lineTo(n,.2727*i),e.lineTo(.8013*n,.1792*i),e.lineTo(.8013*n,.0883*i),e.lineTo(n,.1792*i),e.lineTo(n,.8182*i),e.lineTo(.5993*n,i),e.close(),e.stroke(),e.begin(),e.moveTo(.202*n,.0883*i),e.lineTo(.202*n,.1818*i),e.lineTo(.4007*n,.2727*i),e.lineTo(.5993*n,.2727*i),e.lineTo(.798*n,.1818*i),e.moveTo(.2053*n,.1818*i),e.lineTo(.0033*n,.2714*i),e.moveTo(.4007*n,.2727*i),e.lineTo(.4007*n,.9961*i),e.moveTo(.5993*n,.2727*i),e.lineTo(.5993*n,.4546*i),e.stroke(),e.setLineJoin("miter"),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.4437*n,.0779*i),e.arcTo(.0662*n,.0519*i,0,0,1,.404*n,.0706*i),e.arcTo(.0464*n,.0364*i,0,0,1,.3815*n,.0421*i),e.arcTo(.053*n,.026*i,0,0,1,.4205*n,.0187*i),e.arcTo(.1987*n,.1558*i,0,0,1,.4768*n,.0203*i),e.arcTo(.0795*n,.0364*i,0,0,1,.5199*n,.0494*i),e.arcTo(.0265*n,.0208*i,0,0,1,.5099*n,.0649*i),e.arcTo(.0795*n,.0623*i,0,0,1,.4536*n,.0727*i),e.arcTo(.0199*n,.0156*i,0,0,1,.4404*n,.0597*i),e.arcTo(.0265*n,.0208*i,0,0,1,.4219*n,.0566*i),e.arcTo(.0199*n,.0114*i,0,0,1,.4172*n,.0431*i),e.arcTo(.0265*n,.0208*i,0,0,1,.4483*n,.0416*i),e.arcTo(.0132*n,.0104*i,0,0,1,.457*n,.053*i),e.arcTo(.0132*n,.0104*i,0,0,0,.4669*n,.0431*i),e.arcTo(.0166*n,.0166*i,0,0,0,.4464*n,.0358*i),e.lineTo(.4437*n,.0338*i),e.arcTo(.0199*n,.0156*i,0,0,1,.4603*n,.0322*i),e.arcTo(.0397*n,.0156*i,0,0,1,.4755*n,.0462*i),e.arcTo(.0199*n,.0156*i,0,0,1,.4669*n,.0545*i),e.arcTo(.053*n,.0416*i,0,0,1,.453*n,.0608*i),e.arcTo(.0099*n,.0078*i,0,0,0,.4636*n,.0675*i),e.arcTo(.0662*n,.0519*i,0,0,0,.498*n,.0623*i),e.arcTo(.0185*n,.0145*i,0,0,0,.5079*n,.0457*i),e.arcTo(.053*n,.0416*i,0,0,0,.4848*n,.0296*i),e.arcTo(.0993*n,.0779*i,0,0,0,.455*n,.0234*i),e.arcTo(.1325*n,.1039*i,0,0,0,.4172*n,.026*i),e.arcTo(.0397*n,.0312*i,0,0,0,.3927*n,.039*i),e.arcTo(.0265*n,.0208*i,0,0,0,.3974*n,.0571*i),e.arcTo(.053*n,.0416*i,0,0,0,.4205*n,.0701*i),e.arcTo(.0331*n,.026*i,0,0,0,.4404*n,.0722*i),e.moveTo(.42*n,.049*i),e.arcTo(.02*n,.02*i,0,0,0,.435*n,.055*i),e.arcTo(.02*n,.02*i,0,0,0,.45*n,.049*i),e.arcTo(.02*n,.02*i,0,0,0,.435*n,.043*i),e.arcTo(.02*n,.02*i,0,0,0,.42*n,.049*i),e.close(),e.moveTo(.4669*n,.0894*i),e.arcTo(.1325*n,.1039*i,0,0,0,.5099*n,.0831*i),e.lineTo(.6689*n,.1543*i),e.lineTo(.4887*n,.1371*i),e.close(),e.moveTo(.3887*n,.0769*i),e.arcTo(.0662*n,.0519*i,0,0,0,.4205*n,.0888*i),e.arcTo(.0662*n,.026*i,0,0,0,.447*n,.0894*i),e.lineTo(.4735*n,.1512*i),e.lineTo(.6689*n,.1688*i),e.lineTo(.5199*n,.2364*i),e.lineTo(.2815*n,.1273*i),e.close(),e.fill(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.8182*i),e.lineTo(0,.1818*i),e.lineTo(.4007*n,0),e.lineTo(.606*n,0),e.lineTo(n,.1792*i),e.lineTo(n,.8182*i),e.lineTo(.5993*n,i),e.lineTo(.4007*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dEmailService.prototype.cst.EMAIL_SERVICE,mxShapeAws3dEmailService),mxUtils.extend(mxShapeAws3dWorker,mxShape),mxShapeAws3dWorker.prototype.cst={WORKER:"mxgraph.aws3d.worker",SHADING_COLORS:"shadingCols"},mxShapeAws3dWorker.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),o=parseFloat(mxUtils.getValue(this.state.style,"shadow","0")),t=Math.min(t*n/74,t*i/50),e.setStrokeWidth(t),e.setShadow(!1),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==o&&e.setShadow(!0),e.begin(),e.moveTo(0,.572*i),e.lineTo(.0865*n,.284*i),e.lineTo(.4203*n,0),e.lineTo(.5865*n,0),e.lineTo(.919*n,.286*i),e.lineTo(n,.566*i),e.lineTo(.5027*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dWorker.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var a=mxUtils.getValue(this.state.style,"flipH","0");"0"==a?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.566*i),e.lineTo(.0892*n,.282*i),e.lineTo(.0878*n,.426*i),e.lineTo(.4216*n,.712*i),e.lineTo(.5865*n,.712*i),e.lineTo(.5027*n,i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.5027*n,i),e.lineTo(.5865*n,.712*i),e.lineTo(.9176*n,.43*i),e.lineTo(n,.566*i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.566*i),e.lineTo(.0892*n,.282*i),e.lineTo(.0878*n,.426*i),e.lineTo(.4216*n,.712*i),e.lineTo(.5865*n,.712*i),e.lineTo(.5027*n,i),e.close(),e.moveTo(.5027*n,i),e.lineTo(.5865*n,.712*i),e.lineTo(.9176*n,.43*i),e.lineTo(n,.566*i),e.close(),e.moveTo(0,.572*i),e.lineTo(.0892*n,.422*i),e.moveTo(.5027*n,i),e.lineTo(.4189*n,.708*i),e.moveTo(.9176*n,.43*i),e.lineTo(.9176*n,.29*i),e.stroke(),o=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(o),e.setLineJoin("round"),e.begin(),e.moveTo(.2892*n,.2104*i),e.lineTo(.3595*n,.1503*i),e.lineTo(.3973*n,.1844*i),e.arcTo(.2703*n,.4008*i,0,0,1,.4486*n,.1703*i),e.lineTo(.4486*n,.1242*i),e.lineTo(.5527*n,.1242*i),e.lineTo(.5527*n,.1703*i),e.arcTo(.2703*n,.4008*i,0,0,1,.6149*n,.1924*i),e.lineTo(.6527*n,.1603*i),e.lineTo(.7257*n,.2224*i),e.lineTo(.6892*n,.2545*i),e.arcTo(.2027*n,.3006*i,0,0,1,.7162*n,.3106*i),e.lineTo(.7676*n,.3106*i),e.lineTo(.7676*n,.3988*i),e.lineTo(.7162*n,.3988*i),e.arcTo(.2027*n,.3006*i,0,0,1,.6973*n,.4409*i),e.lineTo(.7378*n,.475*i),e.lineTo(.6635*n,.5371*i),e.lineTo(.6297*n,.505*i),e.arcTo(.2703*n,.4008*i,0,0,1,.5527*n,.5351*i),e.lineTo(.5527*n,.5812*i),e.lineTo(.45*n,.5812*i),e.lineTo(.45*n,.5351*i),e.arcTo(.2703*n,.4008*i,0,0,1,.3878*n,.513*i),e.lineTo(.3514*n,.5431*i),e.lineTo(.2784*n,.481*i),e.lineTo(.3149*n,.4509*i),e.arcTo(.2027*n,.3006*i,0,0,1,.2865*n,.3968*i),e.lineTo(.2351*n,.3968*i),e.lineTo(.2351*n,.3086*i),e.lineTo(.2865*n,.3086*i),e.arcTo(.2027*n,.3006*i,0,0,1,.3203*n,.2425*i),e.close(),e.moveTo(.4054*n,.2445*i),e.arcTo(.1351*n,.2004*i,0,0,0,.3554*n,.2986*i),e.arcTo(.0676*n,.1002*i,0,0,0,.3432*n,.3567*i),e.arcTo(.0811*n,.1202*i,0,0,0,.3635*n,.4208*i),e.arcTo(.1351*n,.2004*i,0,0,0,.4122*n,.4649*i),e.arcTo(.2027*n,.3006*i,0,0,0,.4122*n,.4649*i),e.arcTo(.2027*n,.3006*i,0,0,0,.5676*n,.4749*i),e.arcTo(.1351*n,.2004*i,0,0,0,.6351*n,.4228*i),e.arcTo(.0676*n,.1002*i,0,0,0,.6595*n,.3467*i),e.arcTo(.0811*n,.1202*i,0,0,0,.6149*n,.2605*i),e.arcTo(.2027*n,.3006*i,0,0,0,.5419*n,.2204*i),e.arcTo(.3378*n,.501*i,0,0,0,.4649*n,.2184*i),e.arcTo(.2027*n,.3006*i,0,0,0,.4054*n,.2445*i),e.close(),e.moveTo(.473*n,.2806*i),e.arcTo(.2027*n,.3006*i,0,0,1,.55*n,.2866*i),e.arcTo(.0676*n,.1002*i,0,0,1,.5892*n,.3307*i),e.arcTo(.0338*n,.0501*i,0,0,1,.5824*n,.3888*i),e.arcTo(.0946*n,.1403*i,0,0,1,.5216*n,.4269*i),e.arcTo(.1622*n,.2405*i,0,0,1,.4432*n,.4128*i),e.arcTo(.0541*n,.0802*i,0,0,1,.4108*n,.3527*i),e.arcTo(.0541*n,.0802*i,0,0,1,.4351*n,.2986*i),e.arcTo(.0811*n,.1202*i,0,0,1,.473*n,.2806*i),e.close(),e.fill(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.572*i),e.lineTo(.0865*n,.284*i),e.lineTo(.4203*n,0),e.lineTo(.5865*n,0),e.lineTo(.919*n,.286*i),e.lineTo(n,.566*i),e.lineTo(.5027*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dWorker.prototype.cst.WORKER,mxShapeAws3dWorker),mxUtils.extend(mxShapeAws3dApplication2,mxShape),mxShapeAws3dApplication2.prototype.cst={APPLICATION2:"mxgraph.aws3d.application2",SHADING_COLORS:"shadingCols"},mxShapeAws3dApplication2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/62,t=t*i/53.5;var a=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));t=Math.min(o,t),e.setShadow(!1),e.setStrokeWidth(t),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==a&&e.setShadow(!0),e.begin(),e.moveTo(0,.6766*i),e.lineTo(0,.3271*i),e.lineTo(.5*n,0),e.lineTo(n,.3271*i),e.lineTo(n,.6766*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dApplication2.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(a=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.3271*i),e.lineTo(.5*n,.6449*i),e.lineTo(.5*n,i),e.lineTo(0,.6766*i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.5*n,.6449*i),e.lineTo(n,.3271*i),e.lineTo(n,.6766*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.3271*i),e.lineTo(.5*n,.6449*i),e.lineTo(.5*n,i),e.lineTo(0,.6766*i),e.close(),e.stroke(),e.begin(),e.moveTo(.5*n,.6449*i),e.lineTo(n,.3271*i),e.lineTo(n,.6766*i),e.lineTo(.5*n,i),e.close(),e.stroke(),e.setLineJoin("miter"),o=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(o),e.begin(),e.moveTo(.1742*n,.6355*i),e.lineTo(.1742*n,.4393*i),e.lineTo(.6726*n,.1121*i),e.lineTo(.7661*n,.1738*i),e.lineTo(.2661*n,.4991*i),e.lineTo(.2661*n,.6916*i),e.close(),e.moveTo(.2871*n,.7084*i),e.lineTo(.2871*n,.514*i),e.lineTo(.7823*n,.1869*i),e.lineTo(.8629*n,.2374*i),e.lineTo(.379*n,.5626*i),e.lineTo(.379*n,.7607*i),e.close(),e.fill(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6766*i),e.lineTo(0,.3271*i),e.lineTo(.5*n,0),e.lineTo(n,.3271*i),e.lineTo(n,.6766*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dApplication2.prototype.cst.APPLICATION2,mxShapeAws3dApplication2),mxUtils.extend(mxShapeAws3dElasticBeanstalk,mxShape),mxShapeAws3dElasticBeanstalk.prototype.cst={ELASTIC_BEANSTALK:"mxgraph.aws3d.elasticBeanstalk",SHADING_COLORS:"shadingCols"},mxShapeAws3dElasticBeanstalk.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/181.5,t=t*i/140;var a=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));t=Math.min(o,t),e.setShadow(!1),e.setStrokeWidth(t),e.save(),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==a&&e.setShadow(!0),e.begin(),e.moveTo(0,.6239*i),e.lineTo(0,.3754*i),e.lineTo(.5*n,0),e.lineTo(n,.3754*i),e.lineTo(n,.6239*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dElasticBeanstalk.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(a=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.3754*i),e.lineTo(.5*n,.7514*i),e.lineTo(.5*n,i),e.lineTo(0,.6239*i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.5*n,.7514*i),e.lineTo(n,.3754*i),e.lineTo(n,.6239*i),e.lineTo(.5*n,i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.3754*i),e.lineTo(.5*n,.7514*i),e.lineTo(.5*n,i),e.lineTo(0,.6239*i),e.close(),e.moveTo(.5*n,.7514*i),e.lineTo(n,.3754*i),e.lineTo(n,.6239*i),e.lineTo(.5*n,i),e.close(),e.moveTo(.2485*n,.187*i),e.lineTo(.7493*n,.5623*i),e.lineTo(.7493*n,.8123*i),e.stroke(),e.setLineJoin("miter"),o=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(o),e.begin(),e.moveTo(.7763*n,.2063*i),e.lineTo(.2749*n,.5817*i),e.lineTo(.2749*n,.8309*i),e.lineTo(.2204*n,.7894*i),e.lineTo(.2204*n,.5394*i),e.lineTo(.7185*n,.1619*i),e.close(),e.fill(),e.restore(),e.begin(),e.moveTo(.1713*n,.543*i),e.arcTo(.1653*n,.2149*i,0,0,1,.2028*n,.5723*i),e.arcTo(.1653*n,.2149*i,0,0,1,.2281*n,.6096*i),e.arcTo(.1102*n,.1433*i,0,0,1,.2402*n,.644*i),e.arcTo(.1102*n,.1433*i,0,0,1,.2424*n,.6848*i),e.arcTo(.1653*n,.2149*i,0,0,1,.216*n,.6612*i),e.arcTo(.1653*n,.2149*i,0,0,1,.1895*n,.6239*i),e.arcTo(.1102*n,.1433*i,0,0,1,.1719*n,.5824*i),e.arcTo(.0826*n,.1074*i,0,0,1,.1713*n,.543*i),e.close(),e.moveTo(.2507*n,.7794*i),e.arcTo(.1653*n,.2149*i,0,0,1,.254*n,.7421*i),e.arcTo(.022*n,.0287*i,0,0,1,.27*n,.7264*i),e.arcTo(.0551*n,.0716*i,0,0,1,.2986*n,.73*i),e.arcTo(.1653*n,.2149*i,0,0,1,.3234*n,.7457*i),e.arcTo(.1653*n,.2149*i,0,0,1,.3218*n,.7815*i),e.arcTo(.022*n,.0287*i,0,0,1,.3019*n,.7987*i),e.arcTo(.0826*n,.1074*i,0,0,1,.27*n,.7923*i),e.arcTo(.1653*n,.2149*i,0,0,1,.2507*n,.7794*i),e.close(),e.moveTo(.2799*n,.5265*i),e.arcTo(.1102*n,.1433*i,0,0,1,.3003*n,.515*i),e.arcTo(.0826*n,.1074*i,0,0,1,.3317*n,.515*i),e.arcTo(.1653*n,.2149*i,0,0,1,.3774*n,.5315*i),e.arcTo(.1653*n,.2149*i,0,0,1,.4033*n,.5487*i),e.arcTo(.0826*n,.1074*i,0,0,1,.3906*n,.5595*i),e.arcTo(.0826*n,.1074*i,0,0,1,.3493*n,.5616*i),e.arcTo(.1653*n,.2149*i,0,0,1,.3069*n,.5444*i),e.arcTo(.1653*n,.2149*i,0,0,1,.2799*n,.5265*i),e.close(),e.moveTo(.2887*n,.3933*i),e.arcTo(.1653*n,.2149*i,0,0,1,.314*n,.414*i),e.arcTo(.1653*n,.2149*i,0,0,1,.3322*n,.4391*i),e.arcTo(.0193*n,.0251*i,0,0,1,.3344*n,.4699*i),e.arcTo(.0551*n,.0716*i,0,0,1,.3196*n,.485*i),e.arcTo(.1653*n,.2149*i,0,0,1,.2887*n,.4592*i),e.arcTo(.1102*n,.1433*i,0,0,1,.27*n,.4269*i),e.arcTo(.0165*n,.0215*i,0,0,1,.2727*n,.4054*i),e.arcTo(.0551*n,.0716*i,0,0,1,.2887*n,.3933*i),e.close(),e.moveTo(.4613*n,.262*i),e.arcTo(.1653*n,.2149*i,0,0,1,.4867*n,.2827*i),e.arcTo(.1653*n,.2149*i,0,0,1,.5049*n,.3078*i),e.arcTo(.0193*n,.0251*i,0,0,1,.5071*n,.3386*i),e.arcTo(.0551*n,.0716*i,0,0,1,.4922*n,.3537*i),e.arcTo(.1653*n,.2149*i,0,0,1,.4613*n,.3279*i),e.arcTo(.1102*n,.1433*i,0,0,1,.4426*n,.2956*i),e.arcTo(.0165*n,.0215*i,0,0,1,.4453*n,.2741*i),e.arcTo(.0551*n,.0716*i,0,0,1,.4613*n,.262*i),e.close(),e.moveTo(.4525*n,.3952*i),e.arcTo(.1102*n,.1433*i,0,0,1,.4729*n,.3837*i),e.arcTo(.0826*n,.1074*i,0,0,1,.5043*n,.3837*i),e.arcTo(.1653*n,.2149*i,0,0,1,.55*n,.4002*i),e.arcTo(.1653*n,.2149*i,0,0,1,.5759*n,.4174*i),e.arcTo(.0826*n,.1074*i,0,0,1,.5633*n,.4282*i),e.arcTo(.0826*n,.1074*i,0,0,1,.5219*n,.4303*i),e.arcTo(.1653*n,.1074*i,0,0,1,.4795*n,.4131*i),e.arcTo(.1653*n,.2149*i,0,0,1,.4525*n,.3952*i),e.close(),e.moveTo(.6217*n,.1426*i),e.arcTo(.1653*n,.2149*i,0,0,1,.6471*n,.1633*i),e.arcTo(.1653*n,.2149*i,0,0,1,.6652*n,.1884*i),e.arcTo(.0193*n,.0251*i,0,0,1,.6674*n,.2192*i),e.arcTo(.0551*n,.0716*i,0,0,1,.6526*n,.2342*i),e.arcTo(.1653*n,.2149*i,0,0,1,.6217*n,.2085*i),e.arcTo(.1102*n,.1433*i,0,0,1,.603*n,.1762*i),e.arcTo(.0165*n,.0215*i,0,0,1,.6057*n,.1547*i),e.arcTo(.0551*n,.0716*i,0,0,1,.6217*n,.1426*i),e.close(),e.moveTo(.6129*n,.2758*i),e.arcTo(.1102*n,.1433*i,0,0,1,.6333*n,.2643*i),e.arcTo(.0826*n,.1433*i,0,0,1,.6647*n,.2643*i),e.arcTo(.1653*n,.2149*i,0,0,1,.7104*n,.2808*i),e.arcTo(.1653*n,.2149*i,0,0,1,.7363*n,.298*i),e.arcTo(.0826*n,.2149*i,0,0,1,.7363*n,.298*i),e.arcTo(.0826*n,.1074*i,0,0,1,.6823*n,.3109*i),e.arcTo(.1653*n,.2149*i,0,0,1,.6399*n,.2937*i),e.arcTo(.1653*n,.2149*i,0,0,1,.6129*n,.2758*i),e.close(),e.fillAndStroke(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6239*i),e.lineTo(0,.3754*i),e.lineTo(.5*n,0),e.lineTo(n,.3754*i),e.lineTo(n,.6239*i),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dElasticBeanstalk.prototype.cst.ELASTIC_BEANSTALK,mxShapeAws3dElasticBeanstalk),mxUtils.extend(mxShapeAws3dSimpleDB2,mxShape),mxShapeAws3dSimpleDB2.prototype.cst={SIMPLE_DB_2:"mxgraph.aws3d.simpleDb2",SHADING_COLORS:"shadingCols"},mxShapeAws3dSimpleDB2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/181.5,t*i/210),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dSimpleDB2.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.8183*i),e.lineTo(0,.1848*i),e.lineTo(.3366*n,0),e.lineTo(.6293*n,.0021*i),e.lineTo(n,.1833*i),e.lineTo(n,.8183*i),e.lineTo(.6694*n,i),e.lineTo(.4986*n,.9091*i),e.lineTo(.3333*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dSimpleDB2.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dSimpleDB2.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(0,.1848*i),e.lineTo(.168*n,.1833*i),e.lineTo(0,.365*i),e.lineTo(.3333*n,.5467*i),e.lineTo(.3333*n,i),e.lineTo(0,.8183*i),e.close(),e.moveTo(.4986*n,.9078*i),e.lineTo(.4986*n,.3655*i),e.lineTo(.6667*n,.5457*i),e.lineTo(.6667*n,i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.3333*n,.5467*i),e.lineTo(.4986*n,.3655*i),e.lineTo(.4986*n,.9076*i),e.lineTo(.3333*n,i),e.close(),e.moveTo(.8292*n,.1822*i),e.lineTo(n,.1848*i),e.lineTo(n,.8183*i),e.lineTo(.6667*n,i),e.lineTo(.6667*n,.5441*i),e.lineTo(n,.3666*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.1848*i),e.lineTo(.168*n,.1833*i),e.lineTo(0,.365*i),e.lineTo(.3333*n,.5467*i),e.lineTo(.3333*n,i),e.lineTo(0,.8183*i),e.close(),e.moveTo(.4986*n,.9078*i),e.lineTo(.4986*n,.3655*i),e.lineTo(.6667*n,.5457*i),e.lineTo(.6667*n,i),e.close(),e.moveTo(.3333*n,.5467*i),e.lineTo(.4986*n,.3655*i),e.lineTo(.4986*n,.9076*i),e.lineTo(.3333*n,i),e.close(),e.moveTo(.8292*n,.1822*i),e.lineTo(n,.1848*i),e.lineTo(n,.8183*i),e.lineTo(.6667*n,i),e.lineTo(.6667*n,.5441*i),e.lineTo(n,.3666*i),e.close(),e.moveTo(.1669*n,.1828*i),e.lineTo(.4986*n,.3655*i),e.lineTo(.8314*n,.1833*i),e.lineTo(.4986*n,.0031*i),e.close(),e.stroke(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.2634*n,.1833*i),e.lineTo(.5003*n,.0535*i),e.lineTo(.7394*n,.1833*i),e.lineTo(.5003*n,.3136*i),e.close(),e.fill(),t=mxUtils.getValue(this.state.style,"fillColor","#000000"),e.restore(),e.setShadow(!1),e.setStrokeWidth(3*a),e.setStrokeColor(t),e.begin(),e.moveTo(.3003*n,.2108*i),e.lineTo(.5642*n,.068*i),e.moveTo(.4429*n,.0693*i),e.lineTo(.7059*n,.2121*i),e.moveTo(.6667*n,.2458*i),e.lineTo(.3974*n,.0992*i),e.moveTo(.3499*n,.1277*i),e.lineTo(.6088*n,.2698*i),e.moveTo(.3009*n,.1556*i),e.lineTo(.5496*n,.2913*i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.8183*i),e.lineTo(0,.1848*i),e.lineTo(.3366*n,0),e.lineTo(.6293*n,.0021*i),e.lineTo(n,.1833*i),e.lineTo(n,.8183*i),e.lineTo(.6694*n,i),e.lineTo(.4986*n,.9091*i),e.lineTo(.3333*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dSimpleDB2.prototype.cst.SIMPLE_DB_2,mxShapeAws3dSimpleDB2),mxUtils.extend(mxShapeAws3dWorkflowService,mxShape),mxShapeAws3dWorkflowService.prototype.cst={WORKFLOW_SERVICE:"mxgraph.aws3d.workflowService",SHADING_COLORS:"shadingCols"},mxShapeAws3dWorkflowService.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/181.5,t*i/210),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dWorkflowService.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6456*i),e.lineTo(.2481*n,0),e.lineTo(.7497*n,0),e.lineTo(n,.6456*i),e.lineTo(.4984*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dWorkflowService.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dWorkflowService.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(0,.6456*i),e.lineTo(.2486*n,0),e.lineTo(.2486*n,.3531*i),e.lineTo(.4984*n,i),e.close(),e.moveTo(.7497*n,.3531*i),e.lineTo(.7497*n,0),e.lineTo(n,.6456*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.4984*n,i),e.lineTo(.7486*n,.3531*i),e.lineTo(n,.6456*i),e.lineTo(.4967*n,i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(.7497*n,.3531*i),e.lineTo(.7497*n,0),e.lineTo(n,.6456*i),e.close(),e.moveTo(0,.6456*i),e.lineTo(.2486*n,0),e.lineTo(.2486*n,.3531*i),e.lineTo(.4984*n,i),e.lineTo(.7486*n,.3531*i),e.lineTo(n,.6456*i),e.lineTo(.4967*n,i),e.close(),e.moveTo(.2486*n,.3531*i),e.lineTo(.7508*n,.3531*i),e.moveTo(.2488*n,.353*i),e.lineTo(0,.6486*i),e.stroke(),e.restore(),e.setShadow(!1),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.setStrokeWidth(2*a),e.begin(),e.ellipse(.2925*n,.031*i,.4116*n,.2925*i),e.fill(),t=mxUtils.getValue(this.state.style,"fillColor","#ffffff"),e.setStrokeColor(t),e.begin(),e.moveTo(.5252*n,.0465*i),e.lineTo(.5873*n,.0903*i),e.lineTo(.5483*n,.1173*i),e.lineTo(.4874*n,.0728*i),e.close(),e.moveTo(.4896*n,.1132*i),e.lineTo(.5005*n,.1705*i),e.lineTo(.4182*n,.1631*i),e.lineTo(.4122*n,.1058*i),e.close(),e.moveTo(.3584*n,.1631*i),e.lineTo(.4204*n,.2062*i),e.lineTo(.3825*n,.2332*i),e.lineTo(.32*n,.19*i),e.close(),e.moveTo(.4594*n,.2338*i),e.lineTo(.5214*n,.2783*i),e.lineTo(.4835*n,.3053*i),e.lineTo(.4215*n,.2608*i),e.close(),e.moveTo(.5187*n,.0943*i),e.lineTo(.4879*n,.1152*i),e.moveTo(.421*n,.1624*i),e.lineTo(.3895*n,.1846*i),e.moveTo(.5*n,.1698*i),e.lineTo(.5554*n,.2089*i),e.lineTo(.4885*n,.2567*i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6456*i),e.lineTo(.2481*n,0),e.lineTo(.7497*n,0),e.lineTo(n,.6456*i),e.lineTo(.4984*n,i),e.close(),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dWorkflowService.prototype.cst.WORKFLOW_SERVICE,mxShapeAws3dWorkflowService),mxUtils.extend(mxShapeAws3dDecider,mxShape),mxShapeAws3dDecider.prototype.cst={DECIDER:"mxgraph.aws3d.decider",SHADING_COLORS:"shadingCols"},mxShapeAws3dDecider.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),o=parseFloat(mxUtils.getValue(this.state.style,"shadow","0")),t=Math.min(t*n/74,t*i/50),e.setStrokeWidth(t),e.setShadow(!1),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==o&&e.setShadow(!0),e.begin(),e.moveTo(0,.572*i),e.lineTo(.0865*n,.284*i),e.lineTo(.4203*n,0),e.lineTo(.5865*n,0),e.lineTo(.919*n,.286*i),e.lineTo(n,.566*i),e.lineTo(.5027*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dDecider.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var a=mxUtils.getValue(this.state.style,"flipH","0");"0"==a?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.566*i),e.lineTo(.0892*n,.282*i),e.lineTo(.0878*n,.426*i),e.lineTo(.4216*n,.712*i),e.lineTo(.5865*n,.712*i),e.lineTo(.5027*n,i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.5027*n,i),e.lineTo(.5865*n,.712*i),e.lineTo(.9176*n,.43*i),e.lineTo(n,.566*i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(0,.566*i),e.lineTo(.0892*n,.282*i),e.lineTo(.0878*n,.426*i),e.lineTo(.4216*n,.712*i),e.lineTo(.5865*n,.712*i),e.lineTo(.5027*n,i),e.close(),e.moveTo(.5027*n,i),e.lineTo(.5865*n,.712*i),e.lineTo(.9176*n,.43*i),e.lineTo(n,.566*i),e.close(),e.moveTo(0,.572*i),e.lineTo(.0892*n,.422*i),e.moveTo(.5027*n,i),e.lineTo(.4189*n,.708*i),e.moveTo(.9176*n,.43*i),e.lineTo(.9176*n,.29*i),e.stroke(),e.setStrokeWidth(1.6*t),e.setLineJoin("square"),e.begin(),e.moveTo(.4973*n,.1523*i),e.lineTo(.5608*n,.0982*i),e.lineTo(.6581*n,.1844*i),e.lineTo(.5986*n,.2365*i),e.close(),e.moveTo(.3784*n,.2164*i),e.lineTo(.5054*n,.2305*i),e.lineTo(.5203*n,.3407*i),e.lineTo(.3892*n,.3246*i),e.close(),e.moveTo(.2932*n,.3246*i),e.lineTo(.3919*n,.4128*i),e.lineTo(.3334*n,.4647*i),e.lineTo(.2357*n,.38*i),e.close(),e.moveTo(.4568*n,.4649*i),e.lineTo(.5554*n,.5511*i),e.lineTo(.4932*n,.6032*i),e.lineTo(.3946*n,.517*i),e.close(),e.moveTo(.5473*n,.1924*i),e.lineTo(.5027*n,.2365*i),e.moveTo(.4*n,.3186*i),e.lineTo(.3446*n,.3667*i),e.moveTo(.5189*n,.3387*i),e.lineTo(.6081*n,.4148*i),e.lineTo(.5068*n,.501*i),e.stroke(),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.572*i),e.lineTo(.0865*n,.284*i),e.lineTo(.4203*n,0),e.lineTo(.5865*n,0),e.lineTo(.919*n,.286*i),e.lineTo(n,.566*i),e.lineTo(.5027*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dDecider.prototype.cst.DECIDER,mxShapeAws3dDecider),mxUtils.extend(mxShapeAws3dSearchEngine,mxShape),mxShapeAws3dSearchEngine.prototype.cst={SEARCH_ENGINE:"mxgraph.aws3d.searchEngine",SHADING_COLORS:"shadingCols"},mxShapeAws3dSearchEngine.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/180,t*i/192),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dSearchEngine.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7281*i),e.lineTo(.1667*n,.5444*i),e.lineTo(.1667*n,.1832*i),e.lineTo(.5011*n,0),e.lineTo(.8333*n,.1832*i),e.lineTo(.8333*n,.5446*i),e.lineTo(n,.7281*i),e.lineTo(.7486*n,.7735*i),e.lineTo(.5819*n,.8617*i),e.lineTo(.5011*n,i),e.lineTo(.4169*n,.8653*i),e.lineTo(.2475*n,.7704*i),e.close(),e.fillAndStroke()},mxShapeAws3dSearchEngine.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dSearchEngine.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.1672*n,.1837*i),e.lineTo(.4989*n,.3638*i),e.lineTo(.4989*n,.7291*i),e.lineTo(.5825*n,.8633*i),e.lineTo(.4989*n,i),e.lineTo(.4164*n,.8622*i),e.lineTo(.2458*n,.7719*i),e.lineTo(0,.7276*i),e.lineTo(.1661*n,.5454*i),e.close(),e.moveTo(.7486*n,.7714*i),e.lineTo(.8317*n,.5459*i),e.lineTo(n,.727*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.4989*n,.3643*i),e.lineTo(.8317*n,.1827*i),e.lineTo(.8317*n,.5465*i),e.lineTo(.7508*n,.7714*i),e.lineTo(.5836*n,.8633*i),e.lineTo(.4989*n,.727*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(.1672*n,.1837*i),e.lineTo(.4989*n,.3638*i),e.lineTo(.4989*n,.7291*i),e.lineTo(.5825*n,.8633*i),e.lineTo(.4989*n,i),e.lineTo(.4164*n,.8622*i),e.lineTo(.2458*n,.7719*i),e.lineTo(0,.7276*i),e.lineTo(.1661*n,.5454*i),e.close(),e.moveTo(.7486*n,.7714*i),e.lineTo(.8317*n,.5459*i),e.lineTo(n,.727*i),e.close(),e.moveTo(.4989*n,.3643*i),e.lineTo(.8317*n,.1827*i),e.lineTo(.8317*n,.5465*i),e.lineTo(.7508*n,.7714*i),e.lineTo(.5836*n,.8633*i),e.lineTo(.4989*n,.727*i),e.close(),e.moveTo(.1667*n,.5459*i),e.lineTo(.2486*n,.7704*i),e.moveTo(.4164*n,.8633*i),e.lineTo(.4989*n,.727*i),e.lineTo(.4989*n,i),e.stroke(),e.restore(),e.setShadow(!1),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.3427*n,.179*i),e.arcTo(.0277*n,.0261*i,0,0,1,.3267*n,.1487*i),e.arcTo(.0664*n,.0365*i,0,0,1,.3621*n,.1227*i),e.arcTo(.1052*n,.0992*i,0,0,1,.4247*n,.1195*i),e.arcTo(.1274*n,.12*i,0,0,1,.4884*n,.1018*i),e.arcTo(.1329*n,.1253*i,0,0,1,.5548*n,.1112*i),e.arcTo(.0377*n,.0344*i,0,0,1,.572*n,.166*i),e.arcTo(.0388*n,.0365*i,0,0,1,.6047*n,.1775*i),e.arcTo(.021*n,.0198*i,0,0,1,.5936*n,.2046*i),e.arcTo(.0332*n,.0313*i,0,0,1,.6008*n,.2416*i),e.arcTo(.072*n,.0678*i,0,0,1,.5437*n,.2677*i),e.arcTo(.1052*n,.0939*i,0,0,1,.4828*n,.2563*i),e.close(),e.moveTo(.448*n,.2156*i),e.arcTo(.0111*n,.0104*i,0,0,0,.459*n,.2255*i),e.arcTo(.0138*n,.013*i,0,0,0,.4729*n,.2182*i),e.lineTo(.4773*n,.1874*i),e.arcTo(.0664*n,.0626*i,0,0,0,.5116*n,.1759*i),e.arcTo(.0277*n,.0626*i,0,0,0,.5233*n,.1503*i),e.arcTo(.0554*n,.0261*i,0,0,0,.5022*n,.1336*i),e.arcTo(.0886*n,.0835*i,0,0,0,.4607*n,.1305*i),e.arcTo(.0664*n,.0626*i,0,0,0,.4313*n,.142*i),e.arcTo(.0332*n,.0313*i,0,0,0,.4175*n,.1597*i),e.arcTo(.0249*n,.0235*i,0,0,0,.4313*n,.1822*i),e.arcTo(.0443*n,.0418*i,0,0,0,.4535*n,.1884*i),e.close(),e.moveTo(.4718*n,.1764*i),e.arcTo(.0443*n,.0418*i,0,0,1,.4496*n,.1754*i),e.arcTo(.0221*n,.0157*i,0,0,1,.4369*n,.1634*i),e.arcTo(.0221*n,.0183*i,0,0,1,.4496*n,.1467*i),e.arcTo(.0609*n,.0574*i,0,0,1,.4759*n,.1414*i),e.arcTo(.0388*n,.0365*i,0,0,1,.5033*n,.1514*i),e.arcTo(.0443*n,.0209*i,0,0,1,.495*n,.1701*i),e.arcTo(.0388*n,.0365*i,0,0,1,.4718*n,.1764*i),e.close(),e.fill(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7281*i),e.lineTo(.1667*n,.5444*i),e.lineTo(.1667*n,.1832*i),e.lineTo(.5011*n,0),e.lineTo(.8333*n,.1832*i),e.lineTo(.8333*n,.5446*i),e.lineTo(n,.7281*i),e.lineTo(.7486*n,.7735*i),e.lineTo(.5819*n,.8617*i),e.lineTo(.5011*n,i),e.lineTo(.4169*n,.8653*i),e.lineTo(.2475*n,.7704*i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dSearchEngine.prototype.cst.SEARCH_ENGINE,mxShapeAws3dSearchEngine),mxUtils.extend(mxShapeAws3dSecurityTokenService,mxShape),mxShapeAws3dSecurityTokenService.prototype.cst={SECURITY_TOKEN_SERVICE:"mxgraph.aws3d.securityTokenService",SHADING_COLORS:"shadingCols"},mxShapeAws3dSecurityTokenService.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/180,t*i/192),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dSecurityTokenService.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.7281*i),e.lineTo(.1667*n,.5444*i),e.lineTo(.1667*n,.1832*i),e.lineTo(.5011*n,0),e.lineTo(.8333*n,.1832*i),e.lineTo(.8333*n,.5446*i),e.lineTo(n,.7281*i),e.lineTo(.7486*n,.7735*i),e.lineTo(.5819*n,.8617*i),e.lineTo(.5011*n,i),e.lineTo(.4169*n,.8653*i),e.lineTo(.2475*n,.7704*i),e.close(),e.fillAndStroke()},mxShapeAws3dSecurityTokenService.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dSecurityTokenService.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.1672*n,.1837*i),e.lineTo(.4989*n,.3638*i),e.lineTo(.4989*n,.7291*i),e.lineTo(.5825*n,.8633*i),e.lineTo(.4989*n,i),e.lineTo(.4164*n,.8622*i),e.lineTo(.2458*n,.7719*i),e.lineTo(0,.7276*i),e.lineTo(.1661*n,.5454*i),e.close(),e.moveTo(.7486*n,.7714*i),e.lineTo(.8317*n,.5459*i),e.lineTo(n,.727*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.4989*n,.3643*i),e.lineTo(.8317*n,.1827*i),e.lineTo(.8317*n,.5465*i),e.lineTo(.7508*n,.7714*i),e.lineTo(.5836*n,.8633*i),e.lineTo(.4989*n,.727*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(.1672*n,.1837*i),e.lineTo(.4989*n,.3638*i),e.lineTo(.4989*n,.7291*i),e.lineTo(.5825*n,.8633*i),e.lineTo(.4989*n,i),e.lineTo(.4164*n,.8622*i),e.lineTo(.2458*n,.7719*i),e.lineTo(0,.7276*i),e.lineTo(.1661*n,.5454*i),e.close(),e.moveTo(.7486*n,.7714*i),e.lineTo(.8317*n,.5459*i),e.lineTo(n,.727*i),e.close(),e.moveTo(.4989*n,.3643*i),e.lineTo(.8317*n,.1827*i),e.lineTo(.8317*n,.5465*i),e.lineTo(.7508*n,.7714*i),e.lineTo(.5836*n,.8633*i),e.lineTo(.4989*n,.727*i),e.close(),e.moveTo(.1667*n,.5459*i),e.lineTo(.2486*n,.7704*i),e.moveTo(.4164*n,.8633*i),e.lineTo(.4989*n,.727*i),e.lineTo(.4989*n,i),e.stroke(),e.restore(),e.setShadow(!1),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.4773*n,.1915*i),e.arcTo(.1274*n,.12*i,0,0,1,.4358*n,.1968*i),e.arcTo(.1107*n,.1044*i,0,0,1,.3937*n,.1905*i),e.arcTo(.0554*n,.0522*i,0,0,1,.3682*n,.1707*i),e.arcTo(.0332*n,.0313*i,0,0,1,.3699*n,.1414*i),e.arcTo(.0775*n,.0731*i,0,0,1,.4009*n,.118*i),e.arcTo(.1107*n,.1044*i,0,0,1,.4524*n,.1059*i),e.arcTo(.1107*n,.1044*i,0,0,1,.5028*n,.1112*i),e.arcTo(.0664*n,.0626*i,0,0,1,.531*n,.1315*i),e.arcTo(.0332*n,.0313*i,0,0,1,.531*n,.1597*i),e.lineTo(.5615*n,.1754*i),e.lineTo(.5526*n,.1905*i),e.lineTo(.5759*n,.1999*i),e.lineTo(.5753*n,.2109*i),e.lineTo(.5792*n,.2161*i),e.lineTo(.6135*n,.2182*i),e.lineTo(.6113*n,.2416*i),e.lineTo(.5819*n,.2474*i),e.close(),e.moveTo(.4756*n,.1816*i),e.arcTo(.0554*n,.0522*i,0,0,0,.5*n,.1691*i),e.arcTo(.0332*n,.0313*i,0,0,0,.5144*n,.1435*i),e.arcTo(.0277*n,.0261*i,0,0,0,.4967*n,.1247*i),e.arcTo(.0554*n,.0522*i,0,0,0,.4729*n,.1174*i),e.arcTo(.1107*n,.1044*i,0,0,0,.4452*n,.1169*i),e.arcTo(.0831*n,.0783*i,0,0,0,.4197*n,.1232*i),e.arcTo(.0554*n,.0522*i,0,0,0,.397*n,.1357*i),e.arcTo(.0388*n,.0365*i,0,0,0,.3859*n,.1555*i),e.arcTo(.0305*n,.0287*i,0,0,0,.4053*n,.178*i),e.arcTo(.072*n,.0678*i,0,0,0,.4385*n,.1863*i),e.arcTo(.0831*n,.0783*i,0,0,0,.4596*n,.1848*i),e.arcTo(.0664*n,.0626*i,0,0,0,.4756*n,.1816*i),e.fill(),e.setStrokeWidth(1.5*a),e.setLineJoin("round"),e.setLineCap("round"),e.begin(),e.moveTo(.4939*n,.1326*i),e.lineTo(.4474*n,.1508*i),e.lineTo(.4812*n,.1576*i),e.moveTo(.4889*n,.1733*i),e.lineTo(.4939*n,.1775*i),e.moveTo(.5061*n,.1576*i),e.lineTo(.5199*n,.1597*i),e.moveTo(.5094*n,.1394*i),e.lineTo(.5244*n,.1378*i),e.moveTo(.4945*n,.1247*i),e.lineTo(.4994*n,.1185*i),e.moveTo(.4679*n,.1175*i),e.lineTo(.4707*n,.1117*i),e.moveTo(.4396*n,.1195*i),e.lineTo(.4374*n,.1138*i),e.moveTo(.412*n,.1284*i),e.lineTo(.4059*n,.1232*i),e.moveTo(.3948*n,.1441*i),e.lineTo(.3804*n,.1425*i),e.moveTo(.3931*n,.1608*i),e.lineTo(.3804*n,.1649*i),e.moveTo(.4059*n,.1754*i),e.lineTo(.3998*n,.1801*i),e.moveTo(.4308*n,.1822*i),e.lineTo(.4286*n,.1884*i),e.moveTo(.4618*n,.1827*i),e.lineTo(.4635*n,.1868*i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.7281*i),e.lineTo(.1667*n,.5444*i),e.lineTo(.1667*n,.1832*i),e.lineTo(.5011*n,0),e.lineTo(.8333*n,.1832*i),e.lineTo(.8333*n,.5446*i),e.lineTo(n,.7281*i),e.lineTo(.7486*n,.7735*i),e.lineTo(.5819*n,.8617*i),e.lineTo(.5011*n,i),e.lineTo(.4169*n,.8653*i),e.lineTo(.2475*n,.7704*i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dSecurityTokenService.prototype.cst.SECURITY_TOKEN_SERVICE,mxShapeAws3dSecurityTokenService),mxUtils.extend(mxShapeAws3dGlacier,mxShape),mxShapeAws3dGlacier.prototype.cst={GLACIER:"mxgraph.aws3d.glacier",SHADING_COLORS:"shadingCols"},mxShapeAws3dGlacier.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/180,t*i/192),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dGlacier.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.8177*i),e.lineTo(0,.5448*i),e.lineTo(.168*n,.1792*i),e.lineTo(.5008*n,0),e.lineTo(.8309*n,.1812*i),e.lineTo(n,.5469*i),e.lineTo(n,.8188*i),e.lineTo(.6661*n,i),e.lineTo(.3333*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dGlacier.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dGlacier.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.1658*n,.1802*i),e.lineTo(.5008*n,.3651*i),e.lineTo(.6661*n,.9089*i),e.lineTo(.6661*n,i),e.lineTo(.3339*n,i),e.lineTo(0,.8177*i),e.lineTo(0,.5427*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.5008*n,.362*i),e.lineTo(.8314*n,.1823*i),e.lineTo(n,.5469*i),e.lineTo(n,.8177*i),e.lineTo(.6661*n,i),e.lineTo(.6661*n,.9089*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(.1658*n,.1802*i),e.lineTo(.5008*n,.3651*i),e.lineTo(.6661*n,.9089*i),e.lineTo(.6661*n,i),e.lineTo(.3339*n,i),e.lineTo(0,.8177*i),e.lineTo(0,.5427*i),e.close(),e.moveTo(.5008*n,.362*i),e.lineTo(.8314*n,.1823*i),e.lineTo(n,.5469*i),e.lineTo(n,.8177*i),e.lineTo(.6661*n,i),e.lineTo(.6661*n,.9089*i),e.close(),e.moveTo(.1675*n,.1797*i),e.lineTo(0,.7281*i),e.lineTo(.3284*n,.9089*i),e.lineTo(.6661*n,.9089*i),e.lineTo(n,.7266*i),e.lineTo(.8309*n,.1823*i),e.moveTo(.5003*n,.362*i),e.lineTo(.3311*n,.9089*i),e.lineTo(.3311*n,i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.8177*i),e.lineTo(0,.5448*i),e.lineTo(.168*n,.1792*i),e.lineTo(.5008*n,0),e.lineTo(.8309*n,.1812*i),e.lineTo(n,.5469*i),e.lineTo(n,.8188*i),e.lineTo(.6661*n,i),e.lineTo(.3333*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dGlacier.prototype.cst.GLACIER,mxShapeAws3dGlacier),mxUtils.extend(mxShapeAws3dCustomerGateway,mxShape),mxShapeAws3dCustomerGateway.prototype.cst={CUSTOMER_GATEWAY:"mxgraph.aws3d.customerGateway",SHADING_COLORS:"shadingCols"},mxShapeAws3dCustomerGateway.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/116.7,t*i/102.8),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dCustomerGateway.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(.4199*n,.5447*i),e.lineTo(.4199*n,.035*i),e.lineTo(.8946*n,0),e.lineTo(n,.0691*i),e.lineTo(n,.4134*i),e.lineTo(.6812*n,.7247*i),e.close(),e.fillAndStroke(),e.restore(),e.save(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dCustomerGateway.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(.4199*n,.5447*i),e.lineTo(.4199*n,.035*i),e.lineTo(.6838*n,.2072*i),e.lineTo(.6838*n,.7247*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.6838*n,.2072*i),e.lineTo(n,.0691*i),e.lineTo(n,.4134*i),e.lineTo(.6838*n,.7247*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.begin(),e.moveTo(.4199*n,.5447*i),e.lineTo(.4199*n,.035*i),e.lineTo(.6838*n,.2072*i),e.lineTo(.6838*n,.7247*i),e.close(),e.stroke(),e.restore(),e.setLineJoin("round"),e.setShadow(!1),e.begin(),e.moveTo(.6838*n,.2072*i),e.lineTo(n,.0691*i),e.lineTo(n,.4134*i),e.lineTo(.6838*n,.7247*i),e.close(),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(.4199*n,.5447*i),e.lineTo(.4199*n,.035*i),e.lineTo(.8946*n,0),e.lineTo(n,.0691*i),e.lineTo(n,.4134*i),e.lineTo(.6812*n,.7247*i),e.close(),e.stroke(),e.restore(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.929*i),e.lineTo(0,.5866*i),e.lineTo(.3171*n,.1031*i),e.lineTo(.5784*n,.2753*i),e.lineTo(.5784*n,.7928*i),e.lineTo(.1054*n,i),e.close(),e.fillAndStroke()},mxShapeAws3dCustomerGateway.prototype.foreground=function(e,t,o,n,i,a){e.restore(),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setShadow(!1),e.setLineJoin("round"),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dCustomerGateway.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var s=mxUtils.getValue(this.state.style,"flipH","0");"0"==s?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(0,.929*i),e.lineTo(0,.5866*i),e.lineTo(.1054*n,.6537*i),e.lineTo(.1054*n,i),e.close(),e.fill(),"0"==s?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.1054*n,i),e.lineTo(.1054*n,.6537*i),e.lineTo(.5784*n,.2753*i),e.lineTo(.5784*n,.7928*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.929*i),e.lineTo(0,.5866*i),e.lineTo(.1054*n,.6537*i),e.lineTo(.1054*n,i),e.close(),e.stroke(),e.begin(),e.moveTo(.1054*n,i),e.lineTo(.1054*n,.6537*i),e.lineTo(.5784*n,.2753*i),e.lineTo(.5784*n,.7928*i),e.close(),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.929*i),e.lineTo(0,.5866*i),e.lineTo(.3171*n,.1031*i),e.lineTo(.5784*n,.2753*i),e.lineTo(.5784*n,.7928*i),e.lineTo(.1054*n,i),e.close(),e.stroke(),e.setFillColor(t),e.begin(),e.moveTo(.7575*n,.3969*i),e.arcTo(.2142*n,.2432*i,0,0,1,.7686*n,.3259*i),e.arcTo(.2142*n,.2432*i,0,0,1,.8055*n,.2481*i),e.arcTo(.2142*n,.2432*i,0,0,1,.8406*n,.2091*i),e.lineTo(.8269*n,.2665*i),e.lineTo(.8372*n,.2607*i),e.lineTo(.8372*n,.3444*i),e.lineTo(.7832*n,.3804*i),e.lineTo(.7832*n,.3658*i),e.close(),e.moveTo(.8466*n,.2082*i),e.arcTo(.0514*n,.0584*i,0,0,1,.8766*n,.1955*i),e.arcTo(.0514*n,.0584*i,0,0,1,.9186*n,.2286*i),e.arcTo(.12*n,.1362*i,0,0,1,.9297*n,.2821*i),e.lineTo(.9006*n,.2831*i),e.lineTo(.9006*n,.3016*i),e.lineTo(.85*n,.3366*i),e.lineTo(.85*n,.251*i),e.lineTo(.8586*n,.2471*i),e.close(),e.moveTo(.9297*n,.2967*i),e.arcTo(.2142*n,.2432*i,0,0,1,.9195*n,.3667*i),e.arcTo(.2571*n,.2918*i,0,0,1,.8869*n,.4436*i),e.arcTo(.1714*n,.1946*i,0,0,1,.8466*n,.4903*i),e.lineTo(.8595*n,.4358*i),e.lineTo(.8492*n,.4416*i),e.lineTo(.8492*n,.357*i),e.lineTo(.9006*n,.32004*i),e.lineTo(.9006*n,.3346*i),e.close(),e.moveTo(.838*n,.4942*i),e.arcTo(.0857*n,.0973*i,0,0,1,.8072*n,.5049*i),e.arcTo(.0514*n,.0584*i,0,0,1,.7712*n,.4815*i),e.arcTo(.1714*n,.1946*i,0,0,1,.7566*n,.4163*i),e.lineTo(.7832*n,.4173*i),e.lineTo(.7832*n,.4008*i),e.lineTo(.8372*n,.3638*i),e.lineTo(.8372*n,.4494*i),e.lineTo(.8278*n,.4562*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeAws3dCustomerGateway.prototype.cst.CUSTOMER_GATEWAY,mxShapeAws3dCustomerGateway),mxUtils.extend(mxShapeAws3dRedshift,mxShape),mxShapeAws3dRedshift.prototype.cst={REDSHIFT:"mxgraph.aws3d.redshift",SHADING_COLORS:"shadingCols"},mxShapeAws3dRedshift.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/149.5,t*i/187.5),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dRedshift.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6517*i),e.lineTo(0,.0912*i),e.lineTo(.0368*n,.0155*i),e.lineTo(.2047*n,0),e.lineTo(.3378*n,.0619*i),e.lineTo(.3378*n,.0912*i),e.lineTo(.3819*n,.0693*i),e.lineTo(.6154*n,.0693*i),e.lineTo(.8502*n,.1776*i),e.lineTo(.8502*n,.3083*i),e.lineTo(.8682*n,.3061*i),e.lineTo(n,.3664*i),e.lineTo(n,.9099*i),e.lineTo(.9672*n,.9861*i),e.lineTo(.7926*n,i),e.lineTo(.6629*n,.9392*i),e.lineTo(.6629*n,.9099*i),e.lineTo(.6167*n,.9317*i),e.lineTo(.3813*n,.9317*i),e.lineTo(.1478*n,.8219*i),e.lineTo(.1478*n,.7093*i),e.lineTo(.1365*n,.7163*i),e.close(),e.fillAndStroke()},mxShapeAws3dRedshift.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dRedshift.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(0,.6541*i),e.lineTo(0,.0933*i),e.lineTo(.1371*n,.1573*i),e.lineTo(.1371*n,.7157*i),e.close(),e.moveTo(.1485*n,.8219*i),e.lineTo(.1485*n,.2864*i),e.lineTo(.3846*n,.3941*i),e.lineTo(.3846*n,.9317*i),e.close(),e.moveTo(.6642*n,.9392*i),e.lineTo(.6642*n,.4011*i),e.lineTo(.796*n,.4597*i),e.lineTo(.796*n,i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.1371*n,.7157*i),e.lineTo(.1371*n,.1568*i),e.lineTo(.2027*n,.1525*i),e.lineTo(.1498*n,.1771*i),e.lineTo(.1498*n,.7061*i),e.close(),e.moveTo(.3846*n,.3941*i),e.lineTo(.614*n,.3941*i),e.lineTo(.6809*n,.3632*i),e.lineTo(.6642*n,.4*i),e.lineTo(.6642*n,.9067*i),e.lineTo(.6191*n,.9317*i),e.lineTo(.3833*n,.9317*i),e.close(),e.moveTo(.796*n,.4608*i),e.lineTo(.9639*n,.4469*i),e.lineTo(n,.3691*i),e.lineTo(n,.9077*i),e.lineTo(.9686*n,.9856*i),e.lineTo(.796*n,i),e.close(),e.moveTo(.3378*n,.0608*i),e.lineTo(.3378*n,.0907*i),e.lineTo(.3197*n,.1008*i),e.close(),e.moveTo(.8502*n,.2843*i),e.lineTo(.8502*n,.3083*i),e.lineTo(.794*n,.3136*i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.6541*i),e.lineTo(0,.0933*i),e.lineTo(.1371*n,.1573*i),e.lineTo(.1371*n,.7157*i),e.close(),e.moveTo(.1485*n,.8219*i),e.lineTo(.1485*n,.2864*i),e.lineTo(.3846*n,.3941*i),e.lineTo(.3846*n,.9317*i),e.close(),e.moveTo(.6642*n,.9392*i),e.lineTo(.6642*n,.4011*i),e.lineTo(.796*n,.4597*i),e.lineTo(.796*n,i),e.close(),e.moveTo(.1371*n,.7157*i),e.lineTo(.1371*n,.1568*i),e.lineTo(.2027*n,.1525*i),e.lineTo(.1498*n,.1771*i),e.lineTo(.1498*n,.7061*i),e.close(),e.moveTo(.3846*n,.3941*i),e.lineTo(.614*n,.3941*i),e.lineTo(.6809*n,.3632*i),e.lineTo(.6642*n,.4*i),e.lineTo(.6642*n,.9067*i),e.lineTo(.6191*n,.9317*i),e.lineTo(.3833*n,.9317*i),e.close(),e.moveTo(.796*n,.4608*i),e.lineTo(.9639*n,.4469*i),e.lineTo(n,.3691*i),e.lineTo(n,.9077*i),e.lineTo(.9686*n,.9856*i),e.lineTo(.796*n,i),e.close(),e.moveTo(.3378*n,.0608*i),e.lineTo(.3378*n,.0907*i),e.lineTo(.3197*n,.1008*i),e.close(),e.moveTo(.8502*n,.2843*i),e.lineTo(.8502*n,.3083*i),e.lineTo(.794*n,.3136*i),e.close(),e.moveTo(.6167*n,.3941*i),e.lineTo(.6167*n,.9317*i),e.moveTo(.9652*n,.4448*i),e.lineTo(.9652*n,.9851*i),e.stroke(),e.restore(),e.setShadow(!1),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(.4903*n,.1259*i),e.arcTo(.01*n,.008*i,0,0,1,.5023*n,.1189*i),e.arcTo(.2007*n,.16*i,0,0,1,.5639*n,.1333*i),e.arcTo(.602*n,.48*i,0,0,1,.7157*n,.2005*i),e.arcTo(.2006*n,.16*i,0,0,1,.7565*n,.2315*i),e.arcTo(.01*n,.008*i,0,0,1,.7445*n,.2421*i),e.arcTo(.2676*n,.2133*i,0,0,1,.6742*n,.2251*i),e.arcTo(.602*n,.48*i,0,0,1,.5204*n,.1541*i),e.arcTo(.1338*n,.1067*i,0,0,1,.4903*n,.1259*i),e.close(),e.moveTo(.4789*n,.1275*i),e.arcTo(.0334*n,.0267*i,0,0,0,.487*n,.1461*i),e.arcTo(.1672*n,.1333*i,0,0,0,.5237*n,.1728*i),e.arcTo(.6689*n,.5333*i,0,0,0,.6609*n,.2352*i),e.arcTo(.2676*n,.2133*i,0,0,0,.7244*n,.2501*i),e.arcTo(.0201*n,.016*i,0,0,0,.7411*n,.2475*i),e.lineTo(.5385*n,.3408*i),e.arcTo(.0669*n,.05333*i,0,0,1,.512*n,.3397*i),e.arcTo(.2676*n,.2133*i,0,0,1,.4548*n,.3248*i),e.arcTo(.6689*n,.5333*i,0,0,1,.3084*n,.2565*i),e.arcTo(.1672*n,.1333*i,0,0,1,.2776*n,.2304*i),e.arcTo(.01*n,.008*i,0,0,1,.2776*n,.2197*i),e.close(),e.fill(),t=mxUtils.getValue(this.state.style,"fillColor","#ffffff"),e.setFillColor(t),e.setLineJoin("round"),e.setLineCap("round"),e.begin(),e.moveTo(.3398*n,.2421*i),e.lineTo(.4769*n,.1797*i),e.lineTo(.6341*n,.2512*i),e.lineTo(.4936*n,.3147*i),e.fill(),e.begin(),e.moveTo(.4334*n,.1941*i),e.lineTo(.6207*n,.2811*i),e.moveTo(.5338*n,.1995*i),e.lineTo(.3866*n,.2688*i),e.moveTo(.5873*n,.2235*i),e.lineTo(.4334*n,.2955*i),e.stroke(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.6517*i),e.lineTo(0,.0912*i),e.lineTo(.0368*n,.0155*i),e.lineTo(.2047*n,0),e.lineTo(.3378*n,.0619*i),e.lineTo(.3378*n,.0912*i),e.lineTo(.3819*n,.0693*i),e.lineTo(.6154*n,.0693*i),e.lineTo(.8502*n,.1776*i),e.lineTo(.8502*n,.3083*i),e.lineTo(.8682*n,.3061*i),e.lineTo(n,.3664*i),e.lineTo(n,.9099*i),e.lineTo(.9672*n,.9861*i),e.lineTo(.7926*n,i),e.lineTo(.6629*n,.9392*i),e.lineTo(.6629*n,.9099*i),e.lineTo(.6167*n,.9317*i),e.lineTo(.3813*n,.9317*i),e.lineTo(.1478*n,.8219*i),e.lineTo(.1478*n,.7093*i),e.lineTo(.1365*n,.7163*i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dRedshift.prototype.cst.REDSHIFT,mxShapeAws3dRedshift),mxUtils.extend(mxShapeAws3dLambda,mxShape),mxShapeAws3dLambda.prototype.cst={LAMBDA:"mxgraph.aws3d.lambda",SHADING_COLORS:"shadingCols"},mxShapeAws3dLambda.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")),t=Math.min(t*n/92,t*i/109.5),this.background(e,0,0,n,i,t),e.setShadow(!1),this.foreground(e,0,0,n,i,t)},mxShapeAws3dLambda.prototype.background=function(e,t,o,n,i,a){e.setStrokeWidth(a),e.save(),e.save(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.1671*i),e.lineTo(.3424*n,0),e.lineTo(.663*n,0),e.lineTo(n,.1671*i),e.lineTo(n,.8365*i),e.lineTo(.663*n,i),e.lineTo(.3424*n,i),e.lineTo(0,.8365*i),e.close(),e.fillAndStroke()},mxShapeAws3dLambda.prototype.foreground=function(e,t,o,n,i,a){e.restore(),e.setShadow(!1),e.setFillColor("#000000"),t=mxUtils.getValue(this.state.style,mxShapeAws3dLambda.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(o=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(t[0]):e.setAlpha(t[1]),e.begin(),e.moveTo(0,.3242*i),e.lineTo(.3424*n,.4895*i),e.lineTo(.663*n,.4895*i),e.lineTo(.663*n,i),e.lineTo(.3424*n,i),e.lineTo(0,.8365*i),e.close(),e.moveTo(0*n,0*i),e.lineTo(0*n,0*i),e.lineTo(0*n,0*i),e.lineTo(0*n,0*i),e.lineTo(0*n,0*i),e.lineTo(0*n,0*i),e.close(),e.moveTo(0*n,0*i),e.lineTo(0*n,0*i),e.lineTo(0*n,0*i),e.lineTo(0*n,0*i),e.lineTo(0*n,0*i),e.lineTo(0*n,0*i),e.close(),e.fill(),"0"==o?e.setAlpha(t[1]):e.setAlpha(t[0]),e.begin(),e.moveTo(.663*n,.4895*i),e.lineTo(n,.3242*i),e.lineTo(n,.8365*i),e.lineTo(.663*n,i),e.close(),e.fill(),e.restore(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,.3242*i),e.lineTo(.3424*n,.4895*i),e.lineTo(.663*n,.4895*i),e.lineTo(n,.3242*i),e.moveTo(.3424*n,.4895*i),e.lineTo(.3424*n,i),e.moveTo(.663*n,.4895*i),e.lineTo(.663*n,i),e.stroke(),e.setFillColor("#5E5E5E"),e.begin(),e.moveTo(.3804*n,.1169*i),e.arcTo(.5435*n,.4566*i,0,0,1,.6087*n,.1123*i),e.arcTo(.33804*n,.3196*i,0,0,1,.725*n,.1553*i),e.arcTo(.1304*n,.1096*i,0,0,1,.7924*n,.2402*i),e.arcTo(.1522*n,.1279*i,0,0,1,.725*n,.3333*i),e.arcTo(.4416*n,.274*i,0,0,1,.6087*n,.3772*i),e.arcTo(.5435*n,.4566*i,0,0,1,.3804*n,.3708*i),e.arcTo(.3804*n,.3196*i,0,0,1,.2772*n,.3324*i),e.arcTo(.1522*n,.1279*i,0,0,1,.2163*n,.2539*i),e.arcTo(.1522*n,.1279*i,0,0,1,.2663*n,.1644*i),e.arcTo(.3804*n,.3196*i,0,0,1,.3804*n,.1169*i),e.fill(),e.setFillColor("#ffffff"),e.begin(),e.moveTo(.5565*n,.2174*i),e.arcTo(.0652*n,.0548*i,0,0,0,.5837*n,.1945*i),e.arcTo(.0326*n,.0274*i,0,0,0,.5793*n,.1671*i),e.arcTo(.0652*n,.0548*i,0,0,0,.525*n,.1598*i),e.arcTo(.0652*n,.0548*i,0,0,1,.5543*n,.1443*i),e.arcTo(.0761*n,.0639*i,0,0,1,.6163*n,.1662*i),e.arcTo(.0598*n,.0502*i,0,0,1,.6087*n,.2091*i),e.lineTo(.5*n,.3032*i),e.arcTo(.0978*n,.0822*i,0,0,0,.4728*n,.3379*i),e.arcTo(.0272*n,.0228*i,0,0,0,.4924*n,.3571*i),e.arcTo(.0326*n,.0274*i,0,0,1,.4489*n,.3571*i),e.arcTo(.038*n,.032*i,0,0,1,.437*n,.3242*i),e.arcTo(.1087*n,.0913*i,0,0,1,.4674*n,.2886*i),e.lineTo(.5141*n,.2557*i),e.lineTo(.3185*n,.2895*i),e.lineTo(.2641*n,.2648*i),e.close(),e.fill(),e.setStrokeWidth(2*a),e.setStrokeColor("#292929"),e.begin(),e.moveTo(0,.1671*i),e.lineTo(.3424*n,0),e.lineTo(.663*n,0),e.lineTo(n,.1671*i),e.lineTo(n,.8365*i),e.lineTo(.663*n,i),e.lineTo(.3424*n,i),e.lineTo(0,.8365*i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dLambda.prototype.cst.LAMBDA,mxShapeAws3dLambda),mxUtils.extend(mxShapeAws3dEbs2,mxShape),mxShapeAws3dEbs2.prototype.cst={EBS2:"mxgraph.aws3d.ebs2",SHADING_COLORS:"shadingCols"},mxShapeAws3dEbs2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1")))*n/92,t=t*i/60;var a=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));t=Math.min(o,t),e.setStrokeWidth(t),e.setShadow(!1),e.save(),e.save(),e.setStrokeWidth(2*t),e.setStrokeColor("#292929"),e.setLineJoin("round"),1==a&&e.setShadow(!0),e.begin(),e.moveTo(0,.5276*i),e.lineTo(0,.4188*i),e.lineTo(.071*n,.2898*i),e.lineTo(.4033*n,0),e.lineTo(.9301*n,.464*i),e.lineTo(n,.5863*i),e.lineTo(n,.7035*i),e.lineTo(.6667*n,i),e.lineTo(.5355*n,i),e.close(),e.fillAndStroke(),e.restore(),e.setFillColor("#000000"),o=mxUtils.getValue(this.state.style,mxShapeAws3dEbs2.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(","),"0"==(a=mxUtils.getValue(this.state.style,"flipH","0"))?e.setAlpha(o[0]):e.setAlpha(o[1]),e.begin(),e.moveTo(.071*n,.2948*i),e.lineTo(.6011*n,.7621*i),e.lineTo(.6667*n,i),e.lineTo(.5355*n,i),e.lineTo(0,.5276*i),e.lineTo(0,.4137*i),e.close(),e.fill(),"0"==a?e.setAlpha(o[1]):e.setAlpha(o[0]),e.begin(),e.moveTo(.6011*n,.7655*i),e.lineTo(.9344*n,.4724*i),e.lineTo(n,.7035*i),e.lineTo(.6667*n,i),e.close(),e.fill(),e.restore(),e.setLineJoin("round"),e.begin(),e.moveTo(.071*n,.2948*i),e.lineTo(.6011*n,.7621*i),e.lineTo(.6667*n,i),e.lineTo(.5355*n,i),e.lineTo(0,.5276*i),e.lineTo(0,.4137*i),e.close(),e.moveTo(.6011*n,.7655*i),e.lineTo(.9344*n,.4724*i),e.lineTo(n,.7035*i),e.lineTo(.6667*n,i),e.close(),e.moveTo(.0033*n,.5276*i),e.lineTo(.071*n,.2898*i),e.moveTo(.5325*n,.9976*i),e.lineTo(.603*n,.7593*i),e.stroke(),e.setStrokeWidth(2*t),e.setLineCap("round"),e.begin(),e.moveTo(.3388*n,.3802*i),e.lineTo(.5027*n,.2345*i),e.lineTo(.6667*n,.3802*i),e.lineTo(.5027*n,.526*i),e.close(),e.moveTo(.4426*n,.3802*i),e.lineTo(.5027*n,.3266*i),e.lineTo(.5628*n,.3802*i),e.lineTo(.5027*n,.4338*i),e.close(),e.moveTo(.3867*n,.3284*i),e.lineTo(.3541*n,.2998*i),e.moveTo(.4436*n,.2748*i),e.lineTo(.4077*n,.2412*i),e.moveTo(.5704*n,.2803*i),e.lineTo(.5992*n,.2513*i),e.moveTo(.6231*n,.3284*i),e.lineTo(.6503*n,.3032*i),e.moveTo(.622*n,.4338*i),e.lineTo(.6557*n,.4606*i),e.moveTo(.5667*n,.4845*i),e.lineTo(.5992*n,.5156*i),e.moveTo(.4414*n,.4874*i),e.lineTo(.412*n,.5159*i),e.moveTo(.3889*n,.4405*i),e.lineTo(.3607*n,.4657*i),e.stroke(),e.setStrokeColor("#292929"),e.setLineJoin("round"),e.begin(),e.moveTo(0,.5276*i),e.lineTo(0,.4188*i),e.lineTo(.071*n,.2898*i),e.lineTo(.4033*n,0),e.lineTo(.9301*n,.464*i),e.lineTo(n,.5863*i),e.lineTo(n,.7035*i),e.lineTo(.6667*n,i),e.lineTo(.5355*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeAws3dEbs2.prototype.cst.EBS2,mxShapeAws3dEbs2),mxUtils.extend(mxShapeAws4ProductIcon,mxShape),mxShapeAws4ProductIcon.prototype.cst={PRODUCT_ICON:"mxgraph.aws4.productIcon"},mxShapeAws4ProductIcon.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=o=t=parseFloat(mxUtils.getValue(this.style,"opacity","100"));"none"==s&&(o=0),"none"==l&&(a=0),t=mxUtils.getValue(this.state.style,"strokeColor","none"),e.setFillColor(t),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fill(),e.setShadow(!1);var s=mxUtils.getValue(this.state.style,"fillColor","#ffffff"),l=mxUtils.getValue(this.state.style,"gradientColor",s),r=mxUtils.getValue(this.state.style,"gradientDirection","south");e.setFillColor(s),e.setGradient(s,l,0,0,n,i,r,o,a),e.begin(),e.moveTo(1,1),e.lineTo(n-1,1),e.lineTo(n-1,n-1),e.lineTo(1,n-1),e.close(),e.fill(),i=mxUtils.getValue(this.state.style,"prIcon",""),null!=(i=mxStencilRegistry.getStencil(i))&&(e.setFillColor(t),e.setStrokeColor("none"),i.drawShape(e,this,1+.15*n,1+.15*n,.7*n-2,.7*n-2))},mxCellRenderer.registerShape(mxShapeAws4ProductIcon.prototype.cst.PRODUCT_ICON,mxShapeAws4ProductIcon),mxUtils.extend(mxShapeAws4ResourceIcon,mxShape),mxShapeAws4ResourceIcon.prototype.cst={RESOURCE_ICON:"mxgraph.aws4.resourceIcon"},mxShapeAws4ResourceIcon.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fill(),e.setShadow(!1),t=mxUtils.getValue(this.state.style,"resIcon",""),null!=(t=mxStencilRegistry.getStencil(t))&&(o=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(o),e.setStrokeColor("none"),t.drawShape(e,this,.1*n,.1*i,.8*n,.8*i))},mxCellRenderer.registerShape(mxShapeAws4ResourceIcon.prototype.cst.RESOURCE_ICON,mxShapeAws4ResourceIcon),mxUtils.extend(mxShapeAws4Group,mxShape),mxShapeAws4Group.prototype.cst={GROUP:"mxgraph.aws4.group"},mxShapeAws4Group.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.state.style,"grStroke","1"),null!=this.style&&"0"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")&&(e.pointerEvents=!1),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),"1"==t?e.fillAndStroke():e.fill(),e.pointerEvents=!0,e.setShadow(!1),n=mxUtils.getValue(this.state.style,"grIcon",""),null!=(n=mxStencilRegistry.getStencil(n))&&(i=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(i),e.setStrokeColor("none"),n.drawShape(e,this,0,0,25,25))},mxCellRenderer.registerShape(mxShapeAws4Group.prototype.cst.GROUP,mxShapeAws4Group),mxUtils.extend(mxShapeAws4GroupCenter,mxShape),mxShapeAws4GroupCenter.prototype.cst={GROUP_CENTER:"mxgraph.aws4.groupCenter"},mxShapeAws4GroupCenter.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.state.style,"grStroke","1"),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),"1"==t?e.fillAndStroke():e.fill(),e.setShadow(!1),i=mxUtils.getValue(this.state.style,"grIcon",""),null!=(i=mxStencilRegistry.getStencil(i))&&(t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.setStrokeColor("none"),i.drawShape(e,this,.5*(n-25),0,25,25))},mxCellRenderer.registerShape(mxShapeAws4GroupCenter.prototype.cst.GROUP_CENTER,mxShapeAws4GroupCenter),mxUtils.extend(mxShapeAws4Group2,mxShape),mxShapeAws4Group2.prototype.cst={GROUP2:"mxgraph.aws4.group2"},mxShapeAws4Group2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.setShadow(!1),t=mxUtils.getValue(this.state.style,"strokeColor","#000000"),e.setFillColor(t),e.begin(),e.moveTo(0,0),e.lineTo(25,0),e.lineTo(25,25),e.lineTo(0,25),e.close(),e.fill(),t=mxUtils.getValue(this.state.style,"grIcon",""),null!=(t=mxStencilRegistry.getStencil(t))&&(e.setFillColor("#ffffff"),e.setStrokeColor("none"),t.drawShape(e,this,2.5,2.5,20,20))},mxCellRenderer.registerShape(mxShapeAws4Group2.prototype.cst.GROUP2,mxShapeAws4Group2),mxUtils.extend(mxShapeAndroidTabBar,mxShape),mxShapeAndroidTabBar.prototype.cst={MAIN_TEXT:"mainText",SHAPE_TAB_BAR:"mxgraph.android.tabBar",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",TEXT_SIZE:"textSize"},mxShapeAndroidTabBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.MAIN_TEXT,"+Tab 1, Tab 2, Tab 3").toString().split(","),s=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.TEXT_COLOR,"none"),l=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.TEXT_COLOR2,"none"),r=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.TEXT_SIZE,"17").toString(),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none"),m=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.STROKE_COLOR2,"none"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none"),x=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.FILL_COLOR2,"none"),c=a.length,u=Array(c),S=0,T=-1,d=0;d<c;d++){var C=a[d];C.charAt(0)===mxShapeAndroidTabBar.prototype.cst.SELECTED&&(C=a[d].substring(1),T=d),u[d]=mxUtils.getSizeForString(C,r,mxConstants.DEFAULT_FONTFAMILY).width,S+=u[d]}for(i=Math.max(i,1.5*r,7),S=10*c+S,n=Math.max(n,S),e.translate(t,o),this.background(e,n,i,c,u,5,S,p,m,h,x,T),e.setShadow(!1),e.setFontStyle(mxConstants.FONT_BOLD),d=t=0;d<c;d++)d===T?e.setFontColor(l):e.setFontColor(s),t+=5,this.buttonText(e,t,i,a[d],u[d],r,S,n),t=t+u[d]+5},mxShapeAndroidTabBar.prototype.background=function(e,t,o,n,i,a,s,l,r,p,m,h){for(e.begin(),e.setStrokeColor(l),e.setFillColor(p),e.rect(0,0,t,o),e.fillAndStroke(),e.setStrokeColor(r),e.begin(),l=1;l<n;l++)if(l!==h&&l!==h+1){for(p=r=0;p<l;p++)r+=i[p]+2*a;r=r*t/s,e.moveTo(r,.2*o),e.lineTo(r,.8*o)}for(e.stroke(),n=0,e.setFillColor(m),l=0;l<h;l++)n+=i[l]+2*a;n=n*t/s,t=(i[h]+2*a)*t/s,t+=n,e.rect(n,0,t-n,o),e.fill(),e.setAlpha(1),e.setFillColor("#33b5e5"),e.rect(n,.9*o,t-n,.1*o),e.fill()},mxShapeAndroidTabBar.prototype.buttonText=function(e,t,o,n,i,a,s,l){n.charAt(0)===mxShapeAndroidTabBar.prototype.cst.SELECTED&&(n=n.substring(1)),e.begin(),e.setFontSize(a),e.text((t+.5*i)*l/s,.5*o,0,0,n,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeAndroidTabBar.prototype.cst.SHAPE_TAB_BAR,mxShapeAndroidTabBar),mxUtils.extend(mxShapeAndroidPhone,mxShape),mxShapeAndroidPhone.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.roundrect(0,0,n,i,25,25),e.fillAndStroke(),e.setShadow(!1),this.foreground(e,t,o,n,i,25)},mxShapeAndroidPhone.prototype.foreground=function(e,t,o,n,i,a){e.rect(.0625*n,.15*i,.875*n,.7*i),e.stroke(),e.ellipse(.4875*n,.04125*i,.025*n,.0125*i),e.stroke(),e.roundrect(.375*n,.075*i,.25*n,.01875*i,.02*n,.01*i),e.stroke(),e.ellipse(.4*n,.875*i,.2*n,.1*i),e.stroke(),e.roundrect(.4575*n,.905*i,.085*n,.04375*i,.00625*i,.00625*i),e.stroke()},mxCellRenderer.registerShape("mxgraph.android.phone",mxShapeAndroidPhone),mxUtils.extend(mxShapeAndroidStatusBar,mxShape),mxShapeAndroidStatusBar.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeAndroidStatusBar.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fill()},mxShapeAndroidStatusBar.prototype.foreground=function(e,t,o,n,i){e.rect(0,0,n,i),e.fill(),e.setFontColor(mxUtils.getValue(this.style,mxConstants.STYLE_FONTCOLOR,"#222222")),e.setFontSize(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"5")),e.text(n-30,.5*i+1,0,0,"12:00",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFillColor("#444444"),e.begin(),e.moveTo(n-37,.5*i+6),e.lineTo(n-37,.5*i-5),e.lineTo(n-36,.5*i-5),e.lineTo(n-36,.5*i-6),e.lineTo(n-32,.5*i-6),e.lineTo(n-32,.5*i-5),e.lineTo(n-31,.5*i-5),e.lineTo(n-31,.5*i+6),e.close(),e.fill(),e.setFillColor(mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none")),e.ellipse(n-56,.5*i+2,2,2),e.fillAndStroke(),e.setStrokeWidth(2),e.begin(),e.moveTo(n-52,.5*i+1),e.arcTo(3.5,3.5,0,0,0,n-58,.5*i+1),e.stroke(),e.begin(),e.moveTo(n-50,.5*i-1),e.arcTo(6,6,0,0,0,n-60,.5*i-1),e.stroke(),e.setStrokeWidth(1),e.rect(n-51,.5*i+5,2,1),e.fill(),e.rect(n-48,.5*i+2,2,4),e.fill(),e.rect(n-45,.5*i-1,2,7),e.fill(),e.rect(n-42,.5*i-4,2,10),e.fill(),e.rect(n-37,.5*i-2,6,8),e.fill()},mxCellRenderer.registerShape("mxgraph.android.statusBar",mxShapeAndroidStatusBar),mxUtils.extend(mxShapeAndroidCheckboxGroup,mxShape),mxShapeAndroidCheckboxGroup.prototype.cst={STYLE_TEXTCOLOR2:"textColor2",STYLE_STROKECOLOR2:"strokeColor2",BUTTON_TEXT:"buttonText",SELECTED:"+"},mxShapeAndroidCheckboxGroup.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=mxUtils.getValue(this.style,mxConstants.STYLE_TEXTCOLOR,"#666666"),s=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8").toString();t=mxUtils.getValue(this.style,mxShapeAndroidCheckboxGroup.prototype.cst.BUTTON_TEXT,"Option 1").toString().split(",");var l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none");o=mxUtils.getValue(this.style,mxShapeAndroidCheckboxGroup.prototype.cst.STYLE_STROKECOLOR2,"none"),e.setStrokeColor(o),o=t.length;var r=Math.max(1.5*s,5),p=0,m=-1,h=o*r;i=Math.max(i,h);for(var x=0;x<o;x++){var c=t[x];c.charAt(0)===mxShapeAndroidCheckboxGroup.prototype.cst.SELECTED&&(c=t[x].substring(1),m=x),(c=mxUtils.getSizeForString(c,s,mxConstants.DEFAULT_FONTFAMILY).width)>p&&(p=c)}for(e.roundrect(0,0,Math.max(n,5+p+10),i,2.5,2.5),e.fillAndStroke(),e.setShadow(!1),e.setFontSize(s),e.setFontColor(a),e.setStrokeColor(l),x=0;x<o;x++)n=(x*r+.5*r)*i/h,(c=t[x]).charAt(0)===mxShapeAndroidCheckboxGroup.prototype.cst.SELECTED&&(c=t[x].substring(1),m=x),e.text(12.5,n,0,0,c,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),n-=2.5,m===x?(e.rect(2.5,n,5,5),e.fillAndStroke(),e.begin(),e.moveTo(3.75,n+2.5),e.lineTo(5,n+3.75),e.lineTo(6.25,n+1.25),e.stroke()):(e.rect(2.5,n,5,5),e.fillAndStroke()),m=-1},mxCellRenderer.registerShape("mxgraph.android.checkboxGroup",mxShapeAndroidCheckboxGroup),mxUtils.extend(mxShapeAndroidRadioGroup,mxShape),mxShapeAndroidRadioGroup.prototype.cst={STYLE_TEXTCOLOR2:"textColor2",STYLE_STROKECOLOR2:"strokeColor2",BUTTON_TEXT:"buttonText",SELECTED:"+"},mxShapeAndroidRadioGroup.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=mxUtils.getValue(this.style,mxConstants.STYLE_TEXTCOLOR,"#666666"),s=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8").toString();t=mxUtils.getValue(this.style,mxShapeAndroidRadioGroup.prototype.cst.BUTTON_TEXT,"Option 1").toString().split(",");var l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none");o=mxUtils.getValue(this.style,mxShapeAndroidRadioGroup.prototype.cst.STYLE_STROKECOLOR2,"none"),e.setStrokeColor(o),o=t.length;var r=Math.max(1.5*s,5),p=0,m=-1,h=o*r;i=Math.max(i,h);for(var x=0;x<o;x++){var c=t[x];c.charAt(0)===mxShapeAndroidRadioGroup.prototype.cst.SELECTED&&(c=t[x].substring(1),m=x),(c=mxUtils.getSizeForString(c,s,mxConstants.DEFAULT_FONTFAMILY).width)>p&&(p=c)}for(e.roundrect(0,0,Math.max(n,5+p+10),i,2.5,2.5),e.fillAndStroke(),e.setShadow(!1),e.setFontSize(s),e.setFontColor(a),e.setStrokeColor(l),e.setFillColor(l),x=0;x<o;x++)n=(x*r+.5*r)*i/h,(c=t[x]).charAt(0)===mxShapeAndroidRadioGroup.prototype.cst.SELECTED&&(c=t[x].substring(1),m=x),e.text(12.5,n,0,0,c,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),n-=2.5,m===x?(e.ellipse(2.5,n,5,5),e.stroke(),e.ellipse(3.75,n+1.25,2.5,2.5),e.fillAndStroke()):(e.ellipse(2.5,n,5,5),e.stroke())},mxCellRenderer.registerShape("mxgraph.android.radioGroup",mxShapeAndroidRadioGroup),mxUtils.extend(mxShapeAndroidMenuBar,mxShape),mxShapeAndroidMenuBar.prototype.cst={MENU_TEXT:"menuText"},mxShapeAndroidMenuBar.prototype.paintVertexShape=function(e,t,o,n,i){for(var a=mxUtils.getValue(this.style,mxShapeAndroidMenuBar.prototype.cst.MENU_TEXT,"Item 1, Item 2, Item 3").toString().split(","),s=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"12"),l=a.length,r=0,p=0;p<l;p++){var m=mxUtils.getSizeForString(a[p],s,mxConstants.DEFAULT_FONTFAMILY).width;m>r&&(r=m)}for(r=l*(s*=1.5),i=Math.max(i,r),e.translate(t,o),e.rect(0,0,n,i),e.fillAndStroke(),e.setShadow(!1),e.begin(),p=1;p<l;p++)t=p*s*i/r,e.moveTo(0,t),e.lineTo(n,t);for(e.stroke(),p=0;p<l;p++)m+=2.5,t=(p*s+.5*s)*i/r,e.text(10,t,0,0,a[p],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape("mxgraph.android.menuBar",mxShapeAndroidMenuBar),mxUtils.extend(mxShapeAndroidTextSelHandles,mxShape),mxShapeAndroidTextSelHandles.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none");e.translate(t,o),t=Math.max(0,i-22.5),e.setAlpha(.5),e.rect(15,0,n-30,t),e.fill(),e.begin(),e.moveTo(0,i-15),e.lineTo(7.5,i-22.5),e.lineTo(15,i-15),e.close(),e.moveTo(n-15,i-15),e.lineTo(n-7.5,i-22.5),e.lineTo(n,i-15),e.close(),e.fill(),e.setFillColor(a),e.rect(0,i-15,15,15),e.fill(),e.rect(n-15,i-15,15,15),e.fill()},mxCellRenderer.registerShape("mxgraph.android.textSelHandles",mxShapeAndroidTextSelHandles),mxUtils.extend(mxShapeAndroidIndeterminateSpinner,mxShape),mxShapeAndroidIndeterminateSpinner.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeAndroidIndeterminateSpinner.prototype.background=function(e,t,o,n,i){e.setGradient("#aaaaaa","#dddddd",.325*n,0,.675*n,.5*i,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(.5*n,.1*i),e.arcTo(.4*n,.4*i,0,0,0,.5*n,.9*i),e.lineTo(.5*n,i),e.arcTo(.5*n,.5*i,0,0,1,.5*n,0),e.close(),e.fill(),e.setGradient("#ffffff","#dddddd",.325*n,0,.675*n,.5*i,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(.5*n,.1*i),e.arcTo(.4*n,.4*i,0,0,1,.5*n,.9*i),e.lineTo(.5*n,i),e.arcTo(.5*n,.5*i,0,0,0,.5*n,0),e.close(),e.fill()},mxCellRenderer.registerShape("mxgraph.android.indeterminateSpinner",mxShapeAndroidIndeterminateSpinner),mxUtils.extend(mxShapeAndroidAnchor,mxShape),mxShapeAndroidAnchor.prototype.cst={ANCHOR:"mxgraph.android.anchor"},mxShapeAndroidAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeAndroidAnchor.prototype.cst.ANCHOR,mxShapeAndroidAnchor),mxUtils.extend(mxShapeAndroidRRect,mxShape),mxShapeAndroidRRect.prototype.cst={RRECT:"mxgraph.android.rrect",R_SIZE:"rSize"},mxShapeAndroidRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeAndroidRRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAndroidRRect.prototype.cst.RRECT,mxShapeAndroidRRect),mxUtils.extend(mxShapeAndroidCheckbox,mxShape),mxShapeAndroidCheckbox.prototype.cst={CHECKBOX:"mxgraph.android.checkbox"},mxShapeAndroidCheckbox.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,n,i),e.fillAndStroke(),e.begin(),e.moveTo(.8*n,.2*i),e.lineTo(.4*n,.8*i),e.lineTo(.25*n,.6*i),e.stroke()},mxCellRenderer.registerShape(mxShapeAndroidCheckbox.prototype.cst.CHECKBOX,mxShapeAndroidCheckbox),mxUtils.extend(mxShapeAndroidProgressBar,mxShape),mxShapeAndroidProgressBar.prototype.customProperties=[{name:"dx1",dispName:"Middle Bar Length",type:"float",min:0,max:1,defVal:.8},{name:"dx2",dispName:"Left Bar Length",type:"float",min:0,max:1,defVal:.6}],mxShapeAndroidProgressBar.prototype.cst={PROGRESS_BAR:"mxgraph.android.progressBar"},mxShapeAndroidProgressBar.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),s=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2))));e.translate(t,o),e.save(),e.save(),e.setStrokeColor("#444444"),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke(),e.restore(),e.setShadow(!1),e.begin(),e.moveTo(0,.5*i),e.lineTo(a,.5*i),e.stroke(),e.setStrokeColor("#000000"),e.setAlpha("0.2"),e.begin(),e.moveTo(0,.5*i),e.lineTo(a,.5*i),e.stroke(),e.restore(),e.setShadow(!1),e.begin(),e.moveTo(0,.5*i),e.lineTo(s,.5*i),e.stroke()},mxCellRenderer.registerShape(mxShapeAndroidProgressBar.prototype.cst.PROGRESS_BAR,mxShapeAndroidProgressBar),mxShapeAndroidProgressBar.prototype.constraints=null,Graph.handleFactory[mxShapeAndroidProgressBar.prototype.cst.PROGRESS_BAR]=function(e){var t=[Graph.createHandle(e,["dx1"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))));return new mxPoint(e.x+t*e.width,e.y+e.height/2)}),(function(e,t){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))];return e=Graph.createHandle(e,["dx2"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx1))));return new mxPoint(e.x+t*e.width,e.y+e.height/2)}),(function(e,t){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100})),t.push(e),t},mxUtils.extend(mxShapeAndroidProgressScrubberDisabled,mxShape),mxShapeAndroidProgressScrubberDisabled.prototype.customProperties=[{name:"dx",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.3}],mxShapeAndroidProgressScrubberDisabled.prototype.cst={PROGRESS_SCRUBBER_DISABLED:"mxgraph.android.progressScrubberDisabled"},mxShapeAndroidProgressScrubberDisabled.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e.translate(t,o),e.save(),e.save(),e.setStrokeColor("#444444"),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke(),e.restore(),e.setShadow(!1),e.setAlpha("0.5"),e.setFillColor("#666666"),e.begin(),t=Math.min(i,.1*n)/2,e.ellipse(a-t,.5*i-t,2*t,2*t),e.fill(),e.restore(),e.setShadow(!1),e.begin(),t=Math.min(i,.1*n)/8,e.ellipse(a-t,.5*i-t,2*t,2*t),e.fill()},mxCellRenderer.registerShape(mxShapeAndroidProgressScrubberDisabled.prototype.cst.PROGRESS_SCRUBBER_DISABLED,mxShapeAndroidProgressScrubberDisabled),mxShapeAndroidProgressScrubberDisabled.prototype.constraints=null,Graph.handleFactory[mxShapeAndroidProgressScrubberDisabled.prototype.cst.PROGRESS_SCRUBBER_DISABLED]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeAndroidProgressScrubberFocused,mxShape),mxShapeAndroidProgressScrubberFocused.prototype.customProperties=[{name:"dx",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.3}],mxShapeAndroidProgressScrubberFocused.prototype.cst={PROGRESS_SCRUBBER_FOCUSED:"mxgraph.android.progressScrubberFocused"},mxShapeAndroidProgressScrubberFocused.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),s=mxUtils.getValue(this.style,"fillColor","#ffffff");e.translate(t,o),e.save(),e.save(),e.setStrokeColor("#444444"),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke(),e.restore(),e.setShadow(!1),e.setAlpha("0.75"),e.begin(),t=Math.min(i,.1*n)/2,e.ellipse(a-t,.5*i-t,2*t,2*t),e.fill(),e.restore(),e.setShadow(!1),e.setStrokeColor(s),e.begin(),e.moveTo(0,.5*i),e.lineTo(a,.5*i),e.stroke(),e.begin(),t=Math.min(i,.1*n)/8,e.ellipse(a-t,.5*i-t,2*t,2*t),e.fill()},mxCellRenderer.registerShape(mxShapeAndroidProgressScrubberFocused.prototype.cst.PROGRESS_SCRUBBER_FOCUSED,mxShapeAndroidProgressScrubberFocused),mxShapeAndroidProgressScrubberFocused.prototype.constraints=null,Graph.handleFactory[mxShapeAndroidProgressScrubberFocused.prototype.cst.PROGRESS_SCRUBBER_FOCUSED]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeAndroidProgressScrubberPressed,mxShape),mxShapeAndroidProgressScrubberPressed.prototype.customProperties=[{name:"dx",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.3}],mxShapeAndroidProgressScrubberPressed.prototype.cst={PROGRESS_SCRUBBER_PRESSED:"mxgraph.android.progressScrubberPressed"},mxShapeAndroidProgressScrubberPressed.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),s=mxUtils.getValue(this.style,"fillColor","#ffffff");e.translate(t,o),e.save(),e.save(),e.setStrokeColor("#444444"),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke(),e.restore(),e.setShadow(!1),e.setStrokeColor(s),e.setAlpha("0.5"),e.begin(),t=Math.min(i,.1*n)/2,e.ellipse(a-t,.5*i-t,2*t,2*t),e.fillAndStroke(),e.restore(),e.setShadow(!1),e.setStrokeColor(s),e.begin(),e.moveTo(0,.5*i),e.lineTo(a,.5*i),e.stroke(),e.begin(),t=Math.min(i,.1*n)/8,e.ellipse(a-t,.5*i-t,2*t,2*t),e.fill()},mxCellRenderer.registerShape(mxShapeAndroidProgressScrubberPressed.prototype.cst.PROGRESS_SCRUBBER_PRESSED,mxShapeAndroidProgressScrubberPressed),mxShapeAndroidProgressScrubberPressed.prototype.constraints=null,Graph.handleFactory[mxShapeAndroidProgressScrubberPressed.prototype.cst.PROGRESS_SCRUBBER_PRESSED]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeAndroidQuickscroll2,mxShape),mxShapeAndroidQuickscroll2.prototype.customProperties=[{name:"dy",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.5}],mxShapeAndroidQuickscroll2.prototype.cst={QUICKSCROLL:"mxgraph.android.quickscroll2"},mxShapeAndroidQuickscroll2.prototype.paintVertexShape=function(e,t,o,n,i){var a=Math.min(i-20,Math.max(20,i*Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))))));mxUtils.getValue(this.style,"fillColor","#ffffff"),e.translate(t,o),e.save(),e.save(),e.setStrokeColor("#cccccc"),e.begin(),e.moveTo(n-3,0),e.lineTo(n-3,i),e.stroke(),e.restore(),e.begin(),e.roundrect(n-6,a-10,6,20,1,1),e.fillAndStroke(),e.setFillColor("#cccccc"),e.begin(),e.rect(0,a-20,n-18,40),e.fill(),e.setFillColor("#666666"),e.begin(),e.moveTo(n-18,a-20),e.lineTo(n-6,a),e.lineTo(n-18,a+20),e.close(),e.fill(),e.setFontSize("12"),e.text(.5*(n-18),a,0,0,"Aa",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeAndroidQuickscroll2.prototype.cst.QUICKSCROLL,mxShapeAndroidQuickscroll2),mxShapeAndroidQuickscroll2.prototype.constraints=null,Graph.handleFactory[mxShapeAndroidQuickscroll2.prototype.cst.QUICKSCROLL]=function(e){return[Graph.createHandle(e,["dy"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-3,e.y+Math.min(e.height-20,Math.max(20,t*e.height)))}),(function(e,t){this.state.style.dy=Math.round(1e3*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/1e3}))]},mxUtils.extend(mxShapeAndroidQuickscroll3,mxShape),mxShapeAndroidQuickscroll3.prototype.customProperties=[{name:"dy",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.5}],mxShapeAndroidQuickscroll3.prototype.cst={QUICKSCROLL:"mxgraph.android.quickscroll3"},mxShapeAndroidQuickscroll3.prototype.paintVertexShape=function(e,t,o,n,i){var a=Math.min(i-10,Math.max(10,i*Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))))));mxUtils.getValue(this.style,"fillColor","#ffffff"),e.translate(t,o),e.save(),e.setStrokeColor("#cccccc"),e.begin(),e.moveTo(.5*n,0),e.lineTo(.5*n,i),e.stroke(),e.restore(),e.begin(),e.roundrect(.5*n-3,a-10,6,20,1,1),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAndroidQuickscroll3.prototype.cst.QUICKSCROLL,mxShapeAndroidQuickscroll3),mxShapeAndroidQuickscroll3.prototype.constraints=null,Graph.handleFactory[mxShapeAndroidQuickscroll3.prototype.cst.QUICKSCROLL]=function(e){return[Graph.createHandle(e,["dy"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+.5*e.width,e.y+Math.min(e.height-10,Math.max(10,t*e.height)))}),(function(e,t){this.state.style.dy=Math.round(1e3*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/1e3}))]},mxUtils.extend(mxShapeAndroidScrollbars2,mxShape),mxShapeAndroidScrollbars2.prototype.cst={SCROLLBARS:"mxgraph.android.scrollbars2"},mxShapeAndroidScrollbars2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.rect(n-5,0,5,i-7),e.fillAndStroke(),e.begin(),e.rect(0,i-5,n-7,5),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAndroidScrollbars2.prototype.cst.SCROLLBARS,mxShapeAndroidScrollbars2),mxShapeAndroidScrollbars2.prototype.constraints=null,mxUtils.extend(mxShapeAndroidSpinner2,mxShape),mxShapeAndroidSpinner2.prototype.cst={SPINNER:"mxgraph.android.spinner2"},mxShapeAndroidSpinner2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,i),e.lineTo(n,i),e.stroke(),t=Math.min(n/10,i),e.begin(),e.moveTo(n-t,i),e.lineTo(n,i-t),e.lineTo(n,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeAndroidSpinner2.prototype.cst.SPINNER,mxShapeAndroidSpinner2),mxShapeAndroidSpinner2.prototype.constraints=null,mxUtils.extend(mxArchiMateLocation,mxShape),mxArchiMateLocation.prototype.cst={LOCATION:"mxgraph.archimate.location"},mxArchiMateLocation.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),e.translate(n-20,5),this.foreground(e,n-20,5,15,15)},mxArchiMateLocation.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxArchiMateLocation.prototype.foreground=function(e,t,o,n,i){e.setDashed(!1),e.translate(3,0),n-=6,e.begin(),e.moveTo(.5*n,i),e.arcTo(.1775*n,.3*i,0,0,0,.345*n,.7*i),e.arcTo(.538*n,.364*i,0,0,1,.5*n,0),e.arcTo(.538*n,.364*i,0,0,1,.655*n,.7*i),e.arcTo(.1775*n,.3*i,0,0,0,.5*n,i),e.stroke()},mxCellRenderer.registerShape(mxArchiMateLocation.prototype.cst.LOCATION,mxArchiMateLocation),mxArchiMateLocation.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMateBusiness,mxShape),mxArchiMateBusiness.prototype.cst={BUSINESS:"mxgraph.archimate.business",TYPE:"busType",PROCESS:"process",FUNCTION:"function",INTERACTION:"interaction",EVENT:"event",SERVICE:"service"},mxArchiMateBusiness.prototype.customProperties=[{name:"busType",dispName:"Business Type",type:"enum",enumList:[{val:"process",dispName:"Process"},{val:"function",dispName:"Function"},{val:"interaction",dispName:"Interaction"},{val:"event",dispName:"Event"},{val:"service",dispName:"Service"}]}],mxArchiMateBusiness.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),e.translate(n-20,5),this.foreground(e,n-20,5,15,15)},mxArchiMateBusiness.prototype.background=function(e,t,o,n,i){e.roundrect(0,0,n,i,10,10),e.fillAndStroke()},mxArchiMateBusiness.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxArchiMateBusiness.prototype.cst.TYPE,mxArchiMateBusiness.prototype.cst.PROCESS),e.setDashed(!1),t===mxArchiMateBusiness.prototype.cst.PROCESS?(e.translate(0,2),i-=4,e.begin(),e.moveTo(0,.15*i),e.lineTo(.65*n,.15*i),e.lineTo(.65*n,0),e.lineTo(n,.5*i),e.lineTo(.65*n,i),e.lineTo(.65*n,.85*i),e.lineTo(0,.85*i),e.close(),e.stroke()):t===mxArchiMateBusiness.prototype.cst.FUNCTION?(e.translate(2,0),n-=4,e.begin(),e.moveTo(0,.15*i),e.lineTo(.5*n,0),e.lineTo(n,.15*i),e.lineTo(n,i),e.lineTo(.5*n,.85*i),e.lineTo(0,i),e.close(),e.stroke()):t===mxArchiMateBusiness.prototype.cst.INTERACTION?(e.begin(),e.moveTo(.55*n,0),e.arcTo(.45*n,.5*i,0,0,1,.55*n,i),e.close(),e.moveTo(.45*n,0),e.arcTo(.45*n,.5*i,0,0,0,.45*n,i),e.close(),e.stroke()):t===mxArchiMateBusiness.prototype.cst.EVENT?(e.translate(0,3),i-=6,e.begin(),e.moveTo(n-.5*i,0),e.arcTo(.5*i,.5*i,0,0,1,n-.5*i,i),e.lineTo(0,i),e.arcTo(.5*i,.5*i,0,0,0,0,0),e.close(),e.stroke()):t===mxArchiMateBusiness.prototype.cst.SERVICE&&(e.translate(0,3),i-=6,e.begin(),e.moveTo(n-.5*i,0),e.arcTo(.5*i,.5*i,0,0,1,n-.5*i,i),e.lineTo(0,i),e.arcTo(.5*i,.5*i,0,0,1,0,0),e.close(),e.stroke())},mxCellRenderer.registerShape(mxArchiMateBusiness.prototype.cst.BUSINESS,mxArchiMateBusiness),mxArchiMateBusiness.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-2.9,-2.9)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,2.9,-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMateBusinessObject,mxShape),mxArchiMateBusinessObject.prototype.cst={BUSINESS_OBJECT:"mxgraph.archimate.businessObject"},mxArchiMateBusinessObject.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),this.foreground(e,0,0,n,i)},mxArchiMateBusinessObject.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxArchiMateBusinessObject.prototype.foreground=function(e,t,o,n,i){15<=i&&(e.begin(),e.moveTo(0,15),e.lineTo(n,15),e.stroke())},mxCellRenderer.registerShape(mxArchiMateBusinessObject.prototype.cst.BUSINESS_OBJECT,mxArchiMateBusinessObject),mxArchiMateBusinessObject.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-2.9,-2.9)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,2.9,-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMateRepresentation,mxShape),mxArchiMateRepresentation.prototype.cst={REPRESENTATION:"mxgraph.archimate.representation"},mxArchiMateRepresentation.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i)},mxArchiMateRepresentation.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,.85*i),e.arcTo(.35*n,.35*i,0,0,0,.5*n,.85*i),e.arcTo(.35*n,.35*i,0,0,1,0,.85*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMateRepresentation.prototype.cst.REPRESENTATION,mxArchiMateRepresentation),mxArchiMateRepresentation.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.85),!1,null)),e.push(new mxConnectionConstraint(new mxPoint(.75,.745),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.955),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMateProduct,mxShape),mxArchiMateProduct.prototype.cst={PRODUCT:"mxgraph.archimate.product"},mxArchiMateProduct.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),this.foreground(e,0,0,n,i)},mxArchiMateProduct.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxArchiMateProduct.prototype.foreground=function(e,t,o,n,i){15<=i&&(e.begin(),e.moveTo(0,15),e.lineTo(.6*n,15),e.lineTo(.6*n,0),e.stroke())},mxCellRenderer.registerShape(mxArchiMateProduct.prototype.cst.PRODUCT,mxArchiMateProduct),mxUtils.extend(mxArchiMateApplication,mxShape),mxArchiMateApplication.prototype.cst={APPLICATION:"mxgraph.archimate.application",TYPE:"appType",COMPONENT:"comp",INTERFACE:"interface",INTERFACE2:"interface2",FUNCTION:"function",INTERACTION:"interaction",SERVICE:"service",NODE:"node",NETWORK:"network",COMM_PATH:"commPath",SYS_SW:"sysSw",ARTIFACT:"artifact",ACTOR:"actor",ROLE:"role",COLLABORATION:"collab"},mxArchiMateApplication.prototype.customProperties=[{name:"appType",dispName:"App Type",type:"enum",enumList:[{val:"comp",dispName:"Component"},{val:"interface",dispName:"Interface"},{val:"interface2",dispName:"Interface2"},{val:"function",dispName:"Function"},{val:"interaction",dispName:"Interaction"},{val:"service",dispName:"Service"},{val:"node",dispName:"Node"},{val:"network",dispName:"Network"},{val:"commPath",dispName:"Comm Path"},{val:"artifact",dispName:"Artifact"},{val:"sysSw",dispName:"System Sw"},{val:"path",dispName:"Path"},{val:"actor",dispName:"Actor"},{val:"role",dispName:"Role"},{val:"collab",dispName:"Collaboration"}]}],mxArchiMateApplication.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),e.translate(n-20,5),this.foreground(e,n-20,5,15,15)},mxArchiMateApplication.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxArchiMateApplication.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxArchiMateApplication.prototype.cst.TYPE,mxArchiMateApplication.prototype.cst.COMPONENT),e.setDashed(!1),t===mxArchiMateApplication.prototype.cst.COMPONENT?(e.translate(1,0),n-=2,e.rect(.25*n,0,.75*n,i),e.stroke(),e.rect(0,.25*i,.5*n,.15*i),e.fillAndStroke(),e.rect(0,.6*i,.5*n,.15*i),e.fillAndStroke()):t===mxArchiMateApplication.prototype.cst.COLLABORATION?(e.translate(0,3),i-=6,e.ellipse(0,0,.6*n,i),e.stroke(),e.ellipse(.4*n,0,.6*n,i),e.fillAndStroke()):t===mxArchiMateApplication.prototype.cst.INTERFACE?(e.translate(0,4),i-=8,e.ellipse(.5*n,0,.5*n,i),e.stroke(),e.begin(),e.moveTo(0,.5*i),e.lineTo(.5*n,.5*i),e.stroke()):t===mxArchiMateApplication.prototype.cst.INTERFACE2?(e.translate(0,1),i-=2,e.begin(),e.moveTo(0,.5*i),e.lineTo(.6*n,.5*i),e.moveTo(n,0),e.arcTo(.4*n,.5*i,0,0,0,n,i),e.stroke()):t===mxArchiMateApplication.prototype.cst.FUNCTION?(e.begin(),e.moveTo(.5*n,0),e.lineTo(n,.2*i),e.lineTo(n,i),e.lineTo(.5*n,.8*i),e.lineTo(0,i),e.lineTo(0,.2*i),e.close(),e.stroke()):t===mxArchiMateApplication.prototype.cst.INTERACTION?(e.begin(),e.moveTo(.55*n,0),e.arcTo(.45*n,.5*i,0,0,1,.55*n,i),e.close(),e.moveTo(.45*n,0),e.arcTo(.45*n,.5*i,0,0,0,.45*n,i),e.close(),e.stroke()):t===mxArchiMateApplication.prototype.cst.SERVICE?(e.translate(0,3),i-=6,e.begin(),e.moveTo(n-.5*i,0),e.arcTo(.5*i,.5*i,0,0,1,n-.5*i,i),e.lineTo(0,i),e.arcTo(.5*i,.5*i,0,0,1,0,0),e.close(),e.stroke()):t===mxArchiMateApplication.prototype.cst.NODE?(e.begin(),e.moveTo(0,.25*i),e.lineTo(.25*n,0),e.lineTo(n,0),e.lineTo(n,.75*i),e.lineTo(.75*n,i),e.lineTo(0,i),e.close(),e.moveTo(0,.25*i),e.lineTo(.75*n,.25*i),e.lineTo(.75*n,i),e.moveTo(n,0),e.lineTo(.75*n,.25*i),e.stroke()):t===mxArchiMateApplication.prototype.cst.NETWORK?(e.translate(0,2),i-=4,e.begin(),e.moveTo(.4*n,.2*i),e.lineTo(.85*n,.2*i),e.lineTo(.6*n,.8*i),e.lineTo(.15*n,.8*i),e.close(),e.stroke(),o=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(o),e.ellipse(.25*n,0,.3*n,.4*i),e.fill(),e.ellipse(.7*n,0,.3*n,.4*i),e.fill(),e.ellipse(0,.6*i,.3*n,.4*i),e.fill(),e.ellipse(.45*n,.6*i,.3*n,.4*i),e.fill()):t===mxArchiMateApplication.prototype.cst.COMM_PATH?(e.translate(0,5),i-=10,e.begin(),e.moveTo(.1*n,0),e.lineTo(0,.5*i),e.lineTo(.1*n,i),e.moveTo(.9*n,0),e.lineTo(n,.5*i),e.lineTo(.9*n,i),e.stroke(),e.setDashed(!0),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxArchiMateApplication.prototype.cst.SYS_SW?(e.ellipse(.3*n,0,.7*n,.7*i),e.stroke(),e.ellipse(0,.02*i,.98*n,.98*i),e.fillAndStroke()):t===mxArchiMateApplication.prototype.cst.ARTIFACT?(e.translate(2,0),n-=4,e.begin(),e.moveTo(0,0),e.lineTo(.7*n,0),e.lineTo(n,.22*i),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.moveTo(.7*n,0),e.lineTo(.7*n,.22*i),e.lineTo(n,.22*i),e.stroke()):t===mxArchiMateApplication.prototype.cst.ACTOR&&(e.translate(3,0),n-=6,e.ellipse(.2*n,0,.6*n,.3*i),e.stroke(),e.begin(),e.moveTo(.5*n,.3*i),e.lineTo(.5*n,.75*i),e.moveTo(0,.45*i),e.lineTo(n,.45*i),e.moveTo(0,i),e.lineTo(.5*n,.75*i),e.lineTo(n,i),e.stroke()),t===mxArchiMateApplication.prototype.cst.ROLE&&(e.translate(0,4),i-=8,e.begin(),e.moveTo(.8*n,0),e.lineTo(.2*n,0),e.arcTo(.2*n,.5*i,0,0,0,.2*n,i),e.lineTo(.8*n,i),e.stroke(),e.ellipse(.6*n,0,.4*n,i),e.stroke())},mxCellRenderer.registerShape(mxArchiMateApplication.prototype.cst.APPLICATION,mxArchiMateApplication),mxArchiMateApplication.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMateTech,mxShape),mxArchiMateTech.prototype.cst={TECH:"mxgraph.archimate.tech",TYPE:"techType",DEVICE:"device",PLATEAU:"plateau"},mxArchiMateTech.prototype.customProperties=[{name:"techType",dispName:"Tech Type",type:"enum",enumList:[{val:"device",dispName:"Device"},{val:"plateau",dispName:"Plateau"}]}],mxArchiMateTech.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),e.translate(n-30,15),this.foreground(e,n-30,15,15,15)},mxArchiMateTech.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,10),e.lineTo(10,0),e.lineTo(n,0),e.lineTo(n,i-10),e.lineTo(n-10,i),e.lineTo(0,i),e.close(),e.moveTo(0,10),e.lineTo(n-10,10),e.lineTo(n-10,i),e.moveTo(n,0),e.lineTo(n-10,10),e.fillAndStroke()},mxArchiMateTech.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxArchiMateTech.prototype.cst.TYPE,mxArchiMateTech.prototype.cst.DEVICE),e.setDashed(!1),t===mxArchiMateTech.prototype.cst.DEVICE?(e.roundrect(0,0,n,.88*i,.05*n,.05*i),e.stroke(),e.begin(),e.moveTo(.1*n,.88*i),e.lineTo(0,i),e.lineTo(n,i),e.lineTo(.9*n,.88*i),e.stroke()):t===mxArchiMateTech.prototype.cst.PLATEAU&&(t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.rect(.4*n,0,.6*n,.2*i),e.fill(),e.rect(.2*n,.4*i,.6*n,.2*i),e.fill(),e.rect(0,.8*i,.6*n,.2*i),e.fill())},mxCellRenderer.registerShape(mxArchiMateTech.prototype.cst.TECH,mxArchiMateTech),mxArchiMateTech.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,10,0)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-10)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-10,0)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMateMotivational,mxShape),mxArchiMateMotivational.prototype.cst={MOTIV:"mxgraph.archimate.motiv",TYPE:"motivType",STAKE:"stake",DRIVER:"driver",ASSESSMENT:"assess",GOAL:"goal",REQUIREMENT:"req",CONSTRAINT:"const",PRINCIPLE:"princ"},mxArchiMateMotivational.prototype.customProperties=[{name:"motivType",dispName:"Motivational Type",type:"enum",enumList:[{val:"stake",dispName:"Stake"},{val:"driver",dispName:"Driver"},{val:"assess",dispName:"Assessment"},{val:"goal",dispName:"Goal"},{val:"req",dispName:"Requirement"},{val:"const",dispName:"Constraint"},{val:"princ",dispName:"Principle"}]}],mxArchiMateMotivational.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),e.translate(n-20,5),this.foreground(e,n-20,5,15,15)},mxArchiMateMotivational.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(10,0),e.lineTo(n-10,0),e.lineTo(n,10),e.lineTo(n,i-10),e.lineTo(n-10,i),e.lineTo(10,i),e.lineTo(0,i-10),e.lineTo(0,10),e.close(),e.fillAndStroke()},mxArchiMateMotivational.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxArchiMateMotivational.prototype.cst.TYPE,mxArchiMateMotivational.prototype.cst.STAKE),e.setDashed(!1),t===mxArchiMateMotivational.prototype.cst.STAKE?(e.translate(0,4),i-=8,e.begin(),e.moveTo(.8*n,0),e.lineTo(.2*n,0),e.arcTo(.2*n,.5*i,0,0,0,.2*n,i),e.lineTo(.8*n,i),e.stroke(),e.ellipse(.6*n,0,.4*n,i),e.stroke()):t===mxArchiMateMotivational.prototype.cst.DRIVER?(e.ellipse(.1*n,.1*i,.8*n,.8*i),e.stroke(),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.moveTo(.5*n,0),e.lineTo(.5*n,i),e.moveTo(.145*n,.145*i),e.lineTo(.855*n,.855*i),e.moveTo(.145*n,.855*i),e.lineTo(.855*n,.145*i),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.ellipse(.35*n,.35*i,.3*n,.3*i),e.fillAndStroke()):t===mxArchiMateMotivational.prototype.cst.ASSESSMENT?(e.ellipse(.2*n,0,.8*n,.8*i),e.stroke(),e.begin(),e.moveTo(0,i),e.lineTo(.32*n,.68*i),e.stroke()):t===mxArchiMateMotivational.prototype.cst.GOAL?(e.ellipse(0,0,n,i),e.stroke(),e.ellipse(.15*n,.15*i,.7*n,.7*i),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.ellipse(.3*n,.3*i,.4*n,.4*i),e.fillAndStroke()):t===mxArchiMateMotivational.prototype.cst.REQUIREMENT?(e.translate(0,4),i-=8,e.begin(),e.moveTo(.25*n,0),e.lineTo(n,0),e.lineTo(.75*n,i),e.lineTo(0,i),e.close(),e.stroke()):t===mxArchiMateMotivational.prototype.cst.CONSTRAINT?(e.translate(0,4),i-=8,e.begin(),e.moveTo(.25*n,0),e.lineTo(n,0),e.lineTo(.75*n,i),e.lineTo(0,i),e.close(),e.moveTo(.45*n,0),e.lineTo(.2*n,i),e.stroke()):t===mxArchiMateMotivational.prototype.cst.PRINCIPLE&&(e.begin(),e.moveTo(.05*n,.05*i),e.arcTo(2.3*n,2.3*i,0,0,1,.95*n,.05*i),e.arcTo(2.3*n,2.3*i,0,0,1,.95*n,.95*i),e.arcTo(2.3*n,2.3*i,0,0,1,.05*n,.95*i),e.arcTo(2.3*n,2.3*i,0,0,1,.05*n,.05*i),e.close(),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.begin(),e.moveTo(.45*n,.7*i),e.lineTo(.42*n,.15*i),e.lineTo(.58*n,.15*i),e.lineTo(.55*n,.7*i),e.close(),e.fill(),e.rect(.45*n,.75*i,.1*n,.1*i),e.fill())},mxCellRenderer.registerShape(mxArchiMateMotivational.prototype.cst.MOTIV,mxArchiMateMotivational),mxArchiMateMotivational.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,5,5)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-5,5)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-5,-5)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,5,-5)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMateGap,mxShape),mxArchiMateGap.prototype.cst={GAP:"mxgraph.archimate.gap"},mxArchiMateGap.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),e.translate(n-20,5),this.foreground(e,n-20,5,15,15)},mxArchiMateGap.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,.85*i),e.arcTo(.35*n,.35*i,0,0,0,.5*n,.85*i),e.arcTo(.35*n,.35*i,0,0,1,0,.85*i),e.close(),e.fillAndStroke()},mxArchiMateGap.prototype.foreground=function(e,t,o,n,i){e.setDashed(!1),e.translate(0,2),i-=4,e.ellipse(.15*n,0,.7*n,i),e.stroke(),e.begin(),e.moveTo(0,.35*i),e.lineTo(n,.35*i),e.moveTo(0,.65*i),e.lineTo(n,.65*i),e.stroke()},mxCellRenderer.registerShape(mxArchiMateGap.prototype.cst.GAP,mxArchiMateGap),mxArchiMateGap.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.85),!1,null)),e.push(new mxConnectionConstraint(new mxPoint(.75,.745),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.955),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMate3Application,mxShape),mxArchiMate3Application.prototype.cst={APPLICATION:"mxgraph.archimate3.application",TYPE:"appType",COMPONENT:"comp",COLLABORATION:"collab",INTERFACE:"interface",INTERFACE2:"interface2",LOCATION:"location",FUNCTION:"func",INTERACTION:"interaction",SERVICE:"serv",EVENT:"event",EVENT2:"event2",NODE:"node",NETWORK:"netw",COMM_PATH:"commPath",ACTOR:"actor",ASSESSMENT:"assess",GOAL:"goal",OUTCOME:"outcome",ROLE:"role",PROCESS:"proc",DRIVER:"driver",PRINCIPLE:"principle",REQUIREMENT:"requirement",CONSTRAINT:"constraint",RESOURCE:"resource",CAPABILITY:"capability",COURSE:"course",MATERIAL:"material",DISTRIBUTION:"distribution",SYS_SW:"sysSw",ARTIFACT:"artifact",PATH:"path",ARCHI_TYPE:"archiType",TYPE_SQUARE:"square",TYPE_ROUNDED:"rounded",TYPE_OCT:"oct"},mxArchiMate3Application.prototype.customProperties=[{name:"archiType",dispName:"Type",type:"enum",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Rounded"},{val:"oct",dispName:"Octagonal"}]},{name:"appType",dispName:"App Type",type:"enum",enumList:[{val:"comp",dispName:"Component"},{val:"collab",dispName:"Collaboration"},{val:"interface",dispName:"Interface"},{val:"interface2",dispName:"Interface2"},{val:"func",dispName:"Function"},{val:"interaction",dispName:"Interaction"},{val:"location",dispName:"Location"},{val:"serv",dispName:"Service"},{val:"event",dispName:"Event"},{val:"event2",dispName:"Event2"},{val:"node",dispName:"Node"},{val:"netw",dispName:"Network"},{val:"commPath",dispName:"Comm Path"},{val:"actor",dispName:"Actor"},{val:"assess",dispName:"Assessment"},{val:"goal",dispName:"Goal"},{val:"outcome",dispName:"Outcome"},{val:"role",dispName:"Role"},{val:"proc",dispName:"Process"},{val:"driver",dispName:"Driver"},{val:"principle",dispName:"Principle"},{val:"requirement",dispName:"Requirement"},{val:"constraint",dispName:"Constraint"},{val:"resource",dispName:"Resource"},{val:"capability",dispName:"Capability"},{val:"course",dispName:"Course"},{val:"material",dispName:"Material"},{val:"distribution",dispName:"Distribution"},{val:"sysSw",dispName:"System Sw"},{val:"artifact",dispName:"Artifact"},{val:"path",dispName:"Path"}]}],mxArchiMate3Application.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),e.translate(n-20,5),this.foreground(e,n-20,5,15,15)},mxArchiMate3Application.prototype.background=function(e,t,o,n,i){"rounded"===(t=mxUtils.getValue(this.style,mxArchiMate3Application.prototype.cst.ARCHI_TYPE,"square"))?e.roundrect(0,0,n,i,10,10):"oct"===t&&20<=n&&20<=i?(e.begin(),e.moveTo(0,10),e.lineTo(10,0),e.lineTo(n-10,0),e.lineTo(n,10),e.lineTo(n,i-10),e.lineTo(n-10,i),e.lineTo(10,i),e.lineTo(0,i-10),e.close(),e.fillAndStroke()):e.rect(0,0,n,i),e.fillAndStroke()},mxArchiMate3Application.prototype.foreground=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxArchiMate3Application.prototype.cst.TYPE,"");e.setDashed(!1),a===mxArchiMate3Application.prototype.cst.COMPONENT?(e.translate(1,0),mxArchiMate3Component.prototype.background(e,t,o,n-2,i)):a===mxArchiMate3Application.prototype.cst.COLLABORATION?(e.translate(0,3),mxArchiMate3Collaboration.prototype.background(e,t,o,n,i-6)):a===mxArchiMate3Application.prototype.cst.INTERFACE?(e.translate(0,4),mxArchiMate3Interface.prototype.background(e,t,o,n,i-8)):a===mxArchiMate3Application.prototype.cst.INTERFACE2?(e.translate(0,1),i-=2,e.begin(),e.moveTo(0,.5*i),e.lineTo(.6*n,.5*i),e.moveTo(n,0),e.arcTo(.4*n,.5*i,0,0,0,n,i),e.stroke()):a===mxArchiMate3Application.prototype.cst.FUNCTION?mxArchiMate3Function.prototype.background(e,t,o,n,i):a===mxArchiMate3Application.prototype.cst.INTERACTION?mxArchiMate3Interaction.prototype.background(e,t,o,n,i):a===mxArchiMate3Application.prototype.cst.LOCATION?(e.translate(3,0),n-=6,e.begin(),e.moveTo(.5*n,i),e.arcTo(.1775*n,.3*i,0,0,0,.345*n,.7*i),e.arcTo(.538*n,.364*i,0,0,1,.5*n,0),e.arcTo(.538*n,.364*i,0,0,1,.655*n,.7*i),e.arcTo(.1775*n,.3*i,0,0,0,.5*n,i),e.stroke()):a===mxArchiMate3Application.prototype.cst.SERVICE?(e.translate(0,3),mxArchiMate3Service.prototype.background(e,t,o,n,i-6)):a===mxArchiMate3Application.prototype.cst.EVENT?(e.translate(0,3),mxArchiMate3Event.prototype.background(e,t,o,n,i-6)):a===mxArchiMate3Application.prototype.cst.EVENT2?(e.translate(0,3),mxArchiMate3Event2.prototype.background(e,t,o,n,i-6)):a===mxArchiMate3Application.prototype.cst.NODE?mxArchiMate3Node.prototype.background(e,t,o,n,i):a===mxArchiMate3Application.prototype.cst.NETWORK?(e.translate(0,2),i-=4,e.begin(),e.moveTo(.4*n,.2*i),e.lineTo(.85*n,.2*i),e.lineTo(.6*n,.8*i),e.lineTo(.15*n,.8*i),e.close(),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.ellipse(.25*n,0,.3*n,.4*i),e.fill(),e.ellipse(.7*n,0,.3*n,.4*i),e.fill(),e.ellipse(0,.6*i,.3*n,.4*i),e.fill(),e.ellipse(.45*n,.6*i,.3*n,.4*i),e.fill()):a===mxArchiMate3Application.prototype.cst.COMM_PATH?(e.translate(0,5),i-=10,e.begin(),e.moveTo(.1*n,0),e.lineTo(0,.5*i),e.lineTo(.1*n,i),e.moveTo(.9*n,0),e.lineTo(n,.5*i),e.lineTo(.9*n,i),e.stroke(),e.setDashed(!0),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):a===mxArchiMate3Application.prototype.cst.ARTIFACT?(e.translate(2,0),n-=4,e.begin(),e.moveTo(0,0),e.lineTo(.7*n,0),e.lineTo(n,.22*i),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.moveTo(.7*n,0),e.lineTo(.7*n,.22*i),e.lineTo(n,.22*i),e.stroke()):a===mxArchiMate3Application.prototype.cst.ACTOR?(e.translate(3,0),mxArchiMate3Actor.prototype.background(e,t,o,n-6,i)):a===mxArchiMate3Application.prototype.cst.ROLE?(e.translate(0,4),mxArchiMate3Role.prototype.background(e,t,o,n,i-8)):a===mxArchiMate3Application.prototype.cst.PROCESS?(e.translate(0,3),mxArchiMate3Process.prototype.background(e,t,o,n,i-6)):a===mxArchiMate3Application.prototype.cst.DRIVER?(e.ellipse(.1*n,.1*i,.8*n,.8*i),e.stroke(),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.moveTo(.5*n,0),e.lineTo(.5*n,i),e.moveTo(.145*n,.145*i),e.lineTo(.855*n,.855*i),e.moveTo(.145*n,.855*i),e.lineTo(.855*n,.145*i),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.ellipse(.35*n,.35*i,.3*n,.3*i),e.fillAndStroke()):a===mxArchiMate3Application.prototype.cst.ASSESSMENT?(e.ellipse(.2*n,0,.8*n,.8*i),e.stroke(),e.begin(),e.moveTo(0,i),e.lineTo(.32*n,.68*i),e.stroke()):a===mxArchiMate3Application.prototype.cst.GOAL?(e.ellipse(0,0,n,i),e.stroke(),e.ellipse(.15*n,.15*i,.7*n,.7*i),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.ellipse(.3*n,.3*i,.4*n,.4*i),e.fillAndStroke()):a===mxArchiMate3Application.prototype.cst.OUTCOME?(e.ellipse(0,.2*n,.8*n,.8*i),e.stroke(),e.ellipse(.15*n,.35*n,.5*n,.5*i),e.stroke(),e.ellipse(.3*n,.5*n,.2*n,.2*i),e.stroke(),e.begin(),e.moveTo(.4*n,.6*i),e.lineTo(.9*n,.1*i),e.moveTo(.42*n,.4*i),e.lineTo(.4*n,.6*i),e.lineTo(.6*n,.58*i),e.moveTo(.8*n,0),e.lineTo(.75*n,.25*i),e.lineTo(n,.2*i),e.stroke()):a===mxArchiMate3Application.prototype.cst.PRINCIPLE?(e.begin(),e.moveTo(.05*n,.05*i),e.arcTo(2.3*n,2.3*i,0,0,1,.95*n,.05*i),e.arcTo(2.3*n,2.3*i,0,0,1,.95*n,.95*i),e.arcTo(2.3*n,2.3*i,0,0,1,.05*n,.95*i),e.arcTo(2.3*n,2.3*i,0,0,1,.05*n,.05*i),e.close(),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.begin(),e.moveTo(.45*n,.7*i),e.lineTo(.42*n,.15*i),e.lineTo(.58*n,.15*i),e.lineTo(.55*n,.7*i),e.close(),e.fill(),e.rect(.45*n,.75*i,.1*n,.1*i),e.fill()):a===mxArchiMate3Application.prototype.cst.REQUIREMENT?(e.translate(0,4),mxArchiMate3Requirement.prototype.background(e,t,o,n,i-8)):a===mxArchiMate3Application.prototype.cst.CONSTRAINT?(e.translate(0,4),mxArchiMate3Constraint.prototype.background(e,t,o,n,i-8)):a===mxArchiMate3Application.prototype.cst.MATERIAL?(e.translate(0,1),i-=2,e.begin(),e.moveTo(0,.5*i),e.lineTo(.25*n,0),e.lineTo(.75*n,0),e.lineTo(n,.5*i),e.lineTo(.75*n,i),e.lineTo(.25*n,i),e.close(),e.moveTo(.15*n,.5*i),e.lineTo(.31*n,.2*i),e.moveTo(.69*n,.2*i),e.lineTo(.85*n,.5*i),e.moveTo(.68*n,.8*i),e.lineTo(.32*n,.8*i),e.stroke()):a===mxArchiMate3Application.prototype.cst.DISTRIBUTION?(e.translate(0,4),mxArchiMate3Distribution.prototype.background(e,t,o,n,i-8)):a===mxArchiMate3Application.prototype.cst.RESOURCE?(e.translate(0,1),mxArchiMate3Resource.prototype.background(e,t,o,n,i-2)):a===mxArchiMate3Application.prototype.cst.CAPABILITY?mxArchiMate3Capability.prototype.background(e,t,o,n,i):a===mxArchiMate3Application.prototype.cst.COURSE?mxArchiMate3Course.prototype.background(e,t,o,n,i):a===mxArchiMate3Application.prototype.cst.SYS_SW?mxArchiMate3SysSw.prototype.background(e,t,o,n,i):a===mxArchiMate3Application.prototype.cst.ARTIFACT?(e.translate(2,0),mxArchiMate3Artifact.prototype.background(e,t,o,n-4,i)):a===mxArchiMate3Application.prototype.cst.PATH&&(e.translate(0,5),mxArchiMate3Path.prototype.background(e,t,o,n,i-10))},mxCellRenderer.registerShape(mxArchiMate3Application.prototype.cst.APPLICATION,mxArchiMate3Application),mxArchiMate3Application.prototype.getConstraints=function(e,t,o){e=[];var n=mxUtils.getValue(this.style,mxArchiMate3Application.prototype.cst.ARCHI_TYPE,"square");return e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),"rounded"===n?(e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-2.9,-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,2.9,-2.9))):"oct"===n&&20<=t&&20<=o?(e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,5,5)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-5,5)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-5,-5)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,5,-5))):(e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1))),e},mxUtils.extend(mxArchiMate3Component,mxShape),mxArchiMate3Component.prototype.cst={COMPONENT:"mxgraph.archimate3.component"},mxArchiMate3Component.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Component.prototype.background=function(e,t,o,n,i){e.rect(.25*n,0,.75*n,i),e.fillAndStroke(),e.rect(0,.25*i,.5*n,.15*i),e.fillAndStroke(),e.rect(0,.6*i,.5*n,.15*i),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Component.prototype.cst.COMPONENT,mxArchiMate3Component),mxArchiMate3Component.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.625,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.625,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.325),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.675),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e},mxUtils.extend(mxArchiMate3Collaboration,mxShape),mxArchiMate3Collaboration.prototype.cst={COLLABORATION:"mxgraph.archimate3.collaboration"},mxArchiMate3Collaboration.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Collaboration.prototype.background=function(e,t,o,n,i){e.ellipse(0,0,.6*n,i),e.fillAndStroke(),e.ellipse(.4*n,0,.6*n,i),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Collaboration.prototype.cst.COLLABORATION,mxArchiMate3Collaboration),mxArchiMate3Collaboration.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.11,.11),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.125),!1)),e.push(new mxConnectionConstraint(new mxPoint(.89,.11),!1)),e.push(new mxConnectionConstraint(new mxPoint(.11,.89),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.875),!1)),e.push(new mxConnectionConstraint(new mxPoint(.89,.89),!1)),e.push(new mxConnectionConstraint(new mxPoint(.3,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.7,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.3,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.7,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e},mxUtils.extend(mxArchiMate3Interface,mxShape),mxArchiMate3Interface.prototype.cst={INTERFACE:"mxgraph.archimate3.interface"},mxArchiMate3Interface.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Interface.prototype.background=function(e,t,o,n,i){e.ellipse(.5*n,0,.5*n,i),e.fillAndStroke(),e.begin(),e.moveTo(0,.5*i),e.lineTo(.5*n,.5*i),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3Interface.prototype.cst.INTERFACE,mxArchiMate3Interface),mxArchiMate3Interface.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e},mxUtils.extend(mxArchiMate3Process,mxShape),mxArchiMate3Process.prototype.cst={PROCESS:"mxgraph.archimate3.process"},mxArchiMate3Process.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Process.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,.3*i),e.lineTo(.6*n,.3*i),e.lineTo(.6*n,0),e.lineTo(n,.5*i),e.lineTo(.6*n,i),e.lineTo(.6*n,.7*i),e.lineTo(0,.7*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Process.prototype.cst.PROCESS,mxArchiMate3Process),mxArchiMate3Process.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.3),!1)),e.push(new mxConnectionConstraint(new mxPoint(.3,.3),!1)),e.push(new mxConnectionConstraint(new mxPoint(.6,.3),!1)),e.push(new mxConnectionConstraint(new mxPoint(.6,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.6,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.6,.7),!1)),e.push(new mxConnectionConstraint(new mxPoint(.3,.7),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.7),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxArchiMate3Function,mxShape),mxArchiMate3Function.prototype.cst={FUNCTION:"mxgraph.archimate3.function"},mxArchiMate3Function.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Function.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(.5*n,0),e.lineTo(n,.2*i),e.lineTo(n,i),e.lineTo(.5*n,.8*i),e.lineTo(0,i),e.lineTo(0,.2*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Function.prototype.cst.FUNCTION,mxArchiMate3Function),mxArchiMate3Function.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.2),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.6),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.8),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.6),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.2),!1)),e},mxUtils.extend(mxArchiMate3Interaction,mxShape),mxArchiMate3Interaction.prototype.cst={INTERACTION:"mxgraph.archimate3.interaction"},mxArchiMate3Interaction.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Interaction.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(.55*n,0),e.arcTo(.45*n,.5*i,0,0,1,.55*n,i),e.close(),e.moveTo(.45*n,0),e.arcTo(.45*n,.5*i,0,0,0,.45*n,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Interaction.prototype.cst.INTERACTION,mxArchiMate3Interaction),mxArchiMate3Interaction.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.86,.14),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.86,.86),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.14,.86),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.14,.14),!1)),e},mxUtils.extend(mxArchiMate3Service,mxShape),mxArchiMate3Service.prototype.cst={SERVICE:"mxgraph.archimate3.service"},mxArchiMate3Service.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Service.prototype.background=function(e,t,o,n,i){t=Math.max(n-.5*i,.5*n),n=Math.min(.5*i,.5*n),e.begin(),e.moveTo(t,0),e.arcTo(.5*i,.5*i,0,0,1,t,i),e.lineTo(n,i),e.arcTo(.5*i,.5*i,0,0,1,n,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Service.prototype.cst.SERVICE,mxArchiMate3Service),mxArchiMate3Service.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(t-.5*o,.5*t);return t=Math.min(.5*o,.5*t),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+.355*o,.145*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+.5*o,.5*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+.355*o,.855*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.355*o,.145*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*o,.5*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.355*o,.855*o)),e},mxUtils.extend(mxArchiMate3Requirement,mxShape),mxArchiMate3Requirement.prototype.cst={REQUIREMENT:"mxgraph.archimate3.requirement"},mxArchiMate3Requirement.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Requirement.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(.25*n,0),e.lineTo(n,0),e.lineTo(.75*n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Requirement.prototype.cst.REQUIREMENT,mxArchiMate3Requirement),mxArchiMate3Requirement.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.9375,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(.875,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.8125,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.0625,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.125,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.1875,.25),!1)),e},mxUtils.extend(mxArchiMate3Constraint,mxShape),mxArchiMate3Constraint.prototype.cst={CONSTRAINT:"mxgraph.archimate3.constraint"},mxArchiMate3Constraint.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Constraint.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(.25*n,0),e.lineTo(n,0),e.lineTo(.75*n,i),e.lineTo(0,i),e.close(),e.moveTo(.45*n,0),e.lineTo(.2*n,i),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Constraint.prototype.cst.CONSTRAINT,mxArchiMate3Constraint),mxArchiMate3Constraint.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.9375,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(.875,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.8125,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.0625,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.125,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.1875,.25),!1)),e},mxUtils.extend(mxArchiMate3Event,mxShape),mxArchiMate3Event.prototype.cst={EVENT:"mxgraph.archimate3.event"},mxArchiMate3Event.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Event.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(n-.5*i,0),e.arcTo(.5*i,.5*i,0,0,1,n-.5*i,i),e.lineTo(0,i),e.lineTo(.5*i,.5*i),e.lineTo(0,0),e.close(),e.fillAndStroke()};function mxShapeSysMLRegion(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLSimpleState(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLStateMachine(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLX(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLSubmachineState(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeSysMLUseCaseExtensionPoints(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapeUMLInputPin(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeUMLBehaviorAction(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeUMLAction(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapeUMLActionParams(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1,this.dx=.5}function mxShapePidDiscInst(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidSharedCont(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidCompFunc(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidProgLogCont(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidIndicator(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidLogic(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidFan(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidColumn(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidConveyor(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidValve(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidIntBlockBleedValve(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxShapePidAutoRecircValve(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackContainer(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackPlate(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=1}function mxRackHorCableDuct(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackHorRoutingBank(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackNeatPatch(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackShelf(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackRackNumbering(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackRackCabinet(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackHorCableDuct1U(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackHorCableDuct2U(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackHorRoutingBank1U(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackHorRoutingBank2U(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackNeatPatch2U(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackShelf1U(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackShelf2U(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackShelf4U(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackChannelBase(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}function mxRackCabinetLeg(e,t,o,n){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=o,this.strokewidth=null!=n?n:1}mxCellRenderer.registerShape(mxArchiMate3Event.prototype.cst.EVENT,mxArchiMate3Event),mxArchiMate3Event.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*o,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*o,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*o,.5*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-.5*o),0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-.5*o),o)),e},mxUtils.extend(mxArchiMate3Event2,mxShape),mxArchiMate3Event2.prototype.cst={EVENT2:"mxgraph.archimate3.event2"},mxArchiMate3Event2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Event2.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(n-.5*i,0),e.arcTo(.5*i,.5*i,0,0,1,n-.5*i,i),e.lineTo(0,i),e.arcTo(.5*i,.5*i,0,0,0,0,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Event2.prototype.cst.EVENT2,mxArchiMate3Event2),mxUtils.extend(mxArchiMate3Actor,mxShape),mxArchiMate3Actor.prototype.cst={ACTOR:"mxgraph.archimate3.actor"},mxArchiMate3Actor.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Actor.prototype.background=function(e,t,o,n,i){e.ellipse(.2*n,0,.6*n,.3*i),e.fillAndStroke(),e.begin(),e.moveTo(.5*n,.3*i),e.lineTo(.5*n,.75*i),e.moveTo(0,.45*i),e.lineTo(n,.45*i),e.moveTo(0,i),e.lineTo(.5*n,.75*i),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3Actor.prototype.cst.ACTOR,mxArchiMate3Actor),mxArchiMate3Actor.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.2,.15),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.8,.15),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.45),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.45),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e},mxUtils.extend(mxArchiMate3Role,mxShape),mxArchiMate3Role.prototype.cst={ROLE:"mxgraph.archimate3.role"},mxArchiMate3Role.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Role.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(.8*n,0),e.lineTo(.2*n,0),e.arcTo(.2*n,.5*i,0,0,0,.2*n,i),e.lineTo(.8*n,i),e.fillAndStroke(),e.ellipse(.6*n,0,.4*n,i),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Role.prototype.cst.ROLE,mxArchiMate3Role),mxArchiMate3Role.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.2,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.8,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.8,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.2,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxArchiMate3BusinessObject,mxShape),mxArchiMate3BusinessObject.prototype.cst={BUSINESS_OBJECT:"mxgraph.archimate3.businessObject"},mxArchiMate3BusinessObject.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),this.foreground(e,0,0,n,i)},mxArchiMate3BusinessObject.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxArchiMate3BusinessObject.prototype.foreground=function(e,t,o,n,i){15<=i&&(e.begin(),e.moveTo(0,15),e.lineTo(n,15),e.stroke())},mxCellRenderer.registerShape(mxArchiMate3BusinessObject.prototype.cst.BUSINESS_OBJECT,mxArchiMate3BusinessObject),mxArchiMate3BusinessObject.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMate3Contract,mxShape),mxArchiMate3Contract.prototype.cst={CONTRACT:"mxgraph.archimate3.contract"},mxArchiMate3Contract.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),this.foreground(e,0,0,n,i)},mxArchiMate3Contract.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxArchiMate3Contract.prototype.foreground=function(e,t,o,n,i){15<=i&&(e.begin(),e.moveTo(0,15),e.lineTo(n,15),e.stroke()),30<=i&&(e.begin(),e.moveTo(0,i-15),e.lineTo(n,i-15),e.stroke())},mxCellRenderer.registerShape(mxArchiMate3Contract.prototype.cst.CONTRACT,mxArchiMate3Contract),mxArchiMate3Contract.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMate3Product,mxShape),mxArchiMate3Product.prototype.cst={PRODUCT:"mxgraph.archimate3.product"},mxArchiMate3Product.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),this.foreground(e,0,0,n,i)},mxArchiMate3Product.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxArchiMate3Product.prototype.foreground=function(e,t,o,n,i){15<=i&&(e.begin(),e.moveTo(0,15),e.lineTo(.6*n,15),e.lineTo(.6*n,0),e.stroke())},mxCellRenderer.registerShape(mxArchiMate3Product.prototype.cst.PRODUCT,mxArchiMate3Product),mxArchiMate3Product.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMate3Representation,mxShape),mxArchiMate3Representation.prototype.cst={REPRESENTATION:"mxgraph.archimate3.representation"},mxArchiMate3Representation.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i)},mxArchiMate3Representation.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,.85*i),e.arcTo(.35*n,.35*i,0,0,0,.5*n,.85*i),e.arcTo(.35*n,.35*i,0,0,1,0,.85*i),e.close(),e.fillAndStroke(),20<=i&&e.begin(),e.moveTo(0,15),e.lineTo(n,15),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3Representation.prototype.cst.REPRESENTATION,mxArchiMate3Representation),mxArchiMate3Representation.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,.745),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.955),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMate3Deliverable,mxShape),mxArchiMate3Deliverable.prototype.cst={DELIVERABLE:"mxgraph.archimate3.deliverable"},mxArchiMate3Deliverable.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i)},mxArchiMate3Deliverable.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,.85*i),e.arcTo(.35*n,.35*i,0,0,0,.5*n,.85*i),e.arcTo(.35*n,.35*i,0,0,1,0,.85*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Deliverable.prototype.cst.DELIVERABLE,mxArchiMate3Deliverable),mxArchiMate3Deliverable.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,.745),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.955),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMate3Location,mxShape),mxArchiMate3Location.prototype.cst={LOCATION:"mxgraph.archimate3.location"},mxArchiMate3Location.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),e.translate(n-20,5),this.foreground(e,n-20,5,15,15)},mxArchiMate3Location.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxArchiMate3Location.prototype.foreground=function(e,t,o,n,i){e.setDashed(!1),e.translate(3,0),n-=6,e.begin(),e.moveTo(.5*n,i),e.arcTo(.1775*n,.3*i,0,0,0,.345*n,.7*i),e.arcTo(.538*n,.364*i,0,0,1,.5*n,0),e.arcTo(.538*n,.364*i,0,0,1,.655*n,.7*i),e.arcTo(.1775*n,.3*i,0,0,0,.5*n,i),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3Location.prototype.cst.LOCATION,mxArchiMate3Location),mxUtils.extend(mxArchiMate3Gap,mxShape),mxArchiMate3Gap.prototype.cst={GAP:"mxgraph.archimate3.gap"},mxArchiMate3Gap.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),e.translate(n-20,5),this.foreground(e,n-20,5,15,15)},mxArchiMate3Gap.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,.85*i),e.arcTo(.35*n,.35*i,0,0,0,.5*n,.85*i),e.arcTo(.35*n,.35*i,0,0,1,0,.85*i),e.close(),e.fillAndStroke()},mxArchiMate3Gap.prototype.foreground=function(e,t,o,n,i){e.setDashed(!1),e.translate(0,2),i-=4,e.ellipse(.15*n,0,.7*n,i),e.stroke(),e.begin(),e.moveTo(0,.35*i),e.lineTo(n,.35*i),e.moveTo(0,.65*i),e.lineTo(n,.65*i),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3Gap.prototype.cst.GAP,mxArchiMate3Gap),mxArchiMate3Gap.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,.745),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.955),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.85),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMate3Tech,mxShape),mxArchiMate3Tech.prototype.cst={TECH:"mxgraph.archimate3.tech",TYPE:"techType",DEVICE:"device",PLATEAU:"plateau",FACILITY:"facility",EQUIPMENT:"equipment",SYS_SW:"sysSw"},mxArchiMate3Tech.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),e.translate(n-30,15),this.foreground(e,n-30,15,15,15)},mxArchiMate3Tech.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,10),e.lineTo(10,0),e.lineTo(n,0),e.lineTo(n,i-10),e.lineTo(n-10,i),e.lineTo(0,i),e.close(),e.moveTo(0,10),e.lineTo(n-10,10),e.lineTo(n-10,i),e.moveTo(n,0),e.lineTo(n-10,10),e.fillAndStroke()},mxArchiMate3Tech.prototype.foreground=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxArchiMate3Tech.prototype.cst.TYPE,mxArchiMate3Tech.prototype.cst.DEVICE);e.setDashed(!1),a===mxArchiMate3Tech.prototype.cst.PLATEAU?(t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.rect(.4*n,0,.6*n,.2*i),e.fill(),e.rect(.2*n,.4*i,.6*n,.2*i),e.fill(),e.rect(0,.8*i,.6*n,.2*i),e.fill()):a===mxArchiMate3Tech.prototype.cst.FACILITY?(e.begin(),e.moveTo(0,i),e.lineTo(0,0),e.lineTo(.13*n,0),e.lineTo(.13*n,.7*i),e.lineTo(.42*n,.55*i),e.lineTo(.42*n,.7*i),e.lineTo(.71*n,.55*i),e.lineTo(.71*n,.7*i),e.lineTo(n,.55*i),e.lineTo(n,i),e.close(),e.stroke()):a===mxArchiMate3Tech.prototype.cst.EQUIPMENT?(e.begin(),e.moveTo(.72*n,.38*i),e.curveTo(.78*n,.38*n,.85*n,.34*i,.85*n,.26*i),e.curveTo(.85*n,.18*n,.78*n,.14*i,.73*n,.14*i),e.curveTo(.64*n,.14*n,.59*n,.2*i,.59*n,.26*i),e.curveTo(.59*n,.33*i,.65*n,.38*n,.72*n,.38*i),e.close(),e.moveTo(.68*n,.52*i),e.lineTo(.67*n,.45*i),e.lineTo(.61*n,.43*i),e.lineTo(.56*n,.48*i),e.lineTo(.5*n,.42*i),e.lineTo(.54*n,.36*i),e.lineTo(.52*n,.31*i),e.lineTo(.45*n,.31*i),e.lineTo(.45*n,.22*i),e.lineTo(.52*n,.21*i),e.lineTo(.54*n,.16*i),e.lineTo(.5*n,.11*i),e.lineTo(.56*n,.05*i),e.lineTo(.62*n,.09*i),e.lineTo(.67*n,.07*i),e.lineTo(.68*n,0),e.lineTo(.77*n,0),e.lineTo(.78*n,.07*i),e.lineTo(.83*n,.09*i),e.lineTo(.89*n,.05*i),e.lineTo(.95*n,.11*i),e.lineTo(.91*n,.16*i),e.lineTo(.93*n,.21*i),e.lineTo(n,.22*i),e.lineTo(n,.31*i),e.lineTo(.93*n,.31*i),e.lineTo(.91*n,.36*i),e.lineTo(.95*n,.41*i),e.lineTo(.89*n,.47*i),e.lineTo(.83*n,.43*i),e.lineTo(.78*n,.45*i),e.lineTo(.77*n,.52*i),e.lineTo(.68*n,.52*i),e.close(),e.moveTo(.36*n,.81*i),e.curveTo(.44*n,.81*i,.52*n,.75*i,.52*n,.67*i),e.curveTo(.52*n,.59*i,.45*n,.51*i,.35*n,.51*i),e.curveTo(.27*n,.51*i,.19*n,.58*i,.19*n,.67*i),e.curveTo(.19*n,.74*i,.27*n,.82*i,.36*n,.81*i),e.close(),e.moveTo(.21*n,.98*i),e.lineTo(.22*n,.89*i),e.lineTo(.16*n,.85*i),e.lineTo(.08*n,.88*i),e.lineTo(.02*n,.79*i),e.lineTo(.09*n,.74*i),e.lineTo(.08*n,.67*i),e.lineTo(0,.63*i),e.lineTo(.03*n,.53*i),e.lineTo(.12*n,.54*i),e.lineTo(.16*n,.48*i),e.lineTo(.13*n,.4*i),e.lineTo(.22*n,.35*i),e.lineTo(.28*n,.42*i),e.lineTo(.36*n,.41*i),e.lineTo(.39*n,.33*i),e.lineTo(.5*n,.36*i),e.lineTo(.49*n,.45*i),e.lineTo(.55*n,.49*i),e.lineTo(.63*n,.45*i),e.lineTo(.69*n,.54*i),e.lineTo(.62*n,.6*i),e.lineTo(.63*n,.67*i),e.lineTo(.71*n,.7*i),e.lineTo(.68*n,.8*i),e.lineTo(.59*n,.79*i),e.lineTo(.55*n,.85*i),e.lineTo(.59*n,.79*i),e.lineTo(.55*n,.85*i),e.lineTo(.59*n,.93*i),e.lineTo(.49*n,.98*i),e.lineTo(.43*n,.91*i),e.lineTo(.36*n,.92*i),e.lineTo(.32*n,i),e.lineTo(.21*n,.98*i),e.close(),e.stroke()):a===mxArchiMate3Tech.prototype.cst.SYS_SW?mxArchiMate3SysSw.prototype.background(e,t,o,n,i):a===mxArchiMate3Tech.prototype.cst.DEVICE&&mxArchiMate3Device.prototype.background(e,t,o,n,i)},mxCellRenderer.registerShape(mxArchiMate3Tech.prototype.cst.TECH,mxArchiMate3Tech),mxArchiMate3Tech.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,10,0)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-10)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-10,0)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10)),e},mxUtils.extend(mxArchiMate3Distribution,mxShape),mxArchiMate3Distribution.prototype.cst={DISTRIBUTION:"mxgraph.archimate3.distribution"},mxArchiMate3Distribution.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Distribution.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(.1*n,.25*i),e.lineTo(.9*n,.25*i),e.lineTo(n,.5*i),e.lineTo(.9*n,.75*i),e.lineTo(.1*n,.75*i),e.lineTo(0,.5*i),e.fillAndStroke(),e.begin(),e.moveTo(.2*n,0),e.lineTo(0,.5*i),e.lineTo(.2*n,i),e.moveTo(.8*n,0),e.lineTo(n,.5*i),e.lineTo(.8*n,i),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3Distribution.prototype.cst.DISTRIBUTION,mxArchiMate3Distribution),mxArchiMate3Distribution.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.2,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(.8,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.8,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.2,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxArchiMate3Resource,mxShape),mxArchiMate3Resource.prototype.cst={RESOURCE:"mxgraph.archimate3.resource"},mxArchiMate3Resource.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Resource.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(.51*n,.34*i),e.lineTo(.51*n,.65*i),e.moveTo(.35*n,.34*i),e.lineTo(.35*n,.65*i),e.moveTo(.19*n,.34*i),e.lineTo(.19*n,.65*i),e.moveTo(.91*n,.4*i),e.curveTo(.93*n,.39*i,.95*n,.39*i,.97*n,.4*i),e.curveTo(.99*n,.4*i,n,.41*i,n,.43*i),e.curveTo(n,.48*i,n,.52*i,n,.57*i),e.curveTo(n,.58*i,.99*n,.59*i,.98*n,.6*i),e.curveTo(.96*n,.6*i,.93*n,.6*i,.91*n,.6*i),e.moveTo(0,.73*i),e.curveTo(0,.6*i,0,.43*i,0,.27*i),e.curveTo(0,.24*i,.03*n,.21*i,.08*n,.21*i),e.curveTo(.33*n,.2*i,.61*n,.2*i,.84*n,.21*i),e.curveTo(.88*n,.22*i,.89*n,.24*i,.9*n,.26*i),e.curveTo(.91*n,.41*i,.91*n,.57*i,.9*n,.72*i),e.curveTo(.9*n,.74*i,.88*n,.78*i,.83*n,.79*i),e.curveTo(.57*n,.79*i,.32*n,.79*i,.06*n,.79*i),e.curveTo(.02*n,.78*i,0,.76*i,0,.73*i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3Resource.prototype.cst.RESOURCE,mxArchiMate3Resource),mxUtils.extend(mxArchiMate3Capability,mxShape),mxArchiMate3Capability.prototype.cst={CAPABILITY:"mxgraph.archimate3.capability"},mxArchiMate3Capability.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Capability.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.lineTo(0,.67*i),e.lineTo(.33*n,.67*i),e.lineTo(.33*n,.33*i),e.lineTo(.67*n,.33*i),e.lineTo(.67*n,0),e.close(),e.moveTo(.67*n,.33*i),e.lineTo(n,.33*i),e.moveTo(.33*n,.67*i),e.lineTo(n,.67*i),e.moveTo(.33*n,.67*i),e.lineTo(.33*n,i),e.moveTo(.67*n,.33*i),e.lineTo(.67*n,i),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3Capability.prototype.cst.CAPABILITY,mxArchiMate3Capability),mxUtils.extend(mxArchiMate3Course,mxShape),mxArchiMate3Course.prototype.cst={COURSE:"mxgraph.archimate3.course"},mxArchiMate3Course.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Course.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,i),e.arcTo(.7*n,.7*i,0,0,1,.41*n,.56*i),e.moveTo(.14*n,.54*i),e.lineTo(.41*n,.56*i),e.lineTo(.3*n,.78*i),e.stroke(),e.ellipse(.4*n,0,.6*n,.6*i),e.stroke(),e.ellipse(.5*n,.1*i,.4*n,.4*i),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#000000"),e.setFillColor(t),e.ellipse(.6*n,.2*i,.2*n,.2*i),e.fill()},mxCellRenderer.registerShape(mxArchiMate3Course.prototype.cst.COURSE,mxArchiMate3Course),mxUtils.extend(mxArchiMate3Node,mxShape),mxArchiMate3Node.prototype.cst={NODE:"mxgraph.archimate3.node"},mxArchiMate3Node.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Node.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,.25*i),e.lineTo(.25*n,0),e.lineTo(n,0),e.lineTo(n,.75*i),e.lineTo(.75*n,i),e.lineTo(0,i),e.close(),e.moveTo(0,.25*i),e.lineTo(.75*n,.25*i),e.lineTo(.75*n,i),e.moveTo(n,0),e.lineTo(.75*n,.25*i),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Node.prototype.cst.NODE,mxArchiMate3Node),mxArchiMate3Node.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMate3Device,mxShape),mxArchiMate3Device.prototype.cst={DEVICE:"mxgraph.archimate3.device"},mxArchiMate3Device.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Device.prototype.background=function(e,t,o,n,i){e.roundrect(0,0,n,.88*i,.1*n,.1*i),e.fillAndStroke(),e.begin(),e.moveTo(.1*n,.88*i),e.lineTo(0,i),e.lineTo(n,i),e.lineTo(.9*n,.88*i),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3Device.prototype.cst.DEVICE,mxArchiMate3Device),mxArchiMate3Device.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.03,.03),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.97,.03),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMate3SysSw,mxShape),mxArchiMate3SysSw.prototype.cst={SYS_SW:"mxgraph.archimate3.sysSw"},mxArchiMate3SysSw.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3SysSw.prototype.background=function(e,t,o,n,i){e.ellipse(.3*n,0,.7*n,.7*i),e.stroke(),e.ellipse(0,.02*i,.98*n,.98*i),e.fillAndStroke()},mxCellRenderer.registerShape(mxArchiMate3SysSw.prototype.cst.SYS_SW,mxArchiMate3SysSw),mxUtils.extend(mxArchiMate3Artifact,mxShape),mxArchiMate3Artifact.prototype.cst={ARTIFACT:"mxgraph.archimate3.artifact"},mxArchiMate3Artifact.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Artifact.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,0),e.lineTo(.7*n,0),e.lineTo(n,.22*i),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.7*n,0),e.lineTo(.7*n,.22*i),e.lineTo(n,.22*i),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3Artifact.prototype.cst.ARTIFACT,mxArchiMate3Artifact),mxArchiMate3Artifact.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.7,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.85,.11),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.22),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxArchiMate3CommNetw,mxShape),mxArchiMate3CommNetw.prototype.cst={COMM_NETW:"mxgraph.archimate3.commNetw"},mxArchiMate3CommNetw.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3CommNetw.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(.2*n,i),e.lineTo(0,.5*i),e.lineTo(.2*n,0),e.moveTo(.8*n,i),e.lineTo(n,.5*i),e.lineTo(.8*n,0),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3CommNetw.prototype.cst.COMM_NETW,mxArchiMate3CommNetw),mxArchiMate3CommNetw.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e},mxUtils.extend(mxArchiMate3Path,mxShape),mxArchiMate3Path.prototype.cst={PATH:"mxgraph.archimate3.path"},mxArchiMate3Path.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1)},mxArchiMate3Path.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(.2*n,i),e.lineTo(0,.5*i),e.lineTo(.2*n,0),e.moveTo(.8*n,i),e.lineTo(n,.5*i),e.lineTo(.8*n,0),e.stroke(),e.setDashed(!0),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()},mxCellRenderer.registerShape(mxArchiMate3Path.prototype.cst.PATH,mxArchiMate3Path),mxArchiMate3Path.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e},mxUtils.extend(mxShapeArrows2Arrow,mxActor),mxShapeArrows2Arrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:40},{name:"dy",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.6},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0},{name:"headCrossline",dispName:"Head Crossline",type:"bool",defVal:!1},{name:"tailCrossline",dispName:"Tail Crossline",type:"bool",defVal:!1}],mxShapeArrows2Arrow.prototype.cst={ARROW:"mxgraph.arrows2.arrow"},mxShapeArrows2Arrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=.5*i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=mxUtils.getValue(this.style,"headCrossline",!1),l=mxUtils.getValue(this.style,"tailCrossline",!1);e.begin(),e.moveTo(0,t),e.lineTo(n-o,t),e.lineTo(n-o,0),e.lineTo(n,.5*i),e.lineTo(n-o,i),e.lineTo(n-o,i-t),e.lineTo(0,i-t),e.lineTo(a,.5*i),e.close(),e.fillAndStroke(),e.setShadow(!1),s&&(e.begin(),e.moveTo(n-o,t),e.lineTo(n-o,i-t),e.stroke()),l&&(e.begin(),e.moveTo(a,t),e.lineTo(a,i-t),e.stroke())},mxShapeArrows2Arrow.prototype.getLabelBounds=function(e){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var t,o,n=e.width,i=e.height,a=this.direction||mxConstants.DIRECTION_EAST;return mxUtils.getValue(this.style,"flipH",!1)&&(a==mxConstants.DIRECTION_WEST?a=mxConstants.DIRECTION_EAST:a==mxConstants.DIRECTION_EAST&&(a=mxConstants.DIRECTION_WEST)),mxUtils.getValue(this.style,"flipV",!1)&&(a==mxConstants.DIRECTION_NORTH?a=mxConstants.DIRECTION_SOUTH:a==mxConstants.DIRECTION_SOUTH&&(a=mxConstants.DIRECTION_NORTH)),a==mxConstants.DIRECTION_NORTH||a==mxConstants.DIRECTION_SOUTH?(t=.5*n*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))))):(t=.5*i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))))),a==mxConstants.DIRECTION_EAST?new mxRectangle(e.x,e.y+t,n-o,i-2*t):a==mxConstants.DIRECTION_WEST?new mxRectangle(e.x+o,e.y+t,n-o,i-2*t):a==mxConstants.DIRECTION_NORTH?new mxRectangle(e.x+t,e.y+o,n-2*t,i-o):new mxRectangle(e.x+t,e.y,n-2*t,i-o)}return e},mxCellRenderer.registerShape(mxShapeArrows2Arrow.prototype.cst.ARROW,mxShapeArrows2Arrow),Graph.handleFactory[mxShapeArrows2Arrow.prototype.cst.ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-t,e.y+o*e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height*2)))/100}))];return e=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),t.x-e.x)))/100})),t.push(e),t},mxShapeArrows2Arrow.prototype.getConstraints=function(e,t,o){e=[];var n=.5*o*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));return e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i),n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i),o-n)),e},mxUtils.extend(mxShapeArrows2TwoWayArrow,mxActor),mxShapeArrows2TwoWayArrow.prototype.cst={TWO_WAY_ARROW:"mxgraph.arrows2.twoWayArrow"},mxShapeArrows2TwoWayArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:35},{name:"dy",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.6}],mxShapeArrows2TwoWayArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=.5*i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e.begin(),e.moveTo(o,t),e.lineTo(n-o,t),e.lineTo(n-o,0),e.lineTo(n,.5*i),e.lineTo(n-o,i),e.lineTo(n-o,i-t),e.lineTo(o,i-t),e.lineTo(o,i),e.lineTo(0,.5*i),e.lineTo(o,0),e.close(),e.fillAndStroke()},mxShapeArrows2TwoWayArrow.prototype.getLabelBounds=function(e){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var t,o,n=e.width,i=e.height,a=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH;return a?(t=.5*n*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))))):(t=.5*i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))))),a?new mxRectangle(e.x+t,e.y+o,n-2*t,i-2*o):new mxRectangle(e.x+o,e.y+t,n-2*o,i-2*t)}return e},mxCellRenderer.registerShape(mxShapeArrows2TwoWayArrow.prototype.cst.TWO_WAY_ARROW,mxShapeArrows2TwoWayArrow),mxShapeArrows2TwoWayArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2TwoWayArrow.prototype.cst.TWO_WAY_ARROW]=function(e){return[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-t,e.y+o*e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width/2,e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height*2)))/100}))]},mxShapeArrows2TwoWayArrow.prototype.getConstraints=function(e,t,o){e=[];var n=.5*o*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o-n)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,o-n)),e},mxUtils.extend(mxShapeArrows2StylisedArrow,mxActor),mxShapeArrows2StylisedArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:40},{name:"dy",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.6},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0},{name:"feather",dispName:"Feather",type:"float",min:0,max:1,defVal:.4}],mxShapeArrows2StylisedArrow.prototype.cst={STYLISED_ARROW:"mxgraph.arrows2.stylisedArrow"},mxShapeArrows2StylisedArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=.5*i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=.5*i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"feather",this.feather))));e.begin(),e.moveTo(0,s),e.lineTo(n-o,t),e.lineTo(n-o-10,0),e.lineTo(n,.5*i),e.lineTo(n-o-10,i),e.lineTo(n-o,i-t),e.lineTo(0,i-s),e.lineTo(a,.5*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2StylisedArrow.prototype.cst.STYLISED_ARROW,mxShapeArrows2StylisedArrow),mxShapeArrows2StylisedArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2StylisedArrow.prototype.cst.STYLISED_ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width-10,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-t,e.y+o*e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width-10,e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height*2)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),t.x-e.x)))/100}));return t.push(o),e=Graph.createHandle(e,["feather"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"feather",this.dy))));return new mxPoint(e.x,e.y+t*e.height/2)}),(function(e,t){this.state.style.feather=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height*2)))/100})),t.push(e),t},mxShapeArrows2StylisedArrow.prototype.getConstraints=function(e,t,o){e=[];var n=.5*o*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=.5*o*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"feather",this.feather))));return e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i-10,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i-10,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i),.5*(n+s))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i),o-.5*(n+s))),e},mxUtils.extend(mxShapeArrows2SharpArrow,mxActor),mxShapeArrows2SharpArrow.prototype.cst={SHARP_ARROW:"mxgraph.arrows2.sharpArrow"},mxShapeArrows2SharpArrow.prototype.customProperties=[{name:"dx1",dispName:"Arrowhead Arrow Width",type:"float",min:0,defVal:18},{name:"dy1",dispName:"Arrow Arrow Width",type:"float",min:0,max:1,defVal:.67},{name:"dx2",dispName:"Arrowhead Angle",type:"float",min:0,defVal:18},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0}],mxShapeArrows2SharpArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=.5*i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),s=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),l=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),r=.5*i*Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),p=0;0!=i&&(p=l+a*r*2/i),e.begin(),e.moveTo(0,t),e.lineTo(n-o,t),e.lineTo(n-p,0),e.lineTo(n-a,0),e.lineTo(n,.5*i),e.lineTo(n-a,i),e.lineTo(n-p,i),e.lineTo(n-o,i-t),e.lineTo(0,i-t),e.lineTo(s,.5*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2SharpArrow.prototype.cst.SHARP_ARROW,mxShapeArrows2SharpArrow),mxShapeArrows2SharpArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2SharpArrow.prototype.cst.SHARP_ARROW]=function(e){var t=[Graph.createHandle(e,["dx1","dy1"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),o=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))));return new mxPoint(e.x+e.width-t,e.y+o*e.height/2)}),(function(e,t){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.x+e.width-t.x)))/100,this.state.style.dy1=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height*2)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),t.x-e.x)))/100}));return t.push(o),e=Graph.createHandle(e,["dx2"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(e.x+e.width-t,e.y)}),(function(e,t){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.x+e.width-t.x)))/100})),t.push(e),t},mxShapeArrows2SharpArrow.prototype.getConstraints=function(e,t,o){e=[];var n=.5*o*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),s=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),l=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),r=.5*o*Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),p=0;return 0!=o&&(p=l+a*r*2/o),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,s,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-p,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-p,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-a,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i),n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i),o-n)),e},mxUtils.extend(mxShapeArrows2SharpArrow2,mxActor),mxShapeArrows2SharpArrow2.prototype.customProperties=[{name:"dx1",dispName:"Arrowhead Arrow Width",type:"float",min:0,defVal:18},{name:"dy1",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.67},{name:"dx2",dispName:"Arrowhead Angle",type:"float",min:0,defVal:18},{name:"dx3",dispName:"Arrowhead Edge X",type:"float",min:0,defVal:27},{name:"dy3",dispName:"Arrowhead Edge Y",type:"float",min:0,max:1,defVal:.15},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0}],mxShapeArrows2SharpArrow2.prototype.cst={SHARP_ARROW2:"mxgraph.arrows2.sharpArrow2"},mxShapeArrows2SharpArrow2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=.5*i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),s=.5*i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy3",this.dy3)))),l=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx3",this.dx3)))),r=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)),parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)),e.begin(),e.moveTo(0,t),e.lineTo(n-o,t),e.lineTo(n-l,s),e.lineTo(n-a,0),e.lineTo(n,.5*i),e.lineTo(n-a,i),e.lineTo(n-l,i-s),e.lineTo(n-o,i-t),e.lineTo(0,i-t),e.lineTo(r,.5*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2SharpArrow2.prototype.cst.SHARP_ARROW2,mxShapeArrows2SharpArrow2),mxShapeArrows2SharpArrow2.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2SharpArrow2.prototype.cst.SHARP_ARROW2]=function(e){var t=[Graph.createHandle(e,["dx1","dy1"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),o=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))));return new mxPoint(e.x+e.width-t,e.y+o*e.height/2)}),(function(e,t){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.x+e.width-t.x)))/100,this.state.style.dy1=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height*2)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),t.x-e.x)))/100}));return t.push(o),o=Graph.createHandle(e,["dx2"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(e.x+e.width-t,e.y)}),(function(e,t){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.x+e.width-t.x)))/100})),t.push(o),e=Graph.createHandle(e,["dx3","dy3"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx3",this.dx3)))),o=Math.max(0,Math.min(1-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))/2,parseFloat(mxUtils.getValue(this.state.style,"dy3",this.dy3))));return new mxPoint(e.x+e.width-t,e.y+o*e.height/2)}),(function(e,t){this.state.style.dx3=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),Math.min(e.width,e.x+e.width-t.x)))/100,this.state.style.dy3=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),(t.y-e.y)/e.height*2)))/100})),t.push(e),t},mxShapeArrows2SharpArrow2.prototype.getConstraints=function(e,t,o){e=[];var n=.5*o*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),s=.5*o*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy3",this.dy3)))),l=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx3",this.dx3)))),r=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));return parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)),parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,r,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-l,s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-l,o-s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-a,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i),n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i),o-n)),e},mxUtils.extend(mxShapeArrows2CalloutArrow,mxActor),mxShapeArrows2CalloutArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:10},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"notch",dispName:"Rectangle Width",type:"float",min:0,defVal:60}],mxShapeArrows2CalloutArrow.prototype.cst={CALLOUT_ARROW:"mxgraph.arrows2.calloutArrow"},mxShapeArrows2CalloutArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));e.begin(),e.moveTo(0,0),e.lineTo(a,0),e.lineTo(a,.5*i-t),e.lineTo(n-o,.5*i-t),e.lineTo(n-o,.5*i-t-s),e.lineTo(n,.5*i),e.lineTo(n-o,.5*i+t+s),e.lineTo(n-o,.5*i+t),e.lineTo(a,.5*i+t),e.lineTo(a,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2CalloutArrow.prototype.cst.CALLOUT_ARROW,mxShapeArrows2CalloutArrow),mxShapeArrows2CalloutArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2CalloutArrow.prototype.cst.CALLOUT_ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return t=Math.max(0,Math.min(e.height/2-t,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),new mxPoint(e.x+e.width-o,e.y+e.height/2-t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),e.y+e.height/2-t.y)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),t.x-e.x)))/100}));return t.push(o),e=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),n=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+e.height/2-o-n)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),e.y+e.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))-t.y)))/100})),t.push(e),t},mxShapeArrows2CalloutArrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o-n-s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o+n+s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,.5*o+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*a,o)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,.5*(a+t-i),-n)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,.5*(a+t-i),n)),e},mxUtils.extend(mxShapeArrows2BendArrow,mxActor),mxShapeArrows2BendArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:38},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:15},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:55},{name:"rounded",dispName:"Rounded",type:"boolean",defVal:!1}],mxShapeArrows2BendArrow.prototype.cst={BEND_ARROW:"mxgraph.arrows2.bendArrow"},mxShapeArrows2BendArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),l=mxUtils.getValue(this.style,"rounded","0");e.begin(),e.moveTo(n-o,0),e.lineTo(n,.5*s),e.lineTo(n-o,s),e.lineTo(n-o,s/2+t),"1"==l?(e.lineTo(2.2*t,s/2+t),e.arcTo(.2*t,.2*t,0,0,0,2*t,s/2+1.2*t)):e.lineTo(2*t,s/2+t),e.lineTo(2*t,i),e.lineTo(t,i-a),e.lineTo(0,i),"1"==l?(e.lineTo(0,s/2+t),e.arcTo(2*t,2*t,0,0,1,2*t,s/2-t)):e.lineTo(0,s/2-t),e.lineTo(n-o,s/2-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2BendArrow.prototype.cst.BEND_ARROW,mxShapeArrows2BendArrow),mxShapeArrows2BendArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2BendArrow.prototype.cst.BEND_ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-o,e.y+t/2-n)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width-2.2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2,e.y+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2-t.y)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return t=Math.max(0,Math.min(e.height-t/2-o,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)))),new mxPoint(e.x+o,e.y+e.height-t)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.height-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),e.y+e.height-t.y)))/100}));return t.push(o),e=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+o)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(e.height,t.y-e.y)))/100})),t.push(e),t},mxShapeArrows2BendArrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),a=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),l=mxUtils.getValue(this.style,"rounded","0");return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i+2*n),s/2-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,s/2-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,s/2+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i+2*n),s/2+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*n,.5*(o-s/2-n)+s/2+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o-s/2-n)+s/2+n)),"1"==l?(e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.586*n,s/2-.414*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*n+.0586*n,s/2+n+.0586*n))):(e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,s/2-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*n,s/2+n))),e},mxUtils.extend(mxShapeArrows2BendDoubleArrow,mxActor),mxShapeArrows2BendDoubleArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:38},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:15},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:55},{name:"rounded",dispName:"Rounded",type:"boolean",defVal:!1}],mxShapeArrows2BendDoubleArrow.prototype.cst={BEND_DOUBLE_ARROW:"mxgraph.arrows2.bendDoubleArrow"},mxShapeArrows2BendDoubleArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),s=mxUtils.getValue(this.style,"rounded","0");e.begin(),e.moveTo(n-o,0),e.lineTo(n,.5*a),e.lineTo(n-o,a),e.lineTo(n-o,a/2+t),"1"==s?(e.lineTo(a/2+1.2*t,a/2+t),e.arcTo(.2*t,.2*t,0,0,0,a/2+t,a/2+1.2*t)):e.lineTo(a/2+t,a/2+t),e.lineTo(a/2+t,i-o),e.lineTo(a,i-o),e.lineTo(a/2,i),e.lineTo(0,i-o),e.lineTo(a/2-t,i-o),"1"==s?(e.lineTo(a/2-t,a/2+t),e.arcTo(2*t,2*t,0,0,1,a/2+t,a/2-t)):e.lineTo(a/2-t,a/2-t),e.lineTo(n-o,a/2-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2BendDoubleArrow.prototype.cst.BEND_DOUBLE_ARROW,mxShapeArrows2BendDoubleArrow),mxShapeArrows2BendDoubleArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2BendDoubleArrow.prototype.cst.BEND_DOUBLE_ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(Math.min(e.height,e.width)-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(Math.min(e.width,e.height)-t,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-o,e.y+t/2-n)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(Math.min(e.width,e.height)-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2,e.y+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2-t.y)))/100}))];return e=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(Math.min(e.height,e.width)-t,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+o)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(Math.min(e.height,e.width)-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),t.y-e.y)))/100})),t.push(e),t},mxShapeArrows2BendDoubleArrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),s=mxUtils.getValue(this.style,"rounded","0");return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,a/2+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(a/2+n+t-i),a/2+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(a/2+n+t-i),a/2-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2+n,.5*(a/2+n+o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2-n,.5*(a/2+n+o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2+n,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2-n,o-i)),"1"==s?(e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2-.414*n,a/2-.414*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2+n+.0586*n,a/2+n+.0586*n))):(e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2-n,a/2-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2+n,a/2+n))),e},mxUtils.extend(mxShapeArrows2CalloutDoubleArrow,mxActor),mxShapeArrows2CalloutDoubleArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:10},{name:"notch",dispName:"Rect Size",type:"float",min:0,defVal:24}],mxShapeArrows2CalloutDoubleArrow.prototype.cst={CALLOUT_DOUBLE_ARROW:"mxgraph.arrows2.calloutDoubleArrow"},mxShapeArrows2CalloutDoubleArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));e.begin(),e.moveTo(n/2-a,0),e.lineTo(n/2+a,0),e.lineTo(n/2+a,.5*i-t),e.lineTo(n-o,.5*i-t),e.lineTo(n-o,.5*i-t-s),e.lineTo(n,.5*i),e.lineTo(n-o,.5*i+t+s),e.lineTo(n-o,.5*i+t),e.lineTo(n/2+a,.5*i+t),e.lineTo(n/2+a,i),e.lineTo(n/2-a,i),e.lineTo(n/2-a,.5*i+t),e.lineTo(o,.5*i+t),e.lineTo(o,.5*i+t+s),e.lineTo(0,.5*i),e.lineTo(o,.5*i-t-s),e.lineTo(o,.5*i-t),e.lineTo(n/2-a,.5*i-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2CalloutDoubleArrow.prototype.cst.CALLOUT_DOUBLE_ARROW,mxShapeArrows2CalloutDoubleArrow),mxShapeArrows2CalloutDoubleArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2CalloutDoubleArrow.prototype.cst.CALLOUT_DOUBLE_ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return t=Math.max(0,Math.min(e.height/2-t,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),new mxPoint(e.x+e.width-o,e.y+e.height/2-t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width/2-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),e.y+e.height/2-t.y)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+e.width/2+t,e.y+e.height/2)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width/2-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),t.x-e.x-e.width/2)))/100}));return t.push(o),e=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),n=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+e.height/2-o-n)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),e.y+e.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))-t.y)))/100})),t.push(e),t},mxShapeArrows2CalloutDoubleArrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));return e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t/2-a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t/2+a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,t/2-a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,t/2+a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o-n-s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o+n+s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,.5*o-n-s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,.5*o+n+s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(1.5*t-i+a),.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(1.5*t-i+a),.5*o+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(.5*t+i-a),.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(.5*t+i-a),.5*o+n)),e},mxUtils.extend(mxShapeArrows2CalloutQuadArrow,mxActor),mxShapeArrows2CalloutQuadArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"notch",dispName:"Rect Size",type:"float",min:0,defVal:24},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:10}],mxShapeArrows2CalloutQuadArrow.prototype.cst={CALLOUT_QUAD_ARROW:"mxgraph.arrows2.calloutQuadArrow"},mxShapeArrows2CalloutQuadArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));e.begin(),e.moveTo(.5*n+t,.5*i-a),e.lineTo(.5*n+a,.5*i-a),e.lineTo(.5*n+a,.5*i-t),e.lineTo(n-o,.5*i-t),e.lineTo(n-o,.5*i-t-s),e.lineTo(n,.5*i),e.lineTo(n-o,.5*i+t+s),e.lineTo(n-o,.5*i+t),e.lineTo(.5*n+a,.5*i+t),e.lineTo(.5*n+a,.5*i+a),e.lineTo(.5*n+t,.5*i+a),e.lineTo(.5*n+t,i-o),e.lineTo(.5*n+t+s,i-o),e.lineTo(.5*n,i),e.lineTo(.5*n-t-s,i-o),e.lineTo(.5*n-t,i-o),e.lineTo(.5*n-t,.5*i+a),e.lineTo(.5*n-a,.5*i+a),e.lineTo(.5*n-a,.5*i+t),e.lineTo(o,.5*i+t),e.lineTo(o,.5*i+t+s),e.lineTo(0,.5*i),e.lineTo(o,.5*i-t-s),e.lineTo(o,.5*i-t),e.lineTo(.5*n-a,.5*i-t),e.lineTo(.5*n-a,.5*i-a),e.lineTo(.5*n-t,.5*i-a),e.lineTo(.5*n-t,o),e.lineTo(.5*n-t-s,o),e.lineTo(.5*n,0),e.lineTo(.5*n+t+s,o),e.lineTo(.5*n+t,o),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2CalloutQuadArrow.prototype.cst.CALLOUT_QUAD_ARROW,mxShapeArrows2CalloutQuadArrow),mxShapeArrows2CalloutQuadArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2CalloutQuadArrow.prototype.cst.CALLOUT_QUAD_ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead));var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-t,e.y+e.height/2-o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(Math.min(e.width,e.height)/2-Math.max(parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))),e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.y+e.height/2-t.y)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(Math.min(e.width,e.height),parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+e.width/2+t,e.y+e.height/2)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(Math.min(e.width,e.height)/2-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),t.x-e.x-e.width/2)))/100}));return t.push(o),e=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),n=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+e.height/2-o-n)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),e.y+e.height/2-t.y)))/100})),t.push(e),t},mxShapeArrows2CalloutQuadArrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));return e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n,.5*o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+a,.5*o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+a,.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n,.5*o+a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+a,.5*o+a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+a,.5*o+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n,.5*o+a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-a,.5*o+a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-a,.5*o+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n,.5*o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-a,.5*o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-a,.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o-n-s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o+n+s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n-s,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n+s,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,.5*o-n-s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,.5*o+n+s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n-s,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n+s,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t+.5*(a-i),.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t+.5*(a-i),.5*o+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n,.75*o+.5*(a-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n,.75*o+.5*(a-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t-.5*(a-i),.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t-.5*(a-i),.5*o+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n,.25*o-.5*(a-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n,.25*o-.5*(a-i))),e},mxUtils.extend(mxShapeArrows2CalloutDouble90Arrow,mxActor),mxShapeArrows2CalloutDouble90Arrow.prototype.customProperties=[{name:"dx1",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy1",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"dx2",dispName:"Callout Width",type:"float",min:0,defVal:70},{name:"dy2",dispName:"Callout Height",type:"float",min:0,defVal:70},{name:"arrowHead",dispName:"ArrowHead Width",type:"float",min:0,defVal:10}],mxShapeArrows2CalloutDouble90Arrow.prototype.cst={CALLOUT_DOUBLE_90_ARROW:"mxgraph.arrows2.calloutDouble90Arrow"},mxShapeArrows2CalloutDouble90Arrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),s=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),l=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));e.begin(),e.moveTo(0,0),e.lineTo(a,0),e.lineTo(a,.5*s-t),e.lineTo(n-o,.5*s-t),e.lineTo(n-o,.5*s-t-l),e.lineTo(n,.5*s),e.lineTo(n-o,.5*s+t+l),e.lineTo(n-o,.5*s+t),e.lineTo(a,.5*s+t),e.lineTo(a,s),e.lineTo(a/2+t,s),e.lineTo(a/2+t,i-o),e.lineTo(a/2+t+l,i-o),e.lineTo(a/2,i),e.lineTo(a/2-t-l,i-o),e.lineTo(a/2-t,i-o),e.lineTo(a/2-t,s),e.lineTo(0,s),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2CalloutDouble90Arrow.prototype.cst.CALLOUT_DOUBLE_90_ARROW,mxShapeArrows2CalloutDouble90Arrow),mxShapeArrows2CalloutDouble90Arrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2CalloutDouble90Arrow.prototype.cst.CALLOUT_DOUBLE_90_ARROW]=function(e){var t=[Graph.createHandle(e,["dx1","dy1"],(function(e){var t=Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))));return t=Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-t,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)))),new mxPoint(e.x+e.width-o,e.y+parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-t)}),(function(e,t){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),e.height-parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2)),e.x+e.width-t.x)))/100,this.state.style.dy1=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),e.y+parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-t.y)))/100}))],o=Graph.createHandle(e,["dx2","dy2"],(function(e){var t=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)))),o=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),Math.min(e.height-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))));return new mxPoint(e.x+t,e.y+o)}),(function(e,t){this.state.style.dx2=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),t.x-e.x)))/100,this.state.style.dy2=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),Math.min(e.height-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),t.y-e.y)))/100}));return t.push(o),e=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),o=Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)))),n=Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-o-n)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),e.y+parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))-t.y)))/100})),t.push(e),t},mxShapeArrows2CalloutDouble90Arrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),s=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),l=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i+a),.5*s-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*s-n-l)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*s+n+l)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i+a),.5*s+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*a+n,.5*(o-i+s))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*a-n,.5*(o-i+s))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2+n+l,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a/2-n-l,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,s)),e},mxUtils.extend(mxShapeArrows2QuadArrow,mxActor),mxShapeArrows2QuadArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:10}],mxShapeArrows2QuadArrow.prototype.cst={QUAD_ARROW:"mxgraph.arrows2.quadArrow"},mxShapeArrows2QuadArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));e.begin(),e.moveTo(.5*n+t,.5*i-t),e.lineTo(n-o,.5*i-t),e.lineTo(n-o,.5*i-t-a),e.lineTo(n,.5*i),e.lineTo(n-o,.5*i+t+a),e.lineTo(n-o,.5*i+t),e.lineTo(.5*n+t,.5*i+t),e.lineTo(.5*n+t,i-o),e.lineTo(.5*n+t+a,i-o),e.lineTo(.5*n,i),e.lineTo(.5*n-t-a,i-o),e.lineTo(.5*n-t,i-o),e.lineTo(.5*n-t,.5*i+t),e.lineTo(o,.5*i+t),e.lineTo(o,.5*i+t+a),e.lineTo(0,.5*i),e.lineTo(o,.5*i-t-a),e.lineTo(o,.5*i-t),e.lineTo(.5*n-t,.5*i-t),e.lineTo(.5*n-t,o),e.lineTo(.5*n-t-a,o),e.lineTo(.5*n,0),e.lineTo(.5*n+t+a,o),e.lineTo(.5*n+t,o),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2QuadArrow.prototype.cst.QUAD_ARROW,mxShapeArrows2QuadArrow),mxShapeArrows2QuadArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2QuadArrow.prototype.cst.QUAD_ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead));var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-t,e.y+e.height/2-o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(Math.min(e.width,e.height)/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),e.y+e.height/2-t.y)))/100}))];return e=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),n=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+e.height/2-o-n)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),e.y+e.height/2-t.y)))/100})),t.push(e),t},mxShapeArrows2QuadArrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),a=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));return e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o-n-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o+n+a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,.5*o-n-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,.5*o+n+a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n-a,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n+a,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n-a,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n+a,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n,.5*(i-n)+.25*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n,.5*(i-n)+.25*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n,.5*(n-i)+.75*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n,.5*(n-i)+.75*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(i-n)+.25*t,.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(i-n)+.25*t,.5*o+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(n-i)+.75*t,.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(n-i)+.75*t,.5*o+n)),e},mxUtils.extend(mxShapeArrows2TriadArrow,mxActor),mxShapeArrows2TriadArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:40}],mxShapeArrows2TriadArrow.prototype.cst={TRIAD_ARROW:"mxgraph.arrows2.triadArrow"},mxShapeArrows2TriadArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));e.begin(),e.moveTo(.5*n+.5*a-t,i-a+t),e.lineTo(n-o,i-a+t),e.lineTo(n-o,i-a),e.lineTo(n,i-.5*a),e.lineTo(n-o,i),e.lineTo(n-o,i-t),e.lineTo(o,i-t),e.lineTo(o,i),e.lineTo(0,i-.5*a),e.lineTo(o,i-a),e.lineTo(o,i-a+t),e.lineTo(.5*n-.5*a+t,i-a+t),e.lineTo(.5*n-.5*a+t,o),e.lineTo(.5*n-.5*a,o),e.lineTo(.5*n,0),e.lineTo(.5*n+.5*a,o),e.lineTo(.5*n+.5*a-t,o),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2TriadArrow.prototype.cst.TRIAD_ARROW,mxShapeArrows2TriadArrow),mxShapeArrows2TriadArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2TriadArrow.prototype.cst.TRIAD_ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return t=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),new mxPoint(e.x+e.width-o,e.y+e.height-t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(Math.min(e.height-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),e.width/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2),e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2,e.y+e.height-t.y)))/100}))];return e=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy));var o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+e.height-o)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(e.height-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),e.width-2*parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),e.y+e.height-t.y)))/100})),t.push(e),t},mxShapeArrows2TriadArrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),a=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));return e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,.5*-a,i)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,o-n)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,.5*a,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o-.5*a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-.5*a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(1.5*t-i+.5*a-n),o-a+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(1.5*t-i+.5*a-n),o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(.5*t+i-.5*a+n),o-a+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(.5*t+i-.5*a+n),o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-.5*a+n,.5*(i+o-a+n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+.5*a-n,.5*(i+o-a+n))),e},mxUtils.extend(mxShapeArrows2TailedArrow,mxActor),mxShapeArrows2TailedArrow.prototype.customProperties=[{name:"dx1",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy1",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"dx2",dispName:"Tail Length",type:"float",min:0,defVal:25},{name:"dy2",dispName:"Tail Width",type:"float",min:0,defVal:30},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:20}],mxShapeArrows2TailedArrow.prototype.cst={TAILED_ARROW:"mxgraph.arrows2.tailedArrow"},mxShapeArrows2TailedArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));var a=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),s=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),l=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),r=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),p=0;0!=a&&(p=s+a*(a-t)/a),e.begin(),e.moveTo(0,.5*i-a),e.lineTo(s,.5*i-a),e.lineTo(p,.5*i-t),e.lineTo(n-o,.5*i-t),e.lineTo(n-o,.5*i-t-r),e.lineTo(n,.5*i),e.lineTo(n-o,.5*i+t+r),e.lineTo(n-o,.5*i+t),e.lineTo(p,.5*i+t),e.lineTo(s,.5*i+a),e.lineTo(0,.5*i+a),e.lineTo(l,.5*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2TailedArrow.prototype.cst.TAILED_ARROW,mxShapeArrows2TailedArrow),mxShapeArrows2TailedArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2TailedArrow.prototype.cst.TAILED_ARROW]=function(e){var t=[Graph.createHandle(e,["dx1","dy1"],(function(e){var t=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))));return t=Math.max(0,Math.min(e.height/2-t,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)))),new mxPoint(e.x+e.width-o,e.y+e.height/2-t)}),(function(e,t){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.width-parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),e.x+e.width-t.x)))/100,this.state.style.dy1=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2)),e.y+e.height/2-t.y)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),t.x-e.x)))/100}));return t.push(o),o=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)))),n=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+e.height/2-o-n)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),e.y+e.height/2-t.y)))/100})),t.push(o),e=Graph.createHandle(e,["dx2","dy2"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))));return new mxPoint(e.x+t,e.y+e.height/2-o)}),(function(e,t){this.state.style.dx2=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))-parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))+parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))-1,t.x-e.x)))/100,this.state.style.dy2=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),Math.min(e.height/2,e.y+e.height/2-t.y)))/100})),t.push(e),t},mxShapeArrows2TailedArrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),a=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),s=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),l=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),r=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),p=0;return 0!=a&&(p=s+a*(a-n)/a),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,l,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s,.5*o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i+p),.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o-n-r)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*o+a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s,.5*o+a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i+p),.5*o+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o+n+r)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e},mxUtils.extend(mxShapeArrows2TailedNotchedArrow,mxActor),mxShapeArrows2TailedNotchedArrow.prototype.customProperties=[{name:"dx1",dispName:"Arrowhead Length",type:"float",mix:0,defVal:20},{name:"dy1",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"dx2",dispName:"Tail Length",type:"float",min:0,defVal:25},{name:"dy2",dispName:"Tail Width",type:"float",min:0,defVal:30},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:20},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:20}],mxShapeArrows2TailedNotchedArrow.prototype.cst={TAILED_NOTCHED_ARROW:"mxgraph.arrows2.tailedNotchedArrow"},mxShapeArrows2TailedNotchedArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));var a=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),s=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),l=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),r=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),p=0;0!=a&&(p=s+l*(a-t)/a),e.begin(),e.moveTo(0,.5*i-a),e.lineTo(s,.5*i-a),e.lineTo(p,.5*i-t),e.lineTo(n-o,.5*i-t),e.lineTo(n-o,.5*i-t-r),e.lineTo(n,.5*i),e.lineTo(n-o,.5*i+t+r),e.lineTo(n-o,.5*i+t),e.lineTo(p,.5*i+t),e.lineTo(s,.5*i+a),e.lineTo(0,.5*i+a),e.lineTo(l,.5*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2TailedNotchedArrow.prototype.cst.TAILED_NOTCHED_ARROW,mxShapeArrows2TailedNotchedArrow),mxShapeArrows2TailedNotchedArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2TailedNotchedArrow.prototype.cst.TAILED_NOTCHED_ARROW]=function(e){var t=[Graph.createHandle(e,["dx1","dy1"],(function(e){var t=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))));return t=Math.max(0,Math.min(e.height/2-t,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)))),new mxPoint(e.x+e.width-o,e.y+e.height/2-t)}),(function(e,t){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))-parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),e.x+e.width-t.x)))/100,this.state.style.dy1=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2)),e.y+e.height/2-t.y)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),t.x-e.x)))/100}));return t.push(o),o=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)))),n=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+e.height/2-o-n)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(e.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),e.y+e.height/2-t.y)))/100})),t.push(o),e=Graph.createHandle(e,["dx2","dy2"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))));return new mxPoint(e.x+t,e.y+e.height/2-o)}),(function(e,t){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),t.x-e.x)))/100,this.state.style.dy2=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),Math.min(e.height/2,e.y+e.height/2-t.y)))/100})),t.push(e),t},mxShapeArrows2TailedNotchedArrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),a=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),s=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),l=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),r=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),p=0;return 0!=a&&(p=s+l*(a-n)/a),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,l,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s,.5*o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i+p),.5*o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o-n-r)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*o+a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s,.5*o+a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i+p),.5*o+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,.5*o+n+r)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e},mxUtils.extend(mxShapeArrows2StripedArrow,mxActor),mxShapeArrows2StripedArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:40},{name:"dy",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.6},{name:"notch",dispName:"Stripes Length",type:"float",min:0,defVal:25}],mxShapeArrows2StripedArrow.prototype.cst={STRIPED_ARROW:"mxgraph.arrows2.stripedArrow"},mxShapeArrows2StripedArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=.5*i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));e.begin(),e.moveTo(a,t),e.lineTo(n-o,t),e.lineTo(n-o,0),e.lineTo(n,.5*i),e.lineTo(n-o,i),e.lineTo(n-o,i-t),e.lineTo(a,i-t),e.close(),e.moveTo(0,i-t),e.lineTo(.16*a,i-t),e.lineTo(.16*a,t),e.lineTo(0,t),e.close(),e.moveTo(.32*a,i-t),e.lineTo(.8*a,i-t),e.lineTo(.8*a,t),e.lineTo(.32*a,t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2StripedArrow.prototype.cst.STRIPED_ARROW,mxShapeArrows2StripedArrow),mxShapeArrows2StripedArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2StripedArrow.prototype.cst.STRIPED_ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-t,e.y+o*e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height*2)))/100}))];return e=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),t.x-e.x)))/100})),t.push(e),t},mxShapeArrows2StripedArrow.prototype.getConstraints=function(e,t,o){e=[];var n=.5*o*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return parseFloat(mxUtils.getValue(this.style,"notch",this.notch)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-i,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i),n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-i),o-n)),e},mxUtils.extend(mxShapeArrows2JumpInArrow,mxActor),mxShapeArrows2JumpInArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:38},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:15},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:55}],mxShapeArrows2JumpInArrow.prototype.cst={JUMP_IN_ARROW:"mxgraph.arrows2.jumpInArrow"},mxShapeArrows2JumpInArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));e.begin(),e.moveTo(n-o,0),e.lineTo(n,.5*a),e.lineTo(n-o,a),e.lineTo(n-o,a/2+t),e.arcTo(n-o,i-a/2-t,0,0,0,0,i),e.arcTo(n-o,i-a/2+t,0,0,1,n-o,a/2-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2JumpInArrow.prototype.cst.JUMP_IN_ARROW,mxShapeArrows2JumpInArrow),mxShapeArrows2JumpInArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2JumpInArrow.prototype.cst.JUMP_IN_ARROW]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-o,e.y+t/2-n)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width,e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2,e.y+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2-t.y)))/100}))];return e=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(e.x+e.width-t,e.y+o)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(e.height,t.y-e.y)))/100})),t.push(e),t},mxShapeArrows2JumpInArrow.prototype.getConstraints=function(e,t,o){e=[],parseFloat(mxUtils.getValue(this.style,"dy",this.dy));var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return o=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,o)),e},mxUtils.extend(mxShapeArrows2UTurnArrow,mxActor),mxShapeArrows2UTurnArrow.prototype.customProperties=[{name:"dx2",dispName:"Arrowhead Length",type:"float",min:0,defVal:25},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:11},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:43}],mxShapeArrows2UTurnArrow.prototype.cst={U_TURN_ARROW:"mxgraph.arrows2.uTurnArrow"},mxShapeArrows2UTurnArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var a=(i-(o=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))))/2+t)/2,s=Math.max(0,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)));e.begin(),e.moveTo(a,0),e.lineTo(a+s,.5*o),e.lineTo(a,o),e.lineTo(a,o/2+t),e.arcTo(a-2*t,a-2*t,0,0,0,a,i-2*t),e.lineTo(Math.max(n,a),i-2*t),e.lineTo(Math.max(n,a),i),e.lineTo(a,i),e.arcTo(a,a,0,0,1,a,o/2-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeArrows2UTurnArrow.prototype.cst.U_TURN_ARROW,mxShapeArrows2UTurnArrow),mxShapeArrows2UTurnArrow.prototype.constraints=null,Graph.handleFactory[mxShapeArrows2UTurnArrow.prototype.cst.U_TURN_ARROW]=function(e){var t=[Graph.createHandle(e,["dy"],(function(e){var t=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+(e.height-t/2+o)/2,e.y+t/2-o)}),(function(e,t){this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2,e.y+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2-t.y)))/100}))],o=Graph.createHandle(e,["dx2"],(function(e){var t=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),n=(o=(e.height-t/2+o)/2,Math.max(0,Math.min(e.width-o,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)))));return new mxPoint(e.x+o+n,e.y+t/2)}),(function(e,t){var o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));o=(e.height-o/2+n)/2,this.state.style.dx2=Math.round(100*Math.max(0,Math.min(Math.max(e.width,o),t.x-e.x-o)))/100}));return t.push(o),e=Graph.createHandle(e,["arrowHead"],(function(e){var t=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),o=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+(e.height-t/2+o)/2,e.y+t)}),(function(e,t){this.state.style.arrowHead=Math.round(100*Math.max(2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(e.height/2,t.y-e.y)))/100})),t.push(e),t},mxShapeArrows2UTurnArrow.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),i=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),a=(o-i/2+n)/2,s=Math.max(0,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a+s,.5*i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(a+t),o-2*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,Math.max(t,a),o-2*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,Math.max(t,a),o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,Math.max(t,a),o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(a+t),o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o+.5*i-n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i-2*n,.5*(o+.5*i-n))),e},mxUtils.extend(mxAtlassianJiraIssue,mxRectangleShape),mxAtlassianJiraIssue.prototype.customProperties=[{name:"issueType",dispName:"Issue Type",type:"enum",enumList:[{val:"story",dispName:"Story"},{val:"task",dispName:"Task"},{val:"subTask",dispName:"Sub-Task"},{val:"feature",dispName:"Feature"},{val:"bug",dispName:"Bug"},{val:"techTask",dispName:"Tech Task"},{val:"epic",dispName:"Epic"},{val:"improvement",dispName:"Improvement"},{val:"fault",dispName:"Fault"},{val:"change",dispName:"Change"},{val:"access",dispName:"Access"},{val:"purchase",dispName:"Purchase"},{val:"itHelp",dispName:"IT Help"}]},{name:"issuePriority",dispName:"Issue Priority",type:"enum",enumList:[{val:"blocker",dispName:"Blocker"},{val:"critical",dispName:"Critical"},{val:"major",dispName:"Major"},{val:"minor",dispName:"Minor"},{val:"trivial",dispName:"Trivial"}]},{name:"issueStatus",dispName:"Issue Status",type:"enum",enumList:[{val:"todo",dispName:"TODO"},{val:"inProgress",dispName:"In Progress"},{val:"inReview",dispName:"In Review"},{val:"done",dispName:"Done"}]}],mxAtlassianJiraIssue.prototype.cst={ISSUE:"mxgraph.atlassian.issue"},mxAtlassianJiraIssue.prototype.paintForeground=function(e,t,o,n,i){switch(e.translate(t,o),i=mxUtils.getValue(this.style,"issueType","task"),o=mxUtils.getValue(this.style,"issuePriority","minor"),t=mxUtils.getValue(this.style,"issueStatus","todo"),e.setStrokeColor("none"),i){case"story":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.story"))&&(e.setFillColor("#61B659"),i.drawShape(e,this,5,5,10,10));break;case"task":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.task"))&&(e.setFillColor("#5EA3E4"),i.drawShape(e,this,5,5,10,10));break;case"subTask":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.subtask"))&&(e.setFillColor("#5EA3E4"),i.drawShape(e,this,5,5,10,10));break;case"feature":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.new_feature"))&&(e.setFillColor("#61B659"),i.drawShape(e,this,5,5,10,10));break;case"bug":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.bug"))&&(e.setFillColor("#CE0000"),i.drawShape(e,this,5,5,10,10));break;case"techTask":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.tech_task"))&&(e.setFillColor("#999C95"),i.drawShape(e,this,5,5,10,10));break;case"epic":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.epic"))&&(e.setFillColor("#9E4ADD"),i.drawShape(e,this,5,5,10,10));break;case"improvement":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.improvement"))&&(e.setFillColor("#61B659"),i.drawShape(e,this,5,5,10,10));break;case"fault":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.fault"))&&(e.setFillColor("#F8902F"),i.drawShape(e,this,5,5,10,10));break;case"change":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.change"))&&(e.setFillColor("#9E4ADD"),i.drawShape(e,this,5,5,10,10));break;case"access":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.access"))&&(e.setFillColor("#F8902F"),i.drawShape(e,this,5,5,10,10));break;case"purchase":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.purchase"))&&(e.setFillColor("#61B659"),i.drawShape(e,this,5,5,10,10));break;case"itHelp":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.it_help"))&&(e.setFillColor("#5EA3E4"),i.drawShape(e,this,5,5,10,10))}switch(o){case"blocker":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.no"))&&(e.setFillColor("#CE0000"),i.drawShape(e,this,85,5,10,10));break;case"critical":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.critical"))&&(e.setFillColor("#CE0000"),i.drawShape(e,this,86,3,8,14));break;case"major":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.double_up"))&&(e.setFillColor("#CE0000"),i.drawShape(e,this,85,5,10,10));break;case"minor":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.double"))&&(e.setFillColor("#2A8735"),i.drawShape(e,this,85,5,10,10));break;case"trivial":null!=(i=mxStencilRegistry.getStencil("mxgraph.atlassian.single"))&&(e.setFillColor("#9AA1B2"),i.drawShape(e,this,85,5,10,10))}switch(e.setFillColor("#FFFFFD"),e.setFontColor("#4E6B89"),t){case"todo":e.rect(n-45,5,40,20),e.fill(),e.text(n-25,15,0,0,"TO DO",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);break;case"inProgress":e.rect(n-85,5,80,20),e.fill(),e.text(n-45,15,0,0,"IN PROGRESS",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);break;case"inReview":e.rect(n-75,5,70,20),e.fill(),e.text(n-40,15,0,0,"IN REVIEW",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);break;case"done":e.rect(n-45,5,40,20),e.fill(),e.text(n-25,15,0,0,"DONE",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);break;default:o=mxUtils.getValue(this.style,"issueStatusWidth",6.5*t.length),e.rect(n-o-5,5,o,20),e.fill(),e.text(n-7,15,0,0,t,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)}},mxCellRenderer.registerShape(mxAtlassianJiraIssue.prototype.cst.ISSUE,mxAtlassianJiraIssue),mxUtils.extend(mxShapeBasicCross,mxActor),mxShapeBasicCross.prototype.cst={CROSS:"mxgraph.basic.cross2"},mxShapeBasicCross.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e.begin(),e.moveTo(.5*n+t,0),e.lineTo(.5*n+t,.5*i-t),e.lineTo(n,.5*i-t),e.lineTo(n,.5*i+t),e.lineTo(.5*n+t,.5*i+t),e.lineTo(.5*n+t,i),e.lineTo(.5*n-t,i),e.lineTo(.5*n-t,.5*i+t),e.lineTo(0,.5*i+t),e.lineTo(0,.5*i-t),e.lineTo(.5*n-t,.5*i-t),e.lineTo(.5*n-t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicCross.prototype.cst.CROSS,mxShapeBasicCross),mxShapeBasicCross.prototype.constraints=null,Graph.handleFactory[mxShapeBasicCross.prototype.cst.CROSS]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/2,e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+e.width/2+t,e.y+e.height/2-t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,t.x-e.x-e.width/2)))/100}))]},mxUtils.extend(mxShapeBasicRectCallout,mxActor),mxShapeBasicRectCallout.prototype.customProperties=[{name:"dx",dispName:"Callout Position",type:"float",min:0,defVal:30},{name:"dy",dispName:"Callout Size",type:"float",min:0,defVal:15}],mxShapeBasicRectCallout.prototype.cst={RECT_CALLOUT:"mxgraph.basic.rectCallout"},mxShapeBasicRectCallout.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),e.begin(),e.moveTo(t-.5*o,i-o),e.lineTo(0,i-o),e.lineTo(0,0),e.lineTo(n,0),e.lineTo(n,i-o),e.lineTo(t+.5*o,i-o),e.lineTo(t-o,i),e.close(),e.fillAndStroke()},mxShapeBasicRectCallout.prototype.getLabelMargins=function(){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))*this.scale):null},mxCellRenderer.registerShape(mxShapeBasicRectCallout.prototype.cst.RECT_CALLOUT,mxShapeBasicRectCallout),Graph.handleFactory[mxShapeBasicRectCallout.prototype.cst.RECT_CALLOUT]=function(e){return[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+t,e.y+e.height-o)}),(function(e,t){var o=.6*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy));this.state.style.dx=Math.round(100*Math.max(o,Math.min(e.width-o,t.x-e.x)))/100,this.state.style.dy=Math.round(Math.max(0,Math.min(e.height,e.y+e.height-t.y)))}))]},mxShapeBasicRectCallout.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n-i,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o-i))),e},mxUtils.extend(mxShapeBasicRoundRectCallout,mxActor),mxShapeBasicRoundRectCallout.prototype.cst={ROUND_RECT_CALLOUT:"mxgraph.basic.roundRectCallout"},mxShapeBasicRoundRectCallout.prototype.getLabelMargins=mxShapeBasicRectCallout.prototype.getLabelMargins,mxShapeBasicRoundRectCallout.prototype.customProperties=[{name:"size",dispName:"Arc Size",type:"float",min:0,defVal:5},{name:"dx",dispName:"Callout Position",type:"float",min:0,defVal:30},{name:"dy",dispName:"Callout Size",type:"float",min:0,defVal:15}],mxShapeBasicRoundRectCallout.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var a=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a=Math.min((i-o)/2,n/2,a),t=Math.max(a+.5*o,t),t=Math.min(n-a-.5*o,t),e.begin(),e.moveTo(t-.5*o,i-o),e.lineTo(a,i-o),e.arcTo(a,a,0,0,1,0,i-o-a),e.lineTo(0,a),e.arcTo(a,a,0,0,1,a,0),e.lineTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,i-o-a),e.arcTo(a,a,0,0,1,n-a,i-o),e.lineTo(t+.5*o,i-o),e.arcTo(1.9*o,1.4*o,0,0,1,t-o,i),e.arcTo(.9*o,1.4*o,0,0,0,t-.5*o,i-o),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicRoundRectCallout.prototype.cst.ROUND_RECT_CALLOUT,mxShapeBasicRoundRectCallout),mxShapeBasicRoundRectCallout.prototype.constraints=null,Graph.handleFactory[mxShapeBasicRoundRectCallout.prototype.cst.ROUND_RECT_CALLOUT]=function(e){return[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+t,e.y+e.height-o)}),(function(e,t){var o=.6*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy));this.state.style.dx=Math.round(100*Math.max(o,Math.min(e.width-o,t.x-e.x)))/100,this.state.style.dy=Math.round(Math.max(0,Math.min(e.height,e.y+e.height-t.y)))})),Graph.createHandle(e,["size"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(e.x+e.width-t,e.y+10)}),(function(e,t){var o=parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy));this.state.style.size=Math.round(100*Math.max(0,Math.min(e.width/2,(e.height-o)/2,e.x+e.width-t.x)))/100}))]},mxShapeBasicRoundRectCallout.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),a=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"size",this.size))));return a=Math.min((o-i)/2,t/2,a),n=Math.max(a+.5*i,n),n=Math.min(t-a-.5*i,n),a<.25*t&&(e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1))),a<.25*(o-i)&&(e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.25*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.75*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(o-i)))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.293*a,.293*a)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.293*a,.293*a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.293*a,o-i-.293*a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.293*a,o-i-.293*a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n-i,o)),e},mxUtils.extend(mxShapeBasicWave,mxActor),mxShapeBasicWave.prototype.customProperties=[{name:"dy",dispName:"Wave Size",type:"float",min:0,max:1,defVal:.3}],mxShapeBasicWave.prototype.cst={WAVE:"mxgraph.basic.wave2"},mxShapeBasicWave.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=i*Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),e.begin(),e.moveTo(0,t/2),e.quadTo(n/6,t*(1-1.4),n/3,t/2),e.quadTo(n/2,1.4*t,2*n/3,t/2),e.quadTo(5*n/6,t*(1-1.4),n,t/2),e.lineTo(n,i-t/2),e.quadTo(5*n/6,i-1.4*t,2*n/3,i-t/2),e.quadTo(n/2,i-t*(1-1.4),n/3,i-t/2),e.quadTo(n/6,i-1.4*t,0,i-t/2),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicWave.prototype.cst.WAVE,mxShapeBasicWave),mxShapeBasicWave.prototype.constraints=null,Graph.handleFactory[mxShapeBasicWave.prototype.cst.WAVE]=function(e){return[Graph.createHandle(e,["dy"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width/2,e.y+t*e.height)}),(function(e,t){this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/100}))]},mxShapeBasicWave.prototype.getConstraints=function(e,t,o){e=[];var n=o*Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t/6,.015*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t/3,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,.95*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.67*t,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.83*t,.015*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o-.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.83*t,o-.95*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.67*t,o-.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,o-.04*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t/3,o-.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t/6,o-.95*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*o)),e},mxUtils.extend(mxShapeBasicOctagon,mxActor),mxShapeBasicOctagon.prototype.customProperties=[{name:"dx",dispName:"Cutoff Size",type:"float",min:0,defVal:15}],mxShapeBasicOctagon.prototype.cst={OCTAGON:"mxgraph.basic.octagon2"},mxShapeBasicOctagon.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=2*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(t,0),e.lineTo(n-t,0),e.lineTo(n,t),e.lineTo(n,i-t),e.lineTo(n-t,i),e.lineTo(t,i),e.lineTo(0,i-t),e.lineTo(0,t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicOctagon.prototype.cst.OCTAGON,mxShapeBasicOctagon),mxShapeBasicOctagon.prototype.constraints=null,Graph.handleFactory[mxShapeBasicOctagon.prototype.cst.OCTAGON]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/4,e.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/4,e.width/4,t.x-e.x)))/100}))]},mxShapeBasicOctagon.prototype.getConstraints=function(e,t,o){e=[];var n=2*Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return n=.5*Math.min(.5*t,.5*o,n),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,o-n)),e},mxUtils.extend(mxShapeBasicIsoCube,mxActor),mxShapeBasicIsoCube.prototype.customProperties=[{name:"isoAngle",dispName:"Perspective Angle",type:"float",min:0,defVal:15}],mxShapeBasicIsoCube.prototype.cst={ISO_CUBE:"mxgraph.basic.isocube"},mxShapeBasicIsoCube.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,t=Math.min(n*Math.tan(t),.5*i),e.begin(),e.moveTo(.5*n,0),e.lineTo(n,t),e.lineTo(n,i-t),e.lineTo(.5*n,i),e.lineTo(0,i-t),e.lineTo(0,t),e.close(),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(0,t),e.lineTo(.5*n,2*t),e.lineTo(n,t),e.moveTo(.5*n,2*t),e.lineTo(.5*n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeBasicIsoCube.prototype.cst.ISO_CUBE,mxShapeBasicIsoCube),mxShapeBasicIsoCube.prototype.constraints=null,Graph.handleFactory[mxShapeBasicIsoCube.prototype.cst.ISO_CUBE]=function(e){return[Graph.createHandle(e,["isoAngle"],(function(e){var t=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",this.isoAngle))))*Math.PI/200;return new mxPoint(e.x,e.y+Math.min(e.width*Math.tan(t),.5*e.height))}),(function(e,t){this.state.style.isoAngle=Math.round(100*Math.max(0,Math.min(100,t.y-e.y)))/100}))]},mxShapeBasicIsoCube.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;return n=Math.min(t*Math.tan(n),.5*o),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o-n)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n)),e},mxUtils.extend(mxShapeBasicTriangleAcute,mxActor),mxShapeBasicTriangleAcute.prototype.customProperties=[{name:"dx",dispName:"Top",type:"float",min:0,max:1,defVal:.5}],mxShapeBasicTriangleAcute.prototype.cst={ACUTE_TRIANGLE:"mxgraph.basic.acute_triangle"},mxShapeBasicTriangleAcute.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e.begin(),e.moveTo(0,i),e.lineTo(t,0),e.lineTo(n,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE,mxShapeBasicTriangleAcute),mxShapeBasicTriangleAcute.prototype.constraints=null,Graph.handleFactory[mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+10)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))]},mxShapeBasicTriangleAcute.prototype.getConstraints=function(e,t,o){e=[];var n=t*Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,.5*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*(t-n),.5*o)),e},mxUtils.extend(mxShapeBasicTriangleObtuse,mxActor),mxShapeBasicTriangleObtuse.prototype.customProperties=[{name:"dx",dispName:"Bottom",type:"float",min:0,max:1,defVal:.25}],mxShapeBasicTriangleObtuse.prototype.cst={OBTUSE_TRIANGLE:"mxgraph.basic.obtuse_triangle"},mxShapeBasicTriangleObtuse.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e.begin(),e.moveTo(t,i),e.lineTo(0,0),e.lineTo(n,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE,mxShapeBasicTriangleObtuse),mxShapeBasicTriangleObtuse.prototype.constraints=null,Graph.handleFactory[mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+e.height-10)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))]},mxShapeBasicTriangleObtuse.prototype.getConstraints=function(e,t,o){e=[];var n=t*Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,.5*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t+n),o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,.5*o)),e},mxUtils.extend(mxShapeBasicDrop,mxActor),mxShapeBasicDrop.prototype.cst={DROP:"mxgraph.basic.drop"},mxShapeBasicDrop.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=i-(t=.5*Math.min(i,n));var a=Math.atan(Math.sqrt(o*o-t*t)/t);o=t*Math.sin(a),a=t*Math.cos(a),e.begin(),e.moveTo(.5*n,0),e.lineTo(.5*n+o,i-t-a),e.arcTo(t,t,0,0,1,.5*n+t,i-t),e.arcTo(t,t,0,0,1,.5*n,i),e.arcTo(t,t,0,0,1,.5*n-t,i-t),e.arcTo(t,t,0,0,1,.5*n-o,i-t-a),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicDrop.prototype.cst.DROP,mxShapeBasicDrop),mxShapeBasicDrop.prototype.constraints=null,mxUtils.extend(mxShapeBasicCone2,mxActor),mxShapeBasicCone2.prototype.customProperties=[{name:"dx",dispName:"Top",type:"float",min:0,max:1,defVal:.5},{name:"dy",dispName:"Bottom",type:"float",min:0,max:1,defVal:.9}],mxShapeBasicCone2.prototype.cst={CONE2:"mxgraph.basic.cone2"},mxShapeBasicCone2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=i-(o=i*Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))))),e.begin(),e.moveTo(t,0),0<o?(e.lineTo(n,i-o),e.arcTo(.5*n,o,0,0,1,.5*n,i),e.arcTo(.5*n,o,0,0,1,0,i-o)):(e.lineTo(n,i),e.lineTo(0,i)),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicCone2.prototype.cst.CONE2,mxShapeBasicCone2),mxShapeBasicCone2.prototype.constraints=null,Graph.handleFactory[mxShapeBasicCone2.prototype.cst.CONE2]=function(e){var t=[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+10)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))];return e=Graph.createHandle(e,["dy"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+10,e.y+t*e.height)}),(function(e,t){this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/100})),t.push(e),t},mxShapeBasicCone2.prototype.getConstraints=function(e,t,o){e=[];var n=t*Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=o-(i=o*Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-i)),e},mxUtils.extend(mxShapeBasicPyramid,mxActor),mxShapeBasicPyramid.prototype.customProperties=[{name:"dx1",dispName:"Top",type:"float",min:0,max:1,defVal:.4},{name:"dx2",dispName:"Bottom",type:"float",min:0,max:1,defVal:.6},{name:"dy1",dispName:"Perspective Left",type:"float",min:0,max:1,defVal:.9},{name:"dy2",dispName:"Perspective Right",type:"float",min:0,max:1,defVal:.8}],mxShapeBasicPyramid.prototype.cst={PYRAMID:"mxgraph.basic.pyramid"},mxShapeBasicPyramid.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),o=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2))));var a=i*Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),s=i*Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2))));e.begin(),e.moveTo(t,0),e.lineTo(n,s),e.lineTo(o,i),e.lineTo(0,a),e.close(),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(t,0),e.lineTo(o,i),e.stroke()},mxCellRenderer.registerShape(mxShapeBasicPyramid.prototype.cst.PYRAMID,mxShapeBasicPyramid),mxShapeBasicPyramid.prototype.constraints=null,Graph.handleFactory[mxShapeBasicPyramid.prototype.cst.PYRAMID]=function(e){var t=[Graph.createHandle(e,["dx1"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))));return new mxPoint(e.x+t*e.width,e.y+10)}),(function(e,t){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))],o=Graph.createHandle(e,["dx2"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(e.x+t*e.width,e.y+e.height-10)}),(function(e,t){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}));return t.push(o),o=Graph.createHandle(e,["dy1"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))));return new mxPoint(e.x+10,e.y+t*e.height)}),(function(e,t){this.state.style.dy1=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/100})),t.push(o),e=Graph.createHandle(e,["dy2"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))));return new mxPoint(e.x+e.width-10,e.y+t*e.height)}),(function(e,t){this.state.style.dy2=Math.round(100*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/100})),t.push(e),t},mxShapeBasicPyramid.prototype.getConstraints=function(e,t,o){e=[];var n=t*Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),i=t*Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),a=o*Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),s=o*Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2))));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t+n),.5*s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,s)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t+i),.5*(o+s))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*i,.5*(o+a))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,.5*a)),e},mxUtils.extend(mxShapeBasic4PointStar2,mxActor),mxShapeBasic4PointStar2.prototype.customProperties=[{name:"dx",dispName:"Thickness",type:"float",min:0,max:1,defVal:.8}],mxShapeBasic4PointStar2.prototype.cst={FOUR_POINT_STAR_2:"mxgraph.basic.4_point_star_2"},mxShapeBasic4PointStar2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=.5*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e.begin(),e.moveTo(0,.5*i),e.lineTo(t*n,t*i),e.lineTo(.5*n,0),e.lineTo(n-t*n,t*i),e.lineTo(n,.5*i),e.lineTo(n-t*n,i-t*i),e.lineTo(.5*n,i),e.lineTo(t*n,i-t*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasic4PointStar2.prototype.cst.FOUR_POINT_STAR_2,mxShapeBasic4PointStar2),mxShapeBasic4PointStar2.prototype.constraints=null,Graph.handleFactory[mxShapeBasic4PointStar2.prototype.cst.FOUR_POINT_STAR_2]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width/2,e.y+t*e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,2*(t.x-e.x)/e.width)))/100}))]},mxShapeBasic4PointStar2.prototype.getConstraints=function(e,t,o){return e=[],t=.5*Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(t,t),!1)),e.push(new mxConnectionConstraint(new mxPoint(1-t,t),!1)),e.push(new mxConnectionConstraint(new mxPoint(1-t,1-t),!1)),e.push(new mxConnectionConstraint(new mxPoint(t,1-t),!1)),e},mxUtils.extend(mxShapeBasicDiagSnipRect,mxActor),mxShapeBasicDiagSnipRect.prototype.customProperties=[{name:"dx",dispName:"Snip",type:"float",min:0,deVal:6}],mxShapeBasicDiagSnipRect.prototype.cst={DIAG_SNIP_RECT:"mxgraph.basic.diag_snip_rect"},mxShapeBasicDiagSnipRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=2*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(t,0),e.lineTo(n,0),e.lineTo(n,i-t),e.lineTo(n-t,i),e.lineTo(0,i),e.lineTo(0,t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicDiagSnipRect.prototype.cst.DIAG_SNIP_RECT,mxShapeBasicDiagSnipRect),mxShapeBasicDiagSnipRect.prototype.constraints=null,Graph.handleFactory[mxShapeBasicDiagSnipRect.prototype.cst.DIAG_SNIP_RECT]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/4,e.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/4,e.width/4,t.x-e.x)))/100}))]},mxShapeBasicDiagSnipRect.prototype.getConstraints=function(e,t,o){e=[];var n=2*Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return n=.5*Math.min(.5*t,.5*o,n),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,n)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,o-n)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeBasicDiagRoundRect,mxActor),mxShapeBasicDiagRoundRect.prototype.customProperties=[{name:"dx",dispName:"Rounding Size",type:"float",min:0,defVal:6}],mxShapeBasicDiagRoundRect.prototype.cst={DIAG_ROUND_RECT:"mxgraph.basic.diag_round_rect"},mxShapeBasicDiagRoundRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=2*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(t,0),e.lineTo(n,0),e.lineTo(n,i-t),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(0,i),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicDiagRoundRect.prototype.cst.DIAG_ROUND_RECT,mxShapeBasicDiagRoundRect),mxShapeBasicDiagRoundRect.prototype.constraints=null,Graph.handleFactory[mxShapeBasicDiagRoundRect.prototype.cst.DIAG_ROUND_RECT]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/4,e.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/4,e.width/4,t.x-e.x)))/100}))]},mxShapeBasicDiagRoundRect.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeBasicCornerRoundRect,mxActor),mxShapeBasicCornerRoundRect.prototype.customProperties=[{name:"dx",dispName:"Rounding Size",type:"float",min:0,defVal:6}],mxShapeBasicCornerRoundRect.prototype.cst={CORNER_ROUND_RECT:"mxgraph.basic.corner_round_rect"},mxShapeBasicCornerRoundRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=2*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(t,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicCornerRoundRect.prototype.cst.CORNER_ROUND_RECT,mxShapeBasicCornerRoundRect),mxShapeBasicCornerRoundRect.prototype.constraints=null,Graph.handleFactory[mxShapeBasicCornerRoundRect.prototype.cst.CORNER_ROUND_RECT]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/4,e.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/4,e.width/4,t.x-e.x)))/100}))]},mxShapeBasicCornerRoundRect.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeBasicPlaque,mxActor),mxShapeBasicPlaque.prototype.customProperties=[{name:"dx",dispName:"Cutoff Size",type:"float",min:0,defVal:6}],mxShapeBasicPlaque.prototype.cst={PLAQUE:"mxgraph.basic.plaque"},mxShapeBasicPlaque.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=2*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(n-t,0),e.arcTo(t,t,0,0,0,n,t),e.lineTo(n,i-t),e.arcTo(t,t,0,0,0,n-t,i),e.lineTo(t,i),e.arcTo(t,t,0,0,0,0,i-t),e.lineTo(0,t),e.arcTo(t,t,0,0,0,t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicPlaque.prototype.cst.PLAQUE,mxShapeBasicPlaque),mxShapeBasicPlaque.prototype.constraints=null,Graph.handleFactory[mxShapeBasicPlaque.prototype.cst.PLAQUE]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/4,e.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+1.41*t,e.y+1.41*t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/4,e.width/4,t.x-e.x)))/100}))]},mxShapeBasicPlaque.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeBasicFrame,mxActor),mxShapeBasicFrame.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",min:0,defVal:10}],mxShapeBasicFrame.prototype.cst={FRAME:"mxgraph.basic.frame"},mxShapeBasicFrame.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.lineTo(0,0),e.close(),e.moveTo(t,t),e.lineTo(t,i-t),e.lineTo(n-t,i-t),e.lineTo(n-t,t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicFrame.prototype.cst.FRAME,mxShapeBasicFrame),mxShapeBasicFrame.prototype.constraints=null,Graph.handleFactory[mxShapeBasicFrame.prototype.cst.FRAME]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/2,e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,t.x-e.x)))/100}))]},mxShapeBasicFrame.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return n=Math.min(.5*t,.5*o,n),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,0)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,0)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.25*o)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.75*o)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,o)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*o)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(t-2*n)+n,n)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(1.5*t-n),n)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-n,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,.25*(o-2*n)+n)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,.75*(o-2*n)+n)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-n,-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*(t-2*n)+n,o-n)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,0,-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(t-2*n)+n,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,n,-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,.75*(o-2*n)+n)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,.25*(o-2*n)+n)),e},mxUtils.extend(mxShapeBasicPlaqueFrame,mxActor),mxShapeBasicPlaqueFrame.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",mix:0,defVal:10}],mxShapeBasicPlaqueFrame.prototype.cst={PLAQUE_FRAME:"mxgraph.basic.plaque_frame"},mxShapeBasicPlaqueFrame.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.25*n,.25*i,t),e.begin(),e.moveTo(n-t,0),e.arcTo(t,t,0,0,0,n,t),e.lineTo(n,i-t),e.arcTo(t,t,0,0,0,n-t,i),e.lineTo(t,i),e.arcTo(t,t,0,0,0,0,i-t),e.lineTo(0,t),e.arcTo(t,t,0,0,0,t,0),e.close(),e.moveTo(2*t,t),e.arcTo(2*t,2*t,0,0,1,t,2*t),e.lineTo(t,i-2*t),e.arcTo(2*t,2*t,0,0,1,2*t,i-t),e.lineTo(n-2*t,i-t),e.arcTo(2*t,2*t,0,0,1,n-t,i-2*t),e.lineTo(n-t,2*t),e.arcTo(2*t,2*t,0,0,1,n-2*t,t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicPlaqueFrame.prototype.cst.PLAQUE_FRAME,mxShapeBasicPlaqueFrame),mxShapeBasicPlaqueFrame.prototype.constraints=null,Graph.handleFactory[mxShapeBasicPlaqueFrame.prototype.cst.PLAQUE_FRAME]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/4,e.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/4,e.width/4,t.x-e.x)))/100}))]},mxShapeBasicPlaqueFrame.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return n=Math.min(.5*t,.5*o,n),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-n,0)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,0,-n)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,n,0)),e},mxUtils.extend(mxShapeBasicRoundedFrame,mxActor),mxShapeBasicRoundedFrame.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",min:0,defVal:10}],mxShapeBasicRoundedFrame.prototype.cst={ROUNDED_FRAME:"mxgraph.basic.rounded_frame"},mxShapeBasicRoundedFrame.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.25*n,.25*i,t),e.begin(),e.moveTo(n-2*t,0),e.arcTo(2*t,2*t,0,0,1,n,2*t),e.lineTo(n,i-2*t),e.arcTo(2*t,2*t,0,0,1,n-2*t,i),e.lineTo(2*t,i),e.arcTo(2*t,2*t,0,0,1,0,i-2*t),e.lineTo(0,2*t),e.arcTo(2*t,2*t,0,0,1,2*t,0),e.close(),e.moveTo(2*t,t),e.arcTo(t,t,0,0,0,t,2*t),e.lineTo(t,i-2*t),e.arcTo(t,t,0,0,0,2*t,i-t),e.lineTo(n-2*t,i-t),e.arcTo(t,t,0,0,0,n-t,i-2*t),e.lineTo(n-t,2*t),e.arcTo(t,t,0,0,0,n-2*t,t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicRoundedFrame.prototype.cst.ROUNDED_FRAME,mxShapeBasicRoundedFrame),mxShapeBasicRoundedFrame.prototype.constraints=null,Graph.handleFactory[mxShapeBasicRoundedFrame.prototype.cst.ROUNDED_FRAME]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/4,e.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/4,e.width/4,t.x-e.x)))/100}))]},mxShapeBasicRoundedFrame.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return n=Math.min(.5*t,.5*o,n),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-n,0)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,0,-n)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,n,0)),e},mxUtils.extend(mxShapeBasicFrameCorner,mxActor),mxShapeBasicFrameCorner.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",min:0,defVal:10}],mxShapeBasicFrameCorner.prototype.cst={FRAME_CORNER:"mxgraph.basic.frame_corner"},mxShapeBasicFrameCorner.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n-t,t),e.lineTo(t,t),e.lineTo(t,i-t),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicFrameCorner.prototype.cst.FRAME_CORNER,mxShapeBasicFrameCorner),mxShapeBasicFrameCorner.prototype.constraints=null,Graph.handleFactory[mxShapeBasicFrameCorner.prototype.cst.FRAME_CORNER]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/2,e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,t.x-e.x)))/100}))]},mxShapeBasicFrameCorner.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return n=Math.min(.5*t,.5*o,n),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-n,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-2*n)+n,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,.5*(o-2*n)+n)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,n,-n)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeBasicDiagStripe,mxActor),mxShapeBasicDiagStripe.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",mix:0,defVal:10}],mxShapeBasicDiagStripe.prototype.cst={DIAG_STRIPE:"mxgraph.basic.diag_stripe"},mxShapeBasicDiagStripe.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(n,i,t),e.begin(),e.moveTo(0,i),e.lineTo(n,0),e.lineTo(n,Math.min(100*t/n,i)),e.lineTo(Math.min(100*t/i,n),i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicDiagStripe.prototype.cst.DIAG_STRIPE,mxShapeBasicDiagStripe),mxShapeBasicDiagStripe.prototype.constraints=null,Graph.handleFactory[mxShapeBasicDiagStripe.prototype.cst.DIAG_STRIPE]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+e.height)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,t.x-e.x)))/100}))]},mxShapeBasicDiagStripe.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return n=Math.min(t,o,n),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*Math.min(100*n/t,o))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,Math.min(100*n/t,o))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t+Math.min(100*n/o,t)),.5*(Math.min(100*n/t,o)+o))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,Math.min(100*n/o,t),o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*Math.min(100*n/o,t),o)),e},mxUtils.extend(mxShapeBasicDonut,mxActor),mxShapeBasicDonut.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",min:0,defVal:25}],mxShapeBasicDonut.prototype.cst={DONUT:"mxgraph.basic.donut"},mxShapeBasicDonut.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(0,.5*i),e.arcTo(.5*n,.5*i,0,0,1,.5*n,0),e.arcTo(.5*n,.5*i,0,0,1,n,.5*i),e.arcTo(.5*n,.5*i,0,0,1,.5*n,i),e.arcTo(.5*n,.5*i,0,0,1,0,.5*i),e.close(),e.moveTo(.5*n,t),e.arcTo(.5*n-t,.5*i-t,0,0,0,t,.5*i),e.arcTo(.5*n-t,.5*i-t,0,0,0,.5*n,i-t),e.arcTo(.5*n-t,.5*i-t,0,0,0,n-t,.5*i),e.arcTo(.5*n-t,.5*i-t,0,0,0,.5*n,t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicDonut.prototype.cst.DONUT,mxShapeBasicDonut),mxShapeBasicDonut.prototype.constraints=null,Graph.handleFactory[mxShapeBasicDonut.prototype.cst.DONUT]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/2,e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,t.x-e.x)))/100}))]},mxUtils.extend(mxShapeBasicLayeredRect,mxActor),mxShapeBasicLayeredRect.prototype.customProperties=[{name:"dx",dispName:"Layer Distance",type:"float",mix:0,defVal:10}],mxShapeBasicLayeredRect.prototype.cst={LAYERED_RECT:"mxgraph.basic.layered_rect"},mxShapeBasicLayeredRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(t,t),e.lineTo(n,t),e.lineTo(n,i),e.lineTo(t,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5*t,.5*t),e.lineTo(n-.5*t,.5*t),e.lineTo(n-.5*t,i-.5*t),e.lineTo(.5*t,i-.5*t),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,0),e.lineTo(n-t,0),e.lineTo(n-t,i-t),e.lineTo(0,i-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicLayeredRect.prototype.cst.LAYERED_RECT,mxShapeBasicLayeredRect),mxShapeBasicLayeredRect.prototype.constraints=null,Graph.handleFactory[mxShapeBasicLayeredRect.prototype.cst.LAYERED_RECT]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/2,e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+e.width-t,e.y+e.height-t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,-t.x+e.width+e.x)))/100}))]},mxShapeBasicLayeredRect.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));return n=Math.min(.5*t,.5*o,n),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(t-n),0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-n),0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*(t-n),0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*n,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.25*(o-n)+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*(o-n)+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.75*(o-n)+n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*(t-n)+n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-n)+n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(t-n)+n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,o-.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(o-n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o-n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(o-n))),e},mxUtils.extend(mxShapeBasicButton,mxActor),mxShapeBasicButton.prototype.customProperties=[{name:"dx",dispName:"Button Height",type:"float",min:0,defVal:10}],mxShapeBasicButton.prototype.cst={BUTTON:"mxgraph.basic.button"},mxShapeBasicButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setLineJoin("round"),e.begin(),e.moveTo(0,i),e.lineTo(0,0),e.lineTo(t,t),e.lineTo(t,i-t),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n-t,t),e.lineTo(t,t),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n,0),e.lineTo(n,i),e.lineTo(n-t,i-t),e.lineTo(n-t,t),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,i),e.lineTo(t,i-t),e.lineTo(n-t,i-t),e.lineTo(n,i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(0,i),e.lineTo(0,0),e.lineTo(t,t),e.lineTo(t,i-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicButton.prototype.cst.BUTTON,mxShapeBasicButton),mxShapeBasicButton.prototype.constraints=null,Graph.handleFactory[mxShapeBasicButton.prototype.cst.BUTTON]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/2,e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,t.x-e.x)))/100}))]},mxUtils.extend(mxShapeBasicShadedButton,mxActor),mxShapeBasicShadedButton.prototype.customProperties=[{name:"dx",dispName:"Button Height",type:"float",min:0,defVal:10}],mxShapeBasicShadedButton.prototype.cst={SHADED_BUTTON:"mxgraph.basic.shaded_button"},mxShapeBasicShadedButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setShadow(!1),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fill(),e.setFillColor("#ffffff"),e.setAlpha(.25),e.begin(),e.moveTo(0,i),e.lineTo(0,0),e.lineTo(t,t),e.lineTo(t,i-t),e.close(),e.fill(),e.setAlpha(.5),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n-t,t),e.lineTo(t,t),e.close(),e.fill(),e.setFillColor("#000000"),e.setAlpha(.25),e.begin(),e.moveTo(n,0),e.lineTo(n,i),e.lineTo(n-t,i-t),e.lineTo(n-t,t),e.close(),e.fill(),e.setAlpha(.5),e.begin(),e.moveTo(0,i),e.lineTo(t,i-t),e.lineTo(n-t,i-t),e.lineTo(n,i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeBasicShadedButton.prototype.cst.SHADED_BUTTON,mxShapeBasicShadedButton),mxShapeBasicShadedButton.prototype.constraints=null,Graph.handleFactory[mxShapeBasicShadedButton.prototype.cst.SHADED_BUTTON]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/2,e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,t.x-e.x)))/100}))]},mxUtils.extend(mxShapeBasicPie,mxActor),mxShapeBasicPie.prototype.customProperties=[{name:"startAngle",dispName:"Start Angle",type:"float",min:0,max:1,defVal:.2},{name:"endAngle",dispName:"End Angle",type:"float",min:0,max:1,defVal:.9}],mxShapeBasicPie.prototype.cst={PIE:"mxgraph.basic.pie"},mxShapeBasicPie.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle)))),s=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),l=2*Math.PI*a,r=2*Math.PI*s;o=.5*i;var p=(t=.5*n)+Math.sin(l)*t,m=o-Math.cos(l)*o,h=t+Math.sin(r)*t,x=o-Math.cos(r)*o;0>(r-=l)&&(r+=2*Math.PI),l=0,r>=Math.PI&&(l=1),e.begin(),s%=1,0==(a%=1)&&.5==s?(e.moveTo(t,o),e.lineTo(p,m),e.arcTo(t,o,0,0,1,n,.5*i),e.arcTo(t,o,0,0,1,.5*n,i)):.5==a&&0==s?(e.moveTo(t,o),e.lineTo(p,m),e.arcTo(t,o,0,0,1,0,.5*i),e.arcTo(t,o,0,0,1,.5*n,0)):(e.moveTo(t,o),e.lineTo(p,m),e.arcTo(t,o,0,l,1,h,x)),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicPie.prototype.cst.PIE,mxShapeBasicPie),mxShapeBasicPie.prototype.constraints=null,Graph.handleFactory[mxShapeBasicPie.prototype.cst.PIE]=function(e){var t=[Graph.createHandle(e,["startAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.startAngle=o}))];return e=Graph.createHandle(e,["endAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.endAngle=o})),t.push(e),t},mxUtils.extend(mxShapeBasicArc,mxActor),mxShapeBasicArc.prototype.customProperties=[{name:"startAngle",dispName:"Start Angle",type:"float",min:0,max:1,defVal:.3},{name:"endAngle",dispName:"End Angle",type:"float",min:0,max:1,defVal:.1}],mxShapeBasicArc.prototype.cst={ARC:"mxgraph.basic.arc"},mxShapeBasicArc.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle)))),s=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),l=2*Math.PI*a,r=2*Math.PI*s;o=.5*i;var p=(t=.5*n)+Math.sin(l)*t,m=o-Math.cos(l)*o,h=t+Math.sin(r)*t,x=o-Math.cos(r)*o;0>(r-=l)&&(r+=2*Math.PI),l=0,r>Math.PI&&(l=1),e.begin(),s%=1,0==(a%=1)&&.5==s?(e.moveTo(p,m),e.arcTo(t,o,0,0,1,n,.5*i),e.arcTo(t,o,0,0,1,.5*n,i)):.5==a&&0==s?(e.moveTo(p,m),e.arcTo(t,o,0,0,1,0,.5*i),e.arcTo(t,o,0,0,1,.5*n,0)):(e.moveTo(p,m),e.arcTo(t,o,0,l,1,h,x)),e.stroke()},mxCellRenderer.registerShape(mxShapeBasicArc.prototype.cst.ARC,mxShapeBasicArc),mxShapeBasicArc.prototype.constraints=null,Graph.handleFactory[mxShapeBasicArc.prototype.cst.ARC]=function(e){var t=[Graph.createHandle(e,["startAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.startAngle=o}))];return e=Graph.createHandle(e,["endAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.endAngle=o})),t.push(e),t},mxUtils.extend(mxShapeBasicPartConcEllipse,mxActor),mxShapeBasicPartConcEllipse.prototype.customProperties=[{name:"startAngle",dispName:"Start Angle",type:"float",min:0,max:1,defVal:.25},{name:"endAngle",dispName:"End Angle",type:"float",min:0,max:1,defVal:.1},{name:"arcWidth",dispName:"Arc Width",type:"float",min:0,max:1,defVal:.5}],mxShapeBasicPartConcEllipse.prototype.cst={PART_CONC_ELLIPSE:"mxgraph.basic.partConcEllipse"},mxShapeBasicPartConcEllipse.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle))));t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),o=(n*=.5)*(s=1-Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arcWidth",this.arcWidth)))));var s=(i*=.5)*s,l=t-a;0>l?l+=2*Math.PI:l==Math.PI&&(t+=1e-5);var r=n+Math.sin(a)*n,p=i-Math.cos(a)*i,m=n+Math.sin(a)*o,h=(a=i-Math.cos(a)*s,n+Math.sin(t)*n),x=i-Math.cos(t)*i,c=n+Math.sin(t)*o;t=i-Math.cos(t)*s;var u=0;l>=Math.PI&&(u=1),e.begin(),e.moveTo(r,p),e.arcTo(n,i,0,u,1,h,x),e.lineTo(c,t),e.arcTo(o,s,0,u,0,m,a),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE,mxShapeBasicPartConcEllipse),mxShapeBasicPartConcEllipse.prototype.constraints=null,Graph.handleFactory[mxShapeBasicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE]=function(e){var t=[Graph.createHandle(e,["startAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.startAngle=o}))],o=Graph.createHandle(e,["endAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.endAngle=o}));return t.push(o),e=Graph.createHandle(e,["arcWidth"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"arcWidth",this.arcWidth))));return new mxPoint(e.x+e.width/2,e.y+t*e.height*.5)}),(function(e,t){this.state.style.arcWidth=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,(t.y-e.y)/(.5*e.height))))/100})),t.push(e),t},mxUtils.extend(mxShapeBasicNumEntryVert,mxActor),mxShapeBasicNumEntryVert.prototype.cst={NUM_ENTRY_VERT:"mxgraph.basic.numberedEntryVert"},mxShapeBasicNumEntryVert.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),t=Math.min(t,n-10,i-5),e.ellipse(.5*n-.5*t,0,t,t),e.fillAndStroke(),e.begin(),e.moveTo(0,.5*t),e.lineTo(.5*n-.5*t-5,.5*t),e.arcTo(.5*t+5,.5*t+5,0,0,0,.5*n+.5*t+5,.5*t),e.lineTo(n,.5*t),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicNumEntryVert.prototype.cst.NUM_ENTRY_VERT,mxShapeBasicNumEntryVert),mxShapeBasicNumEntryVert.prototype.constraints=null,Graph.handleFactory[mxShapeBasicNumEntryVert.prototype.cst.NUM_ENTRY_VERT]=function(e){return[Graph.createHandle(e,["dy"],(function(e){var t=Math.max(0,Math.min(e.width,e.width,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width/2,e.y+t)}),(function(e,t){this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height,e.width,t.y-e.y)))/100}))]},mxUtils.extend(mxShapeBasicBendingArch,mxActor),mxShapeBasicBendingArch.prototype.cst={BENDING_ARCH:"mxgraph.basic.bendingArch"},mxShapeBasicBendingArch.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle)))),s=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),l=(t=.5*n)*(r=1-Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arcWidth",this.arcWidth))))),r=(o=.5*i)*r,p=t+Math.sin(a)*t,m=o-Math.cos(a)*o,h=t+Math.sin(a)*l,x=o-Math.cos(a)*r,c=t+Math.sin(s)*t,u=o-Math.cos(s)*o,S=t+Math.sin(s)*l,T=o-Math.cos(s)*r;0>(s-=a)&&(s+=2*Math.PI),a=0,s>Math.PI&&(a=1),s=l-5;var d=r-5;e.ellipse(.5*n-s,.5*i-d,2*s,2*d),e.fillAndStroke(),e.begin(),e.moveTo(p,m),e.arcTo(t,o,0,a,1,c,u),e.lineTo(S,T),e.arcTo(l,r,0,a,0,h,x),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicBendingArch.prototype.cst.BENDING_ARCH,mxShapeBasicBendingArch),mxShapeBasicBendingArch.prototype.constraints=null,Graph.handleFactory[mxShapeBasicBendingArch.prototype.cst.BENDING_ARCH]=function(e){var t=[Graph.createHandle(e,["startAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.startAngle=o}))],o=Graph.createHandle(e,["endAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.endAngle=o}));return t.push(o),e=Graph.createHandle(e,["arcWidth"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"arcWidth",this.arcWidth))));return new mxPoint(e.x+e.width/2,e.y+t*e.height*.5)}),(function(e,t){this.state.style.arcWidth=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,(t.y-e.y)/(.5*e.height))))/100})),t.push(e),t},mxUtils.extend(mxShapeBasicThreeCornerRoundRect,mxActor),mxShapeBasicThreeCornerRoundRect.prototype.customProperties=[{name:"dx",dispName:"Rounding Size",type:"float",min:0,defVal:6}],mxShapeBasicThreeCornerRoundRect.prototype.cst={THREE_CORNER_ROUND_RECT:"mxgraph.basic.three_corner_round_rect"},mxShapeBasicThreeCornerRoundRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=2*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.min(.5*n,.5*i,t),e.begin(),e.moveTo(t,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i-t),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(0,i),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBasicThreeCornerRoundRect.prototype.cst.THREE_CORNER_ROUND_RECT,mxShapeBasicThreeCornerRoundRect),mxShapeBasicThreeCornerRoundRect.prototype.constraints=null,Graph.handleFactory[mxShapeBasicThreeCornerRoundRect.prototype.cst.THREE_CORNER_ROUND_RECT]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/4,e.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.height/4,e.width/4,t.x-e.x)))/100}))]},mxShapeBasicThreeCornerRoundRect.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeBasicRect2,mxActor),mxShapeBasicRect2.prototype.cst={RECT2:"mxgraph.basic.rect"},mxShapeBasicRect2.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}],mxShapeBasicRect2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=mxUtils.getValue(this.style,"rectStyle",this.rectStyle),s=mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),l=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),r=Math.max(0,Math.min(50,l));l=Math.min(.5*i,.5*n,l),s||(l=r*Math.min(n,i)/100),r=mxUtils.getValue(this.style,"rectOutline",this.rectOutline);var p=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),m=Math.max(0,Math.min(50,p));l=Math.min(l,.5*Math.min(n,i)),s||(p=Math.min(m*Math.min(n,i)/100)),p=Math.min(p,.5*Math.min(n,i)-l),s=mxUtils.getValue(this.style,"top",!0),m=mxUtils.getValue(this.style,"right",!0);var h,x=mxUtils.getValue(this.style,"bottom",!0),c=mxUtils.getValue(this.style,"left",!0),u=mxUtils.getValue(this.style,"topLeftStyle","default"),S=mxUtils.getValue(this.style,"topRightStyle","default"),T=mxUtils.getValue(this.style,"bottomRightStyle","default"),d=mxUtils.getValue(this.style,"bottomLeftStyle","default"),C=mxUtils.getValue(this.style,"fillColor","none");mxUtils.getValue(this.style,"fillColor2","none");var y=mxUtils.getValue(this.style,"gradientColor2","none"),g=mxUtils.getValue(this.style,"gradientDirection2","south"),f=mxUtils.getValue(this.style,"opacity","100");if((s||m||x||c)&&"frame"!=r){e.begin(),s?mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c):e.moveTo(0,0),s&&mxShapeBasicRect2.prototype.paintNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),m&&mxShapeBasicRect2.prototype.paintNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),x&&mxShapeBasicRect2.prototype.paintSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),c&&mxShapeBasicRect2.prototype.paintSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),e.close(),e.fill(),e.setShadow(!1),h=mxUtils.getValue(this.style,"fillColor2","none"),e.setFillColor(h);var w=f;"none"==h&&(w=0),"none"==y&&(f=0),e.setGradient(h,y,0,0,n,i,g,w,f),e.begin(),s?mxShapeBasicRect2.prototype.moveNWInner(e,t,o,n,i,a,u,l,p,s,c):e.moveTo(p,0),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),c&&x&&mxShapeBasicRect2.prototype.paintSWInner(e,t,o,n,i,a,d,l,p,x),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),x&&m&&mxShapeBasicRect2.prototype.paintSEInner(e,t,o,n,i,a,T,l,p),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),m&&s&&mxShapeBasicRect2.prototype.paintNEInner(e,t,o,n,i,a,S,l,p),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),s&&c&&mxShapeBasicRect2.prototype.paintNWInner(e,t,o,n,i,a,u,l,p),e.fill(),"none"==C&&(e.begin(),mxShapeBasicRect2.prototype.paintFolds(e,t,o,n,i,a,u,S,T,d,l,s,m,x,c),e.stroke())}s||m||x||!c?s||m||!x||c?!s&&!m&&x&&c?"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.paintSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),"double"==r&&(mxShapeBasicRect2.prototype.moveNWInner(e,t,o,n,i,a,u,l,p,s,c),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),mxShapeBasicRect2.prototype.paintSWInner(e,t,o,n,i,a,d,l,p,x),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.paintSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),mxShapeBasicRect2.prototype.lineNWInner(e,t,o,n,i,a,u,l,p,s,c),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),mxShapeBasicRect2.prototype.paintSWInner(e,t,o,n,i,a,d,l,p,x),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),e.close(),e.fillAndStroke()):s||!m||x||c?!s&&m&&!x&&c?"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveSW(e,t,o,n,i,a,u,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),"double"==r&&(mxShapeBasicRect2.prototype.moveNWInner(e,t,o,n,i,a,u,l,p,s,c),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c)),e.stroke(),e.begin(),mxShapeBasicRect2.prototype.moveNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),"double"==r&&(mxShapeBasicRect2.prototype.moveSEInner(e,t,o,n,i,a,T,l,p,x),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveSW(e,t,o,n,i,a,u,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),mxShapeBasicRect2.prototype.lineNWInner(e,t,o,n,i,a,u,l,p,s,c),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),e.close(),e.fillAndStroke(),e.begin(),mxShapeBasicRect2.prototype.moveNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.lineSEInner(e,t,o,n,i,a,T,l,p,x),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),e.close(),e.fillAndStroke()):!s&&m&&x&&!c?"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.paintSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),"double"==r&&(mxShapeBasicRect2.prototype.moveSWInner(e,t,o,n,i,a,d,l,p,c),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),mxShapeBasicRect2.prototype.paintSEInner(e,t,o,n,i,a,T,l,p),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.paintSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.lineSWInner(e,t,o,n,i,a,d,l,p,c),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),mxShapeBasicRect2.prototype.paintSEInner(e,t,o,n,i,a,T,l,p),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),e.close(),e.fillAndStroke()):!s&&m&&x&&c?"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.paintSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.paintSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),"double"==r&&(mxShapeBasicRect2.prototype.moveNWInner(e,t,o,n,i,a,u,l,p,s,c),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),mxShapeBasicRect2.prototype.paintSWInner(e,t,o,n,i,a,d,l,p,x),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),mxShapeBasicRect2.prototype.paintSEInner(e,t,o,n,i,a,T,l,p),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.paintSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.paintSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),mxShapeBasicRect2.prototype.lineNWInner(e,t,o,n,i,a,u,l,p,s,c),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),mxShapeBasicRect2.prototype.paintSWInner(e,t,o,n,i,a,d,l,p,x),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),mxShapeBasicRect2.prototype.paintSEInner(e,t,o,n,i,a,T,l,p),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),e.close(),e.fillAndStroke()):!s||m||x||c?s&&!m&&!x&&c?"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),mxShapeBasicRect2.prototype.paintNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),"double"==r&&(mxShapeBasicRect2.prototype.moveNEInner(e,t,o,n,i,a,S,l,p,m),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),mxShapeBasicRect2.prototype.paintNWInner(e,t,o,n,i,a,u,l,p),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),mxShapeBasicRect2.prototype.paintNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.lineNEInner(e,t,o,n,i,a,S,l,p,m),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),mxShapeBasicRect2.prototype.paintNWInner(e,t,o,n,i,a,u,l,p),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),e.close(),e.fillAndStroke()):s&&!m&&x&&!c?"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),"double"==r&&(mxShapeBasicRect2.prototype.moveNEInner(e,t,o,n,i,a,S,l,p,m),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s)),e.stroke(),e.begin(),mxShapeBasicRect2.prototype.moveSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),"double"==r&&(mxShapeBasicRect2.prototype.moveSWInner(e,t,o,n,i,a,d,l,p,c),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.lineNEInner(e,t,o,n,i,a,S,l,p,m),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),e.close(),e.fillAndStroke(),e.begin(),mxShapeBasicRect2.prototype.moveSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.lineSWInner(e,t,o,n,i,a,d,l,p,c),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),e.close(),e.fillAndStroke()):s&&!m&&x&&c?"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.paintSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),mxShapeBasicRect2.prototype.paintNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),"double"==r&&(mxShapeBasicRect2.prototype.moveNEInner(e,t,o,n,i,a,S,l,p,m),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),mxShapeBasicRect2.prototype.paintNWInner(e,t,o,n,i,a,u,l,p),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),mxShapeBasicRect2.prototype.paintSWInner(e,t,o,n,i,a,d,l,p,x),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.paintSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),mxShapeBasicRect2.prototype.paintNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.lineNEInner(e,t,o,n,i,a,S,l,p,m),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),mxShapeBasicRect2.prototype.paintNWInner(e,t,o,n,i,a,u,l,p),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),mxShapeBasicRect2.prototype.paintSWInner(e,t,o,n,i,a,d,l,p,x),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),e.close(),e.fillAndStroke()):s&&m&&!x&&!c?"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.paintNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),"double"==r&&(mxShapeBasicRect2.prototype.moveSEInner(e,t,o,n,i,a,T,l,p,x),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),mxShapeBasicRect2.prototype.paintNEInner(e,t,o,n,i,a,S,l,p),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.paintNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.lineSEInner(e,t,o,n,i,a,T,l,p,x),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),mxShapeBasicRect2.prototype.paintNEInner(e,t,o,n,i,a,S,l,p),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),e.close(),e.fillAndStroke()):s&&m&&!x&&c?"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),mxShapeBasicRect2.prototype.paintNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.paintNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),"double"==r&&(mxShapeBasicRect2.prototype.moveSEInner(e,t,o,n,i,a,T,l,p,x),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),mxShapeBasicRect2.prototype.paintNEInner(e,t,o,n,i,a,S,l,p),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),mxShapeBasicRect2.prototype.paintNWInner(e,t,o,n,i,a,u,l,p),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),mxShapeBasicRect2.prototype.paintNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.paintNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.lineSEInner(e,t,o,n,i,a,T,l,p,x),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),mxShapeBasicRect2.prototype.paintNEInner(e,t,o,n,i,a,S,l,p),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),mxShapeBasicRect2.prototype.paintNWInner(e,t,o,n,i,a,u,l,p),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),e.close(),e.fillAndStroke()):s&&m&&x&&!c?"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.paintNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.paintSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),"double"==r&&(mxShapeBasicRect2.prototype.moveSWInner(e,t,o,n,i,a,d,l,p,c),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),mxShapeBasicRect2.prototype.paintSEInner(e,t,o,n,i,a,T,l,p),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),mxShapeBasicRect2.prototype.paintNEInner(e,t,o,n,i,a,S,l,p),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.paintNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.paintSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.lineSWInner(e,t,o,n,i,a,d,l,p,c),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),mxShapeBasicRect2.prototype.paintSEInner(e,t,o,n,i,a,T,l,p),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),mxShapeBasicRect2.prototype.paintNEInner(e,t,o,n,i,a,S,l,p),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),e.close(),e.fillAndStroke()):s&&m&&x&&c&&("frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.paintNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.paintSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.paintSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),e.close(),"double"==r&&(mxShapeBasicRect2.prototype.moveSWInner(e,t,o,n,i,a,d,l,p,c),mxShapeBasicRect2.prototype.paintSWInner(e,t,o,n,i,a,d,l,p,x),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),mxShapeBasicRect2.prototype.paintSEInner(e,t,o,n,i,a,T,l,p),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),mxShapeBasicRect2.prototype.paintNEInner(e,t,o,n,i,a,S,l,p),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),mxShapeBasicRect2.prototype.paintNWInner(e,t,o,n,i,a,u,l,p),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),e.close()),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.paintNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.paintSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.paintSW(e,t,o,n,i,a,d,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),e.close(),mxShapeBasicRect2.prototype.moveSWInner(e,t,o,n,i,a,d,l,p,c),mxShapeBasicRect2.prototype.paintSWInner(e,t,o,n,i,a,d,l,p,x),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),mxShapeBasicRect2.prototype.paintSEInner(e,t,o,n,i,a,T,l,p),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),mxShapeBasicRect2.prototype.paintNEInner(e,t,o,n,i,a,S,l,p),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),mxShapeBasicRect2.prototype.paintNWInner(e,t,o,n,i,a,u,l,p),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),e.close(),e.fillAndStroke())):"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),"double"==r&&(mxShapeBasicRect2.prototype.moveNEInner(e,t,o,n,i,a,S,l,p,m),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveNW(e,t,o,n,i,a,u,l,c),mxShapeBasicRect2.prototype.paintTop(e,t,o,n,i,a,S,l,m),mxShapeBasicRect2.prototype.lineNEInner(e,t,o,n,i,a,S,l,p,m),mxShapeBasicRect2.prototype.paintTopInner(e,t,o,n,i,a,u,l,p,c,s),e.close(),e.fillAndStroke()):"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),"double"==r&&(mxShapeBasicRect2.prototype.moveSEInner(e,t,o,n,i,a,T,l,p,x),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveNE(e,t,o,n,i,a,S,l,s),mxShapeBasicRect2.prototype.paintRight(e,t,o,n,i,a,T,l,x),mxShapeBasicRect2.prototype.lineSEInner(e,t,o,n,i,a,T,l,p,x),mxShapeBasicRect2.prototype.paintRightInner(e,t,o,n,i,a,S,l,p,s,m),e.close(),e.fillAndStroke()):"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),"double"==r&&(mxShapeBasicRect2.prototype.moveSWInner(e,t,o,n,i,a,d,l,p,c),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveSE(e,t,o,n,i,a,T,l,m),mxShapeBasicRect2.prototype.paintBottom(e,t,o,n,i,a,d,l,c),mxShapeBasicRect2.prototype.lineSWInner(e,t,o,n,i,a,d,l,p,c),mxShapeBasicRect2.prototype.paintBottomInner(e,t,o,n,i,a,T,l,p,m,x),e.close(),e.fillAndStroke()):"frame"!=r?(e.begin(),mxShapeBasicRect2.prototype.moveSW(e,t,o,n,i,a,u,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),"double"==r&&(mxShapeBasicRect2.prototype.moveNWInner(e,t,o,n,i,a,u,l,p,s,c),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c)),e.stroke()):(e.begin(),mxShapeBasicRect2.prototype.moveSW(e,t,o,n,i,a,u,l,x),mxShapeBasicRect2.prototype.paintLeft(e,t,o,n,i,a,u,l,s),mxShapeBasicRect2.prototype.lineNWInner(e,t,o,n,i,a,u,l,p,s,c),mxShapeBasicRect2.prototype.paintLeftInner(e,t,o,n,i,a,d,l,p,x,c),e.close(),e.fillAndStroke()),e.begin(),mxShapeBasicRect2.prototype.paintFolds(e,t,o,n,i,a,u,S,T,d,l,s,m,x,c),e.stroke()},mxShapeBasicRect2.prototype.moveNW=function(e,t,o,n,i,a,s,l,r){"square"==s||"default"==s&&"square"==a||!r?e.moveTo(0,0):e.moveTo(0,l)},mxShapeBasicRect2.prototype.moveNE=function(e,t,o,n,i,a,s,l,r){"square"==s||"default"==s&&"square"==a||!r?e.moveTo(n,0):e.moveTo(n-l,0)},mxShapeBasicRect2.prototype.moveSE=function(e,t,o,n,i,a,s,l,r){"square"==s||"default"==s&&"square"==a||!r?e.moveTo(n,i):e.moveTo(n,i-l)},mxShapeBasicRect2.prototype.moveSW=function(e,t,o,n,i,a,s,l,r){"square"==s||"default"==s&&"square"==a||!r?e.moveTo(0,i):e.moveTo(l,i)},mxShapeBasicRect2.prototype.paintNW=function(e,t,o,n,i,a,s,l,r){r?"rounded"==s||"default"==s&&"rounded"==a||"invRound"==s||"default"==s&&"invRound"==a?(t=0,("rounded"==s||"default"==s&&"rounded"==a)&&(t=1),e.arcTo(l,l,0,0,t,l,0)):("snip"==s||"default"==s&&"snip"==a||"fold"==s||"default"==s&&"fold"==a)&&e.lineTo(l,0):e.lineTo(0,0)},mxShapeBasicRect2.prototype.paintTop=function(e,t,o,n,i,a,s,l,r){"square"==s||"default"==s&&"square"==a||!r?e.lineTo(n,0):e.lineTo(n-l,0)},mxShapeBasicRect2.prototype.paintNE=function(e,t,o,n,i,a,s,l,r){r?"rounded"==s||"default"==s&&"rounded"==a||"invRound"==s||"default"==s&&"invRound"==a?(t=0,("rounded"==s||"default"==s&&"rounded"==a)&&(t=1),e.arcTo(l,l,0,0,t,n,l)):("snip"==s||"default"==s&&"snip"==a||"fold"==s||"default"==s&&"fold"==a)&&e.lineTo(n,l):e.lineTo(n,0)},mxShapeBasicRect2.prototype.paintRight=function(e,t,o,n,i,a,s,l,r){"square"==s||"default"==s&&"square"==a||!r?e.lineTo(n,i):e.lineTo(n,i-l)},mxShapeBasicRect2.prototype.paintLeft=function(e,t,o,n,i,a,s,l,r){"square"==s||"default"==s&&"square"==a||!r?e.lineTo(0,0):e.lineTo(0,l)},mxShapeBasicRect2.prototype.paintSE=function(e,t,o,n,i,a,s,l,r){r?"rounded"==s||"default"==s&&"rounded"==a||"invRound"==s||"default"==s&&"invRound"==a?(t=0,("rounded"==s||"default"==s&&"rounded"==a)&&(t=1),e.arcTo(l,l,0,0,t,n-l,i)):("snip"==s||"default"==s&&"snip"==a||"fold"==s||"default"==s&&"fold"==a)&&e.lineTo(n-l,i):e.lineTo(n,i)},mxShapeBasicRect2.prototype.paintBottom=function(e,t,o,n,i,a,s,l,r){"square"==s||"default"==s&&"square"==a||!r?e.lineTo(0,i):e.lineTo(l,i)},mxShapeBasicRect2.prototype.paintSW=function(e,t,o,n,i,a,s,l,r){r?"rounded"==s||"default"==s&&"rounded"==a||"invRound"==s||"default"==s&&"invRound"==a?(t=0,("rounded"==s||"default"==s&&"rounded"==a)&&(t=1),e.arcTo(l,l,0,0,t,0,i-l)):("snip"==s||"default"==s&&"snip"==a||"fold"==s||"default"==s&&"fold"==a)&&e.lineTo(0,i-l):e.lineTo(0,i)},mxShapeBasicRect2.prototype.paintNWInner=function(e,t,o,n,i,a,s,l,r){"rounded"==s||"default"==s&&"rounded"==a?e.arcTo(l-.5*r,l-.5*r,0,0,0,r,.5*r+l):"invRound"==s||"default"==s&&"invRound"==a?e.arcTo(l+r,l+r,0,0,1,r,r+l):"snip"==s||"default"==s&&"snip"==a?e.lineTo(r,.5*r+l):("fold"==s||"default"==s&&"fold"==a)&&(e.lineTo(r+l,r+l),e.lineTo(r,r+l))},mxShapeBasicRect2.prototype.paintTopInner=function(e,t,o,n,i,a,s,l,r,p,m){p||m?!p&&m?e.lineTo(0,r):p&&!m?e.lineTo(r,0):p?"square"==s||"default"==s&&"square"==a?e.lineTo(r,r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.lineTo(l+.5*r,r):e.lineTo(l+r,r):e.lineTo(0,r):e.lineTo(0,0)},mxShapeBasicRect2.prototype.paintNEInner=function(e,t,o,n,i,a,s,l,r){"rounded"==s||"default"==s&&"rounded"==a?e.arcTo(l-.5*r,l-.5*r,0,0,0,n-l-.5*r,r):"invRound"==s||"default"==s&&"invRound"==a?e.arcTo(l+r,l+r,0,0,1,n-l-r,r):"snip"==s||"default"==s&&"snip"==a?e.lineTo(n-l-.5*r,r):("fold"==s||"default"==s&&"fold"==a)&&(e.lineTo(n-l-r,l+r),e.lineTo(n-l-r,r))},mxShapeBasicRect2.prototype.paintRightInner=function(e,t,o,n,i,a,s,l,r,p,m){p||m?!p&&m?e.lineTo(n-r,0):p&&!m?e.lineTo(n,r):p?"square"==s||"default"==s&&"square"==a?e.lineTo(n-r,r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.lineTo(n-r,l+.5*r):e.lineTo(n-r,l+r):e.lineTo(n-r,0):e.lineTo(n,0)},mxShapeBasicRect2.prototype.paintLeftInner=function(e,t,o,n,i,a,s,l,r,p,m){p||m?!p&&m?e.lineTo(r,i):p&&!m?e.lineTo(0,i-r):p?"square"==s||"default"==s&&"square"==a?e.lineTo(r,i-r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.lineTo(r,i-l-.5*r):e.lineTo(r,i-l-r):e.lineTo(r,i):e.lineTo(0,i)},mxShapeBasicRect2.prototype.paintSEInner=function(e,t,o,n,i,a,s,l,r){"rounded"==s||"default"==s&&"rounded"==a?e.arcTo(l-.5*r,l-.5*r,0,0,0,n-r,i-l-.5*r):"invRound"==s||"default"==s&&"invRound"==a?e.arcTo(l+r,l+r,0,0,1,n-r,i-l-r):"snip"==s||"default"==s&&"snip"==a?e.lineTo(n-r,i-l-.5*r):("fold"==s||"default"==s&&"fold"==a)&&(e.lineTo(n-l-r,i-l-r),e.lineTo(n-r,i-l-r))},mxShapeBasicRect2.prototype.paintBottomInner=function(e,t,o,n,i,a,s,l,r,p,m){p||m?!p&&m?e.lineTo(n,i-r):p&&!m?e.lineTo(n-r,i):"square"==s||"default"==s&&"square"==a||!p?e.lineTo(n-r,i-r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.lineTo(n-l-.5*r,i-r):e.lineTo(n-l-r,i-r):e.lineTo(n,i)},mxShapeBasicRect2.prototype.paintSWInner=function(e,t,o,n,i,a,s,l,r,p){p?"square"==s||"default"==s&&"square"==a?e.lineTo(r,i-r):"rounded"==s||"default"==s&&"rounded"==a?e.arcTo(l-.5*r,l-.5*r,0,0,0,l+.5*r,i-r):"invRound"==s||"default"==s&&"invRound"==a?e.arcTo(l+r,l+r,0,0,1,l+r,i-r):"snip"==s||"default"==s&&"snip"==a?e.lineTo(l+.5*r,i-r):("fold"==s||"default"==s&&"fold"==a)&&(e.lineTo(r+l,i-l-r),e.lineTo(r+l,i-r)):e.lineTo(r,i)},mxShapeBasicRect2.prototype.moveSWInner=function(e,t,o,n,i,a,s,l,r,p){p?"square"==s||"default"==s&&"square"==a?e.moveTo(r,i-r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.moveTo(r,i-l-.5*r):("invRound"==s||"default"==s&&"invRound"==a||"fold"==s||"default"==s&&"fold"==a)&&e.moveTo(r,i-l-r):e.moveTo(0,i-r)},mxShapeBasicRect2.prototype.lineSWInner=function(e,t,o,n,i,a,s,l,r,p){p?"square"==s||"default"==s&&"square"==a?e.lineTo(r,i-r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.lineTo(r,i-l-.5*r):("invRound"==s||"default"==s&&"invRound"==a||"fold"==s||"default"==s&&"fold"==a)&&e.lineTo(r,i-l-r):e.lineTo(0,i-r)},mxShapeBasicRect2.prototype.moveSEInner=function(e,t,o,n,i,a,s,l,r,p){p?"square"==s||"default"==s&&"square"==a?e.moveTo(n-r,i-r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.moveTo(n-r,i-l-.5*r):("invRound"==s||"default"==s&&"invRound"==a||"fold"==s||"default"==s&&"fold"==a)&&e.moveTo(n-r,i-l-r):e.moveTo(n-r,i)},mxShapeBasicRect2.prototype.lineSEInner=function(e,t,o,n,i,a,s,l,r,p){p?"square"==s||"default"==s&&"square"==a?e.lineTo(n-r,i-r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.lineTo(n-r,i-l-.5*r):("invRound"==s||"default"==s&&"invRound"==a||"fold"==s||"default"==s&&"fold"==a)&&e.lineTo(n-r,i-l-r):e.lineTo(n-r,i)},mxShapeBasicRect2.prototype.moveNEInner=function(e,t,o,n,i,a,s,l,r,p){p?"square"==s||"default"==s&&"square"==a||p?e.moveTo(n-r,r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.moveTo(n-r,l+.5*r):("invRound"==s||"default"==s&&"invRound"==a||"fold"==s||"default"==s&&"fold"==a)&&e.moveTo(n-r,l+r):e.moveTo(n,r)},mxShapeBasicRect2.prototype.lineNEInner=function(e,t,o,n,i,a,s,l,r,p){p?"square"==s||"default"==s&&"square"==a||p?e.lineTo(n-r,r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.lineTo(n-r,l+.5*r):("invRound"==s||"default"==s&&"invRound"==a||"fold"==s||"default"==s&&"fold"==a)&&e.lineTo(n-r,l+r):e.lineTo(n,r)},mxShapeBasicRect2.prototype.moveNWInner=function(e,t,o,n,i,a,s,l,r,p,m){p||m?!p&&m?e.moveTo(r,0):p&&!m?e.moveTo(0,r):"square"==s||"default"==s&&"square"==a?e.moveTo(r,r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.moveTo(r,l+.5*r):("invRound"==s||"default"==s&&"invRound"==a||"fold"==s||"default"==s&&"fold"==a)&&e.moveTo(r,l+r):e.moveTo(0,0)},mxShapeBasicRect2.prototype.lineNWInner=function(e,t,o,n,i,a,s,l,r,p,m){p||m?!p&&m?e.lineTo(r,0):p&&!m?e.lineTo(0,r):"square"==s||"default"==s&&"square"==a?e.lineTo(r,r):"rounded"==s||"default"==s&&"rounded"==a||"snip"==s||"default"==s&&"snip"==a?e.lineTo(r,l+.5*r):("invRound"==s||"default"==s&&"invRound"==a||"fold"==s||"default"==s&&"fold"==a)&&e.lineTo(r,l+r):e.lineTo(0,0)},mxShapeBasicRect2.prototype.paintFolds=function(e,t,o,n,i,a,s,l,r,p,m,h,x,c,u){"fold"!=a&&"fold"!=s&&"fold"!=l&&"fold"!=r&&"fold"!=p||(("fold"==s||"default"==s&&"fold"==a)&&h&&u&&(e.moveTo(0,m),e.lineTo(m,m),e.lineTo(m,0)),("fold"==l||"default"==l&&"fold"==a)&&h&&x&&(e.moveTo(n-m,0),e.lineTo(n-m,m),e.lineTo(n,m)),("fold"==r||"default"==r&&"fold"==a)&&c&&x&&(e.moveTo(n-m,i),e.lineTo(n-m,i-m),e.lineTo(n,i-m)),("fold"==p||"default"==p&&"fold"==a)&&c&&u&&(e.moveTo(0,i-m),e.lineTo(m,i-m),e.lineTo(m,i)))},mxCellRenderer.registerShape(mxShapeBasicRect2.prototype.cst.RECT2,mxShapeBasicRect2),mxShapeBasicRect2.prototype.constraints=null,Graph.handleFactory[mxShapeBasicRect2.prototype.cst.DIAG_ROUND_RECT]=function(e){var t=[Graph.createHandle(e,["size"],(function(e){var t=Math.max(0,Math.min(e.width/2,e.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(e.x+t,e.y+t)}),(function(e,t){this.state.style.size=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,t.x-e.x)))/100}))];return e=Graph.createHandle(e,["indent"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(e.x+.75*e.width,e.y+t*e.height/200)}),(function(e,t){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(t.y-e.y)/e.height)))/100})),t.push(e),t},mxUtils.extend(mxShapeBasicPolygon,mxActor),mxShapeBasicPolygon.prototype.customProperties=[{name:"polyline",dispName:"Polyline",type:"bool",defVal:!1}],mxShapeBasicPolygon.prototype.cst={POLYGON:"mxgraph.basic.polygon"},mxShapeBasicPolygon.prototype.paintVertexShape=function(e,t,o,n,i){try{e.translate(t,o);var a=JSON.parse(mxUtils.getValue(this.state.style,"polyCoords","[]")),s=mxUtils.getValue(this.style,"polyline",!1);if(0<a.length){for(e.begin(),e.moveTo(a[0][0]*n,a[0][1]*i),t=1;t<a.length;t++)e.lineTo(a[t][0]*n,a[t][1]*i);0==s&&e.close(),e.end(),e.fillAndStroke()}}catch(e){}},mxCellRenderer.registerShape(mxShapeBasicPolygon.prototype.cst.POLYGON,mxShapeBasicPolygon),mxShapeBasicPolygon.prototype.constraints=null,Graph.handleFactory[mxShapeBasicPolygon.prototype.cst.POLYGON]=function(e){var t=[];try{for(var o=JSON.parse(mxUtils.getValue(e.style,"polyCoords","[]")),n=0;n<o.length;n++)!function(n){t.push(Graph.createHandle(e,["polyCoords"],(function(e){return new mxPoint(e.x+o[n][0]*e.width,e.y+o[n][1]*e.height)}),(function(t,i){o[n]=[Math.round(100*Math.max(0,Math.min(1,(i.x-t.x)/t.width)))/100,Math.round(100*Math.max(0,Math.min(1,(i.y-t.y)/t.height)))/100],e.style.polyCoords=JSON.stringify(o)}),!1))}(n)}catch(e){}return t},mxUtils.extend(mxShapeBasicPatternFillRect,mxActor),mxShapeBasicPatternFillRect.prototype.cst={PATTERN_FILL_RECT:"mxgraph.basic.patternFillRect"},mxShapeBasicPatternFillRect.prototype.customProperties=[{name:"step",dispName:"Fill Step",type:"float",min:0,defVal:5},{name:"fillStyle",dispName:"Fill Style",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"diag",dispName:"Diagonal"},{val:"diagRev",dispName:"Diagonal Reverse"},{val:"vert",dispName:"Vertical"},{val:"hor",dispName:"Horizontal"},{val:"grid",dispName:"Grid"},{val:"diagGrid",dispName:"Diagonal Grid"}]},{name:"fillStrokeWidth",dispName:"Fill Stroke Width",type:"float",min:0,defVal:1},{name:"fillStrokeColor",dispName:"Fill Stroke Color",type:"color",defVal:"#cccccc"},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0}],mxShapeBasicPatternFillRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,"strokeColor","#000000"),o=mxUtils.getValue(this.style,"strokeWidth","1"),e.rect(0,0,n,i),e.fill();var a=mxUtils.getValue(this.style,"fillStrokeColor","#cccccc"),s=parseFloat(mxUtils.getValue(this.style,"fillStrokeWidth",1));if(e.setStrokeColor(a),e.setStrokeWidth(s),a=parseFloat(mxUtils.getValue(this.style,"step",5)),"diag"==(s=mxUtils.getValue(this.style,"fillStyle","none"))||"diagGrid"==s){a*=1.41;var l=0;for(e.begin();l<i+n;)l<=i?e.moveTo(0,l):e.moveTo(l-i,i),l<=n?e.lineTo(l,0):e.lineTo(n,l-n),l+=a;e.stroke()}else if("vert"==s||"grid"==s){for(e.begin(),l=0;l<=n;)e.moveTo(l,0),e.lineTo(l,i),l+=a;e.stroke()}if("diagRev"==s||"diagGrid"==s){for("diagRev"==s&&(a*=1.41),l=0,e.begin();l<i+n;)l<=i?(e.moveTo(n,l),l<=n?e.lineTo(n-l,0):e.lineTo(n-n,l-n)):(e.moveTo(n-l+i,i),l<=n?e.lineTo(n-l,0):e.lineTo(0,l-n)),l+=a;e.stroke()}else if("hor"==s||"grid"==s){for(e.begin(),l=0;l<=i;)e.moveTo(0,l),e.lineTo(n,l),l+=a;e.stroke()}e.setStrokeColor(t),e.setStrokeWidth(o),e.begin(),e.moveTo(0,0),"1"==mxUtils.getValue(this.style,"top","1")?e.lineTo(n,0):e.moveTo(n,0),"1"==mxUtils.getValue(this.style,"right","1")?e.lineTo(n,i):e.moveTo(n,i),"1"==mxUtils.getValue(this.style,"bottom","1")?e.lineTo(0,i):e.moveTo(0,i),"1"==mxUtils.getValue(this.style,"left","1")&&e.lineTo(0,0),e.end(),e.stroke()},mxCellRenderer.registerShape(mxShapeBasicPatternFillRect.prototype.cst.PATTERN_FILL_RECT,mxShapeBasicPatternFillRect),mxShapeBasicPatternFillRect.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxShapeBootstrapRRect,mxShape),mxShapeBootstrapRRect.prototype.cst={PACKAGE:"mxgraph.bootstrap.rrect",R_SIZE:"rSize"},mxShapeBootstrapRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeBootstrapRRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapRRect.prototype.cst.R_SIZE,"10")),e.roundrect(0,0,n,i,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBootstrapRRect.prototype.cst.PACKAGE,mxShapeBootstrapRRect),mxUtils.extend(mxShapeBootstrapTopButton,mxShape),mxShapeBootstrapTopButton.prototype.cst={TOP_BUTTON:"mxgraph.bootstrap.topButton",R_SIZE:"rSize"},mxShapeBootstrapTopButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeBootstrapTopButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapTopButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBootstrapTopButton.prototype.cst.TOP_BUTTON,mxShapeBootstrapTopButton),mxUtils.extend(mxShapeBootstrapBottomButton,mxShape),mxShapeBootstrapBottomButton.prototype.cst={BOTTOM_BUTTON:"mxgraph.bootstrap.bottomButton",R_SIZE:"rSize"},mxShapeBootstrapBottomButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeBootstrapBottomButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapBottomButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i-t),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(t,i),e.arcTo(t,t,0,0,1,0,i-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBootstrapBottomButton.prototype.cst.BOTTOM_BUTTON,mxShapeBootstrapBottomButton),mxUtils.extend(mxShapeBootstrapRightButton,mxShape),mxShapeBootstrapRightButton.prototype.cst={RIGHT_BUTTON:"mxgraph.bootstrap.rightButton",R_SIZE:"rSize"},mxShapeBootstrapRightButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeBootstrapRightButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapRightButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(0,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i-t),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBootstrapRightButton.prototype.cst.RIGHT_BUTTON,mxShapeBootstrapRightButton),mxUtils.extend(mxShapeBootstrapLeftButton,mxShape),mxShapeBootstrapLeftButton.prototype.cst={LEFT_BUTTON:"mxgraph.bootstrap.leftButton",R_SIZE:"rSize"},mxShapeBootstrapLeftButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}],mxShapeBootstrapLeftButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapLeftButton.prototype.cst.R_SIZE,"10")),e.begin(),e.moveTo(n,0),e.lineTo(n,i),e.lineTo(t,i),e.arcTo(t,t,0,0,1,0,i-t),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBootstrapLeftButton.prototype.cst.LEFT_BUTTON,mxShapeBootstrapLeftButton),mxUtils.extend(mxShapeBootstrapLeftButtonStriped,mxShape),mxShapeBootstrapLeftButtonStriped.prototype.cst={LEFT_BUTTON_STRIPED:"mxgraph.bootstrap.leftButtonStriped"},mxShapeBootstrapLeftButtonStriped.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),rSize=5,e.begin(),e.moveTo(n,0),e.lineTo(n,i),e.lineTo(rSize,i),e.arcTo(rSize,rSize,0,0,1,0,i-rSize),e.lineTo(0,rSize),e.arcTo(rSize,rSize,0,0,1,rSize,0),e.close(),e.fill(),e.setAlpha("0.2"),t=.5*i,e.setFillColor("#ffffff"),e.begin(),e.moveTo(0,.75*i),e.lineTo(0,.25*i),e.lineTo(.75*i,i),e.lineTo(.25*i,i),e.close(),e.fill(),o=!1;for(var a=.5*t;!o;)e.begin(),e.moveTo(a,0),a+t>=n?(e.lineTo(n,0),e.lineTo(n,n-a)):(e.lineTo(a+t,0),a+t+i>n?(e.lineTo(n,n-a-t),n-a>i?(e.lineTo(n,i),e.lineTo(a+i,i)):e.lineTo(n,n-a)):(e.lineTo(a+t+i,i),e.lineTo(a+i,i))),e.close(),e.fill(),(a+=2*t)>n&&(o=!0)},mxCellRenderer.registerShape(mxShapeBootstrapLeftButtonStriped.prototype.cst.LEFT_BUTTON_STRIPED,mxShapeBootstrapLeftButtonStriped),mxUtils.extend(mxShapeBootstrapRoundedButton,mxShape),mxShapeBootstrapRoundedButton.prototype.cst={ROUNDED_BUTTON:"mxgraph.bootstrap.roundedButton"},mxShapeBootstrapRoundedButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),n>i?(t=.5*i,e.begin(),e.moveTo(n-t,0),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(t,i),e.arcTo(t,t,0,0,1,t,0)):(t=.5*n,e.begin(),e.moveTo(0,i-t),e.arcTo(t,t,0,0,0,n,i-t),e.lineTo(n,t),e.arcTo(t,t,0,0,0,0,t)),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBootstrapRoundedButton.prototype.cst.ROUNDED_BUTTON,mxShapeBootstrapRoundedButton),mxUtils.extend(mxShapeBootstrapArrow,mxShape),mxShapeBootstrapArrow.prototype.cst={ARROW:"mxgraph.bootstrap.arrow"},mxShapeBootstrapArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.moveTo(.9*n,0),e.lineTo(n,.5*i),e.lineTo(.9*n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeBootstrapArrow.prototype.cst.ARROW,mxShapeBootstrapArrow),mxUtils.extend(mxShapeBootstrapTabTop,mxShape),mxShapeBootstrapTabTop.prototype.cst={TAB_TOP:"mxgraph.bootstrap.tabTop",R_SIZE:"rSize"},mxShapeBootstrapTabTop.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:5}],mxShapeBootstrapTabTop.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapTopButton.prototype.cst.R_SIZE,"10")),o=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");e.setStrokeColor(a),e.begin(),e.moveTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.setStrokeColor(o),e.begin(),e.moveTo(0,i),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeBootstrapTabTop.prototype.cst.TAB_TOP,mxShapeBootstrapTabTop),mxUtils.extend(mxShapeBootstrapImage,mxShape),mxShapeBootstrapImage.prototype.cst={IMAGE:"mxgraph.bootstrap.image",R_SIZE:"rSize"},mxShapeBootstrapImage.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:5}],mxShapeBootstrapImage.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,parseInt(mxUtils.getValue(this.style,mxShapeBootstrapTopButton.prototype.cst.R_SIZE,"10"))),mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e.begin(),e.moveTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i-t),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(t,i),e.arcTo(t,t,0,0,1,0,i-t),e.close(),e.stroke(),o=.5*t,e.translate(o,o),n=Math.max(0,n-t),i=Math.max(0,i-t),e.begin(),e.moveTo(0,o),e.arcTo(o,o,0,0,1,o,0),e.lineTo(n-o,0),e.arcTo(o,o,0,0,1,n,o),e.lineTo(n,i-o),e.arcTo(o,o,0,0,1,n-o,i),e.lineTo(o,i),e.arcTo(o,o,0,0,1,0,i-o),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeBootstrapImage.prototype.cst.IMAGE,mxShapeBootstrapImage),mxUtils.extend(mxShapeBootstrapCheckbox,mxShape),mxShapeBootstrapCheckbox.prototype.cst={CHECKBOX:"mxgraph.bootstrap.checkbox"},mxShapeBootstrapCheckbox.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.roundrect(0,0,n,i,3,3),e.fillAndStroke(),e.setStrokeWidth("3"),e.begin(),e.moveTo(.8*n,.2*i),e.lineTo(.4*n,.8*i),e.lineTo(.25*n,.6*i),e.stroke()},mxCellRenderer.registerShape(mxShapeBootstrapCheckbox.prototype.cst.CHECKBOX,mxShapeBootstrapCheckbox),mxUtils.extend(mxShapeBootstrapCheckbox2,mxShape),mxShapeBootstrapCheckbox2.prototype.customProperties=[{name:"checked",dispName:"Checked",type:"bool",defVal:!1},{name:"checkedFill",dispName:"Checked Fill Color",type:"color",defVal:"#ffffff"},{name:"checkedStroke",dispName:"Checked Stroke Color",type:"color",defVal:"#000000"}],mxShapeBootstrapCheckbox2.prototype.cst={CHECKBOX2:"mxgraph.bootstrap.checkbox2"},mxShapeBootstrapCheckbox2.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"checked",!1),s=mxUtils.getValue(this.style,"checkedFill","#ffffff"),l=mxUtils.getValue(this.style,"checkedStroke","#000000");e.translate(t,o),a?(e.setFillColor(s),e.setStrokeColor(l),e.roundrect(0,0,n,i,2,2),e.fill(),e.setStrokeWidth("2"),e.begin(),e.moveTo(.8*n,.2*i),e.lineTo(.4*n,.75*i),e.lineTo(.25*n,.6*i),e.stroke()):(e.roundrect(0,0,n,i,2,2),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeBootstrapCheckbox2.prototype.cst.CHECKBOX2,mxShapeBootstrapCheckbox2),mxUtils.extend(mxShapeBootstrapRadioButton,mxShape),mxShapeBootstrapRadioButton.prototype.cst={RADIO_BUTTON:"mxgraph.bootstrap.radioButton"},mxShapeBootstrapRadioButton.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.ellipse(0,0,n,i),e.fillAndStroke(),e.setFillColor(t),e.ellipse(.25*n,.25*i,.5*n,.5*i),e.fill()},mxCellRenderer.registerShape(mxShapeBootstrapRadioButton.prototype.cst.RADIO_BUTTON,mxShapeBootstrapRadioButton),mxUtils.extend(mxShapeBootstrapRadioButton2,mxShape),mxShapeBootstrapRadioButton2.prototype.customProperties=[{name:"checked",dispName:"Checked",type:"bool",defVal:!1},{name:"checkedFill",dispName:"Checked Fill Color",type:"color",defVal:"#ffffff"},{name:"checkedStroke",dispName:"Checked Stroke Color",type:"color",defVal:"#000000"}],mxShapeBootstrapRadioButton2.prototype.cst={RADIO_BUTTON2:"mxgraph.bootstrap.radioButton2"},mxShapeBootstrapRadioButton2.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,"checked",!1),s=mxUtils.getValue(this.style,"checkedFill","#ffffff"),l=mxUtils.getValue(this.style,"checkedStroke","#000000");e.translate(t,o),a?(e.setFillColor(s),e.setStrokeColor(s),e.ellipse(0,0,n,i),e.fillAndStroke(),e.setFillColor(l),e.ellipse(.2*n,.2*i,.6*n,.6*i),e.fill()):(e.ellipse(0,0,n,i),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeBootstrapRadioButton2.prototype.cst.RADIO_BUTTON2,mxShapeBootstrapRadioButton2),mxUtils.extend(mxShapeBootstrapHorLines,mxShape),mxShapeBootstrapHorLines.prototype.cst={HOR_LINES:"mxgraph.bootstrap.horLines"},mxShapeBootstrapHorLines.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,n,i),e.fill(),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.moveTo(0,i),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeBootstrapHorLines.prototype.cst.HOR_LINES,mxShapeBootstrapHorLines),mxUtils.extend(mxShapeBootstrapUserTwo,mxShape),mxShapeBootstrapUserTwo.prototype.cst={USER2:"mxgraph.bootstrap.user2"},mxShapeBootstrapUserTwo.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,.95*i),e.arcTo(.3*n,.3*i,0,0,1,.02*n,.87*i),e.arcTo(.1*n,.1*i,0,0,1,.08*n,.812*i),e.arcTo(3*n,3*i,0,0,1,.29*n,.732*i),e.arcTo(.15*n,.15*i,0,0,0,.385*n,.607*i),e.arcTo(.11*n,.11*i,0,0,0,.355*n,.53*i),e.arcTo(.3*n,.3*i,0,0,1,.305*n,.44*i),e.arcTo(.33*n,.38*i,0,0,1,.312*n,.15*i),e.arcTo(.218*n,.218*i,0,0,1,.688*n,.15*i),e.arcTo(.33*n,.38*i,0,0,1,.693*n,.44*i),e.arcTo(.25*n,.25*i,0,0,1,.645*n,.53*i),e.arcTo(.1*n,.1*i,0,0,0,.612*n,.6*i),e.arcTo(.15*n,.15*i,0,0,0,.7*n,.726*i),e.arcTo(3*n,3*i,0,0,1,.92*n,.812*i),e.arcTo(.1*n,.1*i,0,0,1,.97*n,.865*i),e.arcTo(.2*n,.2*i,0,0,1,.995*n,.952*i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeBootstrapUserTwo.prototype.cst.USER2,mxShapeBootstrapUserTwo),mxUtils.extend(mxShapeBootstrapRating,mxShape),mxShapeBootstrapRating.prototype.cst={RATING:"mxgraph.bootstrap.rating",RATING_STYLE:"ratingStyle",RATING_SCALE:"ratingScale",RATING_HEART:"heart",RATING_STAR:"star",EMPTY_FILL_COLOR:"emptyFillColor",GRADE:"grade"},mxShapeBootstrapRating.prototype.customProperties=[{name:"ratingStyle",dispName:"Rating Style",type:"enum",enumList:[{val:"heart",dispName:"Heart"},{val:"star",dispName:"Star"}]},{name:"ratingScale",dispName:"Rating Scale",type:"int",min:1,defVal:5},{name:"emptyFillColor",dispName:"Inactive Color",type:"color",defVal:"none"},{name:"grade",dispName:"Grade",type:"int",min:1,defVal:3}],mxShapeBootstrapRating.prototype.paintVertexShape=function(e,t,o,n,i){n=mxUtils.getValue(this.style,mxShapeBootstrapRating.prototype.cst.RATING_STYLE,mxShapeBootstrapRating.prototype.cst.RATING_STAR);var a=mxUtils.getValue(this.style,mxShapeBootstrapRating.prototype.cst.GRADE,"5"),s=mxUtils.getValue(this.style,mxShapeBootstrapRating.prototype.cst.RATING_SCALE,"10");if(e.translate(t,o),n===mxShapeBootstrapRating.prototype.cst.RATING_STAR)for(t=0;t<a;t++)e.begin(),e.moveTo(t*i*1.2,.33*i),e.lineTo(t*i*1.2+.364*i,.33*i),e.lineTo(t*i*1.2+.475*i,0),e.lineTo(t*i*1.2+.586*i,.33*i),e.lineTo(t*i*1.2+.95*i,.33*i),e.lineTo(t*i*1.2+.66*i,.551*i),e.lineTo(t*i*1.2+.775*i,.9*i),e.lineTo(t*i*1.2+.475*i,.684*i),e.lineTo(t*i*1.2+.175*i,.9*i),e.lineTo(t*i*1.2+.29*i,.551*i),e.close(),e.fillAndStroke();else if(n===mxShapeBootstrapRating.prototype.cst.RATING_HEART)for(t=0;t<a;t++)e.begin(),e.moveTo(t*i*1.2+.519*i,.947*i),e.curveTo(t*i*1.2+.558*i,.908*i,t*i*1.2+.778*i,.682*i,t*i*1.2+.916*i,.54*i),e.curveTo(t*i*1.2+1.039*i,.414*i,t*i*1.2+1.036*i,.229*i,t*i*1.2+.924*i,.115*i),e.curveTo(t*i*1.2+.812*i,0,t*i*1.2+.631*i,0,t*i*1.2+.519*i,.115*i),e.curveTo(t*i*1.2+.408*i,0,t*i*1.2+.227*i,0,t*i*1.2+.115*i,.115*i),e.curveTo(t*i*1.2+.03*i,.229*i,t*i*1.2,.414*i,t*i*1.2+.123*i,.54*i),e.close(),e.fillAndStroke();if(t=mxUtils.getValue(this.style,mxShapeBootstrapRating.prototype.cst.EMPTY_FILL_COLOR,"#ffffff"),e.setFillColor(t),n===mxShapeBootstrapRating.prototype.cst.RATING_STAR)for(t=a;t<s;t++)e.begin(),e.moveTo(t*i*1.2,.33*i),e.lineTo(t*i*1.2+.364*i,.33*i),e.lineTo(t*i*1.2+.475*i,0),e.lineTo(t*i*1.2+.586*i,.33*i),e.lineTo(t*i*1.2+.95*i,.33*i),e.lineTo(t*i*1.2+.66*i,.551*i),e.lineTo(t*i*1.2+.775*i,.9*i),e.lineTo(t*i*1.2+.475*i,.684*i),e.lineTo(t*i*1.2+.175*i,.9*i),e.lineTo(t*i*1.2+.29*i,.551*i),e.close(),e.fillAndStroke();else if(n===mxShapeBootstrapRating.prototype.cst.RATING_HEART)for(t=a;t<s;t++)e.begin(),e.moveTo(t*i*1.2+.519*i,.947*i),e.curveTo(t*i*1.2+.558*i,.908*i,t*i*1.2+.778*i,.682*i,t*i*1.2+.916*i,.54*i),e.curveTo(t*i*1.2+1.039*i,.414*i,t*i*1.2+1.036*i,.229*i,t*i*1.2+.924*i,.115*i),e.curveTo(t*i*1.2+.812*i,0,t*i*1.2+.631*i,0,t*i*1.2+.519*i,.115*i),e.curveTo(t*i*1.2+.408*i,0,t*i*1.2+.227*i,0,t*i*1.2+.115*i,.115*i),e.curveTo(t*i*1.2+.03*i,.229*i,t*i*1.2,.414*i,t*i*1.2+.123*i,.54*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeBootstrapRating.prototype.cst.RATING,mxShapeBootstrapRating),mxUtils.extend(mxShapeBoostrapAnchor,mxShape),mxShapeBoostrapAnchor.prototype.cst={ANCHOR:"mxgraph.bootstrap.anchor"},mxShapeBoostrapAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeBoostrapAnchor.prototype.cst.ANCHOR,mxShapeBoostrapAnchor),mxUtils.extend(mxShapeBootstrapRangeInput,mxShape),mxShapeBootstrapRangeInput.prototype.customProperties=[{name:"dx",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.3},{name:"rangeStyle",dispName:"Range Style",type:"enum",enumList:[{val:"rect",dispName:"Rectangle"},{val:"rounded",dispName:"Rounded"}]},{name:"handleStyle",dispName:"Handle Style",type:"enum",enumList:[{val:"rect",dispName:"Rectangle"},{val:"circle",dispName:"Circle"}]}],mxShapeBootstrapRangeInput.prototype.cst={RANGE_INPUT:"mxgraph.bootstrap.rangeInput"},mxShapeBootstrapRangeInput.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),s=mxUtils.getValue(this.style,"gradientColor","none"),l=mxUtils.getValue(this.state.style,"fillColor","#ffffff"),r=mxUtils.getValue(this.state.style,"strokeColor","#000000"),p=mxUtils.getValue(this.state.style,"gradientDirection","south"),m=mxUtils.getValue(this.state.style,"rangeStyle","rounded"),h=mxUtils.getValue(this.state.style,"handleStyle","circle"),x=Math.min(.5*i,.5*n),c=.5*x;if(e.translate(t,o),"rect"==m){var u=t=parseFloat(mxUtils.getValue(this.style,"opacity","100")),S=t;"none"==l&&(u=0),"none"==s&&(S=0),e.setGradient(l,l,0,0,n,i,p,u,S),e.rect(0,.5*i-2,n,4),e.fill()}else"rounded"==m&&(e.begin(),e.moveTo(0,.5*i),e.arcTo(c,c,0,0,1,c,.5*i-c),e.lineTo(n-c,.5*i-c),e.arcTo(c,c,0,0,1,n,.5*i),e.arcTo(c,c,0,0,1,n-c,.5*i+c),e.lineTo(c,.5*i+c),e.arcTo(c,c,0,0,1,0,.5*i),e.close(),e.fill());"rect"==h?(e.setGradient(l,s,0,0,n,i,p,u,S),n=.5*i,e.rect(a-.5*n,0,n,i),e.fillAndStroke(),e.begin(),e.moveTo(a-.25*n,.3*i),e.lineTo(a+.25*n,.3*i),e.moveTo(a-.25*n,.5*i),e.lineTo(a+.25*n,.5*i),e.moveTo(a-.25*n,.7*i),e.lineTo(a+.25*n,.7*i),e.stroke()):"circle"==h&&(e.setFillColor(r),e.ellipse(a-x,0,2*x,2*x),e.fill())},mxCellRenderer.registerShape(mxShapeBootstrapRangeInput.prototype.cst.RANGE_INPUT,mxShapeBootstrapRangeInput),mxShapeBootstrapRangeInput.prototype.constraints=null,Graph.handleFactory[mxShapeBootstrapRangeInput.prototype.cst.RANGE_INPUT]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeBootstrapSwitch,mxShape),mxShapeBootstrapSwitch.prototype.customProperties=[{name:"buttonState",dispName:"Button State",type:"bool",defVal:!0},{name:"onStrokeColor",dispName:"On Stroke Color",type:"color"},{name:"onFillColor",dispName:"On Fill Color",type:"color"}],mxShapeBootstrapSwitch.prototype.cst={SHAPE_SWITCH:"mxgraph.bootstrap.switch"},mxShapeBootstrapSwitch.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),n=Math.max(n,2*i);var a=mxUtils.getValue(this.style,"buttonState",!0);this.background(e,t,o,n,i,a),e.setShadow(!1),this.foreground(e,t,o,n,i,a)},mxShapeBootstrapSwitch.prototype.background=function(e,t,o,n,i,a){1==a?(e.setStrokeColor(mxUtils.getValue(this.style,"onStrokeColor","#ffffff")),e.setFillColor(mxUtils.getValue(this.style,"onFillColor","#0085FC")),e.roundrect(0,0,n,i,.5*i,.5*i),e.fill()):(e.roundrect(0,0,n,i,.5*i,.5*i),e.fillAndStroke())},mxShapeBootstrapSwitch.prototype.foreground=function(e,t,o,n,i,a){t=.8*i,1==a?(e.setFillColor(mxUtils.getValue(this.style,"onStrokeColor","#ffffff")),e.ellipse(n-.9*i,.1*i,t,t)):(e.setFillColor(mxUtils.getValue(this.style,"strokeColor","#000000")),e.ellipse(.1*i,.1*i,t,t)),e.fill()},mxCellRenderer.registerShape(mxShapeBootstrapSwitch.prototype.cst.SHAPE_SWITCH,mxShapeBootstrapSwitch),mxUtils.extend(mxShapeBootstrapX,mxShape),mxShapeBootstrapX.prototype.cst={SHAPE_X:"mxgraph.bootstrap.x"},mxShapeBootstrapX.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n,i),e.moveTo(n,0),e.lineTo(0,i),e.stroke()},mxCellRenderer.registerShape(mxShapeBootstrapX.prototype.cst.SHAPE_X,mxShapeBootstrapX),mxUtils.extend(mxShapeInfographicPopover,mxActor),mxShapeInfographicPopover.prototype.cst={SHAPE_POPOVER:"mxgraph.bootstrap.popover"},mxShapeInfographicPopover.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10},{name:"dx",dispName:"Callout Position",min:0,defVal:100},{name:"dy",dispName:"Callout Size",min:0,defVal:30}],mxShapeInfographicPopover.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,"rSize","10")),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var a=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),s=Math.max(o-a,0),l=Math.min(o+a,n);e.begin(),e.moveTo(t,0),e.lineTo(n-t,0),e.arcTo(t,t,0,0,1,n,t),e.lineTo(n,i-a-t),e.arcTo(t,t,0,0,1,n-t,i-a),e.lineTo(l,i-a),e.lineTo(o,i),e.lineTo(s,i-a),e.lineTo(t,i-a),e.arcTo(t,t,0,0,1,0,i-a-t),e.lineTo(0,t),e.arcTo(t,t,0,0,1,t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeInfographicPopover.prototype.cst.SHAPE_POPOVER,mxShapeInfographicPopover),mxShapeInfographicPopover.prototype.constraints=null,Graph.handleFactory[mxShapeInfographicPopover.prototype.cst.SHAPE_POPOVER]=function(e){return[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+t,e.y+e.height-o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height,e.y+e.height-t.y)))/100}))]},mxShapeInfographicPopover.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o-i)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,o-i)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-i)),e},mxUtils.extend(mxShapeC4Person,mxShape),mxShapeC4Person.prototype.cst={START:"mxgraph.c4.person"},mxShapeC4Person.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),o=(t=Math.min(n/2,i/3))/2,e.ellipse(.5*n-.5*t,0,t,t),e.fillAndStroke(),e.begin(),e.moveTo(0,.8*t+o),e.arcTo(o,o,0,0,1,o,.8*t),e.lineTo(n-o,.8*t),e.arcTo(o,o,0,0,1,n,.8*t+o),e.lineTo(n,i-o),e.arcTo(o,o,0,0,1,n-o,i),e.lineTo(o,i),e.arcTo(o,o,0,0,1,0,i-o),e.close(),e.fillAndStroke(),e.setShadow(!1),e.ellipse(.5*n-.5*t,0,t,t),e.fillAndStroke()},mxShapeC4Person.prototype.getLabelMargins=function(e){return new mxRectangle(0,.8*Math.min(e.width/2,e.height/3),0,0)},mxCellRenderer.registerShape(mxShapeC4Person.prototype.cst.START,mxShapeC4Person),mxUtils.extend(mxCabinetsCabinet,mxShape),mxCabinetsCabinet.prototype.cst={HAS_STAND:"hasStand",CABINET:"mxgraph.cabinets.cabinet"},mxCabinetsCabinet.prototype.customProperties=[{name:"hasStand",dispName:"Has Stand",type:"bool",defVal:!0}],mxCabinetsCabinet.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),this.foreground(e,0,0,n,i)},mxCabinetsCabinet.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxCabinetsCabinet.prototype.foreground=function(e,t,o,n,i){e.rect(0,0,n,15),e.stroke(),e.begin(),e.moveTo(15,15),e.lineTo(15,i),e.moveTo(n-15,15),e.lineTo(n-15,i),e.stroke(),1===mxUtils.getValue(this.style,mxCabinetsCabinet.prototype.cst.HAS_STAND,"1")?e.rect(0,i-40,n,40):e.rect(0,i-15,n,15),e.fillAndStroke()},mxCellRenderer.registerShape(mxCabinetsCabinet.prototype.cst.CABINET,mxCabinetsCabinet),mxUtils.extend(mxCabinetsCoverPlate,mxShape),mxCabinetsCoverPlate.prototype.cst={COVER_PLATE:"mxgraph.cabinets.coverPlate"},mxCabinetsCoverPlate.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,0,0,n,i),e.setShadow(!1),this.foreground(e,0,0,n,i)},mxCabinetsCoverPlate.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.moveTo(10,.5*i-12.5),e.lineTo(10,.5*i+12.5),e.lineTo(n-10,.5*i+12.5),e.lineTo(n-10,.5*i-12.5),e.close(),e.fillAndStroke()},mxCabinetsCoverPlate.prototype.foreground=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxCabinetsCoverPlate.prototype.cst.COVER_PLATE,mxCabinetsCoverPlate),mxUtils.extend(mxCabinetsDimension,mxShape),mxCabinetsDimension.prototype.cst={DIMENSION:"mxgraph.cabinets.dimension"},mxCabinetsDimension.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxCabinetsDimension.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,20),e.lineTo(n,20),e.moveTo(10,15),e.lineTo(0,20),e.lineTo(10,25),e.moveTo(n-10,15),e.lineTo(n,20),e.lineTo(n-10,25),e.moveTo(0,15),e.lineTo(0,i),e.moveTo(n,15),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxCabinetsDimension.prototype.cst.DIMENSION,mxCabinetsDimension),mxUtils.extend(mxCabinetsDimensionBottom,mxShape),mxCabinetsDimensionBottom.prototype.cst={DIMENSION:"mxgraph.cabinets.dimensionBottom"},mxCabinetsDimensionBottom.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxCabinetsDimensionBottom.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,i-20),e.lineTo(n,i-20),e.moveTo(10,i-15),e.lineTo(0,i-20),e.lineTo(10,i-25),e.moveTo(n-10,i-15),e.lineTo(n,i-20),e.lineTo(n-10,i-25),e.moveTo(0,i-15),e.lineTo(0,0),e.moveTo(n,i-15),e.lineTo(n,0),e.stroke()},mxCellRenderer.registerShape(mxCabinetsDimensionBottom.prototype.cst.DIMENSION,mxCabinetsDimensionBottom),mxUtils.extend(mxShapeCisco19Rect,mxShape),mxShapeCisco19Rect.prototype.cst={SHAPE_RECT:"mxgraph.cisco19.rect"},mxShapeCisco19Rect.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.state.style,"prIcon","l2_switch");mxUtils.getValue(this.state.style,"fillColor","#ffffff");var s=mxUtils.getValue(this.state.style,"strokeColor","#000000"),l="mxgraph.cisco19.bg1",r="router csr_1000v wireless_router l3_modular3 ucs_express router_with_voice router_with_firewall netflow_router secure_router ip_telephone_router asr_9000 clock vbond vmanage vsmart".split(" ");e.translate(t,o),["l2_modular","l3_modular","6500_vss","nexus_9500","nexus_7k"].includes(a)?l="mxgraph.cisco19.bg2":["l2_switch_with_dual_supervisor","l3_switch_with_dual_supervisor"].includes(a)?l="mxgraph.cisco19.bg3":["l2_modular2"].includes(a)?l="mxgraph.cisco19.bg4":["l3_modular2","6500_vss2","hypervisor","collab1"].includes(a)?l="mxgraph.cisco19.bg5":r.includes(a)?(e.begin(),"wireless_router"==a?e.ellipse(0,.17*i,n,.83*i):e.ellipse(0,0,n,i),e.fill()):"content_router;router_with_firewall2;netflow_router2;nam_virtual_service_blade;ucs_5108_blade_chassis;storage;nexus_1kv_vsm;nexus_1k;nexus_1010;dual mode access point;wireless_lan_controller;primary_codec;virtual_desktop_service;video_gateway;video_analytics;telepresence_exchange;meeting_scheduling_and_management_server;content_recording_streaming_server;communications_manager;cisco_unified_presence_service;cisco_unified_contact_center_enterprise_and_hosted;h323;monitor;telepresence_endpoint_twin_data_display;operations_manager;transcoder;contact_center_express;ip_ip_gateway;shield;set_top;da_encoder;ad_encoder;da_decoder;ad_decoder;acs;email_security;vpn_concentrator;ssl_terminator;cisco_security_manager;web_security;nac_appliance;ironport;ips_ids;firewall;asa_5500;flow_collector;load_balancer;web_application_firewall;analysis_correlation;flow_analytics;virtual_private_network2;web_security_services;web_security_services2;virtual_private_network_connector".split(";").includes(a)?l="mxgraph.cisco19.bg6":["asr_1000"].includes(a)?l="mxgraph.cisco19.bg7":["fibre_channel_director_mds_9000","fibre_channel_fabric_switch"].includes(a)?l="mxgraph.cisco19.bg8":["ucs_c_series_server"].includes(a)?l="mxgraph.cisco19.bg9":["aci"].includes(a)?(t=mxStencilRegistry.getStencil("mxgraph.cisco19.acibg")).drawShape(e,this,.195*n,.195*i,.61*n,.61*i):["immersive_telepresence_endpoint"].includes(a)&&(l="mxgraph.cisco19.bg10"),r.includes(a)||"aci"==a||(t=mxStencilRegistry.getStencil(l)).drawShape(e,this,0,0,n,i),e.setShadow(!1),a=mxStencilRegistry.getStencil("mxgraph.cisco19."+a),e.setFillColor(s),null!=a&&a.drawShape(e,this,0,0,n,i)},mxCellRenderer.registerShape(mxShapeCisco19Rect.prototype.cst.SHAPE_RECT,mxShapeCisco19Rect),mxShapeCisco19Rect.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.825,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.175,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.16),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.84),!1)),e.push(new mxConnectionConstraint(new mxPoint(.66,.17),!1)),e.push(new mxConnectionConstraint(new mxPoint(.66,.83),!1)),e.push(new mxConnectionConstraint(new mxPoint(.34,.17),!1)),e.push(new mxConnectionConstraint(new mxPoint(.34,.83),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,.33),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,.67),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.33),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.67),!1)),e},mxUtils.extend(mxShapeCiscoSafeCompositeIcon,mxShape),mxShapeCiscoSafeCompositeIcon.prototype.cst={SHAPE_COMPOSITE_ICON:"mxgraph.cisco_safe.compositeIcon"},mxShapeCiscoSafeCompositeIcon.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.state.style,"strokeColor","none"),s=mxUtils.getValue(this.state.style,"bgColor","#C2E0AE"),l=mxUtils.getValue(this.state.style,"fillColor","none"),r=mxUtils.getValue(this.state.style,"shadow",!1),p=parseFloat(mxUtils.getValue(this.state.style,"opacity",!1));if(e.translate(t,o),t=mxUtils.getValue(this.state.style,"bgIcon",""),o=mxUtils.getValue(this.state.style,"resIcon",""),null!=(m=mxStencilRegistry.getStencil(o))&&"mxgraph.cisco_safe.architecture.generic_appliance"!=t&&m.drawShape(e,this,0,0,n,i),e.setFillColor(a),e.setStrokeColor("none"),e.setShadow(!1),"ellipse"==t)e.begin(),100>n?e.ellipse(.01*n,.01*i,.98*n,.98*i):e.ellipse(1,1,n-2,i-2),e.fill();else if("threat1"==t)e.begin(),e.ellipse(.18*n,.16*i,.66*n,.65*i),e.fill();else if("threat2"==t)e.begin(),e.ellipse(.01*n,.01*i,.98*n,.6*i),e.fill();else if("threat3"==t)e.begin(),e.ellipse(.18*n,.2*i,.64*n,.79*i),e.fill();else if("threat4"==t)e.begin(),e.ellipse(.09*n,.03*i,.82*n,.77*i),e.fill();else if("threat5"==t)e.begin(),e.ellipse(.16*n,.01*i,.67*n,.72*i),e.fill();else if("mxgraph.cisco_safe.architecture.generic_appliance"==t){e.setShadow(r),e.setFillColor(s),e.begin(),e.moveTo(0,.3*i),e.arcTo(.3*n,.3*i,0,0,1,.3*n,0),e.lineTo(.7*n,0),e.arcTo(.3*n,.3*i,0,0,1,n,.3*i),e.lineTo(n,.7*i),e.arcTo(.3*n,.3*i,0,0,1,.7*n,i),e.lineTo(.3*n,i),e.arcTo(.3*n,.3*i,0,0,1,0,.7*i),e.close(),e.fill(),e.setShadow(!1),e.setFillColor(a);var m=mxStencilRegistry.getStencil(t);null!=m&&m.drawShape(e,this,.26*n,.26*i,.48*n,.48*i),e.setAlpha(.5),e.setFillColor("#ffffff"),e.ellipse(.105*n,.48*i,.04*n,.04*i),e.fill(),e.ellipse(.855*n,.48*i,.04*n,.04*i),e.fill(),e.ellipse(.48*n,.105*i,.04*n,.04*i),e.fill(),e.ellipse(.48*n,.855*i,.04*n,.04*i),e.fill(),e.ellipse(.17*n,.17*i,.04*n,.04*i),e.fill(),e.ellipse(.79*n,.17*i,.04*n,.04*i),e.fill(),e.ellipse(.79*n,.79*i,.04*n,.04*i),e.fill(),e.ellipse(.17*n,.79*i,.04*n,.04*i),e.fill(),e.setAlpha(p/100)}else null!=(m=mxStencilRegistry.getStencil(t))&&(100>n?m.drawShape(e,this,.01*n,.01*i,.98*n,.98*i):m.drawShape(e,this,1,1,n-2,i-2));null!=(m=mxStencilRegistry.getStencil(o))&&(e.setFillColor(l),"mxgraph.cisco_safe.architecture.generic_appliance"==t?m.drawShape(e,this,.25*n,.25*i,.5*n,.5*i):m.drawShape(e,this,0,0,n,i))},mxCellRenderer.registerShape(mxShapeCiscoSafeCompositeIcon.prototype.cst.SHAPE_COMPOSITE_ICON,mxShapeCiscoSafeCompositeIcon),mxUtils.extend(mxShapeDFDStart,mxShape),mxShapeDFDStart.prototype.cst={START:"mxgraph.dfd.start"},mxShapeDFDStart.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.min(.5*i,.5*n),e.begin(),e.moveTo(n-t,.5*i-t),e.arcTo(t,t,0,0,1,n,.5*i),e.arcTo(t,t,0,0,1,n-t,.5*i+t),e.lineTo(t,.5*i+t),e.arcTo(t,t,0,0,1,0,.5*i),e.arcTo(t,t,0,0,1,t,.5*i-t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeDFDStart.prototype.cst.START,mxShapeDFDStart),mxShapeDFDStart.prototype.getConstraints=function(e,t,o){e=[];var n=Math.min(.5*o,.5*t);return e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.5),!1,null,0,-n)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.5),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.293*n,.5*o-.707*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.293*n,.5*o-.707*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.293*n,.5*o+.707*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.293*n,.5*o+.707*n)),t>=4*o&&(e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1))),e},mxUtils.extend(mxShapeDFDArchive,mxShape),mxShapeDFDArchive.prototype.cst={ARCHIVE:"mxgraph.dfd.archive"},mxShapeDFDArchive.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(.5*n,i),e.close(),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(.1*n,.2*i),e.lineTo(.9*n,.2*i),e.stroke()},mxCellRenderer.registerShape(mxShapeDFDArchive.prototype.cst.ARCHIVE,mxShapeDFDArchive),mxShapeDFDArchive.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.875,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.625,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.375,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.125,.25),!1)),e},mxUtils.extend(mxShapeDFDCheck2,mxShape),mxShapeDFDCheck2.prototype.cst={CHECK2:"mxgraph.dfd.check2"},mxShapeDFDCheck2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.min(.5*i,.5*n),e.begin(),e.moveTo(0,.5*i),e.lineTo(t,0),e.lineTo(n-t,0),e.lineTo(n,.5*i),e.lineTo(n-t,i),e.lineTo(t,i),e.lineTo(0,.5*i),e.close(),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(n-t,0),e.lineTo(n-2*t,.5*i),e.lineTo(n-t,i),e.stroke()},mxCellRenderer.registerShape(mxShapeDFDCheck2.prototype.cst.CHECK2,mxShapeDFDCheck2),mxShapeDFDCheck2.prototype.getConstraints=function(e,t,o){e=[];var n=Math.min(.5*o,.5*t);return e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,.25*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*n,.25*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,.75*o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*n,.75*o)),t>o&&(e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,o))),4*n<=t&&(e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1))),e},mxUtils.extend(mxShapeDFDDataStoreID,mxShape),mxShapeDFDDataStoreID.prototype.cst={DATA_STORE_ID:"mxgraph.dfd.dataStoreID"},mxShapeDFDDataStoreID.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(n,i),e.lineTo(0,i),e.lineTo(0,0),e.lineTo(n,0),e.fillAndStroke(),e.setShadow(!1),t=Math.min(30,n),e.begin(),e.moveTo(t,0),e.lineTo(t,i),e.stroke()},mxCellRenderer.registerShape(mxShapeDFDDataStoreID.prototype.cst.DATA_STORE_ID,mxShapeDFDDataStoreID),mxShapeDFDDataStoreID.prototype.constraints=null,mxUtils.extend(mxShapeDFDExternalEntity,mxShape),mxShapeDFDExternalEntity.prototype.cst={EXTERNAL_ENTITY:"mxgraph.dfd.externalEntity"},mxShapeDFDExternalEntity.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n-10,0),e.lineTo(n,10),e.lineTo(n,i),e.lineTo(10,i),e.lineTo(0,i-10),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillColor("#000000"),e.setAlpha(.5),e.begin(),e.moveTo(0,0),e.lineTo(n-10,0),e.lineTo(n,10),e.lineTo(10,10),e.lineTo(10,i),e.lineTo(0,i-10),e.close(),e.fill(),t=parseFloat(mxUtils.getValue(this.style,"opacity","100")),e.setAlpha(t/100),e.begin(),e.moveTo(0,0),e.lineTo(n-10,0),e.lineTo(n,10),e.lineTo(n,i),e.lineTo(10,i),e.lineTo(0,i-10),e.close(),e.moveTo(10,i),e.lineTo(10,10),e.lineTo(n,10),e.moveTo(0,0),e.lineTo(10,10),e.stroke()},mxCellRenderer.registerShape(mxShapeDFDExternalEntity.prototype.cst.EXTERNAL_ENTITY,mxShapeDFDExternalEntity),mxShapeDFDExternalEntity.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(t-10),0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-10),0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*(t-10),0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-10,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,10,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(t-10)+10,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t-10)+10,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*(t-10)+10,o)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,10)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,10+.25*(o-10))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,10+.5*(o-10))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,10+.75*(o-10))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(o-10))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o-10))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(o-10))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-10)),e},mxUtils.extend(mxShapeDFDLoop,mxShape),mxShapeDFDLoop.prototype.cst={LOOP:"mxgraph.dfd.loop"},mxShapeDFDLoop.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.min(.8*i,.8*n),e.begin(),e.moveTo(n-.25*t,0),e.arcTo(t,t,0,0,1,n-.25*t,i),e.lineTo(.25*t,i),e.arcTo(t,t,0,0,1,.25*t,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeDFDLoop.prototype.cst.LOOP,mxShapeDFDLoop),mxShapeDFDLoop.prototype.getConstraints=function(e,t,o){e=[];var n=Math.min(.8*o,.8*t);return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.25*n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.25*n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*n,o)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e},mxUtils.extend(mxShapeEipMessageExpiration,mxShape),mxShapeEipMessageExpiration.prototype.cst={SHAPE_MESS_EXP:"mxgraph.eip.messExp"},mxShapeEipMessageExpiration.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeEipMessageExpiration.prototype.background=function(e,t,o,n,i){e.ellipse(0,0,n,i),e.stroke(),e.setStrokeColor("#808080"),e.begin(),e.moveTo(.5*n,.1*i),e.lineTo(.5*n,.5*i),e.lineTo(.6*n,.8*i),e.stroke()},mxCellRenderer.registerShape(mxShapeEipMessageExpiration.prototype.cst.SHAPE_MESS_EXP,mxShapeEipMessageExpiration),mxShapeEipMessageExpiration.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.145,.145),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.145),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeEipReturnAddress,mxShape),mxShapeEipReturnAddress.prototype.cst={SHAPE_RET_ADDR:"mxgraph.eip.retAddr"},mxShapeEipReturnAddress.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeEipReturnAddress.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxShapeEipReturnAddress.prototype.foreground=function(e,t,o,n,i){e.begin(),e.moveTo(.05*n,.11*i),e.lineTo(.25*n,.11*i),e.moveTo(.05*n,.18*i),e.lineTo(.25*n,.18*i),e.moveTo(.05*n,.25*i),e.lineTo(.25*n,.25*i),e.setStrokeWidth(2),e.moveTo(.3*n,.63*i),e.lineTo(.8*n,.63*i),e.moveTo(.3*n,.72*i),e.lineTo(.8*n,.72*i),e.moveTo(.3*n,.8*i),e.lineTo(.8*n,.8*i),e.stroke(),e.setFillColor("#EDEDED"),e.rect(.8*n,.1*i,.12*n,.19*i),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeEipReturnAddress.prototype.cst.SHAPE_RET_ADDR,mxShapeEipReturnAddress),mxShapeEipReturnAddress.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxShapeEipAnchor,mxShape),mxShapeEipAnchor.prototype.cst={SHAPE_ANCHOR:"mxgraph.eip.anchor"},mxShapeEipAnchor.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeEipAnchor.prototype.cst.SHAPE_ANCHOR,mxShapeEipAnchor),mxUtils.extend(mxShapeEipMessageChannel,mxShape),mxShapeEipMessageChannel.prototype.cst={SHAPE_MESSAGE_CHANNEL:"mxgraph.eip.messageChannel"},mxShapeEipMessageChannel.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeEipMessageChannel.prototype.background=function(e,t,o,n,i){e.setGradient("#e6e6e6","#808080",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(8,.5*i+10),e.arcTo(12,12,0,0,1,8,.5*i-10),e.lineTo(n-8,.5*i-10),e.arcTo(12,12,0,0,1,n-8,.5*i+10),e.close(),e.fillAndStroke()},mxShapeEipMessageChannel.prototype.foreground=function(e,t,o,n,i){e.setFillColor("#e6e6e6"),e.begin(),e.moveTo(n-8,.5*i-10),e.arcTo(12,12,0,0,1,n-8,.5*i+10),e.arcTo(12,12,0,0,1,n-8,.5*i-10),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeEipMessageChannel.prototype.cst.SHAPE_MESSAGE_CHANNEL,mxShapeEipMessageChannel),mxShapeEipMessageChannel.prototype.getConstraints=function(e,t,o){for((e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,2.7,0)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-2.7,0)),o=10;o<t;)e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,o,0)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,o,0)),o+=10;return e},mxUtils.extend(mxShapeEipDatatypeChannel,mxShape),mxShapeEipDatatypeChannel.prototype.cst={SHAPE_DATATYPE_CHANNEL:"mxgraph.eip.dataChannel"},mxShapeEipDatatypeChannel.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeEipDatatypeChannel.prototype.background=function(e,t,o,n,i){e.setGradient("#e6e6e6","#808080",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(8,.5*i+10),e.arcTo(12,12,0,0,1,8,.5*i-10),e.lineTo(n-8,.5*i-10),e.arcTo(12,12,0,0,1,n-8,.5*i+10),e.close(),e.fillAndStroke()},mxShapeEipDatatypeChannel.prototype.foreground=function(e,t,o,n,i){for(e.setFillColor("#e6e6e6"),e.begin(),e.moveTo(n-8,.5*i-10),e.arcTo(12,12,0,0,1,n-8,.5*i+10),e.arcTo(12,12,0,0,1,n-8,.5*i-10),e.fillAndStroke(),e.setFillColor("#fffbc0"),e.setStrokeWidth("1"),t=1;20*t+10<n-14;t++)e.rect(20*t,.5*i-5,10,10),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeEipDatatypeChannel.prototype.cst.SHAPE_DATATYPE_CHANNEL,mxShapeEipDatatypeChannel),mxShapeEipDatatypeChannel.prototype.getConstraints=function(e,t,o){for((e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,2.7,0)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-2.7,0)),o=10;o<t;)e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,o,0)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,o,0)),o+=10;return e},mxUtils.extend(mxShapeEipDeadLetterChannel,mxShape),mxShapeEipDeadLetterChannel.prototype.cst={SHAPE_DEAD_LETTER_CHANNEL:"mxgraph.eip.deadLetterChannel"},mxShapeEipDeadLetterChannel.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeEipDeadLetterChannel.prototype.background=function(e,t,o,n,i){e.setGradient("#e6e6e6","#808080",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(8,.5*i+10),e.arcTo(12,12,0,0,1,8,.5*i-10),e.lineTo(n-8,.5*i-10),e.arcTo(12,12,0,0,1,n-8,.5*i+10),e.close(),e.fillAndStroke()},mxShapeEipDeadLetterChannel.prototype.foreground=function(e,t,o,n,i){e.setFillColor("#e6e6e6"),e.begin(),e.moveTo(n-8,.5*i-10),e.arcTo(12,12,0,0,1,n-8,.5*i+10),e.arcTo(12,12,0,0,1,n-8,.5*i-10),e.fillAndStroke(),e.setFillColor("#ff0000"),e.setStrokeWidth("1"),e.begin(),e.moveTo(.5*n-6,.5*i-3),e.lineTo(.5*n-3,.5*i-6),e.lineTo(.5*n+3,.5*i-6),e.lineTo(.5*n+6,.5*i-3),e.lineTo(.5*n+6,.5*i+3),e.lineTo(.5*n+3,.5*i+6),e.lineTo(.5*n-3,.5*i+6),e.lineTo(.5*n-6,.5*i+3),e.close(),e.fillAndStroke(),e.setStrokeWidth("2"),e.setStrokeColor("#ffffff"),e.begin(),e.moveTo(.5*n-4,.5*i),e.lineTo(.5*n+4,.5*i),e.stroke()},mxCellRenderer.registerShape(mxShapeEipDeadLetterChannel.prototype.cst.SHAPE_DEAD_LETTER_CHANNEL,mxShapeEipDeadLetterChannel),mxShapeEipDeadLetterChannel.prototype.getConstraints=function(e,t,o){for((e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,2.7,0)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-2.7,0)),o=10;o<t;)e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,o,0)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,o,0)),o+=10;return e},mxUtils.extend(mxShapeEipInvalidMessageChannel,mxShape),mxShapeEipInvalidMessageChannel.prototype.cst={SHAPE_INVALID_MESSAGE_CHANNEL:"mxgraph.eip.invalidMessageChannel"},mxShapeEipInvalidMessageChannel.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeEipInvalidMessageChannel.prototype.background=function(e,t,o,n,i){e.setGradient("#e6e6e6","#808080",0,0,n,i,mxConstants.DIRECTION_SOUTH,1,1),e.begin(),e.moveTo(8,.5*i+10),e.arcTo(12,12,0,0,1,8,.5*i-10),e.lineTo(n-8,.5*i-10),e.arcTo(12,12,0,0,1,n-8,.5*i+10),e.close(),e.fillAndStroke()},mxShapeEipInvalidMessageChannel.prototype.foreground=function(e,t,o,n,i){e.setFillColor("#e6e6e6"),e.begin(),e.moveTo(n-8,.5*i-10),e.arcTo(12,12,0,0,1,n-8,.5*i+10),e.arcTo(12,12,0,0,1,n-8,.5*i-10),e.fillAndStroke(),e.setFillColor("#ffe040"),e.setStrokeWidth("1"),e.begin(),e.moveTo(.5*n-6,.5*i+5),e.lineTo(.5*n,.5*i-5),e.lineTo(.5*n+6,.5*i+5),e.close(),e.fillAndStroke(),e.setStrokeWidth("1"),e.begin(),e.moveTo(.5*n,.5*i-2),e.lineTo(.5*n,.5*i+2),e.moveTo(.5*n,.5*i+3),e.lineTo(.5*n,.5*i+4),e.stroke()},mxCellRenderer.registerShape(mxShapeEipInvalidMessageChannel.prototype.cst.SHAPE_INVALID_MESSAGE_CHANNEL,mxShapeEipInvalidMessageChannel),mxShapeEipInvalidMessageChannel.prototype.getConstraints=function(e,t,o){for((e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,2.7,0)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-2.7,0)),o=10;o<t;)e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,o,0)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,o,0)),o+=10;return e},mxUtils.extend(mxShapeElectricalTestPoint,mxShape),mxShapeElectricalTestPoint.prototype.cst={SHAPE_TEST_POINT:"mxgraph.electrical.transmission.testPoint"},mxShapeElectricalTestPoint.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),o=Math.min(n,i),e.setFillColor(t),e.begin(),e.ellipse(.5*n-o/2,0,o,o),e.fillAndStroke(),i>n&&(e.begin(),e.moveTo(.5*n,o),e.lineTo(.5*n,i),e.stroke())},mxCellRenderer.registerShape(mxShapeElectricalTestPoint.prototype.cst.SHAPE_TEST_POINT,mxShapeElectricalTestPoint),mxShapeElectricalTestPoint.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)],mxUtils.extend(mxShapeElectricalStraightBus,mxShape),mxShapeElectricalStraightBus.prototype.cst={SHAPE_STRAIGHT_BUS:"mxgraph.electrical.transmission.straightBus"},mxShapeElectricalStraightBus.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=.2*n,o=n>i?.5*i:n/2,e.begin(),e.moveTo(n-t,0),e.lineTo(n-t,i-o),e.lineTo(n,i-o),e.lineTo(.5*n,i),e.lineTo(0,i-o),e.lineTo(t,i-o),e.lineTo(t,0),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeElectricalStraightBus.prototype.cst.SHAPE_STRAIGHT_BUS,mxShapeElectricalStraightBus),mxShapeElectricalStraightBus.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)],mxUtils.extend(mxShapeElectricalTwoLineBusElbow,mxShape),mxShapeElectricalTwoLineBusElbow.prototype.cst={SHAPE_TWO_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.twoLineBusElbow"},mxShapeElectricalTwoLineBusElbow.prototype.customProperties=[{name:"notch",dispName:"Spacing",type:"float",min:0,defVal:25}],mxShapeElectricalTwoLineBusElbow.prototype.paintVertexShape=function(e,t,o,n,i){var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));e.translate(t,o),e.begin(),e.moveTo(0,i),e.lineTo(n,i),e.lineTo(n,0),e.stroke(),t=Math.min(n,a),a=Math.min(i,a),e.begin(),e.moveTo(0,i-a),e.lineTo(n-t,i-a),e.lineTo(n-t,0),e.stroke()},mxCellRenderer.registerShape(mxShapeElectricalTwoLineBusElbow.prototype.cst.SHAPE_TWO_LINE_BUS_ELBOW,mxShapeElectricalTwoLineBusElbow),mxShapeElectricalTwoLineBusElbow.prototype.constraints=null,Graph.handleFactory[mxShapeElectricalTwoLineBusElbow.prototype.cst.SHAPE_TWO_LINE_BUS_ELBOW]=function(e){return[Graph.createHandle(e,["notch"],(function(e){var t=Math.max(Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(e.x+e.width/4,e.y+e.height-t)}),(function(e,t){this.state.style.notch=Math.round(.2*Math.max(0,e.width-t.y+e.y))/.2}))]},mxUtils.extend(mxShapeElectricalThreeLineBusElbow,mxShape),mxShapeElectricalThreeLineBusElbow.prototype.cst={SHAPE_THREE_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.threeLineBusElbow"};mxShapeElectricalThreeLineBusElbow.prototype.customProperties=[{name:"notch",dispName:"Spacing",type:"float",min:0,defVal:30}],mxShapeElectricalThreeLineBusElbow.prototype.paintVertexShape=function(e,t,o,n,i){var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));e.translate(t,o),e.begin(),e.moveTo(0,i),e.lineTo(n,i),e.lineTo(n,0),e.stroke(),t=Math.min(n,a),a=Math.min(i,a),e.begin(),e.moveTo(0,i-a),e.lineTo(n-t,i-a),e.lineTo(n-t,0),e.stroke(),e.begin(),e.moveTo(0,i-a/2),e.lineTo(n-t/2,i-a/2),e.lineTo(n-t/2,0),e.stroke()},mxCellRenderer.registerShape(mxShapeElectricalThreeLineBusElbow.prototype.cst.SHAPE_THREE_LINE_BUS_ELBOW,mxShapeElectricalThreeLineBusElbow),mxShapeElectricalThreeLineBusElbow.prototype.constraints=null,Graph.handleFactory[mxShapeElectricalThreeLineBusElbow.prototype.cst.SHAPE_THREE_LINE_BUS_ELBOW]=function(e){return[Graph.createHandle(e,["notch"],(function(e){var t=Math.max(Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(e.x+e.width/4,e.y+e.height-t)}),(function(e,t){this.state.style.notch=Math.round(.2*Math.max(0,e.width-t.y+e.y))/.2}))]},mxUtils.extend(mxShapeElectricalFourLineBusElbow,mxShape),mxShapeElectricalFourLineBusElbow.prototype.cst={SHAPE_FOUR_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.fourLineBusElbow"},mxShapeElectricalFourLineBusElbow.prototype.customProperties=[{name:"notch",dispName:"Spacing",type:"float",min:0,defVal:75}],mxShapeElectricalFourLineBusElbow.prototype.paintVertexShape=function(e,t,o,n,i){var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));e.translate(t,o),e.begin(),e.moveTo(0,i),e.lineTo(n,i),e.lineTo(n,0),e.stroke(),t=Math.min(n,a),a=Math.min(i,a),e.begin(),e.moveTo(0,i-a),e.lineTo(n-t,i-a),e.lineTo(n-t,0),e.stroke(),e.begin(),e.moveTo(0,i-a/3),e.lineTo(n-t/3,i-a/3),e.lineTo(n-t/3,0),e.stroke(),e.begin(),e.moveTo(0,i-2*a/3),e.lineTo(n-2*t/3,i-2*a/3),e.lineTo(n-2*t/3,0),e.stroke()},mxCellRenderer.registerShape(mxShapeElectricalFourLineBusElbow.prototype.cst.SHAPE_FOUR_LINE_BUS_ELBOW,mxShapeElectricalFourLineBusElbow),mxShapeElectricalFourLineBusElbow.prototype.constraints=null,Graph.handleFactory[mxShapeElectricalFourLineBusElbow.prototype.cst.SHAPE_FOUR_LINE_BUS_ELBOW]=function(e){return[Graph.createHandle(e,["notch"],(function(e){var t=Math.max(Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(e.x+e.width/4,e.y+e.height-t)}),(function(e,t){this.state.style.notch=Math.round(.2*Math.max(0,e.width-t.y+e.y))/.2}))]},mxUtils.extend(mxShapeElectricalEightLineBusElbow,mxShape),mxShapeElectricalEightLineBusElbow.prototype.cst={SHAPE_EIGHT_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.eightLineBusElbow"},mxShapeElectricalEightLineBusElbow.prototype.customProperties=[{name:"notch",dispName:"Spacing",type:"float",min:0,defVal:180}],mxShapeElectricalEightLineBusElbow.prototype.paintVertexShape=function(e,t,o,n,i){var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));e.translate(t,o),e.begin(),e.moveTo(0,i),e.lineTo(n,i),e.lineTo(n,0),e.stroke(),t=Math.min(n,a),a=Math.min(i,a),e.begin(),e.moveTo(0,i-a),e.lineTo(n-t,i-a),e.lineTo(n-t,0),e.stroke(),e.begin(),e.moveTo(0,i-a/7),e.lineTo(n-t/7,i-a/7),e.lineTo(n-t/7,0),e.stroke(),e.begin(),e.moveTo(0,i-2*a/7),e.lineTo(n-2*t/7,i-2*a/7),e.lineTo(n-2*t/7,0),e.stroke(),e.begin(),e.moveTo(0,i-3*a/7),e.lineTo(n-3*t/7,i-3*a/7),e.lineTo(n-3*t/7,0),e.stroke(),e.begin(),e.moveTo(0,i-4*a/7),e.lineTo(n-4*t/7,i-4*a/7),e.lineTo(n-4*t/7,0),e.stroke(),e.begin(),e.moveTo(0,i-5*a/7),e.lineTo(n-5*t/7,i-5*a/7),e.lineTo(n-5*t/7,0),e.stroke(),e.begin(),e.moveTo(0,i-6*a/7),e.lineTo(n-6*t/7,i-6*a/7),e.lineTo(n-6*t/7,0),e.stroke()},mxCellRenderer.registerShape(mxShapeElectricalEightLineBusElbow.prototype.cst.SHAPE_EIGHT_LINE_BUS_ELBOW,mxShapeElectricalEightLineBusElbow),mxShapeElectricalEightLineBusElbow.prototype.constraints=null,Graph.handleFactory[mxShapeElectricalEightLineBusElbow.prototype.cst.SHAPE_EIGHT_LINE_BUS_ELBOW]=function(e){return[Graph.createHandle(e,["notch"],(function(e){var t=Math.max(Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(e.x+e.width/4,e.y+e.height-t)}),(function(e,t){this.state.style.notch=Math.round(.2*Math.max(0,e.width-t.y+e.y))/.2}))]},mxUtils.extend(mxShapeElectricalLogicGate,mxShape),mxShapeElectricalLogicGate.prototype.cst={SHAPE_LOGIC_GATE:"mxgraph.electrical.logic_gates.logic_gate"},mxShapeElectricalLogicGate.prototype.customProperties=[{name:"operation",dispName:"Operation",type:"enum",defVal:"and",enumList:[{val:"and",dispName:"And"},{val:"or",dispName:"Or"},{val:"xor",dispName:"Xor"}]},{name:"numInputs",dispName:"Inputs",type:"int",min:2,defVal:2},{name:"negating",dispName:"Negating",type:"bool",defVal:0}],mxShapeElectricalLogicGate.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=.5*(o=i/(t=parseInt(mxUtils.getValue(this.style,"numInputs","2"))));e.begin(),e.moveTo(.8*n,.5*i),e.lineTo(n,.5*i);for(var s=mxUtils.getValue(this.style,"operation","and"),l=0;l<t;l++)e.moveTo(0,a),"and"==s?e.lineTo(.2*n,a):e.lineTo(.23*n,a),a+=o;switch(e.stroke(),s){case"xor":e.begin(),e.moveTo(.1*n,0),e.arcTo(.6*n,i,0,0,1,.1*n,i),e.stroke();case"or":e.begin(),e.moveTo(.4*n,0),e.arcTo(.45*n,.83*i,0,0,1,.8*n,.5*i),e.arcTo(.45*n,.83*i,0,0,1,.4*n,i),e.lineTo(.15*n,i),e.arcTo(.6*n,i,0,0,0,.15*n,0),e.close(),e.fillAndStroke();break;default:e.begin(),e.moveTo(.2*n,0),e.lineTo(.5*n,0),e.arcTo(.3*n,.5*i,0,0,1,.5*n,i),e.lineTo(.2*n,i),e.close(),e.fillAndStroke()}"1"==mxUtils.getValue(this.style,"negating","0")&&(this.style.negSize?(t=parseFloat(mxUtils.getValue(this.style,"negSize","0.13")),t=Math.min(n*t*.5,i*t)):t=Math.min(.04*n,.07*i),e.begin(),e.ellipse(.8*n,.5*i-.5*t,t,t),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeElectricalLogicGate.prototype.cst.SHAPE_LOGIC_GATE,mxShapeElectricalLogicGate),mxShapeElectricalLogicGate.prototype.getConstraints=function(e){for(var t=[new mxConnectionConstraint(new mxPoint(1,.5),!1)],o=1/(e=parseInt(mxUtils.getValue(e,"numInputs","2"))),n=.5*o,i=0;i<e;i++)t.push(new mxConnectionConstraint(new mxPoint(0,n),!1)),n+=o;return t},mxUtils.extend(mxShapeElectricalBuffer,mxShape),mxShapeElectricalBuffer.prototype.cst={SHAPE_BUFFER2:"mxgraph.electrical.logic_gates.buffer2"},mxShapeElectricalBuffer.prototype.customProperties=[{name:"negating",dispName:"Negating",type:"bool",defVal:0}],mxShapeElectricalBuffer.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,.5*i),e.lineTo(.2*n,.5*i),e.moveTo(.8*n,.5*i),e.lineTo(n,.5*i),e.stroke(),e.begin(),e.moveTo(.2*n,0),e.lineTo(.8*n,.5*i),e.lineTo(.2*n,i),e.close(),e.fillAndStroke(),"1"==mxUtils.getValue(this.style,"negating","0")&&(t=Math.min(.04*n,.07*i),e.begin(),e.ellipse(.8*n,.5*i-.5*t,t,t),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeElectricalBuffer.prototype.cst.SHAPE_BUFFER2,mxShapeElectricalBuffer),mxShapeElectricalBuffer.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)],mxUtils.extend(mxShapeElectricalDualInLineIC,mxShape),mxShapeElectricalDualInLineIC.prototype.cst={SHAPE_DUAL_INLINE_IC:"mxgraph.electrical.logic_gates.dual_inline_ic"},mxShapeElectricalDualInLineIC.prototype.customProperties=[{name:"pinStyle",dispName:"Pin Style",type:"enum",defVal:"line",enumList:[{val:"line",dispName:"Line"},{val:"square",dispName:"Square"}]},{name:"startPin",dispName:"Starting Pin",type:"enum",defVal:"n",enumList:[{val:"n",dispName:"N"},{val:"e",dispName:"E"},{val:"s",dispName:"S"},{val:"w",dispName:"W"}]},{name:"pinSpacing",dispName:"Pin Spacing",type:"float",min:1,defVal:20},{name:"pinLabelType",dispName:"Pin Label Type",type:"enum",defVal:"gen",enumList:[{val:"gen",dispName:"Generated"},{val:"cust",dispName:"Custom"}]},{name:"labelCount",dispName:"Number of Labels",type:"int",defVal:20,dependentProps:["labelNames"]},{name:"labelNames",dispName:"Label Names",type:"staticArr",subType:"string",sizeProperty:"labelCount",subDefVal:"a"}],mxShapeElectricalDualInLineIC.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,"fontColor","#000000"),e.setFontColor(t),t=mxUtils.getValue(this.style,"startPin","n"),o=mxUtils.getValue(this.style,"pinLabelType","gen");var a=mxUtils.getValue(this.style,"labelNames","").toString().split(",");e.begin(),"n"==t||"s"==t?e.rect(10,0,n-20,i):e.rect(0,10,n,i-20),e.fillAndStroke();var s=parseFloat(mxUtils.getValue(this.style,"pinSpacing","20")),l=mxUtils.getValue(this.style,"pinStyle","line"),r=parseFloat(mxUtils.getValue(this.style,"fontSize","12")),p="n"==t||"s"==t?parseInt(i/s):parseInt(n/s);if("line"==l){if(e.setFontSize(.8*r),l=1,r=.5*s,e.begin(),"n"==t||"s"==t)for(;l*s<=i;){e.moveTo(0,r),e.lineTo(10,r),e.moveTo(n-10,r),e.lineTo(n,r);var m="n"==t?l:p+l;"gen"==o?e.text(20,r,0,0,m.toString(),mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<a.length&&e.text(20,r,0,0,a[m-1].toString(),mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),m="n"==t?2*p-l+1:p-l+1,"gen"==o?e.text(n-20,r,0,0,m.toString(),mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<a.length&&e.text(n-20,r,0,0,a[m-1].toString(),mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),r+=s,l++}else for(;l*s<=n;)e.moveTo(r,0),e.lineTo(r,10),e.moveTo(r,i-10),e.lineTo(r,i),m="e"==t?p-l+1:2*p-l+1,"gen"==o?e.text(r,20,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<a.length&&e.text(r,20,0,0,a[m-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),m="e"==t?p+l:l,"gen"==o?e.text(r,i-20,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<a.length&&e.text(r,i-20,0,0,a[m-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),r+=s,l++;e.stroke()}else if(e.setFontSize(.5*r),l=1,r=.5*s,"n"==t||"s"==t)for(;l*s<=i;)e.begin(),e.rect(0,r-.25*s,10,.5*s),e.fillAndStroke(),e.begin(),e.rect(n-10,r-.25*s,10,.5*s),e.fillAndStroke(),m="n"==t?l:p+l,"gen"==o?e.text(5,r+1,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<a.length&&e.text(5,r+1,0,0,a[m-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),m="n"==t?2*p-l+1:p-l+1,"gen"==o?e.text(n-5,r+1,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<a.length&&e.text(n-5,r+1,0,0,a[m-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),r+=s,l++;else for(;l*s<=n;)e.begin(),e.rect(r-.25*s,0,.5*s,10),e.fillAndStroke(),e.begin(),e.rect(r-.25*s,i-10,.5*s,10),e.fillAndStroke(),m="e"==t?p-l+1:2*p-l+1,"gen"==o?e.text(r,5,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<a.length&&e.text(r,5,0,0,a[m-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),m="e"==t?p+l:l,"gen"==o?e.text(r,i-5,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<a.length&&e.text(r,i-5,0,0,a[m-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),r+=s,l++;switch(e.setShadow(!1),e.begin(),t){case"e":40<i&&(e.moveTo(n,.5*i-10),e.arcTo(12,12,0,0,0,n,.5*i+10));break;case"s":40<n&&(e.moveTo(.5*n-10,i),e.arcTo(12,12,0,0,1,.5*n+10,i));break;case"w":40<i&&(e.moveTo(0,.5*i-10),e.arcTo(12,12,0,0,1,0,.5*i+10));break;default:40<n&&(e.moveTo(.5*n-10,0),e.arcTo(12,12,0,0,0,.5*n+10,0))}e.stroke()},mxCellRenderer.registerShape(mxShapeElectricalDualInLineIC.prototype.cst.SHAPE_DUAL_INLINE_IC,mxShapeElectricalDualInLineIC),mxShapeElectricalDualInLineIC.prototype.getConstraints=function(e,t,o){e=[];var n=parseFloat(mxUtils.getValue(this.style,"pinSpacing","20")),i=mxUtils.getValue(this.style,"startPin","n"),a=1,s=.5*n;if(parseInt(o/n),"n"==i||"s"==i)for(;a*n<=o;)e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,s)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,s)),s+=n,a++;else for(;a*n<=t;)e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s,0)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,s,0)),s+=n,a++;return e},mxUtils.extend(mxShapeElectricalQFPIC,mxShape),mxShapeElectricalQFPIC.prototype.cst={SHAPE_QFP_IC:"mxgraph.electrical.logic_gates.qfp_ic"},mxShapeElectricalQFPIC.prototype.customProperties=[{name:"pinStyle",dispName:"Pin Style",type:"enum",defVal:"line",enumList:[{val:"line",dispName:"Line"},{val:"square",dispName:"Square"}]},{name:"startPin",dispName:"Starting Pin",type:"enum",defVal:"sw",enumList:[{val:"sw",dispName:"SW"},{val:"nw",dispName:"NW"},{val:"ne",dispName:"NE"},{val:"se",dispName:"SE"}]},{name:"pinSpacing",dispName:"Pin Spacing",type:"float",min:1,defVal:20},{name:"pinLabelType",dispName:"Pin Label Type",type:"enum",defVal:"gen",enumList:[{val:"gen",dispName:"Generated"},{val:"cust",dispName:"Custom"}]},{name:"labelCount",dispName:"Number of Labels",type:"int",defVal:40,dependentProps:["labelNames"]},{name:"labelNames",dispName:"Label Names",type:"staticArr",subType:"string",sizeProperty:"labelCount",subDefVal:"a"}],mxShapeElectricalQFPIC.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(15,10),e.lineTo(n-15,10),e.lineTo(n-10,15),e.lineTo(n-10,i-15),e.lineTo(n-15,i-10),e.lineTo(15,i-10),e.lineTo(10,i-15),e.lineTo(10,15),e.close(),e.fillAndStroke(),t=parseFloat(mxUtils.getValue(this.style,"pinSpacing","20"));var a=mxUtils.getValue(this.style,"pinStyle","line");o=mxUtils.getValue(this.style,"pinLabelType","gen");var s=mxUtils.getValue(this.style,"labelNames","").toString().split(","),l=parseFloat(mxUtils.getValue(this.style,"fontSize","12")),r=mxUtils.getValue(this.style,"fontColor","#000000");if(e.setFontColor(r),r=mxUtils.getValue(this.style,"startPin","sw"),"line"==a){e.setFontSize(.8*l),a=1,l=.5*t+20,e.begin();for(var p=parseInt((i-t-40)/t)+1,m=parseInt((n-t-40)/t)+1;l<=i-.5*t-20;){switch(e.moveTo(0,l),e.lineTo(10,l),e.moveTo(n-10,l),e.lineTo(n,l),r){case"nw":var h=a;break;case"ne":h=m+a;break;case"se":h=p+m+a;break;default:h=p+2*m+a}switch("gen"==o?e.text(20,l,0,0,h.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):h-1<s.length&&e.text(20,l,0,0,s[h-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),r){case"nw":h=m+2*p-a+1;break;case"ne":h=2*m+2*p-a+1;break;case"se":h=p-a+1;break;default:h=m+p-a+1}"gen"==o?e.text(n-20,l,0,0,h.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):h-1<s.length&&e.text(n-20,l,0,0,s[h-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),l+=t,a++}for(a=1,l=.5*t+20;l<=n-.5*t-20;){switch(e.moveTo(l,0),e.lineTo(l,10),e.moveTo(l,i-10),e.lineTo(l,i),r){case"nw":h=p+a;break;case"ne":h=p+m+a;break;case"se":h=2*p+m+a;break;default:h=a}switch("gen"==o?e.text(l,i-20,0,0,h.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):h-1<s.length&&e.text(l,i-20,0,0,s[h-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),r){case"nw":h=2*m+2*p-a+1;break;case"ne":h=m-a+1;break;case"se":h=m+p-a+1;break;default:h=2*m+p-a+1}"gen"==o?e.text(l,20,0,0,h.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):h-1<s.length&&e.text(l,20,0,0,s[h-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),l+=t,a++}e.stroke()}else{for(e.setFontSize(.5*l),a=1,l=.5*t+20,p=parseInt((i-t-40)/t)+1,m=parseInt((n-t-40)/t)+1;l<=i-.5*t-20;){switch(e.begin(),e.rect(0,l-.25*t,10,.5*t),e.fillAndStroke(),e.begin(),e.rect(n-10,l-.25*t,10,.5*t),e.fillAndStroke(),r){case"nw":h=a;break;case"ne":h=m+a;break;case"se":h=p+m+a;break;default:h=p+2*m+a}switch("gen"==o?e.text(5,l+1,0,0,h.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):h-1<s.length&&e.text(5,l+1,0,0,s[h-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),r){case"nw":h=m+2*p-a+1;break;case"ne":h=2*m+2*p-a+1;break;case"se":h=p-a+1;break;default:h=m+p-a+1}"gen"==o?e.text(n-5,l+1,0,0,h.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):h-1<s.length&&e.text(n-5,l+1,0,0,s[h-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),l+=t,a++}for(a=1,l=.5*t+20;l<=n-.5*t-20;){switch(e.begin(),e.rect(l-.25*t,0,.5*t,10),e.fillAndStroke(),e.begin(),e.rect(l-.25*t,i-10,.5*t,10),e.fillAndStroke(),r){case"nw":h=p+a;break;case"ne":h=p+m+a;break;case"se":h=2*p+m+a;break;default:h=a}switch("gen"==o?e.text(l,i-4,0,0,h.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):h-1<s.length&&e.text(l,i-4,0,0,s[h-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),r){case"nw":h=2*m+2*p-a+1;break;case"ne":h=m-a+1;break;case"se":h=m+p-a+1;break;default:h=2*m+p-a+1}"gen"==o?e.text(l,6,0,0,h.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):h-1<s.length&&e.text(l,6,0,0,s[h-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),l+=t,a++}}if(e.setShadow(!1),40<n){switch(e.setFillColor(mxUtils.getValue(this.style,"strokeColor","#000000")),e.begin(),r){case"nw":e.ellipse(15,15,10,10);break;case"ne":e.ellipse(n-25,15,10,10);break;case"se":e.ellipse(n-25,i-25,10,10);break;default:e.ellipse(15,i-25,10,10)}e.fillAndStroke()}},mxCellRenderer.registerShape(mxShapeElectricalQFPIC.prototype.cst.SHAPE_QFP_IC,mxShapeElectricalQFPIC),mxShapeElectricalQFPIC.prototype.getConstraints=function(e,t,o){e=[];var n=parseFloat(mxUtils.getValue(this.style,"pinSpacing","20")),i=.5*n+20;for(parseInt(o/n);i<=o-.5*n-20;)e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,i)),i+=n;for(i=.5*n+20;i<=t-.5*n-20;)e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,0)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,i,0)),i+=n;return e},mxUtils.extend(mxShapeElectricalMux,mxShape),mxShapeElectricalMux.prototype.cst={SHAPE_MUX:"mxgraph.electrical.abstract.mux2"},mxShapeElectricalMux.prototype.customProperties=[{name:"operation",dispName:"Operation",type:"enum",defVal:"mux",enumList:[{val:"mux",dispName:"Mux"},{val:"demux",dispName:"Demux"}]},{name:"selectorPins",dispName:"Selector Pins",type:"int",min:1,max:8,defVal:1}],mxShapeElectricalMux.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseInt(mxUtils.getValue(this.style,"selectorPins","1")),o=mxUtils.getValue(this.style,"operation","mux");var a=parseFloat(mxUtils.getValue(this.style,"fontSize","12"));switch(e.setFontSize(.5*a),a=mxUtils.getValue(this.style,"fontColor","#000000"),e.setFontColor(a),a=0,mxUtils.getValue(this.style,"direction","east")){case"south":a=270;break;case"west":a=180;break;case"north":a=90}"demux"===o?(e.begin(),e.moveTo(n-10,0),e.lineTo(10,.1*i),e.lineTo(10,.9*i-10),e.lineTo(n-10,i-10),e.close(),e.fillAndStroke()):(e.begin(),e.moveTo(10,0),e.lineTo(n-10,.1*i),e.lineTo(n-10,.9*i-10),e.lineTo(10,i-10),e.close(),e.fillAndStroke());var s=1,l=1;if("mux"==o)var r=(i-16)/(s=Math.pow(2,t));else r=(i-16)/(l=Math.pow(2,t));var p=3+.5*r;if(e.begin(),1==s)e.moveTo(0,.5*(i-10)),e.lineTo(10,.5*(i-10));else for(var m=0;m<s;m++)e.moveTo(0,p),e.lineTo(10,p),e.text(14,p+1,0,0,""+m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,a),p+=r;if(1==l)e.moveTo(n-10,.5*(i-10)),e.lineTo(n,.5*(i-10));else for(m=0;m<l;m++)e.moveTo(n-10,p),e.lineTo(n,p),e.text(n-14,p+1,0,0,""+m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,a),p+=r;for(s=10+.5*(r=(n-20)/t),m=0;m<t;m++)"mux"==o?e.moveTo(s,i-10-(s-10)/(n-20)*i*.1):e.moveTo(s,i-10-(n-s-10)/(n-20)*i*.1),e.lineTo(s,i),e.text(s+5,i-4,0,0,"S"+(t-m-1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,a),s+=r;e.stroke()},mxCellRenderer.registerShape(mxShapeElectricalMux.prototype.cst.SHAPE_MUX,mxShapeElectricalMux),mxShapeElectricalMux.prototype.getConstraints=function(e,t,o){e=[];var n=(o-16)/o,i=parseInt(mxUtils.getValue(this.style,"selectorPins","1")),a=1,s=1;"mux"==mxUtils.getValue(this.style,"operation","mux")?n/=a=Math.pow(2,i):n/=s=Math.pow(2,i);var l=.5*n;if(1==a)e.push(new mxConnectionConstraint(new mxPoint(0,.5*(o-10)/o),!1,0,0));else for(o=0;o<a;o++)e.push(new mxConnectionConstraint(new mxPoint(0,l),!1,null,0,3)),l+=n;if(1==s)e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,-5));else for(o=0;o<s;o++)e.push(new mxConnectionConstraint(new mxPoint(1,l),!1,null,0,3)),l+=n;for(t=.5*(n=(t-20)/(t*i)),o=0;o<i;o++)e.push(new mxConnectionConstraint(new mxPoint(t,1),!1,null,10,0)),t+=n;return e},mxUtils.extend(mxShapeElectricalBatteryStack,mxShape),mxShapeElectricalBatteryStack.prototype.cst={SHAPE_BATTERY_STACK:"mxgraph.electrical.miscellaneous.batteryStack"},mxShapeElectricalBatteryStack.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=.3*i;var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");o=mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,"0");var s=Math.floor((n-20)/t),l=.5*(n-s*t);if(0<s)for(e.begin(),e.moveTo(0,.5*i),e.lineTo(l+.2*t,.5*i),e.moveTo(n-l-.2*t,.5*i),e.lineTo(n,.5*i),e.stroke(),n=l,e.setFillColor(a),a=0;a<s;a++)e.rect(n+.2*t,.25*i,.2*t,.5*i),e.fillAndStroke(),e.begin(),e.moveTo(n+.8*t,0),e.lineTo(n+.8*t,i),e.stroke(),0<a&&(e.setDashed("1"),e.begin(),e.moveTo(n-.2*t,.5*i),e.lineTo(n+.2*t,.5*i),e.stroke(),e.setDashed(o)),n+=t},mxCellRenderer.registerShape(mxShapeElectricalBatteryStack.prototype.cst.SHAPE_BATTERY_STACK,mxShapeElectricalBatteryStack),mxShapeElectricalBatteryStack.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)],mxUtils.extend(mxShapeElectricalDCSource3_v2,mxShape),mxShapeElectricalDCSource3_v2.prototype.cst={SHAPE_DC_SOURCE_3_V2:"mxgraph.electrical.signal_sources.dc_source_3_v2"},mxShapeElectricalDCSource3_v2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(3,.05*Math.min(i,n)),e.ellipse(0,0,n,i),e.fillAndStroke(),e.begin(),e.moveTo(.5*n-t,.05*i+3),e.lineTo(.5*n+t,.05*i+3),e.moveTo(.5*n,.05*i-t+3),e.lineTo(.5*n,.05*i+t+3),e.moveTo(.5*n-t,.95*i-3),e.lineTo(.5*n+t,.95*i-3),e.stroke()},mxCellRenderer.registerShape(mxShapeElectricalDCSource3_v2.prototype.cst.SHAPE_DC_SOURCE_3_V2,mxShapeElectricalDCSource3_v2),mxShapeElectricalDCSource3_v2.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)],mxUtils.extend(mxShapeElectricalSource,mxShape),mxShapeElectricalSource.prototype.cst={SHAPE_SOURCE:"mxgraph.electrical.signal_sources.source"},mxShapeElectricalSource.prototype.customProperties=[{name:"elSourceType",dispName:"Source Type",type:"enum",defVal:"independent",enumList:[{val:"independent",dispName:"Independent"},{val:"dependent",dispName:"Dependent"}]},{name:"elSignalType",dispName:"Signal Type",type:"enum",defVal:"ac",enumList:[{val:"ac",dispName:"AC"},{val:"none",dispName:"None"},{val:"square",dispName:"Square"},{val:"triangular",dispName:"Triangular"},{val:"sawtooth",dispName:"Sawtooth"},{val:"noise",dispName:"Noise"},{val:"ideal",dispName:"Ideal"},{val:"expSquib",dispName:"Explosive Squib"},{val:"pulse",dispName:"Pulse"},{val:"invPulse",dispName:"Inverse Pulse"},{val:"chopSquare",dispName:"Chopped Square"},{val:"stepOn",dispName:"Step On"},{val:"stepOff",dispName:"Step Off"},{val:"dc1",dispName:"DC Horizontal"},{val:"dc2",dispName:"DC Vertical"},{val:"dc3",dispName:"DC Plus minus"}]}],mxShapeElectricalSource.prototype.paintVertexShape=function(e,t,o,n,i){switch(e.translate(t,o),t=mxUtils.getValue(this.style,"elSourceType","independent"),o=mxUtils.getValue(this.style,"elSignalType","none"),t){case"independent":e.ellipse(0,0,n,i),e.fillAndStroke();break;case"dependent":e.begin(),e.moveTo(0,.5*i),e.lineTo(.5*n,0),e.lineTo(n,.5*i),e.lineTo(.5*n,i),e.lineTo(0,.5*i),e.close(),e.fillAndStroke()}switch(o){case"ac":e.begin(),e.moveTo(.3*n,.5*i),e.quadTo(.34*n,.35*i,.4*n,.35*i),e.quadTo(.46*n,.35*i,.5*n,.5*i),e.quadTo(.53*n,.65*i,.6*n,.65*i),e.quadTo(.66*n,.65*i,.7*n,.5*i),e.stroke();break;case"square":e.begin(),e.moveTo(.3*n,.5*i),e.lineTo(.3*n,.35*i),e.lineTo(.5*n,.35*i),e.lineTo(.5*n,.65*i),e.lineTo(.7*n,.65*i),e.lineTo(.7*n,.5*i),e.stroke();break;case"triangular":e.begin(),e.moveTo(.3*n,.65*i),e.lineTo(.4*n,.35*i),e.lineTo(.5*n,.65*i),e.lineTo(.6*n,.35*i),e.lineTo(.7*n,.65*i),e.stroke();break;case"sawtooth":e.begin(),e.moveTo(.24*n,.65*i),e.lineTo(.42*n,.35*i),e.lineTo(.42*n,.65*i),e.lineTo(.58*n,.35*i),e.lineTo(.58*n,.65*i),e.lineTo(.76*n,.35*i),e.lineTo(.76*n,.65*i),e.stroke();break;case"noise":e.begin(),e.moveTo(.5*n,.17*i),e.lineTo(.5*n,.5*i),e.moveTo(.18*n,.42*i),e.lineTo(.5*n,.5*i),e.moveTo(.32*n,.78*i),e.lineTo(.5*n,.5*i),e.moveTo(.82*n,.42*i),e.lineTo(.5*n,.5*i),e.moveTo(.68*n,.78*i),e.lineTo(.5*n,.5*i),e.stroke();break;case"ideal":e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke();break;case"expSquib":e.ellipse(0,.43*i,.14*n,.14*i),e.stroke(),e.ellipse(.86*n,.43*i,.14*n,.14*i),e.stroke(),e.begin(),e.moveTo(.83*n,.63*i),e.lineTo(.73*n,.73*i),e.lineTo(.27*n,.27*i),e.lineTo(.17*n,.37*i),e.stroke(),e.begin(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.moveTo(.2*n,.25*i),e.lineTo(.13*n,.4*i),e.lineTo(.28*n,.33*i),e.close(),e.fillAndStroke();break;case"pulse":e.begin(),e.moveTo(.3*n,.65*i),e.lineTo(.4*n,.65*i),e.lineTo(.4*n,.35*i),e.lineTo(.6*n,.35*i),e.lineTo(.6*n,.65*i),e.lineTo(.7*n,.65*i),e.stroke();break;case"invPulse":e.begin(),e.moveTo(.3*n,.35*i),e.lineTo(.4*n,.35*i),e.lineTo(.4*n,.65*i),e.lineTo(.6*n,.65*i),e.lineTo(.6*n,.35*i),e.lineTo(.7*n,.35*i),e.stroke();break;case"chopSquare":e.begin(),e.moveTo(.3*n,.5*i),e.lineTo(.33*n,.35*i),e.lineTo(.47*n,.35*i),e.lineTo(.53*n,.65*i),e.lineTo(.67*n,.65*i),e.lineTo(.7*n,.5*i),e.stroke();break;case"stepOn":e.begin(),e.moveTo(.3*n,.65*i),e.lineTo(.5*n,.65*i),e.lineTo(.5*n,.35*i),e.lineTo(.7*n,.35*i),e.stroke();break;case"stepOff":e.begin(),e.moveTo(.3*n,.35*i),e.lineTo(.5*n,.35*i),e.lineTo(.5*n,.65*i),e.lineTo(.7*n,.65*i),e.stroke();break;case"dc1":e.begin(),e.moveTo(.17*n,.5*i),e.lineTo(.83*n,.5*i),e.moveTo(.67*n,.42*i),e.lineTo(.83*n,.5*i),e.lineTo(.67*n,.58*i),e.stroke();break;case"dc2":e.begin(),e.moveTo(.5*n,.17*i),e.lineTo(.5*n,.83*i),e.moveTo(.42*n,.67*i),e.lineTo(.5*n,.83*i),e.lineTo(.58*n,.67*i),e.stroke();break;case"dc3":o=Math.max(3,.05*Math.min(i,n));var a=3;"dependent"==t&&(a+=3),e.begin(),e.moveTo(.5*n-o,.05*i+a),e.lineTo(.5*n+o,.05*i+a),e.moveTo(.5*n,.05*i-o+a),e.lineTo(.5*n,.05*i+o+a),e.moveTo(.5*n-o,.95*i-a),e.lineTo(.5*n+o,.95*i-a),e.stroke()}},mxCellRenderer.registerShape(mxShapeElectricalSource.prototype.cst.SHAPE_SOURCE,mxShapeElectricalSource),mxUtils.extend(mxFloorplanWall,mxShape),mxFloorplanWall.prototype.cst={WALL:"mxgraph.floorplan.wall",WALL_THICKNESS:"wallThickness"},mxFloorplanWall.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}],mxFloorplanWall.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanWall.prototype.background=function(e,t,o,n,i){t=parseFloat(mxUtils.getValue(this.style,mxFloorplanWall.prototype.cst.WALL_THICKNESS,"10")),e.rect(0,.5*i-.5*t,n,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanWall.prototype.cst.WALL,mxFloorplanWall),mxUtils.extend(mxFloorplanWallCorner,mxShape),mxFloorplanWallCorner.prototype.cst={WALL_CORNER:"mxgraph.floorplan.wallCorner",WALL_THICKNESS:"wallThickness"},mxFloorplanWallCorner.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}],mxFloorplanWallCorner.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanWallCorner.prototype.background=function(e,t,o,n,i){t=parseFloat(mxUtils.getValue(this.style,mxFloorplanWallCorner.prototype.cst.WALL_THICKNESS,"10")),e.begin(),e.moveTo(0,i),e.lineTo(0,0),e.lineTo(n,0),e.lineTo(n,t),e.lineTo(t,t),e.lineTo(t,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanWallCorner.prototype.cst.WALL_CORNER,mxFloorplanWallCorner),mxUtils.extend(mxFloorplanWallU,mxShape),mxFloorplanWallU.prototype.cst={WALL_U:"mxgraph.floorplan.wallU",WALL_THICKNESS:"wallThickness"},mxFloorplanWallU.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}],mxFloorplanWallU.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanWallU.prototype.background=function(e,t,o,n,i){t=parseFloat(mxUtils.getValue(this.style,mxFloorplanWallU.prototype.cst.WALL_THICKNESS,"10")),e.begin(),e.moveTo(0,i),e.lineTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(n-t,i),e.lineTo(n-t,t),e.lineTo(t,t),e.lineTo(t,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanWallU.prototype.cst.WALL_U,mxFloorplanWallU),mxUtils.extend(mxFloorplanRoom,mxShape),mxFloorplanRoom.prototype.cst={ROOM:"mxgraph.floorplan.room",WALL_THICKNESS:"wallThickness"},mxFloorplanRoom.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}],mxFloorplanRoom.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanRoom.prototype.background=function(e,t,o,n,i){t=parseFloat(mxUtils.getValue(this.style,mxFloorplanRoom.prototype.cst.WALL_THICKNESS,"10")),e.begin(),e.moveTo(0,i),e.lineTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.close(),e.moveTo(t,t),e.lineTo(t,i-t),e.lineTo(n-t,i-t),e.lineTo(n-t,t),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanRoom.prototype.cst.ROOM,mxFloorplanRoom),mxUtils.extend(mxFloorplanWindow,mxShape),mxFloorplanWindow.prototype.cst={WINDOW:"mxgraph.floorplan.window",WALL_THICKNESS:"wallThickness"},mxFloorplanWindow.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}],mxFloorplanWindow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanWindow.prototype.background=function(e,t,o,n,i){t=parseFloat(mxUtils.getValue(this.style,mxFloorplanWindow.prototype.cst.WALL_THICKNESS,"10")),e.rect(0,.5*i-.5*t,n,t),e.fillAndStroke(),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()},mxCellRenderer.registerShape(mxFloorplanWindow.prototype.cst.WINDOW,mxFloorplanWindow),mxUtils.extend(mxFloorplanDimension,mxShape),mxFloorplanDimension.prototype.cst={DIMENSION:"mxgraph.floorplan.dimension"},mxFloorplanDimension.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}],mxFloorplanDimension.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanDimension.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,20),e.lineTo(n,20),e.moveTo(10,15),e.lineTo(0,20),e.lineTo(10,25),e.moveTo(n-10,15),e.lineTo(n,20),e.lineTo(n-10,25),e.moveTo(0,15),e.lineTo(0,i),e.moveTo(n,15),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDimension.prototype.cst.DIMENSION,mxFloorplanDimension),mxUtils.extend(mxFloorplanDimensionBottom,mxShape),mxFloorplanDimensionBottom.prototype.cst={DIMENSION:"mxgraph.floorplan.dimensionBottom"},mxFloorplanDimensionBottom.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanDimensionBottom.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,i-20),e.lineTo(n,i-20),e.moveTo(10,i-15),e.lineTo(0,i-20),e.lineTo(10,i-25),e.moveTo(n-10,i-15),e.lineTo(n,i-20),e.lineTo(n-10,i-25),e.moveTo(0,i-15),e.lineTo(0,0),e.moveTo(n,i-15),e.lineTo(n,0),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDimensionBottom.prototype.cst.DIMENSION,mxFloorplanDimensionBottom),mxUtils.extend(mxFloorplanStairs,mxShape),mxFloorplanStairs.prototype.cst={STAIRS:"mxgraph.floorplan.stairs"},mxFloorplanStairs.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,Math.max(n,50),i)},mxFloorplanStairs.prototype.background=function(e,t,o,n,i){for(e.rect(0,0,n,i),e.fillAndStroke(),e.setShadow(!1),e.begin(),t=25;t<n;t+=25)e.moveTo(t,0),e.lineTo(t,i);e.stroke(),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.moveTo(n-25,0),e.lineTo(n,.5*i),e.lineTo(n-25,i),e.stroke()},mxCellRenderer.registerShape(mxFloorplanStairs.prototype.cst.STAIRS,mxFloorplanStairs),mxUtils.extend(mxFloorplanStairsRest,mxShape),mxFloorplanStairsRest.prototype.cst={STAIRS:"mxgraph.floorplan.stairsRest"},mxFloorplanStairsRest.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,Math.max(n,50,i),i)},mxFloorplanStairsRest.prototype.background=function(e,t,o,n,i){for(e.rect(0,0,n,i),e.fillAndStroke(),e.setShadow(!1),e.begin(),t=25;t<n-.5*i;t+=25)e.moveTo(t,0),e.lineTo(t,i);e.stroke(),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.moveTo(n,0),e.lineTo(n-.5*i,.5*i),e.lineTo(n,i),e.moveTo(n-.5*i,0),e.lineTo(n-.5*i,i),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()},mxCellRenderer.registerShape(mxFloorplanStairsRest.prototype.cst.STAIRS,mxFloorplanStairsRest),mxUtils.extend(mxFloorplanDoorLeft,mxShape),mxFloorplanDoorLeft.prototype.cst={DOOR_LEFT:"mxgraph.floorplan.doorLeft"},mxFloorplanDoorLeft.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanDoorLeft.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,5),e.fillAndStroke(),e.begin(),e.moveTo(n,5),e.arcTo(n,n,0,0,1,0,5+n),e.lineTo(0,5),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDoorLeft.prototype.cst.DOOR_LEFT,mxFloorplanDoorLeft),mxUtils.extend(mxFloorplanDoorRight,mxShape),mxFloorplanDoorRight.prototype.cst={DOOR_RIGHT:"mxgraph.floorplan.doorRight"},mxFloorplanDoorRight.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanDoorRight.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,5),e.fillAndStroke(),e.begin(),e.moveTo(0,5),e.arcTo(n,n,0,0,0,n,5+n),e.lineTo(n,5),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDoorRight.prototype.cst.DOOR_RIGHT,mxFloorplanDoorRight),mxUtils.extend(mxFloorplanDoorDouble,mxShape),mxFloorplanDoorDouble.prototype.cst={DOOR_DOUBLE:"mxgraph.floorplan.doorDouble"},mxFloorplanDoorDouble.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanDoorDouble.prototype.background=function(e,t,o,n,i){t=.5*n,e.rect(0,0,n,5),e.fillAndStroke(),e.begin(),e.moveTo(t,0),e.lineTo(t,5),e.moveTo(t,5),e.arcTo(t,t,0,0,1,0,5+t),e.lineTo(0,5),e.moveTo(t,5),e.arcTo(t,t,0,0,0,n,5+t),e.lineTo(n,5),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDoorDouble.prototype.cst.DOOR_DOUBLE,mxFloorplanDoorDouble),mxUtils.extend(mxFloorplanDoorUneven,mxShape),mxFloorplanDoorUneven.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}],mxFloorplanDoorUneven.prototype.cst={DOOR_UNEVEN:"mxgraph.floorplan.doorUneven"},mxFloorplanDoorUneven.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanDoorUneven.prototype.background=function(e,t,o,n,i){t=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e.rect(0,0,n,5),e.fillAndStroke(),e.begin(),e.moveTo(t,0),e.lineTo(t,5),e.arcTo(t,t,0,0,1,0,5+t),e.lineTo(0,5),e.moveTo(t,5),e.arcTo(n-t,n-t,0,0,0,n,5+n-t),e.lineTo(n,5),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDoorUneven.prototype.cst.DOOR_UNEVEN,mxFloorplanDoorUneven),Graph.handleFactory[mxFloorplanDoorUneven.prototype.cst.DOOR_UNEVEN]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+5)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxFloorplanDoorOpposing,mxShape),mxFloorplanDoorOpposing.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}],mxFloorplanDoorOpposing.prototype.cst={DOOR_OPPOSING:"mxgraph.floorplan.doorOpposing"},mxFloorplanDoorOpposing.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanDoorOpposing.prototype.background=function(e,t,o,n,i){t=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e.rect(0,t,n,5),e.fillAndStroke(),e.begin(),e.moveTo(t,t),e.lineTo(t,t+5),e.arcTo(t,t,0,0,0,0,0),e.lineTo(0,t),e.moveTo(t,t+5),e.arcTo(n-t,n-t,0,0,0,n,5+n),e.lineTo(n,t+5),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDoorOpposing.prototype.cst.DOOR_OPPOSING,mxFloorplanDoorOpposing),Graph.handleFactory[mxFloorplanDoorOpposing.prototype.cst.DOOR_OPPOSING]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+5)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxFloorplanDoorRevolving,mxShape),mxFloorplanDoorRevolving.prototype.cst={DOOR_REVOLVING:"mxgraph.floorplan.doorRevolving"},mxFloorplanDoorRevolving.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanDoorRevolving.prototype.background=function(e,t,o,n,i){t=Math.min(n,i),e.rect(.5*(n-t),.5*i-2.5,t,5),e.fillAndStroke(),e.rect(.5*n-2.5,.5*(i-t),5,t),e.fillAndStroke(),e.begin(),e.ellipse(.5*(n-t),.5*(i-t),t,t),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDoorRevolving.prototype.cst.DOOR_REVOLVING,mxFloorplanDoorRevolving),mxUtils.extend(mxFloorplanDoorPocket,mxShape),mxFloorplanDoorPocket.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}],mxFloorplanDoorPocket.prototype.cst={DOOR_POCKET:"mxgraph.floorplan.doorPocket"},mxFloorplanDoorPocket.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e.translate(t,o),e.rect(a,.5*i-5,5,10),e.fillAndStroke(),e.rect(n-5,.5*i-5,5,10),e.fillAndStroke(),e.rect(0,.5*i-2.5,n-a,5),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanDoorPocket.prototype.cst.DOOR_POCKET,mxFloorplanDoorPocket),Graph.handleFactory[mxFloorplanDoorPocket.prototype.cst.DOOR_POCKET]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+5)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.5,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxFloorplanDoorDoublePocket,mxShape),mxFloorplanDoorDoublePocket.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}],mxFloorplanDoorDoublePocket.prototype.cst={DOOR_DOUBLE_POCKET:"mxgraph.floorplan.doorDoublePocket"},mxFloorplanDoorDoublePocket.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e.translate(t,o),e.rect(a,.5*i-5,5,10),e.fillAndStroke(),e.rect(n-a-5,.5*i-5,5,10),e.fillAndStroke(),e.rect(0,.5*i-2.5,.5*n-a,5),e.fillAndStroke(),e.rect(.5*n+a,.5*i-2.5,.5*n-a,5),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanDoorDoublePocket.prototype.cst.DOOR_DOUBLE_POCKET,mxFloorplanDoorDoublePocket),Graph.handleFactory[mxFloorplanDoorDoublePocket.prototype.cst.DOOR_DOUBLE_POCKET]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(.25,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+5)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.25,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxFloorplanDoorBypass,mxShape),mxFloorplanDoorBypass.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}],mxFloorplanDoorBypass.prototype.cst={DOOR_BYPASS:"mxgraph.floorplan.doorBypass"},mxFloorplanDoorBypass.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e.translate(t,o),e.rect(0,.5*i-5,5,10),e.fillAndStroke(),e.rect(n-5,.5*i-5,5,10),e.fillAndStroke(),e.rect(0,.5*i,.5*n,5),e.fillAndStroke(),e.rect(a,.5*i-5,.5*n,5),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanDoorBypass.prototype.cst.DOOR_BYPASS,mxFloorplanDoorBypass),Graph.handleFactory[mxFloorplanDoorBypass.prototype.cst.DOOR_BYPASS]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+5)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.5,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxFloorplanDoorBifold,mxShape),mxFloorplanDoorBifold.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}],mxFloorplanDoorBifold.prototype.cst={DOOR_BIFOLD:"mxgraph.floorplan.doorBifold"},mxFloorplanDoorBifold.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),s=parseFloat(mxUtils.getValue(this.style,"strokeWidth",this.dx));e.translate(t,o),e.rect(0,i-10,5,10),e.fillAndStroke(),e.rect(n-5,i-10,5,10),e.fillAndStroke(),e.setStrokeWidth(3*s),e.begin(),e.moveTo(5,i-10),e.lineTo(Math.max(.5*(a-10)+5,5),0),e.lineTo(Math.max(a,5),i-10),e.moveTo(n-5,i-10),e.lineTo(n-Math.max(.5*(a-10)+5,5),0),e.lineTo(n-Math.max(a,5),i-10),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDoorBifold.prototype.cst.DOOR_BIFOLD,mxFloorplanDoorBifold),Graph.handleFactory[mxFloorplanDoorBifold.prototype.cst.DOOR_BIFOLD]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+5)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.5,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxFloorplanDoorSlidingGlass,mxShape),mxFloorplanDoorSlidingGlass.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}],mxFloorplanDoorSlidingGlass.prototype.cst={DOOR_SLIDING_GLASS:"mxgraph.floorplan.doorSlidingGlass"},mxFloorplanDoorSlidingGlass.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e.translate(t,o),e.rect(0,.5*i-5,5,10),e.fillAndStroke(),e.rect(n-5,.5*i-5,5,10),e.fillAndStroke(),e.rect(0,.5*i,.5*n,2),e.fillAndStroke(),e.rect(a,.5*i-2,.5*n,2),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanDoorSlidingGlass.prototype.cst.DOOR_SLIDING_GLASS,mxFloorplanDoorSlidingGlass),Graph.handleFactory[mxFloorplanDoorSlidingGlass.prototype.cst.DOOR_SLIDING_GLASS]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+5)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.5,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxFloorplanOverhead,mxShape),mxFloorplanOverhead.prototype.cst={DOOR_OVERHEAD:"mxgraph.floorplan.doorOverhead"},mxFloorplanOverhead.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,i-10,5,10),e.fillAndStroke(),e.rect(n-5,i-10,5,10),e.fillAndStroke(),e.rect(5,0,n-10,i-5),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanOverhead.prototype.cst.DOOR_OVERHEAD,mxFloorplanOverhead),mxUtils.extend(mxFloorplanOpening,mxShape),mxFloorplanOpening.prototype.cst={OPENING:"mxgraph.floorplan.opening"},mxFloorplanOpening.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,5,i),e.fillAndStroke(),e.rect(n-5,0,5,i),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanOpening.prototype.cst.OPENING,mxFloorplanOpening),mxUtils.extend(mxFloorplanWindowGlider,mxShape),mxFloorplanWindowGlider.prototype.customProperties=[{name:"dx",dispName:"Window size",type:"float",min:0,max:1,defVal:.3}],mxFloorplanWindowGlider.prototype.cst={WINDOW_GLIDER:"mxgraph.floorplan.windowGlider"},mxFloorplanWindowGlider.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e.translate(t,o),e.rect(0,.5*i-5,n,10),e.fillAndStroke(),e.rect(0,.5*i,.5*n,1),e.fillAndStroke(),e.rect(a,.5*i-1,.5*n,1),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanWindowGlider.prototype.cst.WINDOW_GLIDER,mxFloorplanWindowGlider),Graph.handleFactory[mxFloorplanWindowGlider.prototype.cst.WINDOW_GLIDER]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+5)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.5,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxFloorplanWindowGarden,mxShape),mxFloorplanWindowGarden.prototype.customProperties=[{name:"windowPanes",dispName:"Panes",type:"int",min:0,max:20,defVal:3}],mxFloorplanWindowGarden.prototype.cst={WINDOW_GARDEN:"mxgraph.floorplan.windowGarden"},mxFloorplanWindowGarden.prototype.paintVertexShape=function(e,t,o,n,i){var a=Math.min(mxUtils.getValue(this.style,"windowPanes",this.windowPanes),20),s=(n-14-2*(a-1))/a;for(e.translate(t,o),e.rect(0,i-10,5,10),e.fillAndStroke(),e.rect(n-5,i-10,5,10),e.fillAndStroke(),e.begin(),e.moveTo(5,i),e.lineTo(5,0),e.lineTo(n-5,0),e.lineTo(n-5,i),e.lineTo(n-5-2,i),e.lineTo(n-5-2,2),t=1;t<a;t++)e.lineTo(n-5-2-t*s-2*(t-1),2),e.lineTo(n-5-2-t*s-2*(t-1),i),e.lineTo(n-5-4-2*(t-1)-t*s,i),e.lineTo(n-5-4-2*(t-1)-t*s,2);e.lineTo(7,2),e.lineTo(7,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxFloorplanWindowGarden.prototype.cst.WINDOW_GARDEN,mxFloorplanWindowGarden),mxUtils.extend(mxFloorplanWindowBow,mxShape),mxFloorplanWindowBow.prototype.cst={WINDOW_BOW:"mxgraph.floorplan.windowBow"},mxFloorplanWindowBow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.min(.5*n,i),e.begin(),e.moveTo(0,.5*(i-t)),e.lineTo(t,.5*(i+t)),e.lineTo(n-t,.5*(i+t)),e.lineTo(n,.5*(i-t)),e.stroke()},mxCellRenderer.registerShape(mxFloorplanWindowBow.prototype.cst.WINDOW_BOW,mxFloorplanWindowBow),mxUtils.extend(mxFloorplanWindowBay,mxShape),mxFloorplanWindowBay.prototype.cst={WINDOW_BAY:"mxgraph.floorplan.windowBay"},mxFloorplanWindowBay.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(.15*n,.6*i),e.lineTo(.35*n,i),e.lineTo(.65*n,i),e.lineTo(.85*n,.6*i),e.lineTo(n,0),e.stroke()},mxCellRenderer.registerShape(mxFloorplanWindowBay.prototype.cst.WINDOW_BAY,mxFloorplanWindowBay),mxUtils.extend(mxFloorplanDoorAccordion,mxShape),mxFloorplanDoorAccordion.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}],mxFloorplanDoorAccordion.prototype.cst={DOOR_ACCORDION:"mxgraph.floorplan.doorAccordion"},mxFloorplanDoorAccordion.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),s=(a=Math.max(5,a),a=Math.min(n-5,a),parseFloat(mxUtils.getValue(this.style,"strokeWidth",this.dx)));e.translate(t,o),e.rect(0,.5*i-5,5,10),e.fillAndStroke(),e.rect(n-5,.5*i-5,5,10),e.fillAndStroke(),e.setStrokeWidth(3*s),t=a-5,e.begin(),e.moveTo(5,.5*i),e.lineTo(5+.1*t,0),e.lineTo(5+.3*t,i),e.lineTo(5+.5*t,0),e.lineTo(5+.7*t,i),e.lineTo(5+.9*t,0),e.lineTo(5+t,.5*i),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDoorAccordion.prototype.cst.DOOR_ACCORDION,mxFloorplanDoorAccordion),Graph.handleFactory[mxFloorplanDoorAccordion.prototype.cst.DOOR_ACCORDION]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t*e.width,e.y+5)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxFloorplanDoorDoubleAction,mxShape),mxFloorplanDoorDoubleAction.prototype.cst={DOOR_DOUBLE_ACTION:"mxgraph.floorplan.doorDoubleAction"},mxFloorplanDoorDoubleAction.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxFloorplanDoorDoubleAction.prototype.background=function(e,t,o,n,i){e.rect(0,.5*i-2.5,n,5),e.fillAndStroke(),e.begin(),e.moveTo(n,.5*i+2.5),e.arcTo(n,n,0,0,1,0,.5*i+2.5+n),e.lineTo(0,.5*i+2.5),e.stroke(),e.setDashed(!0),e.begin(),e.moveTo(n,.5*i-2.5),e.arcTo(n,n,0,0,0,0,.5*i-2.5-n),e.lineTo(0,.5*i-2.5),e.stroke()},mxCellRenderer.registerShape(mxFloorplanDoorDoubleAction.prototype.cst.DOOR_DOUBLE_ACTION,mxFloorplanDoorDoubleAction),mxUtils.extend(mxShapeFlowchartDocument2,mxActor),mxShapeFlowchartDocument2.prototype.cst={DOCUMENT2:"mxgraph.flowchart.document2"},mxShapeFlowchartDocument2.prototype.customProperties=[{name:"size",dispName:"Wave Size",type:"float",min:0,max:1,defVal:.25}],mxShapeFlowchartDocument2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=i*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e.begin(),e.moveTo(n-5,0),e.arcTo(5,5,0,0,1,n,5),e.lineTo(n,i-t/2),e.quadTo(3*n/4,i-1.4*t,n/2,i-t/2),e.quadTo(n/4,i-t*(1-1.4),0,i-t/2),e.lineTo(0,t/2),e.lineTo(0,5),e.arcTo(5,5,0,0,1,5,0),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeFlowchartDocument2.prototype.cst.DOCUMENT2,mxShapeFlowchartDocument2),mxShapeFlowchartDocument2.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1),new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.25),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!1)],Graph.handleFactory[mxShapeFlowchartDocument2.prototype.cst.DOCUMENT2]=function(e){return[Graph.createHandle(e,["size"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(e.x+3*e.width/4,e.y+(1-t)*e.height)}),(function(e,t){this.state.style.size=Math.max(0,Math.min(1,(e.y+e.height-t.y)/e.height))}))]},mxUtils.extend(mxShapeGCP2DoubleRect,mxShape),mxShapeGCP2DoubleRect.prototype.cst={SHAPE_DOUBLE_RECT:"mxgraph.gcp2.doubleRect"},mxShapeGCP2DoubleRect.prototype.paintVertexShape=function(e,t,o,n,i){n-=8,i-=8,e.translate(t,o),e.begin(),e.roundrect(8,8,n,i,1,1),e.fillAndStroke(),e.roundrect(0,0,n,i,1,1),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeGCP2DoubleRect.prototype.cst.SHAPE_DOUBLE_RECT,mxShapeGCP2DoubleRect),mxShapeGCP2DoubleRect.prototype.constraints=mxRectangleShape.prototype.constraints,mxUtils.extend(mxShapeGCP2HexIcon,mxShape),mxShapeGCP2HexIcon.prototype.cst={HEX_ICON:"mxgraph.gcp2.hexIcon"},mxShapeGCP2HexIcon.prototype.customProperties=[{name:"instNum",dispName:"Number of instances",type:"int",min:0,defVal:0},{name:"prType",dispName:"Instance Type",defVal:"standard",type:"enum",enumList:[{val:"standard",dispName:"Standard"},{val:"dynamic",dispName:"Dynamic"},{val:"multiple",dispName:"Multiple"},{val:"shared",dispName:"Shared"},{val:"replica",dispName:"Replica"},{val:"dynamic2",dispName:"Dynamic 2"},{val:"dynamic3",dispName:"Dynamic 3"},{val:"highmem",dispName:"High-Mem"},{val:"highcomp",dispName:"High-Comp"},{val:"backend",dispName:"Backend"},{val:"input",dispName:"Input"}]},{name:"prIcon",dispName:"Instance Icon",defVal:"compute_engine",type:"enum",enumList:[{val:"compute_engine",dispName:"Compute Engine"},{val:"gpu",dispName:"GPU"},{val:"app_engine",dispName:"App Engine"},{val:"cloud_functions",dispName:"Cloud Functions"},{val:"container_engine",dispName:"Kubernetes Engine"},{val:"container_optimized_os",dispName:"Container-Optimized OS"},{val:"api_analytics",dispName:"API Analytics"},{val:"apigee_sense",dispName:"Apigee Sense"},{val:"api_monetization",dispName:"API Monetization"},{val:"cloud_endpoints",dispName:"Cloud Endpoints"},{val:"apigee_api_platform",dispName:"Apigee API Platform"},{val:"developer_portal",dispName:"Developer Portal"},{val:"cloud_iam",dispName:"Cloud IAM"},{val:"beyondcorp",dispName:"BeyondCorp"},{val:"cloud_iam",dispName:"Cloud Resource Manager"},{val:"data_loss_prevention_api",dispName:"Data Loss Prevention API"},{val:"cloud_security_scanner",dispName:"Cloud Security Scanner"},{val:"key_management_service",dispName:"Key Management Service"},{val:"identity_aware_proxy",dispName:"Identity-Aware Proxy"},{val:"security_key_enforcement",dispName:"Security Key Enforcement"},{val:"bigquery",dispName:"BigQuery"},{val:"cloud_datalab",dispName:"Cloud Datalab"},{val:"cloud_dataflow",dispName:"Cloud Dataflow"},{val:"cloud_pubsub",dispName:"Cloud Pub/Sub"},{val:"cloud_dataproc",dispName:"Cloud Dataproc"},{val:"genomics",dispName:"Genomics"},{val:"cloud_dataprep",dispName:"Cloud Dataprep"},{val:"data_studio",dispName:"Data Studio"},{val:"transfer_appliance",dispName:"Transfer Appliance"},{val:"cloud_machine_learning",dispName:"Cloud Machine Learning"},{val:"cloud_natural_language_api",dispName:"Cloud Natural Language API"},{val:"cloud_vision_api",dispName:"Vision API"},{val:"cloud_translation_api",dispName:"Translation API"},{val:"cloud_speech_api",dispName:"Speech API"},{val:"cloud_jobs_api",dispName:"Jobs API"},{val:"cloud_video_intelligence_api",dispName:"Cloud Video Intelligence API"},{val:"advanced_solutions_lab",dispName:"Advanced Solutions Lab"},{val:"cloud_iot_core",dispName:"Cloud IoT Core"},{val:"cloud_storage",dispName:"Cloud Storage"},{val:"cloud_sql",dispName:"Cloud SQL"},{val:"cloud_bigtable",dispName:"Cloud Bigtable"},{val:"cloud_spanner",dispName:"Cloud Spanner"},{val:"cloud_datastore",dispName:"Cloud Datastore"},{val:"persistent_disk",dispName:"Persistent Disk"},{val:"cloud_memorystore",dispName:"Cloud Memorystore"},{val:"cloud_filestore",dispName:"Cloud Filestore"},{val:"stackdriver",dispName:"Stackdriver"},{val:"cloud_deployment_manager",dispName:"Monitoring"},{val:"cloud_deployment_manager",dispName:"Deployment Manager"},{val:"logging",dispName:"Logging"},{val:"placeholder",dispName:"Cloud Console"},{val:"error_reporting",dispName:"Error Reporting"},{val:"placeholder",dispName:"Cloud Shell"},{val:"trace",dispName:"Trace"},{val:"placeholder",dispName:"Cloud Mobile App"},{val:"profiler",dispName:"Profiler"},{val:"placeholder",dispName:"Billing API"},{val:"cloud_apis",dispName:"Cloud APIs"},{val:"virtual_private_cloud",dispName:"Virtual Private Cloud"},{val:"dedicated_interconnect",dispName:"Dedicated Interconnect"},{val:"cloud_load_balancing",dispName:"Cloud Load Balancing"},{val:"cloud_dns",dispName:"Cloud DNS"},{val:"cloud_cdn",dispName:"Cloud CDN"},{val:"cloud_network",dispName:"Cloud Network"},{val:"cloud_external_ip_addresses",dispName:"Cloud External IP Addresses"},{val:"cloud_routes",dispName:"Cloud Routes"},{val:"cloud_firewall_rules",dispName:"Cloud Firewall Rules"},{val:"cloud_vpn",dispName:"Cloud VPN"},{val:"cloud_router",dispName:"Cloud Router"},{val:"cloud_armor",dispName:"Cloud Armor"},{val:"standard_network_tier",dispName:"Standard Network Tier"},{val:"premium_network_tier",dispName:"Premium Network Tier"},{val:"partner_interconnect",dispName:"Partner Interconnect"},{val:"placeholder",dispName:"Cloud SDK"},{val:"container_builder",dispName:"Cloud Build"},{val:"cloud_tools_for_powershell",dispName:"Cloud Tools for Visual Studio"},{val:"placeholder",dispName:"Cloud Source Repositories"},{val:"placeholder",dispName:"Maven App Engine Plugin"},{val:"placeholder",dispName:"Cloud Tools for Eclipse"},{val:"placeholder",dispName:"Cloud Tools for IntelliJ"},{val:"placeholder",dispName:"Cloud Test Lab"},{val:"cloud_tools_for_powershell",dispName:"Cloud Tools for PowerShell"},{val:"cloud_tools_for_powershell",dispName:"IDE Plugins"},{val:"container_registry",dispName:"Container Registry"},{val:"cloud_iot_edge",dispName:"Cloud IoT Edge"},{val:"cloud_firestore",dispName:"Cloud Firestore"},{val:"cloud_run",dispName:"Cloud Run"},{val:"gke_on_prem",dispName:"GKE-on-Prem"},{val:"cloud_data_catalog",dispName:"Cloud Data Catalog"},{val:"cloud_data_fusion",dispName:"Cloud Data Fusion"},{val:"ai_hub",dispName:"AI Hub"},{val:"automl_video_intelligence",dispName:"AutoML Video Intelligence"},{val:"automl_natural_language",dispName:"AutoML Natural Language"},{val:"automl_tables",dispName:"AutoML Tables"},{val:"automl_translation",dispName:"AutoML Translation"},{val:"automl_vision",dispName:"AutoML Vision"},{val:"recommendations_ai",dispName:"Recommendations AI"},{val:"cloud_inference_api",dispName:"Cloud Inference API"},{val:"cloud_service_mesh",dispName:"Cloud Service Mesh"},{val:"cloud_nat",dispName:"Cloud NAT"},{val:"traffic_director",dispName:"Traffic Director"},{val:"cloud_test_lab",dispName:"Cloud Test Lab"},{val:"cloud_code",dispName:"Cloud Code"},{val:"cloud_tasks",dispName:"Cloud Tasks"},{val:"placeholder",dispName:"Gradle App Engine Plugin"}]}],mxShapeGCP2HexIcon.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=mxUtils.getValue(this.state.style,"prIcon","compute_engine"),s=mxUtils.getValue(this.state.style,"prType","");t=parseInt(mxUtils.getValue(this.state.style,"instNum",0)),o=mxUtils.getValue(this.state.style,"fillColor","#ffffff");var l=mxUtils.getValue(this.state.style,"opacity","100");mxUtils.getValue(this.state.style,"strokeColor","none");var r=mxUtils.getValue(this.state.style,"strokeWidth",1),p=Math.min(n,i);switch(s){case"dynamic":s=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_2"),e.setAlpha(.5*l/100),e.setStrokeColor("none"),s.drawShape(e,this,.21*n,.12*i,.58*n,.76*i);break;case"multiple":s=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_2"),e.setAlpha(.5*l/100),e.setStrokeColor("none"),s.drawShape(e,this,.21*n,.12*i,.58*n,.76*i);var m=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_3");e.setAlpha(.7*l/100),e.setStrokeColor("none"),m.drawShape(e,this,.17*n,.13*i,.66*n,.74*i);break;case"shared":s=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1"),this.style[mxConstants.STYLE_STROKEWIDTH]=.038*p,e.setAlpha(.4*l/100),e.setStrokeColor(o),e.setFillColor("none"),s.drawShape(e,this,.02*n,0*i,.96*n,i),m=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_2"),e.setAlpha(.7*l/100),m.drawShape(e,this,.14*n,.01*i,.72*n,.98*i),e.setAlpha(l/100),e.setFillColor("#ffffff"),s.drawShape(e,this,.13*n,.12*i,.74*n,.76*i),this.style[mxConstants.STYLE_STROKEWIDTH]=r;break;case"replica":s=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1"),this.style[mxConstants.STYLE_STROKEWIDTH]=.038*p,e.setAlpha(.4*l/100),e.setStrokeColor(o),e.setFillColor("none"),s.drawShape(e,this,.02*n,0*i,.96*n,i),e.setAlpha(.7*l/100),s.drawShape(e,this,.075*n,.06*i,.85*n,.88*i),e.setAlpha(l/100),e.setFillColor("#ffffff"),s.drawShape(e,this,.13*n,.12*i,.74*n,.76*i),this.style[mxConstants.STYLE_STROKEWIDTH]=r;break;case"dynamic2":s=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_2"),e.setAlpha(.5*l/100),e.setStrokeColor("none"),s.drawShape(e,this,.14*n,.01*i,.72*n,.98*i),m=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1"),this.style[mxConstants.STYLE_STROKEWIDTH]=.01*p,e.setStrokeColor(o),e.setAlpha(l/100),e.setFillColor("#ffffff"),m.drawShape(e,this,.13*n,.12*i,.74*n,.76*i),this.style[mxConstants.STYLE_STROKEWIDTH]=r;break;case"dynamic3":s=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_2"),e.setStrokeColor("none"),s.drawShape(e,this,.14*n,.01*i,.72*n,.98*i),m=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1"),this.style[mxConstants.STYLE_STROKEWIDTH]=.01*p,e.setStrokeColor(o),e.setAlpha(l/100),e.setFillColor("#ffffff"),m.drawShape(e,this,.13*n,.12*i,.74*n,.76*i),this.style[mxConstants.STYLE_STROKEWIDTH]=r;break;case"highmem":s=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_highmem"),e.setAlpha(.5*l/100),e.setStrokeColor("none"),s.drawShape(e,this,0,.56*i,n,.28*i);break;case"highcomp":s=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_highcomp"),e.setAlpha(.5*l/100),e.setStrokeColor("none"),s.drawShape(e,this,0,.16*i,n,.28*i);break;case"backend":s=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1"),e.setFillColor("#FCC64D"),s.drawShape(e,this,.12*n,.11*i,.76*n,.78*i);break;case"input":s=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1"),e.setFillColor("#A5DA40"),s.drawShape(e,this,.12*n,.11*i,.76*n,.78*i)}e.setAlpha(l/100),null!=(a=mxStencilRegistry.getStencil("mxgraph.gcp2."+a))&&(e.setFillColor(o),e.setStrokeColor("none"),a.drawShape(e,this,.17*n,.16*i,.66*n,.68*i)),0<t&&(e.setFillColor("#ffffff"),e.setStrokeColor("#ffffff"),e.setStrokeWidth(.038*p),e.ellipse(.2*n,0,.18*n,.22*i),e.fillAndStroke(),e.setAlpha(.5*l/100),e.setStrokeColor(o),e.ellipse(.2*n,0,.18*n,.22*i),e.stroke(),e.setAlpha(l/100),e.setFontColor("#4E6B89"),e.setFontStyle(1),e.setFontSize(.1*Math.min(n,i)),e.text(.29*n,.11*i+1,0,0,t.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0))},mxCellRenderer.registerShape(mxShapeGCP2HexIcon.prototype.cst.HEX_ICON,mxShapeGCP2HexIcon),mxShapeGCP2HexIcon.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.825,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.175,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.16),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.84),!1)),e.push(new mxConnectionConstraint(new mxPoint(.66,.17),!1)),e.push(new mxConnectionConstraint(new mxPoint(.66,.83),!1)),e.push(new mxConnectionConstraint(new mxPoint(.34,.17),!1)),e.push(new mxConnectionConstraint(new mxPoint(.34,.83),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,.33),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,.67),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.33),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.67),!1)),e},mxUtils.extend(mxShapeGmdlPlayer,mxShape),mxShapeGmdlPlayer.prototype.cst={SHAPE_PLAYER:"mxgraph.gmdl.player"},mxShapeGmdlPlayer.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.rect(0,0,n,i),e.fill(),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeGmdlPlayer.prototype.foreground=function(e,t,o,n,i){4<=i&&(e.setFillColor("#FFED00"),e.begin(),e.rect(0,0,.8*n,4),e.fill()),14<=i&&33<=n&&(e.setFillColor("#717171"),e.begin(),e.rect(n-33,.5*i-7,4,14),e.fill(),e.begin(),e.rect(n-25,.5*i-7,4,14),e.fill())},mxCellRenderer.registerShape(mxShapeGmdlPlayer.prototype.cst.SHAPE_PLAYER,mxShapeGmdlPlayer),mxUtils.extend(mxShapeGmdlSwitch,mxShape),mxShapeGmdlSwitch.prototype.cst={SHAPE_SWITCH:"mxgraph.gmdl.switch",STATE:"switchState",STATE_ON:"on",STATE_OFF:"off"},mxShapeGmdlSwitch.prototype.customProperties=[{name:"switchState",dispName:"State",type:"enum",defVal:"on",enumList:[{val:"on",dispName:"On"},{val:"off",dispName:"Off"}]}],mxShapeGmdlSwitch.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=mxUtils.getValue(this.style,mxShapeGmdlSwitch.prototype.cst.STATE,mxShapeGmdlSwitch.prototype.cst.STATE_ON);this.background(e,t,o,n,i,a),e.setShadow(!0),this.foreground(e,t,o,n,i,a)},mxShapeGmdlSwitch.prototype.background=function(e,t,o,n,i,a){e.begin(),a===mxShapeGmdlSwitch.prototype.cst.STATE_ON?(e.save(),e.setAlpha("0.5"),e.moveTo(.135*n,.8*i),e.arcTo(.135*n,.3*i,0,0,1,.135*n,.2*i),e.lineTo(.675*n,.2*i),e.arcTo(.135*n,.3*i,0,0,1,.675*n,.8*i),e.close(),e.fillAndStroke(),e.restore()):(e.setFillColor("#BCBBBB"),e.moveTo(.225*n,.8*i),e.arcTo(.135*n,.3*i,0,0,1,.225*n,.2*i),e.lineTo(.865*n,.2*i),e.arcTo(.135*n,.3*i,0,0,1,.865*n,.8*i),e.close(),e.fillAndStroke())},mxShapeGmdlSwitch.prototype.foreground=function(e,t,o,n,i,a){e.begin(),a===mxShapeGmdlSwitch.prototype.cst.STATE_ON?e.ellipse(.36*n,0,.64*n,i):(e.setFillColor("#F1F1F1"),e.ellipse(0,0,.64*n,i)),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeGmdlSwitch.prototype.cst.SHAPE_SWITCH,mxShapeGmdlSwitch),mxUtils.extend(mxShapeGmdlMarginRect,mxShape),mxShapeGmdlMarginRect.prototype.cst={SHAPE_MARGIN_RECT:"mxgraph.gmdl.marginRect",MARGIN:"rectMargin",MARGIN_TOP:"rectMarginTop",MARGIN_LEFT:"rectMarginLeft",MARGIN_BOTTOM:"rectMarginBottom",MARGIN_RIGHT:"rectMarginRight"},mxShapeGmdlMarginRect.prototype.customProperties=[{name:"rectMargin",dispName:"Margin",type:"float",min:0,defVal:0},{name:"rectMarginTop",dispName:"Margin Top",type:"float",defVal:0},{name:"rectMarginLeft",dispName:"Margin Left",type:"float",defVal:0},{name:"rectMarginBottom",dispName:"Margin Bottom",type:"float",defVal:0},{name:"rectMarginRight",dispName:"Margin Right",type:"float",defVal:0}],mxShapeGmdlMarginRect.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeGmdlMarginRect.prototype.background=function(e,t,o,n,i,a){t=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlMarginRect.prototype.cst.MARGIN,"0"));var s=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlMarginRect.prototype.cst.MARGIN_TOP,"0"));a=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlMarginRect.prototype.cst.MARGIN_LEFT,"0")),i=i-parseFloat(mxUtils.getValue(this.style,mxShapeGmdlMarginRect.prototype.cst.MARGIN_BOTTOM,"0"))-(s=t+s)-t,0<(n=n-parseFloat(mxUtils.getValue(this.style,mxShapeGmdlMarginRect.prototype.cst.MARGIN_RIGHT,"0"))-(a=t+a)-t)&&0<i&&(e.begin(),e.rect(a,s,n,i),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeGmdlMarginRect.prototype.cst.SHAPE_MARGIN_RECT,mxShapeGmdlMarginRect),mxUtils.extend(mxShapeGmdlSliderNormal,mxShape),mxShapeGmdlSliderNormal.prototype.cst={SHAPE_SLIDER_NORMAL:"mxgraph.gmdl.sliderNormal",HANDLE_SIZE:"handleSize"},mxShapeGmdlSliderNormal.prototype.customProperties=[{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:10}],mxShapeGmdlSliderNormal.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0)},mxShapeGmdlSliderNormal.prototype.background=function(e,t,o,n,i){t=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderNormal.prototype.cst.HANDLE_SIZE,"10")),e.ellipse(0,.5*i-.5*t,t,t),e.stroke(),e.begin(),e.moveTo(t,.5*i),e.lineTo(n,.5*i),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeGmdlSliderNormal.prototype.cst.SHAPE_SLIDER_NORMAL,mxShapeGmdlSliderNormal),mxUtils.extend(mxShapeGmdlSlider2,mxShape),mxShapeGmdlSlider2.prototype.cst={SHAPE_SLIDER:"mxgraph.gmdl.slider2",BAR_POS:"barPos",HANDLE_SIZE:"handleSize"},mxShapeGmdlSlider2.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:40},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:10}],mxShapeGmdlSlider2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0)},mxShapeGmdlSlider2.prototype.background=function(e,t,o,n,i){t=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSlider2.prototype.cst.HANDLE_SIZE,"10")),o=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSlider2.prototype.cst.BAR_POS,"40"))/100,o=Math.max(0,Math.min(1,o)),e.save(),e.setStrokeColor("#bbbbbb"),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.fillAndStroke(),e.restore(),e.begin(),e.moveTo(0,.5*i),e.lineTo(o*n,.5*i),e.fillAndStroke(),e.begin(),e.ellipse(o*n-.5*t,.5*i-.5*t,t,t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeGmdlSlider2.prototype.cst.SHAPE_SLIDER,mxShapeGmdlSlider2),mxShapeGmdlSlider2.prototype.constraints=null,Graph.handleFactory[mxShapeGmdlSlider2.prototype.cst.SHAPE_SLIDER]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(e.x+t*e.width/100,e.y+e.height/2)}),(function(e,t){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeGmdlSliderFocused,mxShape),mxShapeGmdlSliderFocused.prototype.cst={SHAPE_SLIDER_FOCUSED:"mxgraph.gmdl.sliderFocused",BAR_POS:"barPos",HANDLE_SIZE:"handleSize"},mxShapeGmdlSliderFocused.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:40},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:10}],mxShapeGmdlSliderFocused.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0)},mxShapeGmdlSliderFocused.prototype.background=function(e,t,o,n,i){t=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderFocused.prototype.cst.HANDLE_SIZE,"10")),o=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderFocused.prototype.cst.BAR_POS,"40"))/100;var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#ffffff");o=Math.max(0,Math.min(1,o)),e.save(),e.setStrokeColor("#bbbbbb"),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.fillAndStroke(),e.restore(),e.begin(),e.moveTo(0,.5*i),e.lineTo(o*n,.5*i),e.fillAndStroke(),e.begin(),e.ellipse(o*n-.167*t,.5*i-.167*t,.33*t,.33*t),e.fillAndStroke(),e.setFillColor(a),e.setAlpha(.15),e.begin(),e.ellipse(o*n-.5*t,.5*i-.5*t,t,t),e.fill()},mxCellRenderer.registerShape(mxShapeGmdlSliderFocused.prototype.cst.SHAPE_SLIDER_FOCUSED,mxShapeGmdlSliderFocused),mxShapeGmdlSliderFocused.prototype.constraints=null,Graph.handleFactory[mxShapeGmdlSliderFocused.prototype.cst.SHAPE_SLIDER_FOCUSED]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(e.x+t*e.width/100,e.y+e.height/2)}),(function(e,t){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeGmdlSliderDisabled,mxShape),mxShapeGmdlSliderDisabled.prototype.cst={SHAPE_SLIDER_DISABLED:"mxgraph.gmdl.sliderDisabled",HANDLE_POSITION:"hPos",HANDLE_SIZE:"handleSize"},mxShapeGmdlSliderDisabled.prototype.customProperties=[{name:"hPos",dispName:"Handle Position",type:"float",min:0,defVal:40},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:10}],mxShapeGmdlSliderDisabled.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0)},mxShapeGmdlSliderDisabled.prototype.background=function(e,t,o,n,i){o=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDisabled.prototype.cst.HANDLE_SIZE,"10")),t=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDisabled.prototype.cst.HANDLE_POSITION,"50"))/100,t=Math.max(t,0),t=Math.min(t,1),e.ellipse(n*t-.5*o,.5*(i-o),o,o),e.fillAndStroke(),o=n*t-7,t=n*t+7,0<o&&(e.begin(),e.moveTo(0,.5*i),e.lineTo(o,.5*i),e.stroke()),t<n&&(e.begin(),e.moveTo(t,.5*i),e.lineTo(n,.5*i),e.stroke())},mxCellRenderer.registerShape(mxShapeGmdlSliderDisabled.prototype.cst.SHAPE_SLIDER_DISABLED,mxShapeGmdlSliderDisabled),mxUtils.extend(mxShapeGmdlSliderDisabled2,mxShape),mxShapeGmdlSliderDisabled2.prototype.cst={SHAPE_SLIDER_DISABLED:"mxgraph.gmdl.sliderDisabled2",HANDLE_POSITION:"hPos",HANDLE_SIZE:"handleSize"},mxShapeGmdlSliderDisabled2.prototype.customProperties=[{name:"hPos",dispName:"Handle Position",type:"float",min:0,defVal:"40"},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:"10"}],mxShapeGmdlSliderDisabled2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0)},mxShapeGmdlSliderDisabled2.prototype.background=function(e,t,o,n,i){o=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDisabled2.prototype.cst.HANDLE_SIZE,"10")),t=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDisabled2.prototype.cst.HANDLE_POSITION,"50"))/100,t=Math.min(Math.max(t,0),1),e.ellipse(n*t-.5*o,.5*(i-o),o,o),e.fillAndStroke(),o=n*t-7,t=n*t+7,0<o&&(e.begin(),e.moveTo(0,.5*i),e.lineTo(o,.5*i),e.stroke()),t<n&&(e.begin(),e.moveTo(t,.5*i),e.lineTo(n,.5*i),e.stroke())},mxCellRenderer.registerShape(mxShapeGmdlSliderDisabled2.prototype.cst.SHAPE_SLIDER_DISABLED,mxShapeGmdlSliderDisabled2),mxShapeGmdlSlider2.prototype.constraints=null,Graph.handleFactory[mxShapeGmdlSliderDisabled2.prototype.cst.SHAPE_SLIDER_DISABLED]=function(e){return[Graph.createHandle(e,["hPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"hPos",.4))));return new mxPoint(e.x+t*e.width/100,e.y+e.height/2)}),(function(e,t){this.state.style.hPos=Math.round(100*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeGmdlSliderDiscrete,mxShape),mxShapeGmdlSliderDiscrete.prototype.cst={SHAPE_DISCRETE:"mxgraph.gmdl.sliderDiscrete",BAR_POS:"barPos",HANDLE_SIZE:"handleSize"},mxShapeGmdlSliderDiscrete.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"int",min:0,defVal:"40"},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:"10"}],mxShapeGmdlSliderDiscrete.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0)},mxShapeGmdlSliderDiscrete.prototype.background=function(e,t,o,n,i){parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDiscrete.prototype.cst.HANDLE_SIZE,"10")),t=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDiscrete.prototype.cst.BAR_POS,"40"))/100,o=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"12"));var a=mxUtils.getValue(this.style,mxConstants.STYLE_FONTCOLOR,"#000000");t=Math.max(0,Math.min(1,t)),e.save(),e.setStrokeColor("#bbbbbb"),e.begin(),e.moveTo(0,.5*i+22.5),e.lineTo(n,.5*i+22.5),e.fillAndStroke(),e.restore(),e.begin(),e.moveTo(0,.5*i+22.5),e.lineTo(t*n,.5*i+22.5),e.fillAndStroke(),e.begin(),e.moveTo(t*n,.5*i+15.5),e.lineTo(t*n-10.5,.5*i+2.5),e.arcTo(15,15,0,0,1,t*n,.5*i-22.5),e.arcTo(15,15,0,0,1,t*n+10.5,.5*i+2.5),e.close(),e.fillAndStroke(),e.setFontSize(o),e.setFontColor(a),e.text(t*n,.5*i-9,0,0,Math.round(100*t).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeGmdlSliderDiscrete.prototype.cst.SHAPE_DISCRETE,mxShapeGmdlSliderDiscrete),mxShapeGmdlSliderDiscrete.prototype.constraints=null,Graph.handleFactory[mxShapeGmdlSliderDiscrete.prototype.cst.SHAPE_DISCRETE]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(e.x+t*e.width/100,e.y+e.height/2+22.5)}),(function(e,t){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/100}))]},mxUtils.extend(mxShapeGmdlSliderDiscreteDots,mxShape),mxShapeGmdlSliderDiscreteDots.prototype.cst={SHAPE_DISCRETE_DOTS:"mxgraph.gmdl.sliderDiscreteDots",BAR_POS:"barPos",HANDLE_SIZE:"handleSize"},mxShapeGmdlSliderDiscreteDots.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"int",min:0,defVal:"40"},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:"10"}],mxShapeGmdlSliderDiscreteDots.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!0)},mxShapeGmdlSliderDiscreteDots.prototype.background=function(e,t,o,n,i){parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDiscreteDots.prototype.cst.HANDLE_SIZE,"10")),t=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDiscreteDots.prototype.cst.BAR_POS,"40"))/100,o=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"12"));var a=mxUtils.getValue(this.style,mxConstants.STYLE_FONTCOLOR,"#000000"),s=mxUtils.getValue(this.style,"bright","1");t=Math.max(0,Math.min(1,t)),e.save(),e.setStrokeColor("#bebebe"),e.begin(),e.moveTo(0,.5*i+22.5),e.lineTo(n,.5*i+22.5),e.fillAndStroke(),e.restore(),.1>=t&&e.setFillColor("#bebebe"),e.begin(),e.moveTo(0,.5*i+22.5),e.lineTo(t*n,.5*i+22.5),e.fillAndStroke(),e.begin(),e.moveTo(t*n,.5*i+15.5),e.lineTo(t*n-10.5,.5*i+2.5),e.arcTo(15,15,0,0,1,t*n,.5*i-22.5),e.arcTo(15,15,0,0,1,t*n+10.5,.5*i+2.5),e.close(),e.fill(),"1"==s?e.setFillColor("#000000"):e.setFillColor("#ffffff"),e.ellipse(-1.5,.5*i+21,3,3),e.fill(),e.ellipse(.2*n-1.5,.5*i+21,3,3),e.fill(),e.ellipse(.4*n-1.5,.5*i+21,3,3),e.fill(),e.ellipse(.6*n-1.5,.5*i+21,3,3),e.fill(),e.ellipse(.8*n-1.5,.5*i+21,3,3),e.fill(),e.ellipse(n-1.5,.5*i+21,3,3),e.fill(),e.setFontSize(o),e.setFontColor(a),e.text(t*n,.5*i-9,0,0,Math.round(100*t).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxCellRenderer.registerShape(mxShapeGmdlSliderDiscreteDots.prototype.cst.SHAPE_DISCRETE_DOTS,mxShapeGmdlSliderDiscreteDots),mxShapeGmdlSliderDiscreteDots.prototype.constraints=null,Graph.handleFactory[mxShapeGmdlSliderDiscreteDots.prototype.cst.SHAPE_DISCRETE_DOTS]=function(e){return[Graph.createHandle(e,["barPos"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(e.x+t*e.width/100,e.y+e.height/2+22.5)}),(function(e,t){this.state.style.barPos=Math.round(.05*Math.max(0,Math.min(100,100*(t.x-e.x)/e.width)))/.05}))]},mxUtils.extend(mxShapeGmdlProgressBar,mxShape),mxShapeGmdlProgressBar.prototype.cst={PROGRESS_BAR:"mxgraph.gmdl.progressBar"},mxShapeGmdlProgressBar.prototype.customProperties=[{name:"dx1",dispName:"Handle Position",type:"int",min:0,defVal:.8}],mxShapeGmdlProgressBar.prototype.paintVertexShape=function(e,t,o,n,i){var a=n*Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));e.translate(t,o),e.save(),e.setStrokeColor("#aaaaaa"),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke(),e.restore(),e.setShadow(!1),e.begin(),e.moveTo(0,.5*i),e.lineTo(a,.5*i),e.stroke()},mxCellRenderer.registerShape(mxShapeGmdlProgressBar.prototype.cst.PROGRESS_BAR,mxShapeGmdlProgressBar),mxShapeGmdlProgressBar.prototype.constraints=null,Graph.handleFactory[mxShapeGmdlProgressBar.prototype.cst.PROGRESS_BAR]=function(e){var t=[Graph.createHandle(e,["dx1"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))));return new mxPoint(e.x+t*e.width,e.y+e.height/2)}),(function(e,t){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100}))];return e=Graph.createHandle(e,["dx2"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx1))));return new mxPoint(e.x+t*e.width,e.y+e.height/2)}),(function(e,t){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(1,(t.x-e.x)/e.width)))/100})),t.push(e),t},mxUtils.extend(mxShapeIBMBox,mxShape),mxShapeIBMBox.prototype.cst={IBM_BOX:"mxgraph.ibm.box"},mxShapeIBMBox.prototype.customProperties=[{name:"prType",dispName:"Box Type",defVal:"cloud",type:"enum",enumList:[{val:"cloud",dispName:"IBM Cloud"},{val:"vpc",dispName:"VPC"},{val:"region",dispName:"Region"},{val:"zone",dispName:"Zone"},{val:"subnet",dispName:"Subnet ACL"},{val:"public",dispName:"Public Network"},{val:"enterprise",dispName:"Enterprise Network"},{val:"classic",dispName:"Classic Infrastructure"}]}],mxShapeIBMBox.prototype.paintVertexShape=function(e,t,o,n,i){switch(e.translate(t,o),e.begin(),e.rect(0,0,n,i),e.fillAndStroke(),t=mxUtils.getValue(this.state.style,"strokeColor","none"),e.setFillColor(t),e.setStrokeColor("none"),mxUtils.getValue(this.state.style,"prType","")){case"cloud":(t=mxStencilRegistry.getStencil("mxgraph.ibm.cloudtag")).drawShape(e,this,0,0,25,25);break;case"vpc":(t=mxStencilRegistry.getStencil("mxgraph.ibm.vpctag")).drawShape(e,this,0,0,25,25);break;case"region":(t=mxStencilRegistry.getStencil("mxgraph.ibm.regiontag")).drawShape(e,this,0,0,25,25);break;case"zone":(t=mxStencilRegistry.getStencil("mxgraph.ibm.zonetag")).drawShape(e,this,0,0,25,25);break;case"subnet":(t=mxStencilRegistry.getStencil("mxgraph.ibm.subnettag")).drawShape(e,this,0,0,25,25);break;case"public":(t=mxStencilRegistry.getStencil("mxgraph.ibm.publictag")).drawShape(e,this,0,0,25,25);break;case"enterprise":(t=mxStencilRegistry.getStencil("mxgraph.ibm.enterprisetag")).drawShape(e,this,0,0,25,25);break;case"classic":(t=mxStencilRegistry.getStencil("mxgraph.ibm.classictag")).drawShape(e,this,0,0,25,25)}},mxCellRenderer.registerShape(mxShapeIBMBox.prototype.cst.IBM_BOX,mxShapeIBMBox),mxUtils.extend(mxShapeInfographicNumEntryVert,mxActor),mxShapeInfographicNumEntryVert.prototype.cst={NUM_ENTRY_VERT:"mxgraph.infographic.numberedEntryVert"},mxShapeInfographicNumEntryVert.prototype.customProperties=[{name:"dy",dispName:"Circle Size",min:0,defVal:25}],mxShapeInfographicNumEntryVert.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),t=Math.min(t,n-10,i-5),e.ellipse(.5*n-.5*t,0,t,t),e.fillAndStroke(),e.begin(),e.moveTo(0,.5*t),e.lineTo(.5*n-.5*t-5,.5*t),e.arcTo(.5*t+5,.5*t+5,0,0,0,.5*n+.5*t+5,.5*t),e.lineTo(n,.5*t),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeInfographicNumEntryVert.prototype.cst.NUM_ENTRY_VERT,mxShapeInfographicNumEntryVert),Graph.handleFactory[mxShapeInfographicNumEntryVert.prototype.cst.NUM_ENTRY_VERT]=function(e){return[Graph.createHandle(e,["dy"],(function(e){var t=Math.max(0,Math.min(e.width,e.width,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width/2,e.y+t)}),(function(e,t){this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height,e.width,t.y-e.y)))/100}))]},mxShapeInfographicNumEntryVert.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));return t=Math.min(n,t-10,o-5),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*t)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.5*t)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,.25*t)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,.25*t)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e},mxUtils.extend(mxShapeInfographicBendingArch,mxActor),mxShapeInfographicBendingArch.prototype.cst={BENDING_ARCH:"mxgraph.infographic.bendingArch"},mxShapeInfographicBendingArch.prototype.customProperties=[{name:"startAngle",dispName:"Start Angle",min:0,max:1,defVal:.75},{name:"endAngle",dispName:"End Angle",min:0,max:1,defVal:.25},{name:"arcWidth",dispName:"Arc Width",min:0,max:1,defVal:.25}],mxShapeInfographicBendingArch.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle)))),s=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),l=(t=.5*n)*(r=1-Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arcWidth",this.arcWidth))))),r=(o=.5*i)*r,p=t+Math.sin(a)*t,m=o-Math.cos(a)*o,h=t+Math.sin(a)*l,x=o-Math.cos(a)*r,c=t+Math.sin(s)*t,u=o-Math.cos(s)*o,S=t+Math.sin(s)*l,T=o-Math.cos(s)*r;0>(s-=a)&&(s+=2*Math.PI),a=0,s>Math.PI&&(a=1),s=l-5;var d=r-5;e.ellipse(.5*n-s,.5*i-d,2*s,2*d),e.fillAndStroke(),e.begin(),e.moveTo(p,m),e.arcTo(t,o,0,a,1,c,u),e.lineTo(S,T),e.arcTo(l,r,0,a,0,h,x),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeInfographicBendingArch.prototype.cst.BENDING_ARCH,mxShapeInfographicBendingArch),mxShapeInfographicBendingArch.prototype.constraints=null,Graph.handleFactory[mxShapeInfographicBendingArch.prototype.cst.BENDING_ARCH]=function(e){var t=[Graph.createHandle(e,["startAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.startAngle=o}))],o=Graph.createHandle(e,["endAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.endAngle=o}));return t.push(o),e=Graph.createHandle(e,["arcWidth"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"arcWidth",this.arcWidth))));return new mxPoint(e.x+e.width/2,e.y+t*e.height*.5)}),(function(e,t){this.state.style.arcWidth=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,(t.y-e.y)/(.5*e.height))))/100})),t.push(e),t},mxUtils.extend(mxShapeInfographicParallelogram,mxActor),mxShapeInfographicParallelogram.prototype.cst={PARALLELOGRAM:"mxgraph.infographic.parallelogram"},mxShapeInfographicParallelogram.prototype.customProperties=[{name:"dx",dispName:"Angle",min:0,defVal:15}],mxShapeInfographicParallelogram.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(.5*n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e.begin(),e.moveTo(0,i),e.lineTo(2*t,0),e.lineTo(n,0),e.lineTo(n-2*t,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeInfographicParallelogram.prototype.cst.PARALLELOGRAM,mxShapeInfographicParallelogram),Graph.handleFactory[mxShapeInfographicParallelogram.prototype.cst.PARALLELOGRAM]=function(e){return[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+t,e.y+e.height/2)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width/2,t.x-e.x)))/100}))]},mxShapeInfographicParallelogram.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(.5*t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=t-2*n;return e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*n+.5*i,0)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,n,0)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-2*n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,t-n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*i,o)),e},mxUtils.extend(mxShapeInfographicRibbonRolled,mxActor),mxShapeInfographicRibbonRolled.prototype.cst={RIBBON_ROLLED:"mxgraph.infographic.ribbonRolled"},mxShapeInfographicRibbonRolled.prototype.customProperties=[{name:"dx",dispName:"Roll Length",min:0,defVal:185},{name:"dy",dispName:"Ribbon Width",min:0,defVal:15}],mxShapeInfographicRibbonRolled.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(.5*i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(n,o),e.lineTo(n,i-o),e.lineTo(n-t,i),e.lineTo(n-t,i-o),e.lineTo(0,i-o),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.2"),e.setFillColor("#000000"),e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,o),e.close(),e.moveTo(n,i-o),e.lineTo(n-t,i),e.lineTo(n-t,i-o),e.close(),e.fill(),e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(n,o),e.lineTo(n,i-o),e.lineTo(n-t,i),e.lineTo(n-t,i-o),e.lineTo(0,i-o),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeInfographicRibbonRolled.prototype.cst.RIBBON_ROLLED,mxShapeInfographicRibbonRolled),Graph.handleFactory[mxShapeInfographicRibbonRolled.prototype.cst.RIBBON_ROLLED]=function(e){return[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+t,e.y+o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2,t.y-e.y)))/100}))]},mxShapeInfographicRibbonRolled.prototype.getConstraints=function(e,t,o){e=[],parseFloat(mxUtils.getValue(this.style,"dx",this.dx));var n=Math.max(0,Math.min(.5*o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));return o-=n,e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,o)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,o)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,o)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-n)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeInfographicRibbonDoubleFolded,mxActor),mxShapeInfographicRibbonDoubleFolded.prototype.cst={RIBBON_DOUBLE_FOLDED:"mxgraph.infographic.ribbonDoubleFolded"},mxShapeInfographicRibbonDoubleFolded.prototype.customProperties=[{name:"dx",dispName:"Fold Length",min:0,defVal:25},{name:"dy",dispName:"Ribbon Width",min:0,defVal:15}],mxShapeInfographicRibbonDoubleFolded.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(.5*i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(n,o),e.lineTo(n,i-o),e.lineTo(n-t,i),e.lineTo(n-t,i-o),e.lineTo(0,i-o),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.2"),e.setFillColor("#000000"),e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,i-2*o),e.lineTo(0,i-o),e.close(),e.moveTo(n,i-o),e.lineTo(n-t,i),e.lineTo(n-t,i-o),e.close(),e.fill(),e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(n,o),e.lineTo(n,i-o),e.lineTo(n-t,i),e.lineTo(n-t,i-o),e.lineTo(0,i-o),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeInfographicRibbonDoubleFolded.prototype.cst.RIBBON_DOUBLE_FOLDED,mxShapeInfographicRibbonDoubleFolded),Graph.handleFactory[mxShapeInfographicRibbonDoubleFolded.prototype.cst.RIBBON_DOUBLE_FOLDED]=function(e){return[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+t,e.y+o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2,t.y-e.y)))/100}))]},mxShapeInfographicRibbonDoubleFolded.prototype.getConstraints=function(e,t,o){return e=[],parseFloat(mxUtils.getValue(this.style,"dx",this.dx)),t=Math.max(0,Math.min(.5*o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,t)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,t)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,t)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,t)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,o-t)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,o-t)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,o-t)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,o-t)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-t)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeInfographicRibbonFrontFolded,mxActor),mxShapeInfographicRibbonFrontFolded.prototype.cst={RIBBON_FRONT_FOLDED:"mxgraph.infographic.ribbonFrontFolded"},mxShapeInfographicRibbonFrontFolded.prototype.customProperties=[{name:"dx",dispName:"Fold Length",min:0,defVal:25},{name:"dy",dispName:"Ribbon Width",min:0,defVal:15},{name:"notch",dispName:"Notch",min:0,defVal:15}],mxShapeInfographicRibbonFrontFolded.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(.5*i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var a=Math.max(0,Math.min(n-t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(n,o),e.lineTo(n-a,(i-o)/2+o),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.2"),e.setFillColor("#000000"),e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,i-o),e.lineTo(0,i),e.close(),e.fill(),e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(n,o),e.lineTo(n-a,(i-o)/2+o),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeInfographicRibbonFrontFolded.prototype.cst.RIBBON_FRONT_FOLDED,mxShapeInfographicRibbonFrontFolded),Graph.handleFactory[mxShapeInfographicRibbonFrontFolded.prototype.cst.RIBBON_FRONT_FOLDED]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+t,e.y+o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2,t.y-e.y)))/100}))];return e=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+e.width-o,e.y+t+.5*(e.height-t))}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width,e.width+e.x-t.x)))/100})),t.push(e),t},mxShapeInfographicRibbonFrontFolded.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=Math.max(0,Math.min(.5*o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));return n=Math.max(0,Math.min(t-n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,.5*(o+i))),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o+i))),e},mxUtils.extend(mxShapeInfographicRibbonBackFolded,mxActor),mxShapeInfographicRibbonBackFolded.prototype.cst={RIBBON_BACK_FOLDED:"mxgraph.infographic.ribbonBackFolded"},mxShapeInfographicRibbonBackFolded.prototype.customProperties=[{name:"dx",dispName:"Fold Length",min:0,defVal:25},{name:"dy",dispName:"Ribbon Width",min:0,defVal:15},{name:"notch",dispName:"Notch",min:0,defVal:15}],mxShapeInfographicRibbonBackFolded.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(.5*i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var a=Math.max(0,Math.min(n-t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(n,o),e.lineTo(n-a,(i-o)/2+o),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.2"),e.setFillColor("#000000"),e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,o),e.close(),e.fill(),e.begin(),e.moveTo(0,o),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(n,o),e.lineTo(n-a,(i-o)/2+o),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeInfographicRibbonBackFolded.prototype.cst.RIBBON_BACK_FOLDED,mxShapeInfographicRibbonBackFolded),Graph.handleFactory[mxShapeInfographicRibbonBackFolded.prototype.cst.RIBBON_BACK_FOLDED]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+t,e.y+o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2,t.y-e.y)))/100}))];return e=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+e.width-o,e.y+t+.5*(e.height-t))}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width,e.width+e.x-t.x)))/100})),t.push(e),t},mxShapeInfographicRibbonBackFolded.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=Math.max(0,Math.min(.5*o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));return n=Math.max(0,Math.min(t-n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,.5*(o+i))),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o+i))),e},mxUtils.extend(mxShapeInfographicBanner,mxActor),mxShapeInfographicBanner.prototype.cst={BANNER:"mxgraph.infographic.banner"},mxShapeInfographicBanner.prototype.customProperties=[{name:"dx",dispName:"Fold Length",min:0,defVal:25},{name:"dy",dispName:"Ribbon Width",min:0,defVal:15},{name:"notch",dispName:"Notch",min:0,defVal:15}],mxShapeInfographicBanner.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n/2,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(.5*i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));t=Math.min(n/2-2*o,t),a=Math.min(t,a),e.begin(),e.moveTo(0,o),e.lineTo(t,o),e.lineTo(t,0),e.lineTo(n-t,0),e.lineTo(n-t,o),e.lineTo(n,o),e.lineTo(n-a,.5*(i-o)+o),e.lineTo(n,i),e.lineTo(n-t-2*o,i),e.lineTo(n-t-2*o,i-o),e.lineTo(t+2*o,i-o),e.lineTo(t+2*o,i),e.lineTo(0,i),e.lineTo(a,.5*(i-o)+o),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.2"),e.setFillColor("#000000"),e.begin(),e.moveTo(0,o),e.lineTo(t,o),e.lineTo(t,i-o),e.lineTo(t+2*o,i),e.lineTo(0,i),e.lineTo(a,.5*(i-o)+o),e.close(),e.moveTo(n,o),e.lineTo(n-t,o),e.lineTo(n-t,i-o),e.lineTo(n-t-2*o,i),e.lineTo(n,i),e.lineTo(n-a,.5*(i-o)+o),e.close(),e.fill(),e.setFillAlpha("0.4"),e.begin(),e.moveTo(t,i-o),e.lineTo(t+2*o,i-o),e.lineTo(t+2*o,i),e.close(),e.moveTo(n-t,i-o),e.lineTo(n-t-2*o,i-o),e.lineTo(n-t-2*o,i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeInfographicBanner.prototype.cst.BANNER,mxShapeInfographicBanner),Graph.handleFactory[mxShapeInfographicBanner.prototype.cst.BANNER]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-t,e.y+o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width/2,e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2,t.y-e.y)))/100}))];return e=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),o=Math.max(0,Math.min(e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return o=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)))),new mxPoint(e.x+e.width-o,e.y+t+.5*(e.height-t))}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width,e.width+e.x-t.x)))/100})),t.push(e),t},mxShapeInfographicBanner.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t/2,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=Math.max(0,Math.min(.5*o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=(n=Math.min(t/2-2*i,n),a=Math.min(n,a),t-2*n);return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+.25*s,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+.5*s,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+.75*s,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+s,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+s,.5*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+s,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+.75*s,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+.5*s,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n+.25*s,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,.5*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,a,.5*(o+i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-a,.5*(o+i))),e},mxUtils.extend(mxShapeInfographicCircularCallout,mxActor),mxShapeInfographicCircularCallout.prototype.cst={CIRCULAR_CALLOUT:"mxgraph.infographic.circularCallout"},mxShapeInfographicCircularCallout.prototype.customProperties=[{name:"dy",dispName:"Ribbon Width",min:0,defVal:15}],mxShapeInfographicCircularCallout.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(.5*i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),o=Math.max(0,Math.min(.5*n,.5*n-t));var a=Math.max(0,Math.min(.5*i,.5*i-t));e.begin(),e.moveTo(n,.5*i),e.arcTo(.5*n,.5*i,0,0,1,.5*n,i),e.arcTo(.5*n,.5*i,0,0,1,0,.5*i),e.arcTo(.5*n,.5*i,0,0,1,.5*n,0),e.lineTo(n,0),e.close(),e.moveTo(.5*n,t),e.arcTo(o,a,0,0,0,.5*n-o,.5*i),e.arcTo(o,a,0,0,0,.5*n,.5*i+a),e.arcTo(o,a,0,0,0,.5*n+o,.5*i),e.arcTo(o,a,0,0,0,.5*n,.5*i-a),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeInfographicCircularCallout.prototype.cst.CIRCULAR_CALLOUT,mxShapeInfographicCircularCallout),Graph.handleFactory[mxShapeInfographicCircularCallout.prototype.cst.CIRCULAR_CALLOUT]=function(e){return[Graph.createHandle(e,["dy"],(function(e){var t=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+.5*e.width,e.y+t)}),(function(e,t){this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2,t.y-e.y)))/100}))]},mxShapeInfographicCircularCallout.prototype.getConstraints=function(e,t,o){return e=[],parseFloat(mxUtils.getValue(this.style,"dy",this.dy)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.145,.145),!1)),e},mxUtils.extend(mxShapeInfographicShadedTriangle,mxActor),mxShapeInfographicShadedTriangle.prototype.cst={SHADED_TRIANGLE:"mxgraph.infographic.shadedTriangle"},mxShapeInfographicShadedTriangle.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,i),e.lineTo(.5*n,0),e.lineTo(n,i),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillColor("#ffffff"),e.setFillAlpha("0.2"),e.begin(),e.moveTo(0,i),e.lineTo(.5*n,0),e.lineTo(.5*n,.67*i),e.close(),e.fill(),e.setFillColor("#000000"),e.begin(),e.moveTo(n,i),e.lineTo(.5*n,.67*i),e.lineTo(.5*n,0),e.close(),e.fill(),e.begin(),e.moveTo(0,i),e.lineTo(.5*n,0),e.lineTo(n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeInfographicShadedTriangle.prototype.cst.SHADED_TRIANGLE,mxShapeInfographicShadedTriangle),mxShapeInfographicShadedTriangle.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,.5),!1)),e},mxUtils.extend(mxShapeInfographicShadedPyramid,mxActor),mxShapeInfographicShadedPyramid.prototype.cst={SHADED_PYRAMID:"mxgraph.infographic.shadedPyramid"},mxShapeInfographicShadedPyramid.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(i-.3*n,0),e.begin(),e.moveTo(0,t),e.lineTo(.5*n,0),e.lineTo(n,t),e.lineTo(.5*n,i),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillColor("#ffffff"),e.setFillAlpha("0.2"),e.begin(),e.moveTo(0,t),e.lineTo(.5*n,0),e.lineTo(.5*n,i),e.close(),e.fill(),e.setFillColor("#000000"),e.begin(),e.moveTo(n,t),e.lineTo(.5*n,i),e.lineTo(.5*n,0),e.close(),e.fill(),e.begin(),e.moveTo(0,t),e.lineTo(.5*n,0),e.lineTo(n,t),e.lineTo(.5*n,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeInfographicShadedPyramid.prototype.cst.SHADED_PYRAMID,mxShapeInfographicShadedPyramid),mxShapeInfographicShadedPyramid.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(o-.3*t,0);return e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,.5*(o+n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,.5*(o+n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,.5*n)),e},mxUtils.extend(mxShapeInfographicPyramidStep,mxActor),mxShapeInfographicPyramidStep.prototype.cst={PYRAMID_STEP:"mxgraph.infographic.pyramidStep"},mxShapeInfographicPyramidStep.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(.1*n,0),e.begin(),e.moveTo(0,t),e.lineTo(.5*n,0),e.lineTo(n,t),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillColor("#ffffff"),e.setFillAlpha("0.2"),e.begin(),e.moveTo(0,t),e.lineTo(.5*n,0),e.lineTo(.5*n,i),e.lineTo(0,i),e.close(),e.fill(),e.setFillColor("#000000"),e.begin(),e.moveTo(n,t),e.lineTo(n,i),e.lineTo(.5*n,i),e.lineTo(.5*n,0),e.close(),e.fill(),e.begin(),e.moveTo(0,t),e.lineTo(.5*n,0),e.lineTo(n,t),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeInfographicPyramidStep.prototype.cst.PYRAMID_STEP,mxShapeInfographicPyramidStep),mxShapeInfographicPyramidStep.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(.1*t,0);return e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n+.25*(o-n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n+.5*(o-n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n+.75*(o-n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n+.75*(o-n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n+.5*(o-n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n+.25*(o-n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n)),e},mxUtils.extend(mxShapeInfographicCylinder,mxActor),mxShapeInfographicCylinder.prototype.cst={CYLINDER:"mxgraph.infographic.cylinder"},mxShapeInfographicCylinder.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=.5*n,e.begin(),e.moveTo(0,10),e.arcTo(t,10,0,0,1,n,10),e.lineTo(n,i-10),e.arcTo(t,10,0,0,1,0,i-10),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setGradient("#000000","#ffffff",0,0,n,i,mxConstants.DIRECTION_EAST,.4,.4),e.begin(),e.moveTo(0,10),e.arcTo(t,10,0,0,0,n,10),e.lineTo(n,i-10),e.arcTo(t,10,0,0,1,0,i-10),e.close(),e.fill(),e.begin(),e.moveTo(0,10),e.arcTo(t,10,0,0,1,n,10),e.lineTo(n,i-10),e.arcTo(t,10,0,0,1,0,i-10),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeInfographicCylinder.prototype.cst.CYLINDER,mxShapeInfographicCylinder),mxShapeInfographicCylinder.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,10)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,10+.25*(o-20))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,10+.5*(o-20))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,10+.75*(o-20))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o-10)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-10)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10+.75*(o-20))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10+.5*(o-20))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10+.25*(o-20))),e},mxUtils.extend(mxShapeInfographicCircularCallout2,mxActor),mxShapeInfographicCircularCallout2.prototype.cst={CIRCULAR_CALLOUT_2:"mxgraph.infographic.circularCallout2"},mxShapeInfographicCircularCallout2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none"),o=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none"),e.setFillColor(o),o=Math.max(0,Math.min(.5*n,.4*i,.5*i-7)),e.begin(),e.moveTo(.5*n-2,2.15*o),e.arcTo(.23*o,.23*o,0,0,0,.5*n-.2*o,1.97*o),e.arcTo(o,o,0,0,1,.5*n-o,o),e.arcTo(o,o,0,0,1,.5*n,0),e.arcTo(o,o,0,0,1,.5*n+o,o),e.arcTo(o,o,0,0,1,.5*n+.2*o,1.97*o),e.arcTo(.23*o,.23*o,0,0,0,.5*n+2,2.15*o);var a=Math.max(.1*o,6);4<.04*o?(e.lineTo(.5*n+2,i-.22*o),e.arcTo(.05*o,.05*o,0,0,0,.5*n+.04*o,i-.19*o)):e.lineTo(.5*n+2,i-2*a),e.arcTo(a,a,0,0,1,.5*n+a,i-a),e.arcTo(a,a,0,0,1,.5*n,i),e.arcTo(a,a,0,0,1,.5*n-a,i-a),4<.04*o?(e.arcTo(a,a,0,0,1,.5*n-.04*o,i-.19*o),e.arcTo(.5*a,.5*a,0,0,0,.5*n-2,i-.22*o)):e.arcTo(a,a,0,0,1,.5*n-2,i-2*a),e.close(),e.moveTo(.5*n,.2*o),e.arcTo(.8*o,.8*o,0,0,0,.5*n-.8*o,.8*o),e.arcTo(.8*o,.8*o,0,0,0,.5*n,1.8*o),e.arcTo(.8*o,.8*o,0,0,0,.5*n+.8*o,.8*o),e.arcTo(.8*o,.8*o,0,0,0,.5*n,.2*o),e.close(),e.moveTo(.5*n,i-1.75*a),e.arcTo(.75*a,.75*a,0,0,0,.5*n-.75*a,i-a),e.arcTo(.75*a,.75*a,0,0,0,.5*n,i-.25*a),e.arcTo(.75*a,.75*a,0,0,0,.5*n+.75*a,i-a),e.arcTo(.75*a,.75*a,0,0,0,.5*n,i-1.75*a),e.close(),e.fill(),e.setFillColor(t),e.setShadow(!1),e.begin(),e.moveTo(.5*n,.2*o),e.arcTo(.8*o,.8*o,0,0,0,.5*n-.8*o,.8*o),e.arcTo(.8*o,.8*o,0,0,0,.5*n,1.8*o),e.arcTo(.8*o,.8*o,0,0,0,.5*n+.8*o,.8*o),e.arcTo(.8*o,.8*o,0,0,0,.5*n,.2*o),e.close(),e.moveTo(.5*n,i-1.75*a),e.arcTo(.75*a,.75*a,0,0,0,.5*n-.75*a,i-a),e.arcTo(.75*a,.75*a,0,0,0,.5*n,i-.25*a),e.arcTo(.75*a,.75*a,0,0,0,.5*n+.75*a,i-a),e.arcTo(.75*a,.75*a,0,0,0,.5*n,i-1.75*a),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeInfographicCircularCallout2.prototype.cst.CIRCULAR_CALLOUT_2,mxShapeInfographicCircularCallout2),mxShapeInfographicCircularCallout2.prototype.getConstraints=function(e,t,o){return e=[],o=Math.max(0,Math.min(.5*t,.4*o,.5*o-7)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-o,o)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+o,o)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e},mxUtils.extend(mxShapeInfographicBannerSingleFold,mxActor),mxShapeInfographicBannerSingleFold.prototype.cst={BANNER_SINGLE_FOLD:"mxgraph.infographic.bannerSingleFold"},mxShapeInfographicBannerSingleFold.prototype.customProperties=[{name:"dx",dispName:"Fold Length",type:"float",defVal:32,min:0},{name:"dy",dispName:"Banner Width",type:"float",defVal:17,min:0},{name:"notch",dispName:"Notch",type:"float",defVal:15,min:0}],mxShapeInfographicBannerSingleFold.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(.5*i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var a=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));t=Math.min(n-2*o,t);var s=Math.max(0,Math.min(n-t-2*o,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2))));a=Math.min(t,a),e.begin(),e.moveTo(s,0),e.lineTo(n-t,0),e.lineTo(n-t,o),e.lineTo(n,o),e.lineTo(n-a,.5*(i-o)+o),e.lineTo(n,i),e.lineTo(n-t-2*o,i),e.lineTo(n-t-2*o,i-o),e.lineTo(s,i-o),e.lineTo(0,.5*(i-o)),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.05"),e.setFillColor("#000000"),e.begin(),e.moveTo(n,o),e.lineTo(n-t,o),e.lineTo(n-t,i-o),e.lineTo(n-t-2*o,i),e.lineTo(n,i),e.lineTo(n-a,.5*(i-o)+o),e.close(),e.fill(),e.setFillAlpha("0.4"),e.begin(),e.moveTo(n-t,i-o),e.lineTo(n-t-2*o,i-o),e.lineTo(n-t-2*o,i),e.close(),e.fill(),e.begin(),e.moveTo(s,0),e.lineTo(n-t,0),e.lineTo(n-t,o),e.lineTo(n,o),e.lineTo(n-a,.5*(i-o)+o),e.lineTo(n,i),e.lineTo(n-t-2*o,i),e.lineTo(n-t-2*o,i-o),e.lineTo(s,i-o),e.lineTo(0,.5*(i-o)),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeInfographicBannerSingleFold.prototype.cst.BANNER_SINGLE_FOLD,mxShapeInfographicBannerSingleFold),Graph.handleFactory[mxShapeInfographicBannerSingleFold.prototype.cst.BANNER_SINGLE_FOLD]=function(e){var t=[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+e.width-t,e.y+o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width,e.x+e.width-t.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2,t.y-e.y)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return o=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)))),new mxPoint(e.x+e.width-o,e.y+t+.5*(e.height-t))}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.width,e.width+e.x-t.x)))/100}));return t.push(o),e=Graph.createHandle(e,["dx2"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return t=Math.max(0,Math.min(e.width-t,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)))),new mxPoint(e.x+t,e.y+.5*(e.height-o))}),(function(e,t){var o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),n=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));this.state.style.dx2=Math.round(100*Math.max(0,Math.min(e.width-o-2*n,t.x-e.x)))/100})),t.push(e),t},mxShapeInfographicBannerSingleFold.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=Math.max(0,Math.min(.5*o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),a=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=(n=Math.min(t-2*i,n),Math.max(0,Math.min(t-n-2*i,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2))))),l=(a=Math.min(n,a),t-n-s);return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s+.25*l,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s+.5*l,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s+.75*l,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s+l,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.25*n,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*n,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.75*n,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-a,.5*(o+i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n-2*i,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.75*(n+2*i),o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*(n+2*i),o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.25*(n+2*i),o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s+.25*l,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s+.5*l,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s+.75*l,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,s+l,o-i)),e},mxUtils.extend(mxShapeInfographicShadedCube,mxActor),mxShapeInfographicShadedCube.prototype.cst={SHADED_CUBE:"mxgraph.infographic.shadedCube"},mxShapeInfographicShadedCube.prototype.customProperties=[{name:"isoAngle",dispName:"Perspective",type:"float",defVal:15,min:0}],mxShapeInfographicShadedCube.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,t=Math.min(n*Math.tan(t),.5*i),e.begin(),e.moveTo(.5*n,0),e.lineTo(n,t),e.lineTo(n,i-t),e.lineTo(.5*n,i),e.lineTo(0,i-t),e.lineTo(0,t),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.2"),e.setFillColor("#000000"),e.begin(),e.moveTo(.5*n,2*t),e.lineTo(n,t),e.lineTo(n,i-t),e.lineTo(.5*n,i),e.close(),e.fill(),e.setFillColor("#ffffff"),e.begin(),e.moveTo(.5*n,2*t),e.lineTo(0,t),e.lineTo(0,i-t),e.lineTo(.5*n,i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeInfographicShadedCube.prototype.cst.SHADED_CUBE,mxShapeInfographicShadedCube),Graph.handleFactory[mxShapeInfographicShadedCube.prototype.cst.SHADED_CUBE]=function(e){return[Graph.createHandle(e,["isoAngle"],(function(e){var t=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",this.isoAngle))))*Math.PI/200;return new mxPoint(e.x,e.y+Math.min(e.width*Math.tan(t),.5*e.height))}),(function(e,t){this.state.style.isoAngle=Math.round(100*Math.max(0,Math.min(100,t.y-e.y)))/100}))]},mxShapeInfographicShadedCube.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;return n=Math.min(t*Math.tan(n),.5*o),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n+.25*(o-2*n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n+.5*(o-2*n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n+.75*(o-2*n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,o-.5*n)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,o-.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n+.75*(o-2*n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n+.5*(o-2*n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n+.25*(o-2*n))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,.5*n)),e},mxUtils.extend(mxShapeInfographicPartConcEllipse,mxActor),mxShapeInfographicPartConcEllipse.prototype.cst={PART_CONC_ELLIPSE:"mxgraph.infographic.partConcEllipse"},mxShapeInfographicPartConcEllipse.prototype.customProperties=[{name:"startAngle",dispName:"Start Angle",min:0,max:1,defVal:.25},{name:"endAngle",dispName:"End Angle",min:0,max:1,defVal:.1},{name:"arcWidth",dispName:"Arc Width",min:0,max:1,defVal:.5}],mxShapeInfographicPartConcEllipse.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle)))),s=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),l=1-Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arcWidth",this.arcWidth)))),r=(t=.5*n)*l,p=(o=.5*i)*l,m=s-a;0>m?m+=2*Math.PI:m==Math.PI&&(s+=1e-5);var h=t+Math.sin(a)*t,x=o-Math.cos(a)*o,c=t+Math.sin(a)*r,u=(a=o-Math.cos(a)*p,t+Math.sin(s)*t),S=o-Math.cos(s)*o,T=t+Math.sin(s)*r,d=(s=o-Math.cos(s)*p,0);m<=Math.PI&&(d=1),e.begin(),e.moveTo(t,0),e.arcTo(t,o,0,0,1,n,o),e.arcTo(t,o,0,0,1,t,i),e.arcTo(t,o,0,0,1,0,o),e.arcTo(t,o,0,0,1,t,0),e.close(),e.moveTo(t,.5*i-p),e.arcTo(r,p,0,0,0,.5*n-r,o),e.arcTo(r,p,0,0,0,t,.5*i+p),e.arcTo(r,p,0,0,0,.5*n+r,o),e.arcTo(r,p,0,0,0,t,.5*i-p),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.2"),e.setFillColor("#ffffff"),e.begin(),e.moveTo(h,x),e.arcTo(t,o,0,d,0,u,S),e.lineTo(T,s),e.arcTo(r,p,0,d,1,c,a),e.close(),e.fill(),p=(o=.5*i)*l,l=(r=(t=.5*n)*l)+.25*(t-r),m=p+.25*(o-p),e.setFillColor("#000000"),e.begin(),e.moveTo(t,.5*i-p),e.arcTo(r,p,0,0,1,.5*n+r,o),e.arcTo(r,p,0,0,1,t,.5*i+p),e.arcTo(r,p,0,0,1,.5*n-r,o),e.arcTo(r,p,0,0,1,t,.5*i-p),e.close(),e.moveTo(t,.5*i-m),e.arcTo(l,m,0,0,0,.5*n-l,o),e.arcTo(l,m,0,0,0,t,.5*i+m),e.arcTo(l,m,0,0,0,.5*n+l,o),e.arcTo(l,m,0,0,0,t,.5*i-m),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeInfographicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE,mxShapeInfographicPartConcEllipse),Graph.handleFactory[mxShapeInfographicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE]=function(e){var t=[Graph.createHandle(e,["startAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.startAngle=o}))],o=Graph.createHandle(e,["endAngle"],(function(e){var t=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(e.x+.5*e.width+Math.sin(t)*e.width*.5,e.y+.5*e.height-Math.cos(t)*e.height*.5)}),(function(e,t){var o=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(t.x-e.x-.5*e.width)/(.5*e.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(t.y-e.y-.5*e.height)/(.5*e.height))))/100)/Math.PI;0>o&&(o=1+o),this.state.style.endAngle=o}));return t.push(o),e=Graph.createHandle(e,["arcWidth"],(function(e){var t=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"arcWidth",this.arcWidth))));return new mxPoint(e.x+e.width/2,e.y+t*e.height*.5)}),(function(e,t){this.state.style.arcWidth=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,(t.y-e.y)/(.5*e.height))))/100})),t.push(e),t},mxShapeInfographicPartConcEllipse.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.145,.145),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.145),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeInfographicBannerHalfFold,mxActor),mxShapeInfographicBannerHalfFold.prototype.cst={BANNER_HALF_FOLD:"mxgraph.infographic.bannerHalfFold"},mxShapeInfographicBannerHalfFold.prototype.customProperties=[{name:"dx",dispName:"Banner Width",min:0,defVal:40},{name:"dx2",dispName:"Spike Size",min:0,defVal:20},{name:"notch",dispName:"Notch Size",min:0,defVal:15}],mxShapeInfographicBannerHalfFold.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(n-t,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2))));var a=Math.max(0,Math.min(i-t,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));e.begin(),e.moveTo(o,0),e.lineTo(n-t,0),e.lineTo(n,t),e.lineTo(n,i),e.lineTo(n-.5*t,i-a),e.lineTo(n-t,i),e.lineTo(n-t,t),e.lineTo(o,t),e.lineTo(0,.5*t),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.2"),e.setFillColor("#000000"),e.begin(),e.moveTo(n-t,t),e.lineTo(n,t),e.lineTo(n,i),e.lineTo(n-.5*t,i-a),e.lineTo(n-t,i),e.lineTo(n-t,t),e.lineTo(0,t),e.close(),e.fill(),e.begin(),e.moveTo(o,0),e.lineTo(n-t,0),e.lineTo(n,t),e.lineTo(n,i),e.lineTo(n-.5*t,i-a),e.lineTo(n-t,i),e.lineTo(n-t,t),e.lineTo(o,t),e.lineTo(0,.5*t),e.close(),e.stroke()},mxCellRenderer.registerShape(mxShapeInfographicBannerHalfFold.prototype.cst.BANNER_HALF_FOLD,mxShapeInfographicBannerHalfFold),Graph.handleFactory[mxShapeInfographicBannerHalfFold.prototype.cst.BANNER_HALF_FOLD]=function(e){var t=[Graph.createHandle(e,["dx"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(e.x+e.width-t,e.y+t)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width,e.x+e.width-t.x)))/100}))],o=Graph.createHandle(e,["notch"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height-t,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(e.x+e.width-.5*t,e.y+e.height-o)}),(function(e,t){this.state.style.notch=Math.round(100*Math.max(0,Math.min(e.height,e.height+e.y-t.y)))/100}));return t.push(o),e=Graph.createHandle(e,["dx2"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.width-t,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(e.x+o,e.y+t)}),(function(e,t){var o=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));this.state.style.dx2=Math.round(100*Math.max(0,Math.min(e.width-o,t.x-e.x)))/100})),t.push(e),t},mxShapeInfographicBannerHalfFold.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=Math.max(0,Math.min(t-n,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),a=Math.max(0,Math.min(o-n,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),s=t-n-i,l=o-n;return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i+.25*s,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i+.5*s,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i+.75*s,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*n,.5*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n+.25*l)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n+.5*l)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,n+.75*l)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.5*n,o-a)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,o)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,n+.75*l)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,n+.5*l)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,n+.25*l)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-n,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i+.25*s,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i+.5*s,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i+.75*s,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,i,n)),e},mxUtils.extend(mxShapeInfographicCircularDial,mxActor),mxShapeInfographicCircularDial.prototype.cst={CIRCULAR_DIAL:"mxgraph.infographic.circularDial"},mxShapeInfographicCircularDial.prototype.customProperties=[{name:"dy",dispName:"Hole Size",min:0,defVal:15}],mxShapeInfographicCircularDial.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(.5*i-10,.5*n,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var a=(o=Math.max(0,Math.min(.5*n,.5*i-10)))-t;e.begin(),e.moveTo(.5*n-o,i),e.lineTo(.5*n-o,o),e.arcTo(o,o,0,0,1,.5*n,0),e.arcTo(o,o,0,0,1,.5*n+o,o),e.lineTo(.5*n+o,i),e.close(),e.moveTo(.5*n,t),e.arcTo(a,a,0,0,0,.5*n-a,o),e.arcTo(a,a,0,0,0,.5*n,o+a),e.arcTo(a,a,0,0,0,.5*n+a,o),e.arcTo(a,a,0,0,0,.5*n,t),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.2"),e.setFillColor("#000000"),e.begin(),e.moveTo(.5*n-o,2*o),e.lineTo(.5*n+o,2*o),e.lineTo(.5*n+o,i),e.lineTo(.5*n-o,i),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeInfographicCircularDial.prototype.cst.CIRCULAR_DIAL,mxShapeInfographicCircularDial),Graph.handleFactory[mxShapeInfographicCircularDial.prototype.cst.CIRCULAR_DIAL]=function(e){return[Graph.createHandle(e,["dy"],(function(e){var t=Math.max(0,Math.min(e.height/2,e.width/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+.5*e.width,e.y+t)}),(function(e,t){this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height/2,e.width/2,t.y-e.y)))/100}))]},mxShapeInfographicCircularDial.prototype.getConstraints=function(e,t,o){e=[],parseFloat(mxUtils.getValue(this.style,"dy",this.dy));var n=Math.max(0,Math.min(.5*t,.5*o-10));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n,.5*(n+o))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-n,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-.71*n,.29*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+.71*n,.29*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n,n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n,.5*(n+o))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t+.5*n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t-.5*n,o)),e},mxUtils.extend(mxShapeInfographicRibbonSimple,mxActor),mxShapeInfographicRibbonSimple.prototype.cst={RIBBON_SIMPLE:"mxgraph.infographic.ribbonSimple"},mxShapeInfographicRibbonSimple.prototype.customProperties=[{name:"notch1",dispName:"Notch Size",min:0,defVal:20},{name:"notch2",dispName:"Spike Size",min:0,defVal:20}],mxShapeInfographicRibbonSimple.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch1",this.notch2)))),o=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"notch2",this.notch2)))),e.begin(),e.moveTo(0,i),e.lineTo(t,.5*i),e.lineTo(0,0),e.lineTo(n-o,0),e.lineTo(n,.5*i),e.lineTo(n-o,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeInfographicRibbonSimple.prototype.cst.RIBBON_SIMPLE,mxShapeInfographicRibbonSimple),Graph.handleFactory[mxShapeInfographicRibbonSimple.prototype.cst.RIBBON_SIMPLE]=function(e){var t=[Graph.createHandle(e,["notch1"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch1",this.notch1))));return new mxPoint(e.x+t,e.y+.5*e.height)}),(function(e,t){this.state.style.notch1=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100}))];return e=Graph.createHandle(e,["notch2"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"notch2",this.notch2))));return new mxPoint(e.x+e.width-t,e.y)}),(function(e,t){this.state.style.notch2=Math.round(100*Math.max(0,Math.min(e.width,e.width+e.x-t.x)))/100})),t.push(e),t},mxShapeInfographicRibbonSimple.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch1",this.notch2))));return t-=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"notch2",this.notch2)))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,0)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,o)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,.5*o)),e},mxUtils.extend(mxShapeInfographicBarCallout,mxActor),mxShapeInfographicBarCallout.prototype.cst={BAR_CALLOUT:"mxgraph.infographic.barCallout"},mxShapeInfographicBarCallout.prototype.customProperties=[{name:"dx",dispName:"Callout Position",min:0,defVal:100},{name:"dy",dispName:"Callout Size",min:0,defVal:30}],mxShapeInfographicBarCallout.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var a=Math.max(t-.35*o,0),s=Math.min(t+.35*o,n);e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i-o),e.lineTo(s,i-o),e.lineTo(t,i),e.lineTo(a,i-o),e.lineTo(0,i-o),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeInfographicBarCallout.prototype.cst.BAR_CALLOUT,mxShapeInfographicBarCallout),mxShapeInfographicBarCallout.prototype.constraints=null,Graph.handleFactory[mxShapeInfographicBarCallout.prototype.cst.BAR_CALLOUT]=function(e){return[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+t,e.y+e.height-o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height,e.y+e.height-t.y)))/100}))]},mxShapeInfographicBarCallout.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o-i)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,o-i)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-i)),e},mxUtils.extend(mxShapeInfographicFlag,mxActor),mxShapeInfographicFlag.prototype.cst={FLAG:"mxgraph.infographic.flag"},mxShapeInfographicFlag.prototype.customProperties=[{name:"dx",dispName:"Pole Width",min:0,defVal:30},{name:"dy",dispName:"Spike Size",min:0,defVal:20}],mxShapeInfographicFlag.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(i,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i-o),e.lineTo(t,i-o),e.lineTo(.5*t,i),e.lineTo(0,i-o),e.close(),e.fillAndStroke(),e.setShadow(!1),e.setFillAlpha("0.2"),e.setFillColor("#ffffff"),e.begin(),e.moveTo(0,0),e.lineTo(t,0),e.lineTo(t,i-o),e.lineTo(.5*t,i),e.lineTo(0,i-o),e.close(),e.fill()},mxCellRenderer.registerShape(mxShapeInfographicFlag.prototype.cst.FLAG,mxShapeInfographicFlag),Graph.handleFactory[mxShapeInfographicFlag.prototype.cst.FLAG]=function(e){return[Graph.createHandle(e,["dx","dy"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),o=Math.max(0,Math.min(e.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(e.x+t,e.y+e.height-o)}),(function(e,t){this.state.style.dx=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100,this.state.style.dy=Math.round(100*Math.max(0,Math.min(e.height,e.y+e.height-t.y)))/100}))]},mxShapeInfographicFlag.prototype.getConstraints=function(e,t,o){e=[];var n=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),i=Math.max(0,Math.min(o,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,.5*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o-i))),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*t,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*t,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*t,o-i)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,0)),e},mxUtils.extend(mxShapeKubernetesIcon,mxShape),mxShapeKubernetesIcon.prototype.cst={ICON:"mxgraph.kubernetes.icon"},mxShapeKubernetesIcon.prototype.customProperties=[{name:"prIcon",dispName:"",defVal:"api",type:"API",enumList:[{val:"c_c_m",dispName:"C-C-M"},{val:"c_m",dispName:"C-M"},{val:"c_role",dispName:"C-Role"},{val:"cm",dispName:"CM"},{val:"crb",dispName:"CRB"},{val:"crd",dispName:"CRD"},{val:"cronjob",dispName:"Cronjob"},{val:"deploy",dispName:"Deploy"},{val:"ds",dispName:"DS"},{val:"ep",dispName:"EP"},{val:"etcd",dispName:"ETCD"},{val:"group",dispName:"Group"},{val:"hpa",dispName:"HPA"},{val:"ing",dispName:"ING"},{val:"job",dispName:"Job"},{val:"k_proxy",dispName:"K-Proxy"},{val:"kubelet",dispName:"Kubelet"},{val:"limits",dispName:"Limits"},{val:"master",dispName:"Master"},{val:"netpol",dispName:"Netpol"},{val:"node",dispName:"Node"},{val:"ns",dispName:"NS"},{val:"pod",dispName:"Pod"},{val:"psp",dispName:"PSP"},{val:"pv",dispName:"PV"},{val:"pvc",dispName:"PVC"},{val:"quota",dispName:"Quota"},{val:"rb",dispName:"RB"},{val:"role",dispName:"Role"},{val:"rs",dispName:"RS"},{val:"sa",dispName:"SA"},{val:"sc",dispName:"SC"},{val:"sched",dispName:"Sched"},{val:"secret",dispName:"Secret"},{val:"sts",dispName:"STS"},{val:"svc",dispName:"SVC"},{val:"user",dispName:"User"},{val:"vol",dispName:"Vol"}]}],mxShapeKubernetesIcon.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.state.style,"prIcon",""),s=mxUtils.getValue(this.state.style,"fillColor","#ffffff"),l=mxUtils.getValue(this.state.style,"strokeColor","#ffffff");e.translate(t,o),t=mxStencilRegistry.getStencil("mxgraph.kubernetes.frame"),e.setFillColor(l),t.drawShape(e,this,0,0,n,i),e.setFillColor(s),t.drawShape(e,this,.03*n,.03*i,.94*n,.94*i),null!=(a=mxStencilRegistry.getStencil("mxgraph.kubernetes."+a))&&(e.setFillColor(l),a.drawShape(e,this,.2*n,.2*i,.6*n,.6*i))},mxCellRenderer.registerShape(mxShapeKubernetesIcon.prototype.cst.ICON,mxShapeKubernetesIcon),mxShapeKubernetesIcon.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxLeanBoatShipment,mxShape),mxLeanBoatShipment.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(.15*n,.77*i),e.lineTo(.5*n,0),e.lineTo(.85*n,.77*i),e.close(),e.moveTo(.2*n,i),e.lineTo(0,.8*i),e.lineTo(n,.8*i),e.lineTo(.8*n,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.boat_shipment",mxLeanBoatShipment),mxLeanBoatShipment.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1),new mxConnectionConstraint(new mxPoint(0,.8),!1),new mxConnectionConstraint(new mxPoint(1,.8),!1),new mxConnectionConstraint(new mxPoint(.2,1),!1),new mxConnectionConstraint(new mxPoint(.8,1),!1),new mxConnectionConstraint(new mxPoint(.26,.5),!1),new mxConnectionConstraint(new mxPoint(.74,.5),!1)],mxUtils.extend(mxLeanSafetyStock,mxShape),mxLeanSafetyStock.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxLeanSafetyStock.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxLeanSafetyStock.prototype.foreground=function(e,t,o){e.begin(),e.moveTo(0,.34*o),e.lineTo(t,.34*o),e.moveTo(0,.66*o),e.lineTo(t,.66*o),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.buffer_or_safety_stock",mxLeanSafetyStock),mxLeanSafetyStock.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanDataBox,mxShape),mxLeanDataBox.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxLeanDataBox.prototype.background=function(e,t,o){e.begin(),e.moveTo(0,o),e.lineTo(0,0),e.lineTo(t,0),e.lineTo(t,o),e.fillAndStroke()},mxLeanDataBox.prototype.foreground=function(e,t,o){e.begin(),e.moveTo(0,.2*o),e.lineTo(t,.2*o),e.moveTo(0,.4*o),e.lineTo(t,.4*o),e.moveTo(0,.6*o),e.lineTo(t,.6*o),e.moveTo(0,.8*o),e.lineTo(t,.8*o),e.stroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.data_box",mxLeanDataBox),mxLeanDataBox.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanCustomerSupplier,mxShape),mxLeanCustomerSupplier.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1)},mxLeanCustomerSupplier.prototype.background=function(e,t,o){e.begin(),e.moveTo(0,o),e.lineTo(0,.3*o),e.lineTo(.33*t,.02*o),e.lineTo(.33*t,.3*o),e.lineTo(.67*t,.02*o),e.lineTo(.67*t,.3*o),e.lineTo(t,.02*o),e.lineTo(t,o),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.outside_sources",mxLeanCustomerSupplier),mxLeanCustomerSupplier.prototype.constraints=[new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.33,0),!0),new mxConnectionConstraint(new mxPoint(.67,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanDedicatedProcess,mxShape),mxLeanDedicatedProcess.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8")),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i,t)},mxLeanDedicatedProcess.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxLeanDedicatedProcess.prototype.foreground=function(e,t,o,n){o=Math.min(1.5*n,o),e.begin(),e.moveTo(0,o),e.lineTo(t,o),e.stroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.manufacturing_process",mxLeanDedicatedProcess),mxLeanDedicatedProcess.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanSharedProcess,mxShape),mxLeanSharedProcess.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8")),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i,t)},mxLeanSharedProcess.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxLeanSharedProcess.prototype.foreground=function(e,t,o,n){n=Math.min(1.5*n,o),e.begin(),e.moveTo(0,n),e.lineTo(t,n),e.stroke();var i=0;e.begin();var a=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"2"));for(e.setStrokeWidth(.5*a);i<o+t;)if((i+=10)>n){a=Math.max(0,i-o);var s,l=Math.min(i,o),r=Math.min(i-n,t);s=Math.max(i-t,n),a<t&&(e.moveTo(a,l),e.lineTo(r,s))}e.stroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.manufacturing_process_shared",mxLeanSharedProcess),mxLeanSharedProcess.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanWorkcell,mxShape),mxLeanWorkcell.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(.65*n,i),e.lineTo(.65*n,.4*i),e.lineTo(.35*n,.4*i),e.lineTo(.35*n,i),e.lineTo(0,i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.work_cell",mxLeanWorkcell),mxLeanWorkcell.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanInventoryBox,mxShape),mxLeanInventoryBox.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,i),e.lineTo(.5*n,0),e.lineTo(n,i),e.close(),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(.4*n,.45*i),e.lineTo(.6*n,.45*i),e.moveTo(.5*n,.45*i),e.lineTo(.5*n,.85*i),e.moveTo(.4*n,.85*i),e.lineTo(.6*n,.85*i),e.stroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.inventory_box",mxLeanInventoryBox),mxLeanInventoryBox.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.375,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.125,.75),!1),new mxConnectionConstraint(new mxPoint(.625,.25),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(.875,.75),!1),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanPushArrow,mxShape),mxLeanPushArrow.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxLeanPushArrow.prototype.background=function(e,t,o){e.begin(),e.moveTo(0,.17*o),e.lineTo(.75*t,.17*o),e.lineTo(.75*t,0),e.lineTo(t,.5*o),e.lineTo(.75*t,o),e.lineTo(.75*t,.83*o),e.lineTo(0,.83*o),e.close(),e.fillAndStroke()},mxLeanPushArrow.prototype.foreground=function(e,t,o,n){n=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(n),e.rect(0,.17*o,.12*t,.66*o),e.fill(),e.rect(.24*t,.17*o,.12*t,.66*o),e.fill(),e.rect(.48*t,.17*o,.12*t,.66*o),e.fill(),e.begin(),e.moveTo(.72*t,.17*o),e.lineTo(.75*t,.17*o),e.lineTo(.75*t,0),e.lineTo(t,.5*o),e.lineTo(.75*t,o),e.lineTo(.75*t,.83*o),e.lineTo(.72*t,.83*o),e.close(),e.fill()},mxCellRenderer.registerShape("mxgraph.lean_mapping.push_arrow",mxLeanPushArrow),mxLeanPushArrow.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.17),!1),new mxConnectionConstraint(new mxPoint(.5,.17),!1),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.17),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.83),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,.83),!1),new mxConnectionConstraint(new mxPoint(.5,.83),!1),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanSupermarket,mxShape),mxLeanSupermarket.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.moveTo(0,.33*i),e.lineTo(n,.33*i),e.moveTo(0,.67*i),e.lineTo(n,.67*i),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.supermarket",mxLeanSupermarket),mxLeanSupermarket.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanMaterialPull,mxShape),mxLeanMaterialPull.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(.732*n,.0736*i),e.arcTo(.4827*n,.4959*i,0,1,0,.9553*n,.6191*i),e.stroke(),e.begin(),e.moveTo(.9071*n,.6191*i),e.lineTo(.9794*n,.4951*i),e.lineTo(n,.6438*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.physical_pull",mxLeanMaterialPull),mxLeanMaterialPull.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.98,.5),!0),new mxConnectionConstraint(new mxPoint(.144,.144),!1),new mxConnectionConstraint(new mxPoint(.144,.845),!1),new mxConnectionConstraint(new mxPoint(.845,.845),!1)],mxUtils.extend(mxLeanFifoLane,mxShape),mxLeanFifoLane.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8")),this.background(e,n,i,t),e.setShadow(!1)},mxLeanFifoLane.prototype.background=function(e,t,o,n){n=Math.min(1.5*n,o),e.begin(),e.moveTo(0,n),e.lineTo(t,n),e.moveTo(0,o),e.lineTo(t,o),e.stroke(),e.rect(.02*t,n+4,.26*t,o-n-8),e.fillAndStroke(),e.ellipse(.35*t,n+4,.26*t,o-n-8),e.fillAndStroke(),e.begin(),e.moveTo(.69*t,n+4),e.lineTo(.98*t,n+4),e.lineTo(.835*t,o-4),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.fifo_lane",mxLeanFifoLane),mxLeanFifoLane.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanTruckShipment,mxShape),mxLeanTruckShipment.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1)},mxLeanTruckShipment.prototype.background=function(e,t,o){e.rect(0,0,.6*t,.8*o),e.fillAndStroke(),e.rect(.6*t,.35*o,.4*t,.45*o),e.fillAndStroke();var n=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.setFillColor(n),e.ellipse(.15*t,.8*o,.2*t,.2*o),e.fillAndStroke(),e.ellipse(.65*t,.8*o,.2*t,.2*o),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.truck_shipment",mxLeanTruckShipment),mxLeanTruckShipment.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.6,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,.8),!1),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanProductionControl,mxShape),mxLeanProductionControl.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,n,i),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.schedule",mxLeanProductionControl),mxLeanProductionControl.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanFifoSequence,mxShape),mxLeanFifoSequence.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.moveTo(0,i),e.lineTo(n,i),e.moveTo(.05*n,.5*i),e.lineTo(.15*n,.5*i),e.moveTo(.75*n,.5*i),e.lineTo(.88*n,.5*i),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.begin(),e.moveTo(.88*n,.39*i),e.lineTo(.98*n,.5*i),e.lineTo(.88*n,.61*i),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.fifo_sequence_flow",mxLeanFifoSequence),mxLeanFifoSequence.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanProductionKanban,mxShape),mxLeanProductionKanban.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setDashed(!0),e.begin(),e.moveTo(4,i-10),e.lineTo(4,25),e.lineTo(n,25),e.stroke(),e.setDashed(!1),e.begin(),e.moveTo(n-75,0),e.lineTo(n-30,0),e.lineTo(n-15,15),e.lineTo(n-15,50),e.lineTo(n-75,50),e.close(),e.fillAndStroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.begin(),e.moveTo(0,i-10),e.lineTo(4,i),e.lineTo(8,i-10),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.production_kanban",mxLeanProductionKanban),mxLeanProductionKanban.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,4,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,25)),e},mxUtils.extend(mxLeanWithdrawalKanban,mxShape),mxLeanWithdrawalKanban.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setDashed(!0),e.begin(),e.moveTo(4,i-10),e.lineTo(4,25),e.lineTo(n,25),e.stroke(),e.setDashed(!1),e.begin(),e.moveTo(n-75,0),e.lineTo(n-30,0),e.lineTo(n-15,15),e.lineTo(n-15,50),e.lineTo(n-75,50),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(n-75,45),e.lineTo(n-70,50),e.moveTo(n-75,35),e.lineTo(n-60,50),e.moveTo(n-75,25),e.lineTo(n-50,50),e.moveTo(n-75,15),e.lineTo(n-40,50),e.moveTo(n-75,5),e.lineTo(n-30,50),e.moveTo(n-70,0),e.lineTo(n-20,50),e.moveTo(n-60,0),e.lineTo(n-15,45),e.moveTo(n-50,0),e.lineTo(n-15,35),e.moveTo(n-40,0),e.lineTo(n-15,25),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.begin(),e.moveTo(0,i-10),e.lineTo(4,i),e.lineTo(8,i-10),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.withdrawal_kanban",mxLeanWithdrawalKanban),mxLeanWithdrawalKanban.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,4,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,25)),e},mxUtils.extend(mxLeanSignalKanban,mxShape),mxLeanSignalKanban.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.setDashed(!0),e.begin(),e.moveTo(4,i-10),e.lineTo(4,15),e.lineTo(n,15),e.stroke(),e.setDashed(!1),e.begin(),e.moveTo(n-65,0),e.lineTo(n-25,0),e.lineTo(n-45,45),e.close(),e.fillAndStroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.begin(),e.moveTo(0,i-10),e.lineTo(4,i),e.lineTo(8,i-10),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.signal_kanban",mxLeanSignalKanban),mxLeanSignalKanban.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,4,o)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,15)),e},mxUtils.extend(mxLeanSequencedPullBall,mxShape),mxLeanSequencedPullBall.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.ellipse(0,0,n,i),e.fillAndStroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.setShadow(!1),e.ellipse(.15*n,.15*i,.7*n,.7*i),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.sequenced_pull_ball",mxLeanSequencedPullBall),mxLeanSequencedPullBall.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.144,.144),!1),new mxConnectionConstraint(new mxPoint(.856,.144),!1),new mxConnectionConstraint(new mxPoint(.856,.856),!1),new mxConnectionConstraint(new mxPoint(.144,.856),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)],mxUtils.extend(mxLeanRailShipment,mxShape),mxLeanRailShipment.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(.1*n,0,.35*n,.8*i),e.fillAndStroke(),e.rect(.55*n,0,.35*n,.8*i),e.fillAndStroke(),e.begin(),e.moveTo(0,i),e.lineTo(n,i),e.moveTo(.45*n,.7*i),e.lineTo(.55*n,.7*i),e.stroke(),e.ellipse(.15*n,.8*i,.06*n,.2*i),e.fillAndStroke(),e.ellipse(.34*n,.8*i,.06*n,.2*i),e.fillAndStroke(),e.ellipse(.6*n,.8*i,.06*n,.2*i),e.fillAndStroke(),e.ellipse(.79*n,.8*i,.06*n,.2*i),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.rail_shipment",mxLeanRailShipment),mxLeanRailShipment.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.1,.25),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(.1,.75),!1),new mxConnectionConstraint(new mxPoint(.9,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(.9,.75),!1),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanWarehouse,mxShape),mxLeanWarehouse.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,n,i),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(0,.4*i),e.lineTo(n,.4*i),e.moveTo(.15*n,i),e.lineTo(.15*n,.55*i),e.lineTo(.3*n,.55*i),e.lineTo(.3*n,i),e.stroke(),e.ellipse(.27*n,.75*i,.02*n,.02*n),e.stroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.warehouse",mxLeanWarehouse),mxLeanWarehouse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanTimeline,mxShape),mxLeanTimeline.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=mxUtils.getValue(this.style,"mainText","20,Time 1,50,Time 2,30,Time 3,40,Time 4,30,Time 5,50,Time 6,20,Time 7").toString().split(",");t=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"12"),o=[];for(var s=0,l=0;l<a.length;l+=2){var r=parseFloat(a[l]);o.push(r),s+=r}for(n/=s,s=[],l=1;l<a.length;l+=2)s.push(a[l]);for(e.begin(),a=0,e.moveTo(0,i),l=0;l<s.length;l++)a+=r=o[l]*n,0==l%2?(e.lineTo(a,i),e.lineTo(a,1.5*t),e.text(a-.5*r,i-.75*t,0,0,s[l],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)):(e.lineTo(a,1.5*t),e.lineTo(a,i),e.text(a-.5*r,.75*t,0,0,s[l],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0));e.stroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.timeline",mxLeanTimeline),mxUtils.extend(mxLeanCrossDock,mxShape),mxLeanCrossDock.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,0,n,i),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(0,.25*i),e.lineTo(n,.25*i),e.moveTo(.1*n,.4*i),e.lineTo(.35*n,.4*i),e.arcTo(.15*n,.15*i,0,0,1,.5*n,.5*i),e.arcTo(.15*n,.15*i,0,0,0,.65*n,.6*i),e.lineTo(.9*n,.6*i),e.stroke(),e.moveTo(.1*n,.4*i),e.lineTo(.35*n,.4*i),e.arcTo(.15*n,.25*i,0,0,1,.5*n,.55*i),e.arcTo(.15*n,.25*i,0,0,0,.65*n,.7*i),e.lineTo(.9*n,.7*i),e.stroke(),e.moveTo(.1*n,.4*i),e.lineTo(.35*n,.4*i),e.arcTo(.15*n,.3*i,0,0,1,.5*n,.6*i),e.arcTo(.15*n,.3*i,0,0,0,.65*n,.8*i),e.lineTo(.9*n,.8*i),e.stroke(),e.moveTo(.1*n,.8*i),e.lineTo(.35*n,.8*i),e.arcTo(.15*n,.3*i,0,0,0,.5*n,.6*i),e.arcTo(.15*n,.3*i,0,0,1,.65*n,.4*i),e.lineTo(.9*n,.4*i),e.stroke(),e.moveTo(.1*n,.8*i),e.lineTo(.35*n,.8*i),e.arcTo(.15*n,.1*i,0,0,0,.5*n,.75*i),e.arcTo(.15*n,.1*i,0,0,1,.65*n,.7*i),e.lineTo(.9*n,.7*i),e.stroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.crossDock",mxLeanCrossDock),mxLeanCrossDock.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanOrders,mxShape),mxLeanOrders.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,.56*i,n,.44*i),e.fillAndStroke(),t=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"2")),e.setStrokeWidth(.5*t),e.begin(),e.moveTo(.04*n,.5418*i),e.lineTo(.94*n,.5418*i),e.moveTo(.0522*n,.5088*i),e.lineTo(.9522*n,.5088*i),e.moveTo(.05*n,.4738*i),e.lineTo(.95*n,.4738*i),e.moveTo(.0456*n,.4427*i),e.lineTo(.9456*n,.4427*i),e.moveTo(.0422*n,.4135*i),e.lineTo(.9422*n,.4135*i),e.moveTo(.0533*n,.3804*i),e.lineTo(.9533*n,.3804*i),e.moveTo(.0556*n,.3454*i),e.lineTo(.9556*n,.3454*i),e.moveTo(.05*n,.3143*i),e.lineTo(.95*n,.3143*i),e.moveTo(.0489*n,.2832*i),e.lineTo(.0489*n,.2832*i),e.moveTo(.0544*n,.254*i),e.lineTo(.9544*n,.254*i),e.moveTo(.0489*n,.221*i),e.lineTo(.9489*n,.221*i),e.moveTo(.0556*n,.1918*i),e.lineTo(.9556*n,.1918*i),e.moveTo(.0522*n,.1587*i),e.lineTo(.9522*n,.1587*i),e.moveTo(.0544*n,.1276*i),e.lineTo(.9544*n,.1276*i),e.moveTo(.0544*n,.0965*i),e.lineTo(.9544*n,.0965*i),e.moveTo(.0556*n,.0654*i),e.lineTo(.9556*n,.0654*i),e.moveTo(.0533*n,.0304*i),e.lineTo(.9533*n,.0304*i),e.moveTo(.0556*n,0),e.lineTo(.9556*n,0),e.stroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.orders",mxLeanOrders),mxLeanOrders.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.05,0),!0),new mxConnectionConstraint(new mxPoint(.95,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.05,.25),!1),new mxConnectionConstraint(new mxPoint(.05,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.95,.25),!1),new mxConnectionConstraint(new mxPoint(.95,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanBatchedKanban,mxShape),mxLeanBatchedKanban.prototype.paintVertexShape=function(e,t,o,n,i){n=Math.max(110,n),e.translate(t,o),e.begin(),e.moveTo(4,.5*i),e.lineTo(n,.5*i),e.stroke(),e.begin(),e.moveTo(.5*n-20,.5*i-35),e.lineTo(.5*n+25,.5*i-35),e.lineTo(.5*n+40,.5*i-20),e.lineTo(.5*n+40,.5*i+15),e.lineTo(.5*n-20,.5*i+15),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5*n-30,.5*i-25),e.lineTo(.5*n+15,.5*i-25),e.lineTo(.5*n+30,.5*i-10),e.lineTo(.5*n+30,.5*i+25),e.lineTo(.5*n-30,.5*i+25),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5*n-40,.5*i-15),e.lineTo(.5*n+5,.5*i-15),e.lineTo(.5*n+20,.5*i),e.lineTo(.5*n+20,.5*i+35),e.lineTo(.5*n-40,.5*i+35),e.close(),e.fillAndStroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.begin(),e.moveTo(n-10,.5*i-4),e.lineTo(n,.5*i),e.lineTo(n-10,.5*i+4),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.batched_kanban",mxLeanBatchedKanban),mxLeanBatchedKanban.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)],mxUtils.extend(mxLeanControlCenter,mxShape),mxLeanControlCenter.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(.15*n,0,.7*n,.8*i),e.fillAndStroke(),e.rect(0,.8*i,n,.2*i),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.control_center",mxLeanControlCenter),mxLeanControlCenter.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,0),!0),new mxConnectionConstraint(new mxPoint(.85,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.15,.25),!1),new mxConnectionConstraint(new mxPoint(.15,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.85,.25),!1),new mxConnectionConstraint(new mxPoint(.85,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)],mxUtils.extend(mxLeanElectronicInfoShape,mxArrow),mxLeanElectronicInfoShape.prototype.paintEdgeShape=function(e,t){var o=t[0],n=t[t.length-1],i=n.x-o.x,a=n.y-o.y;o.x+=.05*i,o.y+=.05*a,n.x-=.05*i,n.y-=.05*a,i=n.x-o.x,a=n.y-o.y;var s=i/(m=Math.sqrt(i*i+a*a)),l=a/m,r=o.x+.5*i,p=o.y+.5*a,m=(i=r-s*m*.1-l/3*m*.1,a=p-l*m*.1+s/3*m*.1,r=r+s*m*.1+l/3*m*.1,p+l*m*.1-s/3*m*.1);e.begin(),e.moveTo(o.x,o.y),e.lineTo(r,m),e.lineTo(i,a),e.lineTo(n.x,n.y),e.stroke(),i=n.x-i,a=n.y-a,s=i/(m=Math.sqrt(i*i+a*a)),l=a/m,e.setFillColor(mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000")),e.begin(),e.moveTo(n.x-10*s-5*l,n.y-10*l+5*s),e.lineTo(n.x,n.y),e.lineTo(n.x-10*s+5*l,n.y-10*l-5*s),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.electronic_info_flow_edge",mxLeanElectronicInfoShape),mxUtils.extend(mxLeanManualInfoShape,mxArrow),mxLeanManualInfoShape.prototype.paintEdgeShape=function(e,t){var o=t[0],n=t[t.length-1],i=n.x-o.x,a=n.y-o.y;o.x+=.05*i,o.y+=.05*a,n.x-=.05*i,n.y-=.05*a,i=n.x-o.x,a=n.y-o.y;var s=Math.sqrt(i*i+a*a);i/=s,a/=s,e.begin(),e.moveTo(o.x,o.y),e.lineTo(n.x,n.y),e.stroke(),e.setFillColor(mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000")),e.begin(),e.moveTo(n.x-10*i-5*a,n.y-10*a+5*i),e.lineTo(n.x,n.y),e.lineTo(n.x-10*i+5*a,n.y-10*a-5*i),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.lean_mapping.manual_info_flow_edge",mxLeanManualInfoShape),mxUtils.extend(mxShapeLeanTimeline,mxShape),mxShapeLeanTimeline.prototype.cst={SHAPE_TIMELINE:"mxgraph.lean_mapping.timeline2"},mxShapeLeanTimeline.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o);var a=mxUtils.getValue(this.style,"dy1","0");t=mxUtils.getValue(this.style,"dx2","0"),o=mxUtils.getValue(this.style,"dy2","0");var s=mxUtils.getValue(this.style,"dx3","0"),l=mxUtils.getValue(this.style,"dy3","0"),r=mxUtils.getValue(this.style,"dx4","0"),p=mxUtils.getValue(this.style,"dy4","0"),m=mxUtils.getValue(this.style,"dx5","0"),h=mxUtils.getValue(this.style,"dy5","0"),x=mxUtils.getValue(this.style,"dy6","0");e.begin(),.5>=a?(e.moveTo(0,0),a=!0):(e.moveTo(0,i),a=!1),.5>=o&&a?(e.lineTo(t,0),a=!0):.5<o&&!a?(e.lineTo(t,i),a=!1):.5>=o&&!a?(e.lineTo(t,i),e.lineTo(t,0),a=!0):(e.lineTo(t,0),e.lineTo(t,i),a=!1),.5>=l&&a?(e.lineTo(s,0),a=!0):.5<l&&!a?(e.lineTo(s,i),a=!1):.5>=l&&!a?(e.lineTo(s,i),e.lineTo(s,0),a=!0):(e.lineTo(s,0),e.lineTo(s,i),a=!1),.5>=p&&a?(e.lineTo(r,0),a=!0):.5<p&&!a?(e.lineTo(r,i),a=!1):.5>=p&&!a?(e.lineTo(r,i),e.lineTo(r,0),a=!0):(e.lineTo(r,0),e.lineTo(r,i),a=!1),.5>=h&&a?(e.lineTo(m,0),a=!0):.5<h&&!a?(e.lineTo(m,i),a=!1):.5>=h&&!a?(e.lineTo(m,i),e.lineTo(m,0),a=!0):(e.lineTo(m,0),e.lineTo(m,i),a=!1),.5>=x&&a?e.lineTo(n,0):.5<x&&!a?e.lineTo(n,i):.5>=x&&!a?(e.lineTo(n,i),e.lineTo(n,0)):(e.lineTo(n,0),e.lineTo(n,i)),e.stroke()},mxCellRenderer.registerShape(mxShapeLeanTimeline.prototype.cst.SHAPE_TIMELINE,mxShapeLeanTimeline),Graph.handleFactory[mxShapeLeanTimeline.prototype.cst.SHAPE_TIMELINE]=function(e){var t=[Graph.createHandle(e,["dy1"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy1",0))));return new mxPoint(e.x,e.y+t*e.height)}),(function(e,t){this.state.style.dy1=Math.round(1e3*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/1e3}))],o=Graph.createHandle(e,["dx2","dy2"],(function(e){var t=Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dx3",0)),parseFloat(mxUtils.getValue(this.state.style,"dx2",0)))),o=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy2",0))));return new mxPoint(e.x+t,e.y+o*e.height)}),(function(e,t){this.state.style.dx2=Math.round(1e3*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dx3",0)),t.x-e.x)))/1e3,this.state.style.dy2=Math.round(1e3*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/1e3}));return t.push(o),o=Graph.createHandle(e,["dx3","dy3"],(function(e){var t=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx2",0)),Math.min(parseFloat(mxUtils.getValue(this.state.style,"dx4",0)),parseFloat(mxUtils.getValue(this.state.style,"dx3",0)))),o=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy3",0))));return new mxPoint(e.x+t,e.y+o*e.height)}),(function(e,t){this.state.style.dx3=Math.round(1e3*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx2",0)),Math.min(parseFloat(mxUtils.getValue(this.state.style,"dx4",0)),t.x-e.x)))/1e3,this.state.style.dy3=Math.round(1e3*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/1e3})),t.push(o),o=Graph.createHandle(e,["dx4","dy4"],(function(e){var t=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx3",0)),Math.min(parseFloat(mxUtils.getValue(this.state.style,"dx5",0)),parseFloat(mxUtils.getValue(this.state.style,"dx4",0)))),o=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy4",0))));return new mxPoint(e.x+t,e.y+o*e.height)}),(function(e,t){this.state.style.dx4=Math.round(1e3*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx3",0)),Math.min(parseFloat(mxUtils.getValue(this.state.style,"dx5",0)),t.x-e.x)))/1e3,this.state.style.dy4=Math.round(1e3*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/1e3})),t.push(o),o=Graph.createHandle(e,["dx5","dy5"],(function(e){var t=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx4",0)),Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"dx5",0)))),o=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy5",0))));return new mxPoint(e.x+t,e.y+o*e.height)}),(function(e,t){this.state.style.dx5=Math.round(1e3*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx4",0)),Math.min(e.width,t.x-e.x)))/1e3,this.state.style.dy5=Math.round(1e3*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/1e3})),t.push(o),e=Graph.createHandle(e,["dy6"],(function(e){var t=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy6",0))));return new mxPoint(e.x+e.width,e.y+t*e.height)}),(function(e,t){this.state.style.dy6=Math.round(1e3*Math.max(0,Math.min(1,(t.y-e.y)/e.height)))/1e3})),t.push(e),t},mxUtils.extend(mxShapeNetworksBus,mxShape),mxShapeNetworksBus.prototype.cst={SHAPE_BUS:"mxgraph.networks.bus"},mxShapeNetworksBus.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeNetworksBus.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(8,.5*i+10),e.arcTo(12,12,0,0,1,8,.5*i-10),e.lineTo(n-8,.5*i-10),e.arcTo(12,12,0,0,1,n-8,.5*i+10),e.close(),e.fillAndStroke()},mxShapeNetworksBus.prototype.foreground=function(e,t,o,n,i){e.setFillColor("#ffffff"),e.begin(),e.moveTo(n-8,.5*i-10),e.arcTo(12,12,0,0,1,n-8,.5*i+10),e.arcTo(12,12,0,0,1,n-8,.5*i-10),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeNetworksBus.prototype.cst.SHAPE_BUS,mxShapeNetworksBus),mxUtils.extend(mxShapeNetworksCommLinkEdge,mxArrow),mxShapeNetworksCommLinkEdge.prototype.paintEdgeShape=function(e,t){var o=t[0],n=t[t.length-1],i=n.x-o.x,a=n.y-o.y;o.x+=.05*i,o.y+=.05*a,n.x-=.05*i,n.y-=.05*a,i=n.x-o.x,a=n.y-o.y;var s=i/(u=Math.sqrt(i*i+a*a)),l=a/u,r=o.x+.5*i,p=o.y+.5*a,m=(a=r+s*u/3*.1-l/3*u*.1,i=p+l*u/3*.1+s/3*u*.1,r+s*u*.1+l*u*.1),h=p+l*u*.1-s*u*.1,x=r-s*u/3*.1+l/3*u*.1,c=p-l*u/3*.1-s/3*u*.1,u=(r=r-s*u*.1-l*u*.1,p-l*u*.1+s*u*.1);e.begin(),e.moveTo(o.x,o.y),e.lineTo(m,h),e.lineTo(a,i),e.lineTo(n.x,n.y),e.lineTo(r,u),e.lineTo(x,c),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape("mxgraph.networks.comm_link_edge",mxShapeNetworksCommLinkEdge),mxUtils.extend(mxShapeSysMLComposite,mxShape),mxShapeSysMLComposite.prototype.isHtmlAllowed=function(){return!1},mxShapeSysMLComposite.prototype.paintForeground=function(e,t,o,n,i){if(null!=this.style){var a=mxCellRenderer.defaultShapes[this.style.symbol0];e.save(),(l=new a).style=this.style,a.prototype.paintVertexShape.call(l,e,t,o,n,i),e.restore(),e.setDashed(!1);var s=1;do{if(null!=(a=mxCellRenderer.defaultShapes[this.style["symbol"+s]])){var l=this.style["symbol"+s+"Align"],r=this.style["symbol"+s+"VerticalAlign"],p=this.style["symbol"+s+"Width"],m=this.style["symbol"+s+"Height"],h=this.style["symbol"+s+"Spacing"]||0,x=this.style["symbol"+s+"VSpacing"]||0,c=this.style["symbol"+s+"ArcSpacing"],u=this.style["symbol"+s+"Direction"];null!=c&&(h+=this.getArcSize(n+this.strokewidth,i+this.strokewidth)*c,x+=this.getArcSize(n+this.strokewidth,i+this.strokewidth)*c),c=t;var S=o;c=l==mxConstants.ALIGN_CENTER?c+(n-p)/2:l==mxConstants.ALIGN_RIGHT?c+(n-p-h):c+h,S=r==mxConstants.ALIGN_MIDDLE?S+(i-m)/2:r==mxConstants.ALIGN_BOTTOM?S+(i-m-x):S+x,e.save(),(l=new a).style=mxUtils.clone(this.style),l.direction=u,l.updateTransform(e,c,S,p,m),a.prototype.paintVertexShape.call(l,e,c,S,p,m),e.restore()}s++}while(null!=a)}},mxCellRenderer.registerShape("mxgraph.sysml.composite",mxShapeSysMLComposite),mxUtils.extend(mxShapeSysMLPackage,mxShape),mxShapeSysMLPackage.prototype.cst={PACKAGE:"mxgraph.sysml.package",LABEL_X:"labelX"},mxShapeSysMLPackage.prototype.customProperties=[{name:"labelX",dispName:"Header Width",type:"float",min:0,defVal:90}],mxShapeSysMLPackage.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxShapeSysMLPackage.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeSysMLPackage.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxShapeSysMLPackage.prototype.foreground=function(e,t,o,n,i){t=parseInt(mxUtils.getValue(this.style,mxShapeSysMLPackage.prototype.cst.LABEL_X,"90")),20<(t=Math.min(t,n))&&(e.begin(),e.moveTo(0,20),e.lineTo(t-10,20),e.lineTo(t,10),e.lineTo(t,0),e.stroke())},mxCellRenderer.registerShape(mxShapeSysMLPackage.prototype.cst.PACKAGE,mxShapeSysMLPackage),Graph.handleFactory[mxShapeSysMLPackage.prototype.cst.PACKAGE]=function(e){return[Graph.createHandle(e,["labelX"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"labelX",90))));return new mxPoint(e.x+t,e.y+10)}),(function(e,t){this.state.style.labelX=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100}))]},mxUtils.extend(mxShapeSysMLPackage2,mxShape),mxShapeSysMLPackage2.prototype.cst={PACKAGE2:"mxgraph.sysml.package2",LABEL_X:"labelX"},mxShapeSysMLPackage2.prototype.customProperties=[{name:"labelX",dispName:"Header Width",type:"float",min:0,defVal:90}],mxShapeSysMLPackage2.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeSysMLPackage2.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.stroke()},mxShapeSysMLPackage2.prototype.foreground=function(e,t,o,n,i){t=parseInt(mxUtils.getValue(this.style,mxShapeSysMLPackage2.prototype.cst.LABEL_X,"90")),20<(t=Math.min(t,n))&&(e.begin(),e.moveTo(0,20),e.lineTo(t-10,20),e.lineTo(t,10),e.lineTo(t,0),e.lineTo(0,0),e.close(),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeSysMLPackage2.prototype.cst.PACKAGE2,mxShapeSysMLPackage2),Graph.handleFactory[mxShapeSysMLPackage2.prototype.cst.PACKAGE2]=function(e){return[Graph.createHandle(e,["labelX"],(function(e){var t=Math.max(0,Math.min(e.width,parseFloat(mxUtils.getValue(this.state.style,"labelX",90))));return new mxPoint(e.x+t,e.y+10)}),(function(e,t){this.state.style.labelX=Math.round(100*Math.max(0,Math.min(e.width,t.x-e.x)))/100}))]},mxUtils.extend(mxShapeSysMLNone,mxShape),mxShapeSysMLNone.prototype.cst={NONE:"mxgraph.sysml.none"},mxShapeSysMLNone.prototype.paintVertexShape=function(e,t,o,n,i){},mxCellRenderer.registerShape(mxShapeSysMLNone.prototype.cst.NONE,mxShapeSysMLNone),mxUtils.extend(mxShapeSysMLRect,mxShape),mxShapeSysMLRect.prototype.cst={RECT:"mxgraph.sysml.rect"},mxShapeSysMLRect.prototype.paintVertexShape=function(e,t,o,n,i){e.rect(t,o,n,i),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLRect.prototype.cst.RECT,mxShapeSysMLRect),mxUtils.extend(mxShapeSysMLPortOne,mxShape),mxShapeSysMLPortOne.prototype.cst={PORT1:"mxgraph.sysml.port1"},mxShapeSysMLPortOne.prototype.paintVertexShape=function(e,t,o,n,i){e.rect(t+.05*n,o,n-.1*n,i),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLPortOne.prototype.cst.PORT1,mxShapeSysMLPortOne),mxShapeSysMLPortOne.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.05,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.95,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.95,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(.95,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.95,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.05,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.05,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.05,.25),!1)),e},mxUtils.extend(mxShapeSysMLPortTwo,mxShape),mxShapeSysMLPortTwo.prototype.cst={PORT2:"mxgraph.sysml.port2"},mxShapeSysMLPortTwo.prototype.paintVertexShape=function(e,t,o,n,i){e.rect(t+.05*n,o,.8*n,i),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLPortTwo.prototype.cst.PORT2,mxShapeSysMLPortTwo),mxShapeSysMLPortTwo.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.05,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.95,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.95,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(.95,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.95,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.05,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.05,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(.05,.25),!1)),e},mxUtils.extend(mxShapeSysMLPortThree,mxShape),mxShapeSysMLPortThree.prototype.cst={PORT3:"mxgraph.sysml.port3"},mxShapeSysMLPortThree.prototype.paintVertexShape=function(e,t,o,n,i){e.rect(t+.07*n,o,.86*n,i),e.fillAndStroke(),e.rect(t,o+.125*i,.14*n,.25*i),e.fillAndStroke(),e.rect(t,o+.625*i,.14*n,.25*i),e.fillAndStroke(),e.rect(t+.86*n,o+.375*i,.14*n,.25*i),e.fillAndStroke(),this.drawIn(e,t+.01*n,o+.2*i,.11*n,.1*i),this.drawOut(e,t+.02*n,o+.7*i,.11*n,.1*i),this.drawInOut(e,t+.88*n,o+.45*i,.1*n,.1*i)},mxShapeSysMLPortThree.prototype.drawIn=function(e,t,o,n,i){e.begin(),e.moveTo(t,o+.5*i),e.lineTo(t+n,o+.5*i),e.moveTo(t+.75*n,o),e.lineTo(t+n,o+.5*i),e.lineTo(t+.75*n,o+i),e.stroke()},mxShapeSysMLPortThree.prototype.drawOut=function(e,t,o,n,i){e.begin(),e.moveTo(t,o+.5*i),e.lineTo(t+n,o+.5*i),e.moveTo(t+.25*n,o),e.lineTo(t,o+.5*i),e.lineTo(t+.25*n,o+i),e.stroke()},mxShapeSysMLPortThree.prototype.drawInOut=function(e,t,o,n,i){e.begin(),e.moveTo(t+.75*n,o),e.lineTo(t+n,o+.5*i),e.lineTo(t+.75*n,o+i),e.moveTo(t+.25*n,o),e.lineTo(t,o+.5*i),e.lineTo(t+.25*n,o+i),e.stroke()},mxCellRenderer.registerShape(mxShapeSysMLPortThree.prototype.cst.PORT3,mxShapeSysMLPortThree),mxUtils.extend(mxShapeSysMLPortFour,mxShape),mxShapeSysMLPortFour.prototype.cst={PORT4:"mxgraph.sysml.port4"},mxShapeSysMLPortFour.prototype.paintVertexShape=function(e,t,o,n,i){e.rect(t+.05*n,o,n-.05*n,i),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLPortFour.prototype.cst.PORT4,mxShapeSysMLPortFour),mxShapeSysMLPortFour.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)],mxUtils.extend(mxShapeSysMLItemFlow,mxShape),mxShapeSysMLItemFlow.prototype.cst={ITEM_FLOW:"mxgraph.sysml.itemFlow",FLOW_DIR:"flowDir",FLOW_TYPE:"flowType"},mxShapeSysMLItemFlow.prototype.customProperties=[{name:"flowDir",dispName:"Flow Direction",type:"enum",enumList:[{val:"n",dispName:"North"},{val:"s",dispName:"South"},{val:"e",dispName:"East"},{val:"w",dispName:"West"}]},{name:"flowType",dispName:"Flow Type",type:"enum",enumList:[{val:"in",dispName:"In"},{val:"out",dispName:"Out"}]}],mxShapeSysMLItemFlow.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapeSysMLItemFlow.prototype.cst.FLOW_DIR,"none").toLowerCase(),s=mxUtils.getValue(this.style,mxShapeSysMLItemFlow.prototype.cst.FLOW_TYPE,"none");"n"===a?(e.rect(t,o+10,n,i-10),e.fillAndStroke(),e.setShadow(!1),e.rect(t+.5*n-10,o,20,20),e.fillAndStroke(),"in"===s?this.drawDown(e,t+.5*n-5,o+2,10,16):"out"===s&&this.drawUp(e,t+.5*n-5,o+2,10,16)):"s"===a?(e.rect(t,o,n,i-10),e.fillAndStroke(),e.setShadow(!1),e.rect(t+.5*n-10,o+i-20,20,20),e.fillAndStroke(),"in"===s?this.drawUp(e,t+.5*n-5,o+i-18,10,16):"out"===s&&this.drawDown(e,t+.5*n-5,o+i-18,10,16)):"w"===a?(e.rect(t+10,o,n-10,i),e.fillAndStroke(),e.setShadow(!1),e.rect(t,o+.5*i-10,20,20),e.fillAndStroke(),"in"===s?this.drawRight(e,t+2,o+.5*i-5,16,10):"out"===s&&this.drawLeft(e,t+2,o+.5*i-5,16,10)):"e"===a&&(e.rect(t,o,n-10,i),e.fillAndStroke(),e.setShadow(!1),e.rect(t+n-20,o+.5*i-10,20,20),e.fillAndStroke(),"in"===s?this.drawLeft(e,t+n-18,o+.5*i-5,16,10):"out"===s&&this.drawRight(e,t+n-18,o+.5*i-5,16,10))},mxShapeSysMLItemFlow.prototype.drawRight=function(e,t,o,n,i){e.begin(),e.moveTo(t,o+.5*i),e.lineTo(t+n,o+.5*i),e.moveTo(t+.75*n,o),e.lineTo(t+n,o+.5*i),e.lineTo(t+.75*n,o+i),e.stroke()},mxShapeSysMLItemFlow.prototype.drawDown=function(e,t,o,n,i){e.begin(),e.moveTo(t+.5*n,o),e.lineTo(t+.5*n,o+i),e.moveTo(t,o+.75*i),e.lineTo(t+.5*n,o+i),e.lineTo(t+n,o+.75*i),e.stroke()},mxShapeSysMLItemFlow.prototype.drawLeft=function(e,t,o,n,i){e.begin(),e.moveTo(t,o+.5*i),e.lineTo(t+n,o+.5*i),e.moveTo(t+.25*n,o),e.lineTo(t,o+.5*i),e.lineTo(t+.25*n,o+i),e.stroke()},mxShapeSysMLItemFlow.prototype.drawUp=function(e,t,o,n,i){e.begin(),e.moveTo(t+.5*n,o+i),e.lineTo(t+.5*n,o),e.moveTo(t,o+.25*i),e.lineTo(t+.5*n,o),e.lineTo(t+n,o+.25*i),e.stroke()},mxCellRenderer.registerShape(mxShapeSysMLItemFlow.prototype.cst.ITEM_FLOW,mxShapeSysMLItemFlow),mxShapeSysMLItemFlow.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0)],mxUtils.extend(mxShapeSysMLItemFlowLeft,mxShape),mxShapeSysMLItemFlowLeft.prototype.cst={ITEM_FLOW_LEFT:"mxgraph.sysml.itemFlowLeft"},mxShapeSysMLItemFlowLeft.prototype.paintVertexShape=function(e,t,o,n,i){e.rect(t+10,o,n-10,i),e.fillAndStroke(),e.rect(t,o+.25*i-10,20,20),e.fillAndStroke(),e.rect(t,o+.5*i-10,20,20),e.fillAndStroke(),e.rect(t,o+.75*i-10,20,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLItemFlowLeft.prototype.cst.ITEM_FLOW_LEFT,mxShapeSysMLItemFlowLeft),mxShapeSysMLItemFlowLeft.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0)],mxUtils.extend(mxShapeSysMLItemFlowRight,mxShape),mxShapeSysMLItemFlowRight.prototype.cst={ITEM_FLOW_RIGHT:"mxgraph.sysml.itemFlowRight"},mxShapeSysMLItemFlowRight.prototype.paintVertexShape=function(e,t,o,n,i){e.rect(t,o,n-10,i),e.fillAndStroke(),e.rect(t+n-20,o+.25*i-10,20,20),e.fillAndStroke(),e.rect(t+n-20,o+.5*i-10,20,20),e.fillAndStroke(),e.rect(t+n-20,o+.75*i-10,20,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLItemFlowRight.prototype.cst.ITEM_FLOW_RIGHT,mxShapeSysMLItemFlowRight),mxShapeSysMLItemFlowRight.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)],mxUtils.extend(mxShapeSysMLNestedPort,mxShape),mxShapeSysMLNestedPort.prototype.cst={NESTED_PORT:"mxgraph.sysml.nestedPort"},mxShapeSysMLNestedPort.prototype.paintVertexShape=function(e,t,o,n,i){e.rect(t+.08*n,o,.92*n,i),e.fillAndStroke(),e.rect(t+.03*n,o+.1*i,.1*n,.8*i),e.fillAndStroke(),e.rect(t,o+.15*i,.06*n,.16*i),e.fillAndStroke(),e.rect(t,o+.42*i,.06*n,.16*i),e.fillAndStroke(),e.rect(t,o+.69*i,.06*n,.16*i),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLNestedPort.prototype.cst.NESTED_PORT,mxShapeSysMLNestedPort),mxMarker.addMarker("sysMLPackCont",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1),x=s/2;return function(){e.begin(),e.moveTo(n.x-m/2-h/2,n.y-h/2+m/2),e.lineTo(n.x-m/2+h/2,n.y-h/2-m/2),e.stroke(),e.ellipse(n.x-.5*m-x,n.y-.5*h-x,2*x,2*x),e.stroke()}})),mxMarker.addMarker("sysMLReqInt",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1),x=s/2;return function(){var o=mxUtils.getValue(t.style,mxConstants.STYLE_FILLCOLOR,"none");e.setFillColor(o),e.ellipse(n.x-.5*m-x,n.y-.5*h-x,2*x,2*x),e.fillAndStroke()}})),mxMarker.addMarker("sysMLProvInt",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1),x=s/2;return function(){var o=mxUtils.getValue(t.style,mxConstants.STYLE_FILLCOLOR,"none");e.setFillColor(o),e.begin(),e.moveTo(n.x-h/2,n.y+m/2),e.arcTo(x,x,0,0,1,n.x+h/2,n.y-m/2),e.fillAndStroke()}})),mxUtils.extend(mxShapeSysMLParametricDiagram,mxShape),mxShapeSysMLParametricDiagram.prototype.cst={PARAM_DGM:"mxgraph.sysml.paramDgm"},mxShapeSysMLParametricDiagram.prototype.paintVertexShape=function(e,t,o,n,i){e.roundrect(t,o,n,i,10,10),e.fillAndStroke(),e.setShadow(!1),60<i&&(e.rect(t,o+.25*i-10,20,20),e.stroke(),e.rect(t,o+.75*i-10,20,20),e.stroke())},mxCellRenderer.registerShape(mxShapeSysMLParametricDiagram.prototype.cst.PARAM_DGM,mxShapeSysMLParametricDiagram),mxUtils.extend(mxShapeSysMLConstraintProperty,mxShape),mxShapeSysMLConstraintProperty.prototype.cst={CONS_PROP:"mxgraph.sysml.consProp"},mxShapeSysMLConstraintProperty.prototype.paintVertexShape=function(e,t,o,n,i){e.rect(t,o,n,i),e.fillAndStroke(),e.setShadow(!1),60<i&&(e.rect(t,o+50,20,20),e.stroke(),e.rect(t,o+80,20,20),e.stroke())},mxCellRenderer.registerShape(mxShapeSysMLConstraintProperty.prototype.cst.CONS_PROP,mxShapeSysMLConstraintProperty),mxUtils.extend(mxShapeSysMLCallBehaviorAction,mxShape),mxShapeSysMLCallBehaviorAction.prototype.cst={CALL_BEH_ACT:"mxgraph.sysml.callBehAct"},mxShapeSysMLCallBehaviorAction.prototype.paintVertexShape=function(e,t,o,n,i){e.roundrect(t,o,n,i,10,10),e.fillAndStroke(),30<i&&40<n&&(e.setShadow(!1),this.drawSymb(e,t+n-30,o+i-30,20,20))},mxShapeSysMLCallBehaviorAction.prototype.drawSymb=function(e,t,o,n,i){e.begin(),e.moveTo(t+.5*n,o),e.lineTo(t+.5*n,o+i),e.moveTo(t,o+i),e.lineTo(t,o+.5*i),e.lineTo(t+n,o+.5*i),e.lineTo(t+n,o+i),e.stroke()},mxCellRenderer.registerShape(mxShapeSysMLCallBehaviorAction.prototype.cst.CALL_BEH_ACT,mxShapeSysMLCallBehaviorAction),mxShapeSysMLCallBehaviorAction.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-2.9,-2.9)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,2.9,-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e},mxUtils.extend(mxShapeSysMLAcceptEventAction,mxShape),mxShapeSysMLAcceptEventAction.prototype.cst={ACC_EVENT:"mxgraph.sysml.accEvent"},mxShapeSysMLAcceptEventAction.prototype.paintVertexShape=function(e,t,o,n,i){e.begin(),e.moveTo(t,o),e.lineTo(t+n,o),e.lineTo(t+n,o+i),e.lineTo(t,o+i),e.lineTo(t+.3*i,o+.5*i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLAcceptEventAction.prototype.cst.ACC_EVENT,mxShapeSysMLAcceptEventAction),mxShapeSysMLAcceptEventAction.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,.3*o,0)),e},mxUtils.extend(mxShapeSysMLTimeEvent,mxShape),mxShapeSysMLTimeEvent.prototype.cst={TIME_EVENT:"mxgraph.sysml.timeEvent"},mxShapeSysMLTimeEvent.prototype.paintVertexShape=function(e,t,o,n,i){e.begin(),e.moveTo(t,o),e.lineTo(t+n,o),e.lineTo(t,o+i),e.lineTo(t+n,o+i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLTimeEvent.prototype.cst.TIME_EVENT,mxShapeSysMLTimeEvent),mxShapeSysMLTimeEvent.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,.5),!1)),e},mxUtils.extend(mxShapeSysMLSendSignalAction,mxShape),mxShapeSysMLSendSignalAction.prototype.cst={SEND_SIG_ACT:"mxgraph.sysml.sendSigAct"},mxShapeSysMLSendSignalAction.prototype.paintVertexShape=function(e,t,o,n,i){e.begin(),e.moveTo(t,o),e.lineTo(t+n-.3*i,o),e.lineTo(t+n,o+.5*i),e.lineTo(t+n-.3*i,o+i),e.lineTo(t,o+i),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLSendSignalAction.prototype.cst.SEND_SIG_ACT,mxShapeSysMLSendSignalAction),mxShapeSysMLSendSignalAction.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,.3*-o,0)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,.3*-o,0)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e},mxUtils.extend(mxShapeSysMLActivityFinal,mxShape),mxShapeSysMLActivityFinal.prototype.cst={ACT_FINAL:"mxgraph.sysml.actFinal"},mxShapeSysMLActivityFinal.prototype.paintVertexShape=function(e,t,o,n,i){e.ellipse(t,o,n,i),e.fillAndStroke();var a=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.setFillColor(a),e.ellipse(t+5,o+5,n-10,i-10),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLActivityFinal.prototype.cst.ACT_FINAL,mxShapeSysMLActivityFinal),mxShapeSysMLActivityFinal.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.145,.145),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.145),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeSysMLActivityParameterNode,mxShape),mxShapeSysMLActivityParameterNode.prototype.cst={ACT_PARAM_NODE:"mxgraph.sysml.actParamNode"},mxShapeSysMLActivityParameterNode.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),t=Math.max(.35*n,70),o=Math.min(.65*n,n-10),e.begin(),e.moveTo(t,i),e.lineTo(10,i),e.lineTo(10,0),e.lineTo(t,0),e.moveTo(o,i),e.lineTo(n-10,i),e.lineTo(n-10,0),e.lineTo(o,0),e.stroke(),20<(t=Math.min(50,n))&&(e.begin(),e.moveTo(10,20),e.lineTo(t-10,20),e.lineTo(t,10),e.lineTo(t,0),e.lineTo(10,0),e.close(),e.fillAndStroke()),e.rect(0,.35*i-10,20,20),e.fillAndStroke(),e.rect(0,.65*i-10,20,20),e.fillAndStroke(),e.rect(n-20,.5*i-10,20,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLActivityParameterNode.prototype.cst.ACT_PARAM_NODE,mxShapeSysMLActivityParameterNode),mxShapeSysMLActivityParameterNode.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.35),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.65),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e},mxUtils.extend(mxShapeSysMLControlOperator,mxShape),mxShapeSysMLControlOperator.prototype.cst={CONT_OPER:"mxgraph.sysml.contOper"},mxShapeSysMLControlOperator.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeSysMLControlOperator.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxShapeSysMLControlOperator.prototype.foreground=function(e,t,o,n,i){20<(t=Math.min(130,n))&&(e.begin(),e.moveTo(0,20),e.lineTo(t-10,20),e.lineTo(t,10),e.lineTo(t,0),e.stroke())},mxCellRenderer.registerShape(mxShapeSysMLControlOperator.prototype.cst.CONT_OPER,mxShapeSysMLControlOperator),mxUtils.extend(mxShapeSysMLFlowFinal,mxShape),mxShapeSysMLFlowFinal.prototype.cst={FLOW_FINAL:"mxgraph.sysml.flowFinal"},mxShapeSysMLFlowFinal.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.ellipse(0,0,n,i),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(.145*n,.145*i),e.lineTo(.855*n,.855*i),e.moveTo(.855*n,.145*i),e.lineTo(.145*n,.855*i),e.stroke()},mxCellRenderer.registerShape(mxShapeSysMLFlowFinal.prototype.cst.FLOW_FINAL,mxShapeSysMLFlowFinal),mxShapeSysMLFlowFinal.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(.145,.145),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.145),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e},mxUtils.extend(mxShapeSysMLIsControl,mxShape),mxShapeSysMLIsControl.prototype.cst={IS_CONTROL:"mxgraph.sysml.isControl"},mxShapeSysMLIsControl.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,.5*i-10,10,20),e.fillAndStroke(),e.roundrect(10,0,n-20,i,10,10),e.fillAndStroke(),e.rect(n-10,.5*i-10,10,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLIsControl.prototype.cst.IS_CONTROL,mxShapeSysMLIsControl),mxShapeSysMLIsControl.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e},mxUtils.extend(mxShapeSysMLIsStream,mxShape),mxShapeSysMLIsStream.prototype.cst={IS_STREAM:"mxgraph.sysml.isStream"},mxShapeSysMLIsStream.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),o=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e.setFillColor(t),e.rect(0,.5*i-10,10,20),e.fillAndStroke(),e.setFillColor(o),e.roundrect(10,0,n-20,i,10,10),e.fillAndStroke(),e.setFillColor(t),e.rect(n-10,.5*i-10,10,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLIsStream.prototype.cst.IS_STREAM,mxShapeSysMLIsStream),mxShapeSysMLIsStream.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e},mxUtils.extend(mxShapeSysMLIsActStream,mxShape),mxShapeSysMLIsActStream.prototype.cst={IS_ACT_STREAM:"mxgraph.sysml.isActStream"},mxShapeSysMLIsActStream.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.rect(0,0,n-10,i),e.fillAndStroke(),20<(t=Math.min(40,n))&&(e.begin(),e.moveTo(0,20),e.lineTo(t-10,20),e.lineTo(t,10),e.lineTo(t,0),e.lineTo(0,0),e.close(),e.fillAndStroke()),e.rect(n-20,.5*i-10,20,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLIsActStream.prototype.cst.IS_ACT_STREAM,mxShapeSysMLIsActStream),mxShapeSysMLIsActStream.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e},mxUtils.extend(mxShapeSysMLParameterSet,mxShape),mxShapeSysMLParameterSet.prototype.cst={PARAM_SET:"mxgraph.sysml.paramSet"},mxShapeSysMLParameterSet.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,.5*i-28,10,56),e.fillAndStroke(),e.roundrect(10,0,n-20,i,10,10),e.fillAndStroke(),e.rect(n-10,.5*i-28,10,56),e.fillAndStroke(),e.setShadow(!1),e.rect(4,.5*i-24,6,20),e.fillAndStroke(),e.rect(4,.5*i+4,6,20),e.fillAndStroke(),e.rect(n-10,.5*i-24,6,20),e.fillAndStroke(),e.rect(n-10,.5*i+4,6,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLParameterSet.prototype.cst.PARAM_SET,mxShapeSysMLParameterSet),mxShapeSysMLParameterSet.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,-14)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,14)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,-14)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,14)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e},mxUtils.extend(mxShapeSysMLParameterActivitySet,mxShape),mxShapeSysMLParameterActivitySet.prototype.cst={PARAM_ACT_SET:"mxgraph.sysml.paramActSet"},mxShapeSysMLParameterActivitySet.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.rect(10,0,n-20,i),e.fillAndStroke(),20<(t=Math.min(50,n))&&(e.begin(),e.moveTo(10,20),e.lineTo(t-10,20),e.lineTo(t,10),e.lineTo(t,0),e.lineTo(10,0),e.close(),e.fillAndStroke()),e.setShadow(!1),70<i&&(e.rect(0,.5*i-28,15,56),e.fillAndStroke(),e.rect(4,.5*i-24,15,20),e.fillAndStroke(),e.rect(4,.5*i+4,15,20),e.fillAndStroke(),e.rect(n-15,.5*i-28,15,56),e.fillAndStroke(),e.rect(n-19,.5*i-24,15,20),e.fillAndStroke(),e.rect(n-19,.5*i+4,15,20),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeSysMLParameterActivitySet.prototype.cst.PARAM_ACT_SET,mxShapeSysMLParameterActivitySet),mxShapeSysMLParameterActivitySet.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,-14)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,14)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,-14)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,14)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e},mxUtils.extend(mxShapeSysMLProbability,mxShape),mxShapeSysMLProbability.prototype.cst={PROBABILITY:"mxgraph.sysml.probability"},mxShapeSysMLProbability.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.roundrect(0,0,n-10,i,10,10),e.fillAndStroke(),e.rect(n-10,.25*i-28,10,56),e.fillAndStroke(),e.rect(n-10,.75*i-28,10,56),e.fillAndStroke(),e.setShadow(!1),e.rect(n-10,.25*i-24,6,20),e.fillAndStroke(),e.rect(n-10,.25*i+4,6,20),e.fillAndStroke(),e.rect(n-10,.75*i-24,6,20),e.fillAndStroke(),e.rect(n-10,.75*i+4,6,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLProbability.prototype.cst.PROBABILITY,mxShapeSysMLProbability),mxShapeSysMLProbability.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,0,-14)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,0,14)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,0,-14)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,0,14)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1,null,-5,0)),e},mxUtils.extend(mxShapeSysMLActivityProbability,mxShape),mxShapeSysMLActivityProbability.prototype.cst={ACT_PROB:"mxgraph.sysml.actProb"},mxShapeSysMLActivityProbability.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.rect(0,0,n-10,i),e.fillAndStroke(),20<(t=Math.min(40,n))&&(e.begin(),e.moveTo(0,20),e.lineTo(t-10,20),e.lineTo(t,10),e.lineTo(t,0),e.lineTo(0,0),e.close(),e.fillAndStroke()),e.setShadow(!1),70<i&&(e.rect(n-15,.25*i-28,15,56),e.fillAndStroke(),e.rect(n-19,.25*i-24,15,20),e.fillAndStroke(),e.rect(n-19,.25*i+4,15,20),e.fillAndStroke(),e.rect(n-15,.75*i-28,15,56),e.fillAndStroke(),e.rect(n-19,.75*i-24,15,20),e.fillAndStroke(),e.rect(n-19,.75*i+4,15,20),e.fillAndStroke())},mxCellRenderer.registerShape(mxShapeSysMLActivityProbability.prototype.cst.ACT_PROB,mxShapeSysMLActivityProbability),mxShapeSysMLActivityProbability.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,0,-14)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,0,14)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,0,-14)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,0,14)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1,null,-5,0)),e},mxUtils.extend(mxShapeSysMLObjectFlowRight,mxShape),mxShapeSysMLObjectFlowRight.prototype.cst={OBJ_FLOW_R:"mxgraph.sysml.objFlowR"},mxShapeSysMLObjectFlowRight.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.roundrect(0,0,n-10,i,10,10),e.fillAndStroke(),e.rect(n-10,.5*i-10,10,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLObjectFlowRight.prototype.cst.OBJ_FLOW_R,mxShapeSysMLObjectFlowRight),mxShapeSysMLObjectFlowRight.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,-5,0)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,-5,0)),e},mxUtils.extend(mxShapeSysMLObjectFlowLeft,mxShape),mxShapeSysMLObjectFlowLeft.prototype.cst={OBJ_FLOW_L:"mxgraph.sysml.objFlowL"},mxShapeSysMLObjectFlowLeft.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.rect(0,.5*i-10,10,20),e.fillAndStroke(),e.roundrect(10,0,n-10,i,10,10),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLObjectFlowLeft.prototype.cst.OBJ_FLOW_L,mxShapeSysMLObjectFlowLeft),mxShapeSysMLObjectFlowLeft.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,5,0)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,5,0)),e},mxUtils.extend(mxShapeSysMLActivityPartition,mxShape),mxShapeSysMLActivityPartition.prototype.cst={ACT_PART:"mxgraph.sysml.actPart"},mxShapeSysMLActivityPartition.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(0,i),e.moveTo(n,0),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeSysMLActivityPartition.prototype.cst.ACT_PART,mxShapeSysMLActivityPartition),mxUtils.extend(mxShapeSysMLContinuation,mxShape),mxShapeSysMLContinuation.prototype.cst={CONT:"mxgraph.sysml.cont"},mxShapeSysMLContinuation.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),n>i?(t=.5*i,e.begin(),e.moveTo(n-t,0),e.arcTo(t,t,0,0,1,n-t,i),e.lineTo(t,i),e.arcTo(t,t,0,0,1,t,0)):(t=.5*n,e.begin(),e.moveTo(0,i-t),e.arcTo(t,t,0,0,0,n,i-t),e.lineTo(n,t),e.arcTo(t,t,0,0,0,0,t)),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLContinuation.prototype.cst.CONT,mxShapeSysMLContinuation),mxShapeSysMLContinuation.prototype.getConstraints=function(e,t,o){if((e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),t>o){var n=.5*o;t>2*o&&(e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)))}else n=.5*t,o>2*t&&(e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)));return e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.29*n,.29*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.29*n,.29*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.29*n,o-.29*n)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-.29*n,o-.29*n)),e},mxUtils.extend(mxShapeSysMLCoregion,mxShape),mxShapeSysMLCoregion.prototype.cst={COREGION:"mxgraph.sysml.coregion"},mxShapeSysMLCoregion.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=Math.min(10,i),e.begin(),e.moveTo(0,t),e.lineTo(0,0),e.lineTo(n,0),e.lineTo(n,t),e.moveTo(0,i-t),e.lineTo(0,i),e.lineTo(n,i),e.lineTo(n,i-t),e.stroke()},mxCellRenderer.registerShape(mxShapeSysMLCoregion.prototype.cst.COREGION,mxShapeSysMLCoregion),mxMarker.addMarker("sysMLx",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1);return function(){e.begin(),e.moveTo(n.x-m/2-h/2,n.y-h/2+m/2),e.lineTo(n.x+m/2+h/2,n.y+h/2-m/2),e.moveTo(n.x+m/2-h/2,n.y+h/2+m/2),e.lineTo(n.x-m/2+h/2,n.y-h/2-m/2),e.stroke()}})),mxUtils.extend(mxShapeSysMLDimension,mxShape),mxShapeSysMLDimension.prototype.cst={DIMENSION:"mxgraph.sysml.dimension"},mxShapeSysMLDimension.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeSysMLDimension.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,20),e.lineTo(n,20),e.moveTo(10,15),e.lineTo(0,20),e.lineTo(10,25),e.moveTo(n-10,15),e.lineTo(n,20),e.lineTo(n-10,25),e.moveTo(0,15),e.lineTo(0,i),e.moveTo(n,15),e.lineTo(n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeSysMLDimension.prototype.cst.DIMENSION,mxShapeSysMLDimension),mxMarker.addMarker("sysMLLost",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1),x=s/2;return function(){e.begin(),e.moveTo(n.x-1.5*m-h/2,n.y-1.5*h+m/2),e.lineTo(n.x-m/2,n.y-h/2),e.lineTo(n.x-1.5*m+h/2,n.y-1.5*h-m/2),e.stroke(),e.ellipse(n.x-.5*m-x,n.y-.5*h-x,2*x,2*x);var o=mxUtils.getValue(t.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.setFillColor(o),e.fillAndStroke()}})),mxMarker.addMarker("sysMLFound",(function(e,t,o,n,i,a,s,l,r,p){var m=i*(s+r+1),h=a*(s+r+1),x=s/2;return function(){e.ellipse(n.x-.5*m-x,n.y-.5*h-x,2*x,2*x);var o=mxUtils.getValue(t.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.setFillColor(o),e.fillAndStroke()}})),mxUtils.extend(mxShapeSysMLCompositeState,mxShape),mxShapeSysMLCompositeState.prototype.cst={COMP_STATE:"mxgraph.sysml.compState"};mxShapeSysMLCompositeState.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i)},mxShapeSysMLCompositeState.prototype.background=function(e,t,o,n,i){e.roundrect(0,20,n,i-20,10,10),e.fillAndStroke(),e.rect(15,0,110,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLCompositeState.prototype.cst.COMP_STATE,mxShapeSysMLCompositeState),mxShapeSysMLCompositeState.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,22.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-2.9,22.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,o-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-2.9,o-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.25*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.5*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.75*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,15,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,70,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,125,0)),125<.75*t&&(e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,20)),125<.5*t&&(e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,20)),125<.25*t&&e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,20)))),e},mxUtils.extend(mxShapeSysMLRegion,mxShape),mxShapeSysMLRegion.prototype.cst={REGION:"mxgraph.sysml.region"},mxShapeSysMLRegion.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i,20,50),e.setShadow(!1),this.foreground(e,t,o,n,i,20,50)},mxShapeSysMLRegion.prototype.background=function(e,t,o,n,i,a,s){t=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1")),e.roundrect(0,a,n,i-a,10,10),e.fillAndStroke(),e.setStrokeWidth(2*t),e.rect(15,0,s,a),e.fillAndStroke(),e.setStrokeWidth(t)},mxShapeSysMLRegion.prototype.foreground=function(e,t,o,n,i,a,s){e.setDashed(!0),e.begin(),e.moveTo(.5*n,a),e.lineTo(.5*n,i),e.stroke()},mxCellRenderer.registerShape(mxShapeSysMLRegion.prototype.cst.REGION,mxShapeSysMLRegion),mxShapeSysMLRegion.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,22.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-2.9,22.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,o-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-2.9,o-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.25*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.5*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.75*(o-20)+20)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,15,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,40,0)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,65,0)),65<.75*t&&(e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,20)),65<.5*t&&(e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,20)),65<.25*t&&e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,20)))),e},mxUtils.extend(mxShapeSysMLSimpleState,mxShape),mxShapeSysMLSimpleState.prototype.cst={SIMPLE_STATE:"mxgraph.sysml.simpleState"},mxShapeSysMLSimpleState.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1)},mxShapeSysMLSimpleState.prototype.background=function(e,t,o,n,i){parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1")),e.roundrect(0,0,n,i,10,10),e.fillAndStroke()},mxShapeSysMLSimpleState.prototype.foreground=function(e,t,o,n,i){e.begin(),e.moveTo(0,20),e.lineTo(n,20),e.stroke()},mxCellRenderer.registerShape(mxShapeSysMLSimpleState.prototype.cst.SIMPLE_STATE,mxShapeSysMLSimpleState),mxShapeSysMLSimpleState.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,o-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-2.9,o-2.9)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e},mxUtils.extend(mxShapeSysMLStateMachine,mxShape),mxShapeSysMLStateMachine.prototype.cst={STATE_MACHINE:"mxgraph.sysml.stateMachine"},mxShapeSysMLStateMachine.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeSysMLStateMachine.prototype.background=function(e,t,o,n,i){e.roundrect(0,0,n-10,i,10,10),e.fillAndStroke()},mxShapeSysMLStateMachine.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.ellipse(n-20,.5*i-10,20,20),e.stroke(),e.ellipse(n-17,.5*i-7,14,14),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLStateMachine.prototype.cst.STATE_MACHINE,mxShapeSysMLStateMachine),mxShapeSysMLStateMachine.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-12.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,o-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-12.9,o-2.9)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,-10,0)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,-10,0)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e},mxUtils.extend(mxShapeSysMLX,mxShape),mxShapeSysMLX.prototype.cst={X:"mxgraph.sysml.x"},mxShapeSysMLX.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n,i),e.moveTo(0,i),e.lineTo(n,0),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLX.prototype.cst.X,mxShapeSysMLX),mxShapeSysMLX.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),e},mxUtils.extend(mxShapeSysMLSubmachineState,mxShape),mxShapeSysMLSubmachineState.prototype.cst={SUBMACHINE_STATE:"mxgraph.sysml.submState"},mxShapeSysMLSubmachineState.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeSysMLSubmachineState.prototype.background=function(e,t,o,n,i){e.roundrect(0,0,n-10,i,10,10),e.fillAndStroke()},mxShapeSysMLSubmachineState.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.setFillColor(t),e.ellipse(n-20,.5*i-10,20,20),e.stroke(),e.ellipse(n-17,.5*i-7,14,14),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeSysMLSubmachineState.prototype.cst.SUBMACHINE_STATE,mxShapeSysMLSubmachineState),mxShapeSysMLSubmachineState.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-12.9,2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,o-2.9)),e.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t-12.9,o-2.9)),e.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,-10,0)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,-10,0)),e.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),e},mxUtils.extend(mxShapeSysMLUseCaseExtensionPoints,mxShape),mxShapeSysMLUseCaseExtensionPoints.prototype.cst={USE_CASE_EXT_PT:"mxgraph.sysml.useCaseExtPt"},mxShapeSysMLUseCaseExtensionPoints.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapeSysMLUseCaseExtensionPoints.prototype.background=function(e,t,o,n,i){e.ellipse(0,0,n,i),e.fillAndStroke()},mxShapeSysMLUseCaseExtensionPoints.prototype.foreground=function(e,t,o,n,i){e.begin(),e.moveTo(.02*n,.35*i),e.lineTo(.98*n,.35*i),e.stroke()},mxCellRenderer.registerShape(mxShapeSysMLUseCaseExtensionPoints.prototype.cst.USE_CASE_EXT_PT,mxShapeSysMLUseCaseExtensionPoints),mxShapeSysMLUseCaseExtensionPoints.prototype.getConstraints=function(e,t,o){return(e=[]).push(new mxConnectionConstraint(new mxPoint(0,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(1,.5),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,0),!1)),e.push(new mxConnectionConstraint(new mxPoint(.5,1),!1)),e.push(new mxConnectionConstraint(new mxPoint(.145,.145),!1)),e.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1)),e.push(new mxConnectionConstraint(new mxPoint(.855,.145),!1)),e},mxUtils.extend(mxShapeUMLInputPin,mxActor),mxShapeUMLInputPin.prototype.cst={INPUT_PIN:"mxgraph.uml25.inputPin"},mxShapeUMLInputPin.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(.75*n,.5*i),e.lineTo(.25*n,.5*i),e.moveTo(.4*n,.4*i),e.lineTo(.25*n,.5*i),e.lineTo(.4*n,.6*i),e.stroke()},mxCellRenderer.registerShape(mxShapeUMLInputPin.prototype.cst.INPUT_PIN,mxShapeUMLInputPin),mxShapeUMLInputPin.prototype.constraints=null,mxUtils.extend(mxShapeUMLBehaviorAction,mxActor),mxShapeUMLBehaviorAction.prototype.cst={BEHAVIOR_ACTION:"mxgraph.uml25.behaviorAction"},mxShapeUMLBehaviorAction.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,"rounded",!1),o=mxUtils.getValue(this.style,"absoluteArcSize",!1);var a=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));o||(a*=Math.min(n,i)),a=Math.min(a,.5*n,.5*i),t||(a=0),e.begin(),t?(e.moveTo(0,a),e.arcTo(a,a,0,0,1,a,0),e.lineTo(n-a,0),e.arcTo(a,a,0,0,1,n,a),e.lineTo(n,i-a),e.arcTo(a,a,0,0,1,n-a,i),e.lineTo(a,i),e.arcTo(a,a,0,0,1,0,i-a)):(e.moveTo(0,0),e.lineTo(n,0),e.lineTo(n,i),e.lineTo(0,i)),e.close(),e.fillAndStroke(),e.setShadow(!1),60<=n&&40<=i&&(e.begin(),e.moveTo(n-60,.5*i+20),e.lineTo(n-60,.5*i),e.lineTo(n-20,.5*i),e.lineTo(n-20,.5*i+20),e.moveTo(n-40,.5*i-20),e.lineTo(n-40,.5*i+20),e.stroke())},mxCellRenderer.registerShape(mxShapeUMLBehaviorAction.prototype.cst.BEHAVIOR_ACTION,mxShapeUMLBehaviorAction),mxShapeUMLBehaviorAction.prototype.constraints=null,mxUtils.extend(mxShapeUMLAction,mxActor),mxShapeUMLAction.prototype.cst={ACTION:"mxgraph.uml25.action"},mxShapeUMLAction.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,"absoluteArcSize",!1),o=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize)),t||(o*=Math.min(n,i)),o=Math.min(o,.5*n,.5*i),e.begin(),e.moveTo(0,o),e.arcTo(o,o,0,0,1,o,0),e.lineTo(n-o-10,0),e.arcTo(o,o,0,0,1,n-10,o),e.lineTo(n-10,i-o),e.arcTo(o,o,0,0,1,n-o-10,i),e.lineTo(o,i),e.arcTo(o,o,0,0,1,0,i-o),e.close(),e.fillAndStroke(),e.rect(n-10,.5*i-10,10,20),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeUMLAction.prototype.cst.ACTION,mxShapeUMLAction),mxShapeUMLAction.prototype.constraints=null,mxUtils.extend(mxShapeUMLActionParams,mxActor),mxShapeUMLActionParams.prototype.cst={ACTION_PARAMS:"mxgraph.uml25.actionParams"},mxShapeUMLActionParams.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),t=mxUtils.getValue(this.style,"absoluteArcSize",!1),o=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize)),t||(o*=Math.min(n,i)),o=Math.min(o,.5*n,.5*i),e.begin(),e.moveTo(20,o),e.arcTo(o,o,0,0,1,20+o,0),e.lineTo(n-o,0),e.arcTo(o,o,0,0,1,n,o),e.lineTo(n,i-o),e.arcTo(o,o,0,0,1,n-o,i),e.lineTo(20+o,i),e.arcTo(o,o,0,0,1,20,i-o),e.close(),e.fillAndStroke(),e.rect(5,.5*i-17,20,34),e.fillAndStroke(),e.rect(0,.5*i-13,10,10),e.fillAndStroke(),e.rect(0,.5*i+3,10,10),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapeUMLActionParams.prototype.cst.ACTION_PARAMS,mxShapeUMLActionParams),mxShapeUMLActionParams.prototype.constraints=null,mxUtils.extend(mxShapePidDiscInst,mxShape),mxShapePidDiscInst.prototype.cst={SHAPE_DISC_INST:"mxgraph.pid2inst.discInst",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local"},mxShapePidDiscInst.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]}],mxShapePidDiscInst.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapePidDiscInst.prototype.background=function(e,t,o,n,i){e.ellipse(0,0,n,i),e.fillAndStroke()},mxShapePidDiscInst.prototype.foreground=function(e,t,o,n,i){(t=mxUtils.getValue(this.style,mxShapePidDiscInst.prototype.cst.MOUNTING,"field"))===mxShapePidDiscInst.prototype.cst.ROOM?(e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxShapePidDiscInst.prototype.cst.INACCESSIBLE?(e.setDashed(!0),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxShapePidDiscInst.prototype.cst.LOCAL&&(e.begin(),e.moveTo(.005*n,.48*i),e.lineTo(.995*n,.48*i),e.moveTo(.005*n,.52*i),e.lineTo(.995*n,.52*i),e.stroke())},mxCellRenderer.registerShape(mxShapePidDiscInst.prototype.cst.SHAPE_DISC_INST,mxShapePidDiscInst),mxShapePidDiscInst.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.145,.145),!1),new mxConnectionConstraint(new mxPoint(.145,.855),!1),new mxConnectionConstraint(new mxPoint(.855,.145),!1),new mxConnectionConstraint(new mxPoint(.855,.855),!1)],mxUtils.extend(mxShapePidSharedCont,mxShape),mxShapePidSharedCont.prototype.cst={SHAPE_SHARED_CONT:"mxgraph.pid2inst.sharedCont",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local"},mxShapePidSharedCont.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]}],mxShapePidSharedCont.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapePidSharedCont.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxShapePidSharedCont.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapePidSharedCont.prototype.cst.MOUNTING,"field"),e.ellipse(0,0,n,i),e.fillAndStroke(),t===mxShapePidSharedCont.prototype.cst.ROOM?(e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxShapePidSharedCont.prototype.cst.INACCESSIBLE?(e.setDashed(!0),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxShapePidDiscInst.prototype.cst.LOCAL&&(e.begin(),e.moveTo(.005*n,.48*i),e.lineTo(.995*n,.48*i),e.moveTo(.005*n,.52*i),e.lineTo(.995*n,.52*i),e.stroke())},mxCellRenderer.registerShape(mxShapePidSharedCont.prototype.cst.SHAPE_SHARED_CONT,mxShapePidSharedCont),mxShapePidSharedCont.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)],mxUtils.extend(mxShapePidCompFunc,mxShape),mxShapePidCompFunc.prototype.cst={SHAPE_COMP_FUNC:"mxgraph.pid2inst.compFunc",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local"},mxShapePidCompFunc.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]}],mxShapePidCompFunc.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapePidCompFunc.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,.5*i),e.lineTo(.25*n,0),e.lineTo(.75*n,0),e.lineTo(n,.5*i),e.lineTo(.75*n,i),e.lineTo(.25*n,i),e.close(),e.fillAndStroke()},mxShapePidCompFunc.prototype.foreground=function(e,t,o,n,i){(t=mxUtils.getValue(this.style,mxShapePidCompFunc.prototype.cst.MOUNTING,"field"))===mxShapePidCompFunc.prototype.cst.ROOM?(e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxShapePidCompFunc.prototype.cst.INACCESSIBLE?(e.setDashed(!0),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxShapePidDiscInst.prototype.cst.LOCAL&&(e.begin(),e.moveTo(.01*n,.48*i),e.lineTo(.99*n,.48*i),e.moveTo(.01*n,.52*i),e.lineTo(.99*n,.52*i),e.stroke())},mxCellRenderer.registerShape(mxShapePidCompFunc.prototype.cst.SHAPE_COMP_FUNC,mxShapePidCompFunc),mxShapePidCompFunc.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,0),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,1),!1)],mxUtils.extend(mxShapePidProgLogCont,mxShape),mxShapePidProgLogCont.prototype.cst={SHAPE_PROG_LOG_CONT:"mxgraph.pid2inst.progLogCont",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local"},mxShapePidProgLogCont.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]}],mxShapePidProgLogCont.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapePidProgLogCont.prototype.background=function(e,t,o,n,i){e.rect(0,0,n,i),e.fillAndStroke()},mxShapePidProgLogCont.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapePidProgLogCont.prototype.cst.MOUNTING,"field"),e.begin(),e.moveTo(0,.5*i),e.lineTo(.5*n,0),e.lineTo(n,.5*i),e.lineTo(.5*n,i),e.close(),e.stroke(),t===mxShapePidProgLogCont.prototype.cst.ROOM?(e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxShapePidProgLogCont.prototype.cst.INACCESSIBLE?(e.setDashed(!0),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxShapePidDiscInst.prototype.cst.LOCAL&&(e.begin(),e.moveTo(.02*n,.48*i),e.lineTo(.98*n,.48*i),e.moveTo(.02*n,.52*i),e.lineTo(.98*n,.52*i),e.stroke())},mxCellRenderer.registerShape(mxShapePidProgLogCont.prototype.cst.SHAPE_PROG_LOG_CONT,mxShapePidProgLogCont),mxShapePidProgLogCont.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)],mxUtils.extend(mxShapePidIndicator,mxShape),mxShapePidIndicator.prototype.cst={SHAPE_INDICATOR:"mxgraph.pid2inst.indicator",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local",IND_TYPE:"indType",INSTRUMENT:"inst",CONTROL:"ctrl",FUNCTION:"func",PLC:"plc"},mxShapePidIndicator.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]},{name:"indType",dispName:"Type",type:"enum",defVal:"inst",enumList:[{val:"inst",dispName:"Instrument"},{val:"ctrl",dispName:"Control"},{val:"func",dispName:"Function"},{val:"plc",dispName:"PLC"}]}],mxShapePidIndicator.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapePidIndicator.prototype.background=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapePidIndicator.prototype.cst.IND_TYPE,"inst"),e.begin(),e.moveTo(.5*n,n),e.lineTo(.5*n,i),e.stroke(),t===mxShapePidIndicator.prototype.cst.INSTRUMENT?(e.ellipse(0,0,n,n),e.fillAndStroke()):t===mxShapePidIndicator.prototype.cst.CONTROL?(e.rect(0,0,n,n),e.fillAndStroke()):t===mxShapePidIndicator.prototype.cst.FUNCTION?(e.begin(),e.moveTo(0,.5*n),e.lineTo(.25*n,0),e.lineTo(.75*n,0),e.lineTo(n,.5*n),e.lineTo(.75*n,n),e.lineTo(.25*n,n),e.close(),e.fillAndStroke()):t===mxShapePidIndicator.prototype.cst.PLC&&(e.rect(0,0,n,n),e.fillAndStroke())},mxShapePidIndicator.prototype.foreground=function(e,t,o,n,i){t=mxUtils.getValue(this.style,mxShapePidIndicator.prototype.cst.MOUNTING,"field"),(o=mxUtils.getValue(this.style,mxShapePidIndicator.prototype.cst.IND_TYPE,"inst"))===mxShapePidIndicator.prototype.cst.CONTROL?(e.ellipse(0,0,n,n),e.stroke()):o===mxShapePidIndicator.prototype.cst.PLC&&(e.begin(),e.moveTo(0,.5*n),e.lineTo(.5*n,0),e.lineTo(n,.5*n),e.lineTo(.5*n,n),e.close(),e.stroke()),t===mxShapePidIndicator.prototype.cst.ROOM?(e.begin(),e.moveTo(0,.5*n),e.lineTo(n,.5*n),e.stroke()):t===mxShapePidIndicator.prototype.cst.INACCESSIBLE?(e.setDashed(!0),e.begin(),e.moveTo(0,.5*n),e.lineTo(n,.5*n),e.stroke()):t===mxShapePidIndicator.prototype.cst.LOCAL&&(e.begin(),e.moveTo(.005*n,.48*n),e.lineTo(.995*n,.48*n),e.moveTo(.005*n,.52*n),e.lineTo(.995*n,.52*n),e.stroke())},mxCellRenderer.registerShape(mxShapePidIndicator.prototype.cst.SHAPE_INDICATOR,mxShapePidIndicator),mxShapePidIndicator.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,1),!0)],mxUtils.extend(mxShapePidLogic,mxShape),mxShapePidLogic.prototype.cst={SHAPE_LOGIC:"mxgraph.pid2inst.logic",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local"},mxShapePidLogic.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]}],mxShapePidLogic.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapePidLogic.prototype.background=function(e,t,o,n,i){e.begin(),e.moveTo(0,.5*i),e.lineTo(.5*n,0),e.lineTo(n,.5*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke()},mxShapePidLogic.prototype.foreground=function(e,t,o,n,i){(t=mxUtils.getValue(this.style,mxShapePidLogic.prototype.cst.MOUNTING,"field"))===mxShapePidLogic.prototype.cst.ROOM?(e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxShapePidLogic.prototype.cst.INACCESSIBLE?(e.setDashed(!0),e.begin(),e.moveTo(0,.5*i),e.lineTo(n,.5*i),e.stroke()):t===mxShapePidLogic.prototype.cst.LOCAL&&(e.begin(),e.moveTo(.02*n,.48*i),e.lineTo(.98*n,.48*i),e.moveTo(.02*n,.52*i),e.lineTo(.98*n,.52*i),e.stroke())},mxCellRenderer.registerShape(mxShapePidLogic.prototype.cst.SHAPE_LOGIC,mxShapePidLogic),mxShapePidLogic.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.75),!1),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.75,.75),!1)],mxUtils.extend(mxShapePidFan,mxShape),mxShapePidFan.prototype.cst={SHAPE_FAN:"mxgraph.pid2misc.fan",FAN_TYPE:"fanType",COMMON:"common",AXIAL:"axial",RADIAL:"radial"},mxShapePidFan.prototype.customProperties=[{name:"fanType",dispName:"Type",type:"enum",defVal:"field",enumList:[{val:"common",dispName:"Common"},{val:"axial",dispName:"Axial"},{val:"radial",dispName:"Radial"}]}],mxShapePidFan.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapePidFan.prototype.background=function(e,t,o,n,i){e.ellipse(0,0,n,i),e.fillAndStroke()},mxShapePidFan.prototype.foreground=function(e,t,o,n,i){e.begin(),e.moveTo(.3*n,.045*i),e.lineTo(.97*n,.33*i),e.moveTo(.3*n,.955*i),e.lineTo(.97*n,.67*i),e.moveTo(.4228*n,.3655*i),e.arcTo(.15*n,.03*i,50,0,1,.5*n,.5*i),e.arcTo(.15*n,.03*i,50,0,1,.3772*n,.4045*i),e.arcTo(.15*n,.03*i,50,0,1,.3025*n,.271*i),e.arcTo(.15*n,.03*i,50,0,1,.4228*n,.3655*i),e.close(),e.moveTo(.377*n,.5973*i),e.arcTo(.15*n,.03*i,-50,0,1,.4966*n,.5019*i),e.arcTo(.15*n,.03*i,-50,0,1,.423*n,.636*i),e.arcTo(.15*n,.03*i,-50,0,1,.3034*n,.7314*i),e.arcTo(.15*n,.03*i,-50,0,1,.377*n,.5973*i),e.close(),e.stroke(),e.ellipse(.5*n,.47*i,.3*n,.06*i),e.stroke(),(t=mxUtils.getValue(this.style,mxShapePidFan.prototype.cst.FAN_TYPE,"common"))===mxShapePidFan.prototype.cst.AXIAL?(e.begin(),e.moveTo(.1*n,.5*i),e.lineTo(.3*n,.5*i),e.stroke()):t===mxShapePidFan.prototype.cst.RADIAL&&(e.begin(),e.moveTo(.2*n,.4*i),e.lineTo(.2*n,.6*i),e.stroke())},mxCellRenderer.registerShape(mxShapePidFan.prototype.cst.SHAPE_FAN,mxShapePidFan),mxUtils.extend(mxShapePidColumn,mxShape),mxShapePidColumn.prototype.cst={SHAPE_COLUMN:"mxgraph.pid2misc.column",COLUMN_TYPE:"columnType",COMMON:"common",FIXED:"fixed",FLUIDIZED:"fluid",BAFFLE:"baffle",VALVE:"valve",BUBBLE:"bubble",NOZZLE:"nozzle",TRAY:"tray"},mxShapePidColumn.prototype.customProperties=[{name:"columnType",dispName:"Type",type:"enum",defVal:"field",enumList:[{val:"common",dispName:"Common"},{val:"fixed",dispName:"Fixed"},{val:"fluid",dispName:"Fluid"},{val:"baffle",dispName:"Baffle"},{val:"valve",dispName:"Valve"},{val:"bubble",dispName:"Bubble"},{val:"nozzle",dispName:"Nozzle"},{val:"tray",dispName:"Tray"}]}],mxShapePidColumn.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1),this.foreground(e,t,o,n,i)},mxShapePidColumn.prototype.background=function(e,t,o,n,i){i=Math.max(i,30),e.begin(),e.moveTo(0,15),e.arcTo(.5*n,15,0,0,1,n,15),e.lineTo(n,i-15),e.arcTo(.5*n,15,0,0,1,0,i-15),e.close(),e.fillAndStroke()},mxShapePidColumn.prototype.foreground=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapePidColumn.prototype.cst.COLUMN_TYPE,"common");if(a===mxShapePidColumn.prototype.cst.FIXED){var s=1.2*n;for(o=(t=i-50)%s*.5+25,e.begin(),i=0;i<=t-s;i+=s)e.moveTo(0,i+o+.1*s),e.lineTo(n,i+o+.1*s),e.moveTo(0,i+o+.9*s),e.lineTo(n,i+o+.9*s),e.moveTo(0,i+o+.1*s),e.lineTo(n,i+o+.9*s),e.moveTo(0,i+o+.9*s),e.lineTo(n,i+o+.1*s);e.stroke()}else if(a===mxShapePidColumn.prototype.cst.TRAY){for(o=(t=i-50)%(s=.2*n)*.5+25,e.setDashed(!0),e.begin(),i=0;i<=t;i+=s)e.moveTo(0,i+o),e.lineTo(n,i+o);e.stroke()}else if(a===mxShapePidColumn.prototype.cst.FLUIDIZED){s=.1*n,a=.1*n,t=i-50,o=25;var l=.02*Math.min(n,i);mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");var r=mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,"0"),p=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");for(e.setFillColor(p),e.setDashed(!0),e.begin(),e.moveTo(0,25),e.lineTo(n,25),e.moveTo(0,i-25),e.lineTo(n,i-25),e.stroke(),"0"===r?e.setDashed(!1):e.setDashed(!0),r=0,i=o+.5*s;i<t+o-l;i+=s){var m=a;for(0==(p=r%2)&&(m=.5*a),p=m;p<n;p+=a)e.ellipse(p,i,l,l),e.fillAndStroke();r++}}else if(a===mxShapePidColumn.prototype.cst.BAFFLE){for(t=i-50-(s=.2*n),o=25+.5*s,e.setDashed(!0),e.begin(),e.moveTo(0,25),e.lineTo(n,25),e.moveTo(0,i-25),e.lineTo(n,i-25),e.stroke(),r=0,e.begin(),i=o+.5*s;i<t+o;i+=s)0==(p=r%2)?(e.moveTo(0,i),e.lineTo(.9*n,i),e.lineTo(.9*n,i-.3*s)):(e.moveTo(.1*n,i-.5*s),e.lineTo(.1*n,i),e.lineTo(n,i)),r++;e.stroke()}else if(a===mxShapePidColumn.prototype.cst.VALVE||a===mxShapePidColumn.prototype.cst.BUBBLE){for(t=i-50-(s=.2*n),o=25+.5*s,r=mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,"0"),e.setFillColor(p),e.setDashed(!0),e.begin(),e.moveTo(0,25),e.lineTo(n,25),e.moveTo(0,i-25),e.lineTo(n,i-25),e.stroke(),"0"===r?e.setDashed(!1):e.setDashed(!0),e.begin(),i=o+.5*s;i<t+o;i+=s)e.moveTo(0,i),e.lineTo(.4*n,i),a===mxShapePidColumn.prototype.cst.VALVE?(e.moveTo(.4*n,i-.2*s),e.lineTo(.6*n,i-.2*s)):a===mxShapePidColumn.prototype.cst.BUBBLE&&(e.moveTo(.25*n,i-.2*s),e.arcTo(3*s,3*s,0,0,1,.75*n,i-.2*s)),e.moveTo(.6*n,i),e.lineTo(n,i);e.stroke()}else if(a===mxShapePidColumn.prototype.cst.NOZZLE){for(o=(t=i-50)%(s=1.2*n)*.5+25,r=mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,0),i=0;i<=t-s;i+=s)e.setDashed(!0),e.begin(),e.moveTo(0,i+o+.2*s),e.lineTo(n,i+o+.2*s),e.moveTo(0,i+o+.8*s),e.lineTo(n,i+o+.8*s),e.stroke(),0===r?e.setDashed(!1):e.setDashed(!0),e.begin(),e.moveTo(0,i+o+.2*s),e.lineTo(n,i+o+.8*s),e.moveTo(0,i+o+.8*s),e.lineTo(n,i+o+.2*s),0!==i&&(e.moveTo(0,i+o),e.lineTo(.5*n,i+o),e.moveTo(.5*n-.08*s,i+o+.08*s),e.lineTo(.5*n,i+o),e.lineTo(.5*n+.08*s,i+o+.08*s),e.moveTo(.5*n,i+o),e.lineTo(.5*n,i+o+.08*s)),e.stroke();e.stroke()}},mxCellRenderer.registerShape(mxShapePidColumn.prototype.cst.SHAPE_COLUMN,mxShapePidColumn),mxUtils.extend(mxShapePidConveyor,mxShape),mxShapePidConveyor.prototype.cst={SHAPE_CONVEYOR:"mxgraph.pid2misc.conveyor"},mxShapePidConveyor.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,t,o,n,i),e.setShadow(!1)},mxShapePidConveyor.prototype.background=function(e,t,o,n,i){t=Math.min(i,.5*n),e.begin(),e.moveTo(.5*t,0),e.lineTo(n-.5*t,0),e.stroke(),e.ellipse(0,0,t,t),e.fillAndStroke(),e.ellipse(n-t,0,t,t),e.fillAndStroke(),e.begin(),e.moveTo(.5*t,t),e.lineTo(n-.5*t,t),e.stroke(),n-=1.8*t,o=.9*t,i=.7*t;for(var a=0;a<n;a+=i)e.rect(o+a,0,.2*t,.1*t),e.fillAndStroke(),e.rect(o+a,.9*t,.2*t,.1*t),e.fillAndStroke()},mxCellRenderer.registerShape(mxShapePidConveyor.prototype.cst.SHAPE_CONVEYOR,mxShapePidConveyor),mxUtils.extend(mxShapePidValve,mxShape),mxShapePidValve.prototype.cst={SHAPE_VALVE:"mxgraph.pid2valves.valve",DEFAULT_STATE:"defState",CLOSED:"closed",OPEN:"open",ACTUATOR:"actuator",MANUAL:"man",DIAPHRAGM:"diaph",BALANCED_DIAPHRAGM:"balDiaph",MOTOR:"motor",NONE:"none",SPRING:"spring",PILOT:"pilot",POWERED:"powered",SOLENOID:"solenoid",SOLENOID_MANUAL_RESET:"solenoidManRes",SINGLE_ACTING:"singActing",DOUBLE_ACTING:"dblActing",PILOT_CYLINDER:"pilotCyl",DIGITAL:"digital",WEIGHT:"weight",KEY:"key",ELECTRO_HYDRAULIC:"elHyd",VALVE_TYPE:"valveType",BUTTERFLY:"butterfly",CHECK:"check",GATE:"gate",GLOBE:"globe",NEEDLE:"needle",PLUG:"plug",SELF_DRAINING:"selfDrain",ANGLE:"angle",ANGLE_GLOBE:"angleGlobe",THREE_WAY:"threeWay",ANGLE_BLOWDOWN:"angBlow",BALL:"ball"},mxShapePidValve.prototype.customProperties=[{name:"defState",dispName:"Default State",type:"enum",defVal:"open",enumList:[{val:"closed",dispName:"Closed"},{val:"open",dispName:"Open"}]},{name:"actuator",dispName:"Actuator",type:"enum",defVal:"man",enumList:[{val:"man",dispName:"Manual"},{val:"diaph",dispName:"Diphragm"},{val:"balDiaph",dispName:"Balanced Diaphragm"},{val:"motor",dispName:"Motor"},{val:"none",dispName:"None"},{val:"spring",dispName:"Spring"},{val:"pilot",dispName:"Pilot"},{val:"powered",dispName:"Powered"},{val:"solenoid",dispName:"Solenoid"},{val:"solenoidManRes",dispName:"Solenoid w/ Manual Reset"},{val:"singActing",dispName:"Single Acting"},{val:"dblActing",dispName:"Double Acting"},{val:"pilotCyl",dispName:"Pilot Cylinder"},{val:"digital",dispName:"Digital"},{val:"weight",dispName:"Weight"},{val:"key",dispName:"Key"},{val:"elHyd",dispName:"Electro-Hidraulic"}]},{name:"valveType",dispName:"Type",type:"enum",defVal:"gate",enumList:[{val:"butterfly",dispName:"Butterfly"},{val:"check",dispName:"check"},{val:"gate",dispName:"Gate"},{val:"globe",dispName:"Globe"},{val:"needle",dispName:"Needle"},{val:"plug",dispName:"Plug"},{val:"selfDrain",dispName:"Self Draining"},{val:"angle",dispName:"Angle"},{val:"angleGlobe",dispName:"Angle Globe"},{val:"threeWay",dispName:"Three Way"},{val:"ball",dispName:"Ball"}]}],mxShapePidValve.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.VALVE_TYPE,"gate"),s=mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.ACTUATOR,mxShapePidValve.prototype.cst.NONE),l=0;"none"!==s&&(l=this.isAngleVariant(a)?.3333*i:.4*i),e.translate(t,o),e.setLineJoin("round"),this.background(e,t,o,n,i,a,s,l),e.setShadow(!1),this.foreground(e,t,o,n,i,a,s,l)},mxShapePidValve.prototype.background=function(e,t,o,n,i,a,s,l){s!==mxShapePidValve.prototype.cst.NONE&&(this.isAngleVariant(a)?this.drawActuatorBg(e,t,o,n,i/1.2,s,l):this.drawActuatorBg(e,t,o,n,i,s,l)),this.isGateVariant(a)?this.drawGateVariantBg(e,0,0,n,i,a,s,l):this.isAngleVariant(a)?this.drawAngleVariantBg(e,0,0,n,i,a,s,l):a===mxShapePidValve.prototype.cst.BUTTERFLY?this.drawButterflyValve(e,0,0,n,i,s,l):a===mxShapePidValve.prototype.cst.CHECK&&this.drawCheckValve(e,0,0,n,i,s,l)},mxShapePidValve.prototype.foreground=function(e,t,o,n,i,a,s,l){a=mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.VALVE_TYPE,"gate"),s!==mxShapePidValve.prototype.cst.NONE&&(this.isAngleVariant(a)?this.drawActuatorFg(e,t,o,n,i/1.2,s,l):this.drawActuatorFg(e,t,o,n,i,s,l)),this.isGateVariant(a)&&this.drawGateVariantFg(e,0,0,n,i,a,s,l),this.isAngleVariant(a)&&this.drawAngleVariantFg(e,0,0,n,i,a,s,l)},mxShapePidValve.prototype.drawActuatorBg=function(e,t,o,n,i,a){this.isSquareVariant(a)?(e.translate(.325*n,0),this.drawSquareAct(e,.35*n,.7*i,a),e.translate(.325*-n,0)):a===mxShapePidValve.prototype.cst.MANUAL?(e.translate(.25*n,.15*i),this.drawManAct(e,.5*n,.55*i),e.translate(.25*-n,.15*-i)):a===mxShapePidValve.prototype.cst.DIAPHRAGM?(e.translate(.25*n,.1*i),this.drawDiaphAct(e,.5*n,.6*i),e.translate(.25*-n,.1*-i)):a===mxShapePidValve.prototype.cst.BALANCED_DIAPHRAGM?(e.translate(.25*n,.1*i),this.drawBalDiaphActBg(e,.5*n,.6*i),e.translate(.25*-n,.1*-i)):a===mxShapePidValve.prototype.cst.MOTOR||a===mxShapePidValve.prototype.cst.ELECTRO_HYDRAULIC?(e.translate(.325*n,0),this.drawCircleAct(e,.35*n,.7*i,a),e.translate(.325*-n,0)):a===mxShapePidValve.prototype.cst.SPRING?(e.translate(.36*n,0),this.drawSpringAct(e,.28*n,.7*i),e.translate(.36*-n,0)):a===mxShapePidValve.prototype.cst.SOLENOID_MANUAL_RESET?(e.translate(.325*n,0),this.drawSolenoidManResetAct(e,.575*n,.7*i),e.translate(.325*-n,0)):a===mxShapePidValve.prototype.cst.SINGLE_ACTING?(e.translate(.35*n,0),this.drawSingActingActBg(e,.65*n,.7*i),e.translate(.35*-n,0)):a===mxShapePidValve.prototype.cst.DOUBLE_ACTING?(e.translate(.35*n,0),this.drawDblActingActBg(e,.65*n,.7*i),e.translate(.35*-n,0)):a===mxShapePidValve.prototype.cst.PILOT_CYLINDER?(e.translate(.35*n,0),this.drawPilotCylinderActBg(e,.65*n,.7*i),e.translate(.35*-n,0)):a===mxShapePidValve.prototype.cst.ANGLE_BLOWDOWN&&(e.translate(.5*n,.2*i),this.drawAngleBlowdownAct(e,.4*n,.5*i),e.translate(.5*-n,.2*-i))},mxShapePidValve.prototype.drawActuatorFg=function(e,t,o,n,i,a){a===mxShapePidValve.prototype.cst.BALANCED_DIAPHRAGM?(e.translate(.25*n,.1*i),this.drawBalDiaphActFg(e,.5*n,.6*i),e.translate(.25*-n,.1*-i)):a!==mxShapePidValve.prototype.cst.SINGLE_ACTING&&a!==mxShapePidValve.prototype.cst.DOUBLE_ACTING&&a!==mxShapePidValve.prototype.cst.PILOT_CYLINDER||(e.translate(.35*n,0),this.drawActingActFg(e,.65*n,.7*i),e.translate(.35*-n,0))},mxShapePidValve.prototype.drawManAct=function(e,t,o){e.begin(),e.moveTo(0,0),e.lineTo(t,0),e.moveTo(.5*t,0),e.lineTo(.5*t,o),e.stroke()},mxShapePidValve.prototype.drawDiaphAct=function(e,t,o){e.begin(),e.moveTo(.5*t,.2*o),e.lineTo(.5*t,o),e.stroke(),e.begin(),e.moveTo(0,.2*o),e.arcTo(.6*t,.4*o,0,0,1,t,.2*o),e.close(),e.fillAndStroke()},mxShapePidValve.prototype.drawBalDiaphActBg=function(e,t,o){e.ellipse(0,0,t,.3*o),e.fillAndStroke(),e.begin(),e.moveTo(.5*t,.3*o),e.lineTo(.5*t,o),e.stroke()},mxShapePidValve.prototype.drawBalDiaphActFg=function(e,t,o){e.begin(),e.moveTo(0,.15*o),e.lineTo(t,.15*o),e.stroke()},mxShapePidValve.prototype.drawCircleAct=function(e,t,o,n){e.ellipse(0,0,t,.5*o),e.fillAndStroke(),e.begin(),e.moveTo(.5*t,.5*o),e.lineTo(.5*t,o),e.stroke();var i="";n===mxShapePidValve.prototype.cst.MOTOR?i="M":n===mxShapePidValve.prototype.cst.ELECTRO_HYDRAULIC&&(i="E/H"),e.setFontStyle(1),e.setFontFamily("Helvetica"),e.setFontSize(.4*Math.min(t,o)),e.text(.5*t,.25*o,0,0,i,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxShapePidValve.prototype.drawSpringAct=function(e,t,o){e.begin(),e.moveTo(.5*t,0),e.lineTo(.5*t,o),e.moveTo(.32*t,.16*o),e.lineTo(.68*t,.08*o),e.moveTo(.21*t,.32*o),e.lineTo(.79*t,.2*o),e.moveTo(.1*t,.52*o),e.lineTo(.9*t,.36*o),e.moveTo(0,.72*o),e.lineTo(t,.5*o),e.stroke()},mxShapePidValve.prototype.drawSolenoidManResetAct=function(e,t,o){e.rect(0,0,.61*t,.46*o),e.fillAndStroke(),e.begin(),e.moveTo(.56*t,.6*o),e.lineTo(.78*t,.5*o),e.lineTo(t,.6*o),e.lineTo(.78*t,.7*o),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.305*t,.46*o),e.lineTo(.305*t,o),e.moveTo(.305*t,.6*o),e.lineTo(.56*t,.6*o),e.stroke(),e.setFontStyle(1),e.setFontFamily("Helvetica"),e.setFontSize(.4*Math.min(t,o)),e.text(.305*t,.23*o,0,0,"S",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e.setFontStyle(0),e.setFontSize(.15*Math.min(t,o)),e.text(.78*t,.6*o,0,0,"R",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxShapePidValve.prototype.drawSingActingActBg=function(e,t,o){e.rect(0,0,.46*t,.46*o),e.fillAndStroke(),e.begin(),e.moveTo(.23*t,.46*o),e.lineTo(.23*t,o),e.moveTo(.46*t,.23*o),e.lineTo(t,.23*o),e.moveTo(.77*t,.15*o),e.lineTo(.69*t,.31*o),e.moveTo(.82*t,.15*o),e.lineTo(.74*t,.31*o),e.stroke()},mxShapePidValve.prototype.drawActingActFg=function(e,t,o){e.begin(),e.moveTo(.23*t,.23*o),e.lineTo(.23*t,.46*o),e.moveTo(0,.23*o),e.lineTo(.46*t,.23*o),e.stroke()},mxShapePidValve.prototype.drawDblActingActBg=function(e,t,o){e.rect(0,0,.46*t,.46*o),e.fillAndStroke(),e.begin(),e.moveTo(.23*t,.46*o),e.lineTo(.23*t,o),e.moveTo(.46*t,.115*o),e.lineTo(t,.115*o),e.moveTo(.77*t,.035*o),e.lineTo(.69*t,.195*o),e.moveTo(.82*t,.035*o),e.lineTo(.74*t,.195*o),e.moveTo(.46*t,.345*o),e.lineTo(t,.345*o),e.moveTo(.77*t,.265*o),e.lineTo(.69*t,.425*o),e.moveTo(.82*t,.265*o),e.lineTo(.74*t,.425*o),e.stroke()},mxShapePidValve.prototype.drawPilotCylinderActBg=function(e,t,o){e.rect(0,0,.46*t,.46*o),e.fillAndStroke(),e.begin(),e.moveTo(.23*t,.46*o),e.lineTo(.23*t,o),e.moveTo(.46*t,.23*o),e.lineTo(.77*t,.23*o),e.stroke(),e.rect(.77*t,.115*o,.23*t,.23*o),e.fillAndStroke(),e.setFontStyle(0),e.setFontFamily("Helvetica"),e.setFontSize(.15*Math.min(t,o)),e.text(.885*t,.23*o,0,0,"P",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxShapePidValve.prototype.drawAngleBlowdownAct=function(e,t,o){e.begin(),e.moveTo(.34*t,0),e.lineTo(t,.405*o),e.moveTo(0,o),e.lineTo(.665*t,.205*o),e.stroke()},mxShapePidValve.prototype.drawSquareAct=function(e,t,o,n){e.rect(0,0,t,.5*o),e.fillAndStroke(),e.begin(),e.moveTo(.5*t,.5*o),e.lineTo(.5*t,o),e.stroke();var i="";n===mxShapePidValve.prototype.cst.PILOT?i="P":n===mxShapePidValve.prototype.cst.SOLENOID?i="S":n===mxShapePidValve.prototype.cst.DIGITAL?i="D":n===mxShapePidValve.prototype.cst.WEIGHT?i="W":n===mxShapePidValve.prototype.cst.KEY&&(i="K"),e.setFontStyle(1),e.setFontFamily("Helvetica"),e.setFontSize(.4*Math.min(t,o)),e.text(.5*t,.25*o,0,0,i,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxShapePidValve.prototype.drawGateVariantFg=function(e,t,o,n,i,a,s,l){mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.DEFAULT_STATE,"open"),s=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");var r=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a===mxShapePidValve.prototype.cst.BALL?(e.ellipse(t+.3*n,o+l+.18*(i-l),.4*n,.64*(i-l)),e.fillAndStroke()):a===mxShapePidValve.prototype.cst.GLOBE?(e.ellipse(t+.3*n,o+l+.18*(i-l),.4*n,.64*(i-l)),e.setFillColor(r),e.fillAndStroke(),e.setFillColor(s)):a===mxShapePidValve.prototype.cst.PLUG?this.drawPlug(e,t+.4*n,o+l+.25*(i-l),.2*n,.5*(i-l)):a===mxShapePidValve.prototype.cst.NEEDLE?this.drawNeedle(e,t+.45*n,o+l+.1*(i-l),.1*n,.9*(i-l)):a===mxShapePidValve.prototype.cst.SELF_DRAINING&&this.drawDrain(e,t+.48*n,o+l+.5*(i-l),.04*n,.49*(i-l))},mxShapePidValve.prototype.drawAngleVariantFg=function(e,t,o,n,i,a,s,l){mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.DEFAULT_STATE,"open"),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),o=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a===mxShapePidValve.prototype.cst.ANGLE_GLOBE&&("none"===s?e.ellipse(.34*n,.175*i,.32*n,.4*i):e.ellipse(.34*n,.45*i,.32*n,.2667*i),e.setFillColor(o),e.fillAndStroke(),e.setFillColor(t))},mxShapePidValve.prototype.drawGateVariantBg=function(e,t,o,n,i,a,s,l){a===mxShapePidValve.prototype.cst.GATE?this.drawGateValve(e,t,o+l,n,i-l):a===mxShapePidValve.prototype.cst.BALL||a===mxShapePidValve.prototype.cst.GLOBE?(e.ellipse(t+.3*n,o+l+.18*(i-l),.4*n,.64*(i-l)),e.fillAndStroke(),this.drawGateValve(e,t,o+l,n,i-l)):a===mxShapePidValve.prototype.cst.PLUG?(this.drawPlug(e,t+.4*n,o+l+.25*(i-l),.2*n,.5*(i-l)),this.drawGateValve(e,t,o+l,n,i-l)):a===mxShapePidValve.prototype.cst.NEEDLE?(this.drawNeedle(e,t+.45*n,o+l+.1*(i-l),.1*n,.9*(i-l)),this.drawGateValve(e,t,o+l,n,i-l)):a===mxShapePidValve.prototype.cst.SELF_DRAINING&&(this.drawDrain(e,t+.48*n,o+l+.5*(i-l),.04*n,.49*(i-l)),this.drawGateValve(e,t,o+l,n,i-l))},mxShapePidValve.prototype.drawAngleVariantBg=function(e,t,o,n,i,a,s,l){a===mxShapePidValve.prototype.cst.ANGLE?this.drawAngleValve(e,.2*n,o+l,.8*n,i-l):a===mxShapePidValve.prototype.cst.ANGLE_GLOBE?this.drawAngleGlobeValveBg(e,.2*n,o+l,.8*n,i-l):a===mxShapePidValve.prototype.cst.THREE_WAY?this.drawThreeWayValve(e,0,o+l,n,i-l):a===mxShapePidValve.prototype.cst.ANGLE_BLOWDOWN&&this.drawAngleBlowdownValve(e,t,o+l,n,i-l)},mxShapePidValve.prototype.drawPlug=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,.5*i),e.lineTo(.5*n,0),e.lineTo(n,.5*i),e.lineTo(.5*n,i),e.close(),e.fillAndStroke(),e.translate(-t,-o)},mxShapePidValve.prototype.drawNeedle=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(n,0),e.lineTo(.5*n,i),e.close(),e.setFillColor(s),e.fillAndStroke(),e.setFillColor(a),e.translate(-t,-o)},mxShapePidValve.prototype.drawDrain=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.translate(t,o),e.begin(),e.moveTo(.5*n,0),e.lineTo(.5*n,.96*i),e.stroke(),e.begin(),e.moveTo(0,.9*i),e.lineTo(n,.9*i),e.lineTo(.5*n,i),e.close(),e.setFillColor(s),e.fillAndStroke(),e.setFillColor(a),e.translate(-t,-o)},mxShapePidValve.prototype.drawGateValve=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.DEFAULT_STATE,"open"),s=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(.5*n,.5*i),e.lineTo(0,i),e.close(),e.moveTo(n,0),e.lineTo(.5*n,.5*i),e.lineTo(n,i),e.close(),a===mxShapePidValve.prototype.cst.CLOSED?(e.setFillColor(l),e.fillAndStroke(),e.setFillColor(s)):e.fillAndStroke(),e.translate(-t,-o)},mxShapePidValve.prototype.drawAngleValve=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(.375*n,.375*i),e.lineTo(n,0),e.lineTo(n,.75*i),e.close(),e.moveTo(.375*n,.375*i),e.lineTo(.75*n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.translate(-t,-o)},mxShapePidValve.prototype.drawAngleGlobeValveBg=function(e,t,o,n,i){e.translate(t,o),e.ellipse(.175*n,.175*i,.4*n,.4*i),e.fillAndStroke(),e.begin(),e.moveTo(.375*n,.375*i),e.lineTo(n,0),e.lineTo(n,.75*i),e.close(),e.moveTo(.375*n,.375*i),e.lineTo(.75*n,i),e.lineTo(0,i),e.close(),e.fillAndStroke(),e.translate(-t,-o)},mxShapePidValve.prototype.drawAngleGlobeValveFg=function(e,t,o,n,i){e.translate(t,o),e.ellipse(.275*n,.275*i,.2*n,.2*i),e.fillAndStroke(),e.translate(-t,-o)},mxShapePidValve.prototype.drawThreeWayValve=function(e,t,o,n,i){e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(.5*n,.375*i),e.lineTo(0,.75*i),e.close(),e.moveTo(n,0),e.lineTo(.5*n,.375*i),e.lineTo(n,.75*i),e.close(),e.moveTo(.5*n,.375*i),e.lineTo(.8*n,i),e.lineTo(.2*n,i),e.close(),e.fillAndStroke(),e.translate(-t,-o)},mxShapePidValve.prototype.drawAngleBlowdownValve=function(e,t,o,n,i){},mxShapePidValve.prototype.drawButterflyValve=function(e,t,o,n,i,a,s){mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),i-=s,e.translate(t,o+s),e.begin(),e.moveTo(0,0),e.lineTo(0,i),e.moveTo(n,0),e.lineTo(n,i),e.moveTo(.05*n,.05*i),e.lineTo(.95*n,.95*i),e.fillAndStroke(),e.ellipse(.4*n,.33*i,.2*n,.33*i),e.fillAndStroke(),e.translate(-t,-o)},mxShapePidValve.prototype.drawCheckValve=function(e,t,o,n,i,a,s){a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");var l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");i-=s,e.translate(t,o+s),e.begin(),e.moveTo(0,0),e.lineTo(0,i),e.moveTo(n,0),e.lineTo(n,i),e.moveTo(.05*n,.05*i),e.lineTo(.95*n,.95*i),e.fillAndStroke(),e.begin(),e.moveTo(.8925*n,.815*i),e.lineTo(.957*n,.955*i),e.lineTo(.85*n,.928*i),e.close(),e.setFillColor(l),e.fillAndStroke(),e.setFillColor(a),e.translate(-t,-o)},mxShapePidValve.prototype.isGateVariant=function(e){return e===mxShapePidValve.prototype.cst.GATE||e===mxShapePidValve.prototype.cst.BALL||e===mxShapePidValve.prototype.cst.PLUG||e===mxShapePidValve.prototype.cst.NEEDLE||e===mxShapePidValve.prototype.cst.SELF_DRAINING||e===mxShapePidValve.prototype.cst.GLOBE},mxShapePidValve.prototype.isAngleVariant=function(e){return e===mxShapePidValve.prototype.cst.ANGLE||e===mxShapePidValve.prototype.cst.ANGLE_GLOBE||e===mxShapePidValve.prototype.cst.THREE_WAY||e===mxShapePidValve.prototype.cst.ANGLE_BLOWDOWN},mxShapePidValve.prototype.isSquareVariant=function(e){return e===mxShapePidValve.prototype.cst.PILOT||e===mxShapePidValve.prototype.cst.SOLENOID||e===mxShapePidValve.prototype.cst.POWERED||e===mxShapePidValve.prototype.cst.DIGITAL||e===mxShapePidValve.prototype.cst.WEIGHT||e===mxShapePidValve.prototype.cst.KEY},mxCellRenderer.registerShape(mxShapePidValve.prototype.cst.SHAPE_VALVE,mxShapePidValve),mxUtils.extend(mxShapePidIntBlockBleedValve,mxShapePidValve),mxShapePidIntBlockBleedValve.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxShapePidIntBlockBleedValve.prototype.cst.ACTUATOR,mxShapePidIntBlockBleedValve.prototype.cst.NONE),s=0;"none"!==a&&(s=.2353*i),e.translate(t,o),e.setLineJoin("round"),this.background(e,t,o,n,i,a,s),e.setShadow(!1),this.foreground(e,t,o,n,i,a,s)},mxShapePidIntBlockBleedValve.prototype.background=function(e,t,o,n,i,a,s){a!==mxShapePidIntBlockBleedValve.prototype.cst.NONE&&this.drawActuatorBg(e,t,o,n,i,a),this.drawValveBg(e,0,s,n,i-s)},mxShapePidIntBlockBleedValve.prototype.foreground=function(e,t,o,n,i,a,s){a!==mxShapePidIntBlockBleedValve.prototype.cst.NONE&&this.drawActuatorFg(e,t,o,n,i,a)},mxShapePidIntBlockBleedValve.prototype.drawValveBg=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),s=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e.translate(t,o),e.begin(),e.moveTo(0,0),e.lineTo(.5*n,.23*i),e.lineTo(0,.46*i),e.close(),e.moveTo(.5*n,.23*i),e.lineTo(n,0),e.lineTo(n,.46*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.5*n,.23*i),e.lineTo(.5*n,.5*i),e.stroke(),e.setFillColor(s),e.begin(),e.moveTo(.3*n,.5*i),e.lineTo(.7*n,.5*i),e.lineTo(.5*n,.75*i),e.close(),e.fillAndStroke(),e.begin(),e.moveTo(.3*n,i),e.lineTo(.5*n,.75*i),e.lineTo(.7*n,i),e.fillAndStroke(),e.setFillColor(a),e.translate(-t,-o)},mxShapePidIntBlockBleedValve.prototype.drawActuatorBg=function(e,t,o,n,i,a){this.isSquareVariant(a)?(e.translate(.325*n,0),this.drawSquareAct(e,.35*n,.4112*i,a),e.translate(.325*-n,0)):a===mxShapePidIntBlockBleedValve.prototype.cst.MANUAL?(e.translate(.25*n,.0882*i),this.drawManAct(e,.5*n,.323*i),e.translate(.25*-n,.0882*-i)):a===mxShapePidIntBlockBleedValve.prototype.cst.DIAPHRAGM?(e.translate(.25*n,.0588*i),this.drawDiaphAct(e,.5*n,.3524*i),e.translate(.25*-n,.0588*-i)):a===mxShapePidIntBlockBleedValve.prototype.cst.BALANCED_DIAPHRAGM?(e.translate(.25*n,.0588*i),this.drawBalDiaphActBg(e,.5*n,.3524*i),e.translate(.25*-n,.0588*-i)):a===mxShapePidIntBlockBleedValve.prototype.cst.MOTOR||a===mxShapePidIntBlockBleedValve.prototype.cst.ELECTRO_HYDRAULIC?(e.translate(.325*n,0),this.drawCircleAct(e,.35*n,.4112*i,a),e.translate(.325*-n,0)):a===mxShapePidIntBlockBleedValve.prototype.cst.SPRING?(e.translate(.36*n,0),this.drawSpringAct(e,.28*n,.4112*i),e.translate(.36*-n,0)):a===mxShapePidIntBlockBleedValve.prototype.cst.SOLENOID_MANUAL_RESET?(e.translate(.325*n,0),this.drawSolenoidManResetAct(e,.575*n,.4112*i),e.translate(.325*-n,0)):a===mxShapePidIntBlockBleedValve.prototype.cst.SINGLE_ACTING?(e.translate(.35*n,0),this.drawSingActingActBg(e,.65*n,.4112*i),e.translate(.35*-n,0)):a===mxShapePidIntBlockBleedValve.prototype.cst.DOUBLE_ACTING?(e.translate(.35*n,0),this.drawDblActingActBg(e,.65*n,.4112*i),e.translate(.35*-n,0)):a===mxShapePidIntBlockBleedValve.prototype.cst.PILOT_CYLINDER&&(e.translate(.35*n,0),this.drawPilotCylinderActBg(e,.65*n,.4112*i),e.translate(.35*-n,0))},mxShapePidIntBlockBleedValve.prototype.drawActuatorFg=function(e,t,o,n,i,a){a===mxShapePidIntBlockBleedValve.prototype.cst.BALANCED_DIAPHRAGM?(e.translate(.25*n,.0588*i),this.drawBalDiaphActFg(e,.5*n,.3524*i),e.translate(.25*-n,.0588*-i)):a!==mxShapePidIntBlockBleedValve.prototype.cst.SINGLE_ACTING&&a!==mxShapePidIntBlockBleedValve.prototype.cst.DOUBLE_ACTING&&a!==mxShapePidIntBlockBleedValve.prototype.cst.PILOT_CYLINDER||(e.translate(.35*n,0),this.drawActingActFg(e,.65*n,.4112*i),e.translate(.35*-n,0))},mxCellRenderer.registerShape("mxgraph.pid2valves.blockBleedValve",mxShapePidIntBlockBleedValve),mxUtils.extend(mxShapePidAutoRecircValve,mxShape),mxShapePidAutoRecircValve.prototype.paintVertexShape=function(e,t,o,n,i){e.setLineJoin("round"),e.translate(t,o),e.rect(0,0,n,i),e.fillAndStroke(),e.setShadow(!1),e.begin(),e.moveTo(.08*n,.08*i),e.lineTo(.08*n,.92*i),e.moveTo(.92*n,.08*i),e.lineTo(.92*n,.92*i),e.moveTo(.12*n,.122*i),e.lineTo(.8738*n,.8837*i),e.moveTo(.5*n,0),e.lineTo(.55*n,.05*i),e.lineTo(.45*n,.15*i),e.lineTo(.55*n,.25*i),e.lineTo(.45*n,.35*i),e.lineTo(.55*n,.45*i),e.lineTo(.49*n,.5*i),e.stroke(),t=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),o=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),e.begin(),e.moveTo(.8257*n,.7695*i),e.lineTo(.8797*n,.888*i),e.lineTo(.79*n,.8651*i),e.close(),e.setFillColor(o),e.fillAndStroke(),e.setFillColor(t)},mxCellRenderer.registerShape("mxgraph.pid2valves.autoRecircValve",mxShapePidAutoRecircValve),mxUtils.extend(mxRackContainer,mxShape),mxRackContainer.prototype.unitSize=20,mxRackContainer.prototype.cst={SHAPE_RACK_CONTAINER:"mxgraph.rackGeneral.container",TEXT_COLOR:"textColor",NUMBER_DISPLAY:"numDisp",OFF:"off",DIR_ASC:"ascend",DIR_DESC:"descend"},mxRackContainer.prototype.customProperties=[{name:"fillColor2",dispName:"Cabinet Color",type:"color"},{name:"textColor",dispName:"Numbers Color",type:"color"},{name:"numDisp",dispName:"Display Numbers",type:"enum",enumList:[{val:"off",dispName:"Off"},{val:"ascend",dispName:"Ascending"},{val:"descend",dispName:"Descending"}],onChange:function(e,t){e.setCellStyles("marginLeft","off"==t?9:33,e.getSelectionCells())}},{name:"rackUnitSize",dispName:"Unit size",type:"int"}],mxRackContainer.prototype.paintVertexShape=function(e,t,o,n,i){var a=mxUtils.getValue(this.style,mxRackContainer.prototype.cst.NUMBER_DISPLAY,mxRackContainer.prototype.cst.DIR_ASC),s=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),l=mxUtils.getValue(this.style,"fillColor2","#f4f4f4");a!==mxRackContainer.prototype.cst.OFF?(e.translate(t+24,o),n=Math.max(n-24,0)):e.translate(t,o),e.setFillColor(s),this.background(e,n,i,12),e.setShadow(!1),e.setFillColor(l),this.foreground(e,n,i,12),a!==mxRackContainer.prototype.cst.OFF&&42<n&&this.sideText(e,n,i,12)},mxRackContainer.prototype.background=function(e,t,o,n){e.rect(0,0,t,o),e.fillAndStroke()},mxRackContainer.prototype.foreground=function(e,t,o,n){t>18+2*n&&42<o&&(e.rect(0,0,t,21),e.fillAndStroke(),e.rect(0,o-21,t,21),e.fillAndStroke(),e.rect(0,21,9,o-42),e.fillAndStroke(),e.rect(t-9,21,9,o-42),e.fillAndStroke(),e.ellipse(2.5,7.5,6,6),e.stroke(),e.ellipse(t-8.5,7.5,6,6),e.stroke(),e.ellipse(2.5,o-13.5,6,6),e.stroke(),e.ellipse(t-8.5,o-13.5,6,6),e.stroke())},mxRackContainer.prototype.sideText=function(e,t,o,n){var i=mxUtils.getValue(this.style,mxRackContainer.prototype.cst.TEXT_COLOR,"#666666");t=mxUtils.getValue(this.style,mxRackContainer.prototype.cst.NUMBER_DISPLAY,mxRackContainer.prototype.cst.DIR_ASC);var a=parseFloat(mxUtils.getValue(this.style,"rackUnitSize",mxRackContainer.prototype.unitSize));for(this.unitSize=a,e.setFontSize(n),e.setFontColor(i),o=Math.floor((Math.abs(o)-42)/a),i=0;i<o;i++)e.text(-n,21+.5*a+i*a,0,0,t===mxRackContainer.prototype.cst.DIR_DESC?(i+1).toString():(o-i).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);for(e.begin(),i=0;i<o+1;i++)e.moveTo(-2*n,21+i*a),e.lineTo(0,21+i*a);e.stroke()},mxUtils.extend(mxRackPlate,mxShape),mxRackPlate.prototype.cst={SHAPE_RACK_PLATE:"mxgraph.rackGeneral.plate"},mxRackPlate.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxRackPlate.prototype.background=function(e,t,o){e.begin(),e.rect(0,0,t,o),e.fillAndStroke()},mxRackPlate.prototype.foreground=function(e,t,o){18<t&&(e.save(),e.setFillColor("#000000"),e.setAlpha(.23),e.rect(0,0,9,o),e.fill(),e.rect(t-9,0,9,o),e.fill(),e.restore(),e.rect(0,0,t,o),e.stroke(),e.rect(9,0,t-18,o),e.stroke())},mxUtils.extend(mxRackHorCableDuct,mxShape),mxRackHorCableDuct.prototype.cst={SHAPE_RACK_HOR_CABLE_DUCT:"mxgraph.rackGeneral.horCableDuct"},mxRackHorCableDuct.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxRackHorCableDuct.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxRackHorCableDuct.prototype.foreground=function(e,t,o){if(o=Math.floor((t-20)/33),t=10+Math.floor((t-20-33*o)/2),0<o)for(var n=0;n<=o;n++)e.rect(t,0,3,7),e.stroke(),e.rect(t,7,3,7.8),e.stroke(),t+=33},mxUtils.extend(mxRackHorRoutingBank,mxShape),mxRackHorRoutingBank.prototype.cst={SHAPE_RACK_HOR_ROUTING_BANK:"mxgraph.rackGeneral.horRoutingBank"},mxRackHorRoutingBank.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxRackHorRoutingBank.prototype.background=function(e,t,o){e.rect(0,0,t,o),e.fillAndStroke()},mxRackHorRoutingBank.prototype.foreground=function(e,t,o){var n=Math.floor((t-20-16)/22);if(o=Math.floor(o/mxRackContainer.unitSize),0<n&&0<o)for(var i=0;i<o;i++)for(var a=18+Math.floor((t-20-16-22*n)/2)-8,s=0;s<=n;s++)e.rect(a,4+i*mxRackContainer.unitSize,16,6.8),e.stroke(),a+=22},mxUtils.extend(mxRackNeatPatch,mxShape),mxRackNeatPatch.prototype.cst={SHAPE_RACK_NEAT_PATCH:"mxgraph.rackGeneral.neatPatch"},mxRackNeatPatch.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.mainText(e,n,i)},mxRackNeatPatch.prototype.background=function(e,t,o){e.setFillColor("#666666"),e.rect(0,0,t,o),e.fillAndStroke()},mxRackNeatPatch.prototype.mainText=function(e,t,o){e.setFontSize("12"),e.setFontColor("#ffffff"),e.setFontStyle(mxConstants.FONT_BOLD),e.text(t/2,o-6,0,0,"NEAT-PATCH",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxUtils.extend(mxRackShelf,mxShape),mxRackShelf.prototype.cst={SHAPE_RACK_SHELF:"mxgraph.rackGeneral.shelf"},mxRackShelf.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i)},mxRackShelf.prototype.background=function(e,t,o){e.setStrokeWidth(2),e.begin(),e.moveTo(1,0),e.lineTo(1,o-1),e.lineTo(t-1,o-1),e.lineTo(t-1,1),e.fillAndStroke()},mxUtils.extend(mxRackRackNumbering,mxShape),mxRackRackNumbering.prototype.cst={SHAPE_RACK_RACK_NUMBERING:"mxgraph.rackGeneral.rackNumbering",UNIT_NUM:"unitNum",UNIT_HEIGHT:"unitHeight",TEXT_COLOR:"textColor",NUM_DIR:"numDir",DIR_ASC:"ascend",DIR_DESC:"descend",TEXT_SIZE:"textSize"},mxRackRackNumbering.prototype.paintVertexShape=function(e,t,o,n,i){var a=parseFloat(mxUtils.getValue(this.style,mxRackRackNumbering.prototype.cst.UNIT_NUM,"42")),s=parseFloat(mxUtils.getValue(this.style,mxRackRackNumbering.prototype.cst.UNIT_HEIGHT,"14.8")),l=parseFloat(mxUtils.getValue(this.style,mxRackRackNumbering.prototype.cst.TEXT_SIZE,"12"));e.translate(t,o),i=a*s,this.background(e,n,i,l),e.setShadow(!1),this.sideText(e,n,i,a,s,l)},mxRackRackNumbering.prototype.background=function(e,t,o,n){e.rect(3*n,0,160.9,o),e.fillAndStroke()},mxRackRackNumbering.prototype.sideText=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,mxRackRackNumbering.prototype.cst.TEXT_COLOR,"#666666");var s=mxUtils.getValue(this.style,mxRackRackNumbering.prototype.cst.NUM_DIR,mxRackRackNumbering.prototype.cst.DIR_DESC);if(e.setFontSize(a),e.setFontColor(t),s===mxRackRackNumbering.prototype.cst.DIR_ASC)for(t=0;t<n;t++)e.text(a,.5*i+t*i,0,0,(t+1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);else for(t=0;t<n;t++)e.text(a,o-.5*i-t*i,0,0,(t+1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);for(e.setStrokeColor("#dddddd"),e.begin(),t=0;t<n+1;t++)e.moveTo(0,t*i),e.lineTo(3*a,t*i);e.stroke()},mxUtils.extend(mxRackRackCabinet,mxShape),mxRackRackCabinet.prototype.cst={SHAPE_RACK_RACK_CABINET:"mxgraph.rackGeneral.rackCabinet",UNIT_NUM:"unitNum",UNIT_HEIGHT:"unitHeight",TEXT_COLOR:"textColor",NUM_DIR:"numDir",NUMBER_DISPLAY:"numDisp",ON:"on",OFF:"off",DIR_ASC:"ascend",DIR_DESC:"descend",TEXT_SIZE:"textSize"},mxRackRackCabinet.prototype.paintVertexShape=function(e,t,o,n,i){var a=parseFloat(mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.UNIT_NUM,"12")),s=parseFloat(mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.UNIT_HEIGHT,"14.8")),l=parseFloat(mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.TEXT_SIZE,"12")),r=mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.NUMBER_DISPLAY,mxRackRackCabinet.prototype.cst.ON);r===mxRackRackCabinet.prototype.cst.ON?e.translate(t+2*l,o):e.translate(t,o),i=a*s+42,this.background(e,n,i,l),e.setShadow(!1),this.foreground(e,n,i,l),r===mxRackRackCabinet.prototype.cst.ON&&this.sideText(e,n,i,a,s,l)},mxRackRackCabinet.prototype.background=function(e,t,o,n){e.setFillColor("#ffffff"),e.rect(0,0,180,o),e.fillAndStroke()},mxRackRackCabinet.prototype.foreground=function(e,t,o,n){e.setFillColor("#f4f4f4"),e.rect(0,0,180,21),e.fillAndStroke(),e.rect(0,o-21,180,21),e.fillAndStroke(),e.rect(0,21,9,o-42),e.fillAndStroke(),e.rect(171,21,9,o-42),e.fillAndStroke(),e.ellipse(2.5,7.5,6,6),e.stroke(),e.ellipse(171.5,7.5,6,6),e.stroke(),e.ellipse(2.5,o-13.5,6,6),e.stroke(),e.ellipse(171.5,o-13.5,6,6),e.stroke()},mxRackRackCabinet.prototype.sideText=function(e,t,o,n,i,a){t=mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.TEXT_COLOR,"#666666");var s=mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.NUM_DIR,mxRackRackCabinet.prototype.cst.DIR_DESC);if(e.setFontSize(a),e.setFontColor(t),s===mxRackRackCabinet.prototype.cst.DIR_ASC)for(t=0;t<n;t++)e.text(-a,21+.5*i+t*i,0,0,(t+1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);else for(t=0;t<n;t++)e.text(-a,o-21-.5*i-t*i,0,0,(t+1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);for(e.setStrokeColor("#dddddd"),e.begin(),t=0;t<n+1;t++)e.moveTo(-2*a,21+t*i),e.lineTo(0,21+t*i);e.stroke()},mxUtils.extend(mxRackHorCableDuct1U,mxShape),mxRackHorCableDuct1U.prototype.cst={SHAPE_RACK_HOR_CABLE_DUCT_1U:"mxgraph.rackGeneral.horCableDuct1U"},mxRackHorCableDuct1U.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxRackHorCableDuct1U.prototype.background=function(e,t,o){e.rect(0,0,160.9,14.8),e.fillAndStroke()},mxRackHorCableDuct1U.prototype.foreground=function(e,t,o){e.rect(12,0,3,7),e.stroke(),e.rect(12,7,3,7.8),e.stroke(),e.rect(45.5,0,3,7),e.stroke(),e.rect(45.5,7,3,7.8),e.stroke(),e.rect(79,0,3,7),e.stroke(),e.rect(79,7,3,7.8),e.stroke(),e.rect(112.5,0,3,7),e.stroke(),e.rect(112.5,7,3,7.8),e.stroke(),e.rect(146,0,3,7),e.stroke(),e.rect(146,7,3,7.8),e.stroke()},mxUtils.extend(mxRackHorCableDuct2U,mxShape),mxRackHorCableDuct2U.prototype.cst={SHAPE_RACK_HOR_CABLE_DUCT_2U:"mxgraph.rackGeneral.horCableDuct2U"},mxRackHorCableDuct2U.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxRackHorCableDuct2U.prototype.background=function(e,t,o){e.rect(0,0,160.9,29.6),e.fillAndStroke()},mxRackHorCableDuct2U.prototype.foreground=function(e,t,o){e.rect(12,0,3,7),e.stroke(),e.rect(12,7,3,22.6),e.stroke(),e.rect(45.5,0,3,7),e.stroke(),e.rect(45.5,7,3,22.6),e.stroke(),e.rect(79,0,3,7),e.stroke(),e.rect(79,7,3,22.6),e.stroke(),e.rect(112.5,0,3,7),e.stroke(),e.rect(112.5,7,3,22.6),e.stroke(),e.rect(146,0,3,7),e.stroke(),e.rect(146,7,3,22.6),e.stroke()},mxUtils.extend(mxRackHorRoutingBank1U,mxShape),mxRackHorRoutingBank1U.prototype.cst={SHAPE_RACK_HOR_ROUTING_BANK_1U:"mxgraph.rackGeneral.horRoutingBank1U"},mxRackHorRoutingBank1U.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxRackHorRoutingBank1U.prototype.background=function(e,t,o){e.rect(0,0,160.9,14.8),e.fillAndStroke()},mxRackHorRoutingBank1U.prototype.foreground=function(e,t,o){e.rect(10,4,17,6.8),e.stroke(),e.rect(31,4,17,6.8),e.stroke(),e.rect(52,4,17,6.8),e.stroke(),e.rect(73,4,17,6.8),e.stroke(),e.rect(94,4,17,6.8),e.stroke(),e.rect(115,4,17,6.8),e.stroke(),e.rect(136,4,17,6.8),e.stroke()},mxUtils.extend(mxRackHorRoutingBank2U,mxShape),mxRackHorRoutingBank2U.prototype.cst={SHAPE_RACK_HOR_ROUTING_BANK_2U:"mxgraph.rackGeneral.horRoutingBank2U"},mxRackHorRoutingBank2U.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxRackHorRoutingBank2U.prototype.background=function(e,t,o){e.rect(0,0,160.9,29.6),e.fillAndStroke()},mxRackHorRoutingBank2U.prototype.foreground=function(e,t,o){e.rect(10,4,17,6.8),e.stroke(),e.rect(31,4,17,6.8),e.stroke(),e.rect(52,4,17,6.8),e.stroke(),e.rect(73,4,17,6.8),e.stroke(),e.rect(94,4,17,6.8),e.stroke(),e.rect(115,4,17,6.8),e.stroke(),e.rect(136,4,17,6.8),e.stroke(),e.rect(10,18.8,17,6.8),e.stroke(),e.rect(31,18.8,17,6.8),e.stroke(),e.rect(52,18.8,17,6.8),e.stroke(),e.rect(73,18.8,17,6.8),e.stroke(),e.rect(94,18.8,17,6.8),e.stroke(),e.rect(115,18.8,17,6.8),e.stroke(),e.rect(136,18.8,17,6.8),e.stroke()},mxUtils.extend(mxRackNeatPatch2U,mxShape),mxRackNeatPatch2U.prototype.cst={SHAPE_RACK_NEAT_PATCH_2U:"mxgraph.rackGeneral.neatPatch2U"},mxRackNeatPatch2U.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.mainText(e,n,i)},mxRackNeatPatch2U.prototype.background=function(e,t,o){e.setFillColor("#666666"),e.rect(0,0,160.9,29.6),e.fillAndStroke()},mxRackNeatPatch2U.prototype.mainText=function(e,t,o){e.setFontSize("12"),e.setFontColor("#ffffff"),e.setFontStyle(mxConstants.FONT_BOLD),e.text(80.45,24,0,0,"NEAT-PATCH",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)},mxUtils.extend(mxRackShelf1U,mxShape),mxRackShelf1U.prototype.cst={SHAPE_RACK_SHELF_1U:"mxgraph.rackGeneral.shelf1U"},mxRackShelf1U.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i)},mxRackShelf1U.prototype.background=function(e,t,o){e.setStrokeWidth(2),e.begin(),e.moveTo(0,0),e.lineTo(0,14.8),e.lineTo(160.9,14.8),e.lineTo(160.9,0),e.fillAndStroke()},mxUtils.extend(mxRackShelf2U,mxShape),mxRackShelf2U.prototype.cst={SHAPE_RACK_SHELF_2U:"mxgraph.rackGeneral.shelf2U"},mxRackShelf2U.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i)},mxRackShelf2U.prototype.background=function(e,t,o){e.setStrokeWidth(2),e.begin(),e.moveTo(0,0),e.lineTo(0,29.6),e.lineTo(160.9,29.6),e.lineTo(160.9,0),e.fillAndStroke()},mxUtils.extend(mxRackShelf4U,mxShape),mxRackShelf4U.prototype.cst={SHAPE_RACK_SHELF_4U:"mxgraph.rackGeneral.shelf4U"},mxRackShelf4U.prototype.paintVertexShape=function(e,t,o,n,i){e.translate(t,o),this.background(e,n,i)},mxRackShelf4U.prototype.background=function(e,t,o){e.setStrokeWidth(2),e.begin(),e.moveTo(0,0),e.lineTo(0,59.2),e.lineTo(160.9,59.2),e.lineTo(160.9,0),e.fillAndStroke()},mxUtils.extend(mxRackChannelBase,mxShape),mxRackChannelBase.prototype.cst={SHAPE_RACK_CHANNEL_BASE:"mxgraph.rackGeneral.channelBase"},mxRackChannelBase.prototype.paintVertexShape=function(e,t,o,n,i){n=Math.max(n,20),i=Math.max(i,20),e.translate(t,o),this.background(e,n,i),e.setShadow(!1),this.foreground(e,n,i)},mxRackChannelBase.prototype.background=function(e,t,o){e.rect(10,o-15,5,15),e.fillAndStroke(),e.rect(t-15,o-15,5,15),e.fillAndStroke(),e.rect(0,0,t,o-5),e.fillAndStroke()},mxRackChannelBase.prototype.foreground=function(e,t,o){e.setFillColor("#000000"),e.rect(10,o-15,5,15),e.fillAndStroke(),e.rect(t-15,o-15,5,15),e.fillAndStroke()},mxUtils.extend(mxRackCabinetLeg,mxShape),mxRackCabinetLeg.prototype.cst={SHAPE_RACK_CABINET_LEG:"mxgraph.rackGeneral.cabinetLeg"},mxRackCabinetLeg.prototype.paintVertexShape=function(e,t,o,n,i){n=Math.max(n,20),i=Math.max(i,20),e.translate(t,o),this.background(e,n,i)},mxRackCabinetLeg.prototype.background=function(e,t,o){e.begin(),e.moveTo(0,o-10),e.lineTo(5,o-10),e.lineTo(5,o-12),e.lineTo(9,o-12),e.lineTo(9,o-10),e.lineTo(t-10,o-10),e.lineTo(t-10,9),e.lineTo(t-12,9),e.lineTo(t-12,5),e.lineTo(t-10,5),e.lineTo(t-10,0),e.lineTo(t,0),e.lineTo(t,o),e.lineTo(0,o),e.close(),e.fillAndStroke()},mxCellRenderer.registerShape(mxRackContainer.prototype.cst.SHAPE_RACK_CONTAINER,mxRackContainer),mxCellRenderer.registerShape(mxRackHorCableDuct.prototype.cst.SHAPE_RACK_HOR_CABLE_DUCT,mxRackHorCableDuct),mxCellRenderer.registerShape(mxRackHorRoutingBank.prototype.cst.SHAPE_RACK_HOR_ROUTING_BANK,mxRackHorRoutingBank),mxCellRenderer.registerShape(mxRackNeatPatch.prototype.cst.SHAPE_RACK_NEAT_PATCH,mxRackNeatPatch),mxCellRenderer.registerShape(mxRackShelf.prototype.cst.SHAPE_RACK_SHELF,mxRackShelf),mxCellRenderer.registerShape(mxRackPlate.prototype.cst.SHAPE_RACK_PLATE,mxRackPlate),mxCellRenderer.registerShape(mxRackRackNumbering.prototype.cst.SHAPE_RACK_RACK_NUMBERING,mxRackRackNumbering),mxCellRenderer.registerShape(mxRackRackCabinet.prototype.cst.SHAPE_RACK_RACK_CABINET,mxRackRackCabinet),mxCellRenderer.registerShape(mxRackHorCableDuct1U.prototype.cst.SHAPE_RACK_HOR_CABLE_DUCT_1U,mxRackHorCableDuct1U),mxCellRenderer.registerShape(mxRackHorCableDuct2U.prototype.cst.SHAPE_RACK_HOR_CABLE_DUCT_2U,mxRackHorCableDuct2U),mxCellRenderer.registerShape(mxRackHorRoutingBank1U.prototype.cst.SHAPE_RACK_HOR_ROUTING_BANK_1U,mxRackHorRoutingBank1U),mxCellRenderer.registerShape(mxRackHorRoutingBank2U.prototype.cst.SHAPE_RACK_HOR_ROUTING_BANK_2U,mxRackHorRoutingBank2U),mxCellRenderer.registerShape(mxRackNeatPatch2U.prototype.cst.SHAPE_RACK_NEAT_PATCH_2U,mxRackNeatPatch2U),mxCellRenderer.registerShape(mxRackShelf1U.prototype.cst.SHAPE_RACK_SHELF_1U,mxRackShelf1U),mxCellRenderer.registerShape(mxRackShelf2U.prototype.cst.SHAPE_RACK_SHELF_2U,mxRackShelf2U),mxCellRenderer.registerShape(mxRackShelf4U.prototype.cst.SHAPE_RACK_SHELF_4U,mxRackShelf4U),mxCellRenderer.registerShape(mxRackChannelBase.prototype.cst.SHAPE_RACK_CHANNEL_BASE,mxRackChannelBase),mxCellRenderer.registerShape(mxRackCabinetLeg.prototype.cst.SHAPE_RACK_CABINET_LEG,mxRackCabinetLeg);