F));return F};var g=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(l){if(null!=l.style&&"undefined"!==typeof pako){var q=mxUtils.getValue(l.style,mxConstants.STYLE_SHAPE,null);if(null!=q&&"string"===typeof q&&"stencil("==q.substring(0,8))try{var y=q.substring(8,q.length-1),F=mxUtils.parseXml(Graph.decompress(y));return new mxShape(new mxStencil(F.documentElement))}catch(C){null!=window.console&&console.log("Error in shape: "+C)}}return g.apply(this,arguments)}})();


The product does not properly control the allocation and maintenance of a limited resource, thereby enabling an actor to influence the amount of resources consumed, eventually leading to the exhaustion of available resources.


u&&u()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=function(d){var f="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=d&&0<window.location.search.length){var g="?",l;for(l in urlParams)0>mxUtils.indexOf(d,l)&&null!=urlParams[l]&&(f+=g+l+"="+urlParams[l],g="&")}else f=window.location.search;return f};EditorUi.prototype.getUrl=function(d){d=null!=d?d:window.location.pathname;var f=0<d.indexOf("?")?1:0;if("1"==urlParams.offline)d+=window.location.search;else{var g="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
l;for(l in urlParams)0>mxUtils.indexOf(g,l)&&(d=0==f?d+"?":d+"&",null!=urlParams[l]&&(d+=l+"="+urlParams[l],f++))}return d};EditorUi.prototype.showLinkDialog=function(d,f,g,l,q){d=new LinkDialog(this,d,f,g,!0,l,q);this.showDialog(d.container,560,130,!0,!0);d.init()};EditorUi.prototype.getServiceCount=function(d){var f=1;null==this.drive&&"function"!==typeof window.DriveClient||f++;null==this.dropbox&&"function"!==typeof window.DropboxClient||f++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||


0),!1,null,0,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(x+p)));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));m>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};n.prototype.getConstraints=function(c,m,x){c=[];var p=Math.max(0,Math.min(m,Math.min(x,parseFloat(mxUtils.getValue(this.style,
"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(m-p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m-p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m-.5*p,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,.5*(x+p)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(m+p),x));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,x));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,x-.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,x-p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(x-p)));return c};y.prototype.getConstraints=function(c,m,x){c=[];m=Math.max(0,Math.min(x,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,


return this.editor.loadFonts(d)};EditorUi.prototype.createSvgDataUri=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(d)};EditorUi.prototype.embedCssFonts=function(d,f){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(d,f)};EditorUi.prototype.embedExtFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(d)};EditorUi.prototype.exportToCanvas=function(d,


Uint8Array.from||(Uint8Array.from=function(){var b=Object.prototype.toString,e=function(n){return"function"===typeof n||"[object Function]"===b.call(n)},k=Math.pow(2,53)-1;return function(n){var D=Object(n);if(null==n)throw new TypeError("Array.from requires an array-like object - not null or undefined");var t=1<arguments.length?arguments[1]:void 0,E;if("undefined"!==typeof t){if(!e(t))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(E=
arguments[2])}var d=Number(D.length);d=isNaN(d)?0:0!==d&&isFinite(d)?(0<d?1:-1)*Math.floor(Math.abs(d)):d;d=Math.min(Math.max(d,0),k);for(var f=e(this)?Object(new this(d)):Array(d),g=0,l;g<d;)l=D[g],f[g]=t?"undefined"===typeof E?t(l,g):t.call(E,l,g):l,g+=1;f.length=d;return f}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.METERS=4;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";


" "+f)}return'<svg width="'+f+'" height="'+f+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+f+'" height="'+f+'" patternUnits="userSpaceOnUse"><path d="'+g.join(" ")+'" fill="none" stroke="'+E+'" opacity="0.2" stroke-width="1"/><path d="M '+f+" 0 L 0 0 0 "+f+'" fill="none" stroke="'+E+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(E,d){b.apply(this,arguments);
if(null!=this.shiftPreview1){var f=this.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);var g=this.gridSize*this.view.scale*this.view.gridSteps;g=-Math.round(g-mxUtils.mod(this.view.translate.x*this.view.scale+E,g))+"px "+-Math.round(g-mxUtils.mod(this.view.translate.y*this.view.scale+d,g))+"px";f.style.backgroundPosition=g}};mxGraph.prototype.updatePageBreaks=function(E,d,f){var g=this.view.scale,l=this.view.translate,q=this.pageFormat,y=g*this.pageScale,F=this.view.getBackgroundPageBounds();


0),!1,null,.5*(m+p),x));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,x));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,x-.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,x-p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(x-p)));return c};y.prototype.getConstraints=function(c,m,x){c=[];m=Math.max(0,Math.min(x,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
.5),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,m));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,m));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-m));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,m+.5*(.5*x-m)));c.push(new mxConnectionConstraint(new mxPoint(1,
0),!1,null,0,m+.5*(.5*x-m)));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,x-m-.5*(.5*x-m)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,x-m-.5*(.5*x-m)));c.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*m));c.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*m));c.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-m));c.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-m));return c};C.prototype.getConstraints=


return null!=d&&(d.constructor==DriveFile&&d.isEditable()||d.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(d){d.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(d,f,g,l,q,y,F,C){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(d,f,g,l,q,y,F,C)};EditorUi.prototype.loadFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");


f,g,l,q,y,F,C,H,G,aa,da,ba,Y,qa,O){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(d,f,g,l,q,y,F,C,H,G,aa,da,ba,Y,qa,O)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(d,f,g,l){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(d,f,g,l)};EditorUi.prototype.convertImageToDataUri=


1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,x-p));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,p));return c};ja.prototype.getConstraints=function(c,m,x){c=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var p=Math.max(0,Math.min(x,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var v=m*Math.max(0,
Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,.5*(x-p)));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,m,x-p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,v,x));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,x-p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(x-p)));m>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};mxRectangleShape.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(.75,


0),!1,null,0,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*v));return c};Ka.prototype.getConstraints=function(c,m,x){c=[];var p=Math.max(0,Math.min(m,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),v=Math.max(0,Math.min(x,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,m,.5*v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(m+p),v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,.5*(x+v)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,x));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,x));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
1),!1));return c};bb.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];$a.prototype.getConstraints=


return null!=d&&(d.constructor==DriveFile&&d.isEditable()||d.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(d){d.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(d,f,g,l,q,y,F,C){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(d,f,g,l,q,y,F,C)};EditorUi.prototype.loadFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");
return this.editor.loadFonts(d)};EditorUi.prototype.createSvgDataUri=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(d)};EditorUi.prototype.embedCssFonts=function(d,f){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(d,f)};EditorUi.prototype.embedExtFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(d)};EditorUi.prototype.exportToCanvas=function(d,


function(ea,ka,ja){ea.attachEvent?ea.attachEvent("on"+ka,ja):ea.addEventListener(ka,ja)};X(F,"scroll",y);X(H,"scroll",y)}var d=function(){GraphViewer.resizeSensorEnabled&&n()},f=Object.prototype.toString.call(k),g="[object Array]"===f||"[object NodeList]"===f||"[object HTMLCollection]"===f||"undefined"!==typeof jQuery&&k instanceof jQuery||"undefined"!==typeof Elements&&k instanceof Elements;if(g){f=0;for(var l=k.length;f<l;f++)E(k[f],d)}else E(k,d);this.detach=function(){if(g)for(var q=0,y=k.length;q<


E.defaultPageBorderColor,E.container.className="geDiagramContainer geDiagramBackdrop",f.style.backgroundImage="none",f.style.backgroundColor=""):(E.container.className="geDiagramContainer",f.style.backgroundPosition=l,f.style.backgroundColor=d,f.style.backgroundImage=g)};mxGraphView.prototype.createSvgGrid=function(E){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var f=this.gridSteps*d,g=[],l=1;l<this.gridSteps;l++){var q=l*d;g.push("M 0 "+q+" L "+f+" "+q+" M "+q+" 0 L "+q+
" "+f)}return'<svg width="'+f+'" height="'+f+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+f+'" height="'+f+'" patternUnits="userSpaceOnUse"><path d="'+g.join(" ")+'" fill="none" stroke="'+E+'" opacity="0.2" stroke-width="1"/><path d="M '+f+" 0 L 0 0 0 "+f+'" fill="none" stroke="'+E+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(E,d){b.apply(this,arguments);


u&&u()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=function(d){var f="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=d&&0<window.location.search.length){var g="?",l;for(l in urlParams)0>mxUtils.indexOf(d,l)&&null!=urlParams[l]&&(f+=g+l+"="+urlParams[l],g="&")}else f=window.location.search;return f};EditorUi.prototype.getUrl=function(d){d=null!=d?d:window.location.pathname;var f=0<d.indexOf("?")?1:0;if("1"==urlParams.offline)d+=window.location.search;else{var g="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),


return this.editor.loadFonts(d)};EditorUi.prototype.createSvgDataUri=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(d)};EditorUi.prototype.embedCssFonts=function(d,f){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(d,f)};EditorUi.prototype.embedExtFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(d)};EditorUi.prototype.exportToCanvas=function(d,
f,g,l,q,y,F,C,H,G,aa,da,ba,Y,qa,O){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(d,f,g,l,q,y,F,C,H,G,aa,da,ba,Y,qa,O)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(d,f,g,l){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(d,f,g,l)};EditorUi.prototype.convertImageToDataUri=


function(d,f){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(d,f)};EditorUi.prototype.base64Encode=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(d)};EditorUi.prototype.updateCRC=function(d,f,g,l){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(d,f,g,l)};EditorUi.prototype.crc32=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(d)};


.5),!1));m>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};G.prototype.getConstraints=function(c,m,x){c=[];var p=Math.max(0,Math.min(m,Math.min(x,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(m+p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(x+p)));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));m>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};n.prototype.getConstraints=function(c,m,x){c=[];var p=Math.max(0,Math.min(m,Math.min(x,parseFloat(mxUtils.getValue(this.style,


F));return F};var g=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(l){if(null!=l.style&&"undefined"!==typeof pako){var q=mxUtils.getValue(l.style,mxConstants.STYLE_SHAPE,null);if(null!=q&&"string"===typeof q&&"stencil("==q.substring(0,8))try{var y=q.substring(8,q.length-1),F=mxUtils.parseXml(Graph.decompress(y));return new mxShape(new mxStencil(F.documentElement))}catch(C){null!=window.console&&console.log("Error in shape: "+C)}}return g.apply(this,arguments)}})();


u&&u()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=function(d){var f="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=d&&0<window.location.search.length){var g="?",l;for(l in urlParams)0>mxUtils.indexOf(d,l)&&null!=urlParams[l]&&(f+=g+l+"="+urlParams[l],g="&")}else f=window.location.search;return f};EditorUi.prototype.getUrl=function(d){d=null!=d?d:window.location.pathname;var f=0<d.indexOf("?")?1:0;if("1"==urlParams.offline)d+=window.location.search;else{var g="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
l;for(l in urlParams)0>mxUtils.indexOf(g,l)&&(d=0==f?d+"?":d+"&",null!=urlParams[l]&&(d+=l+"="+urlParams[l],f++))}return d};EditorUi.prototype.showLinkDialog=function(d,f,g,l,q){d=new LinkDialog(this,d,f,g,!0,l,q);this.showDialog(d.container,560,130,!0,!0);d.init()};EditorUi.prototype.getServiceCount=function(d){var f=1;null==this.drive&&"function"!==typeof window.DriveClient||f++;null==this.dropbox&&"function"!==typeof window.DropboxClient||f++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||


0),!1,null,0,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(x+p)));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));m>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};n.prototype.getConstraints=function(c,m,x){c=[];var p=Math.max(0,Math.min(m,Math.min(x,parseFloat(mxUtils.getValue(this.style,
"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(m-p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m-p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m-.5*p,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,.5*(x+p)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(m+p),x));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,x));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,x-.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,x-p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(x-p)));return c};y.prototype.getConstraints=function(c,m,x){c=[];m=Math.max(0,Math.min(x,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,


Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.


function(d,g,n,t,u,v,A,H){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(d,g,n,t,u,v,A,H)};EditorUi.prototype.loadFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(d)};EditorUi.prototype.createSvgDataUri=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(d)};EditorUi.prototype.embedCssFonts=function(d,g){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(d,


Q))}var S="";null==e&&(e=u,S='

');null==k&&(k=function(){var Q=null;try{Q=JSON.parse(localStorage.getItem("mxODPickerRecentList"))}catch(V){}return Q});null==l&&(l=function(Q){if(null!=Q){var V=k()||{};delete Q["@microsoft.graph.downloadUrl"];V[Q.id]=Q;localStorage.setItem("mxODPickerRecentList",JSON.stringify(V))}});S='

OneDrive

'+mxUtils.htmlEntities(mxResources.get("files"))+


g)};EditorUi.prototype.embedExtFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(d)};EditorUi.prototype.exportToCanvas=function(d,g,n,t,u,v,A,H,L,F,S,p,q,C,J,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(d,g,n,t,u,v,A,H,L,F,S,p,q,C,J,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};


this.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.sidebarWindow.window.fit()}));this.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);this.sidebarWindow.window.setVisible(!1)}};EditorUi.prototype.setSketchMode=function(d){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetSketchMode(d);null==urlParams.rough&&(mxSettings.settings.sketchMode=d,mxSettings.save());
this.fireEvent(new mxEventObject("sketchModeChanged"))}),0)};Editor.createMinimalCss=function(){return(Editor.isDarkMode()?"html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html > body.geEditor > div > a.geItem { background-color: "+


mxResources.get("mermaid")+"...","mermaid");I.showDialog(n.container,620,420,!0,!1);n.init()}));var d="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),g=function(n,t,u,v){n.addItem(u,null,mxUtils.bind(this,function(){var A=new CreateGraphDialog(I,u,v);I.showDialog(A.container,620,420,!0,!1);A.init()}),t)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(n,t){for(var u=0;u<d.length;u++)"-"==d[u]?n.addSeparator(t):g(n,t,mxResources.get(d[u])+


N.cell.id,N.text),O=!1);O||G++;P++});console.log("states checked",P,"invalid",G)}));c.actions.addAction("testCheckFile",mxUtils.bind(this,function(){var p=null!=c.pages&&null!=c.getCurrentFile()?c.getCurrentFile().getAnonymizedXmlForPages(c.pages):"";p=new TextareaDialog(c,"Paste Data:",p,function(q){if(0<q.length)try{var C=function(N){function T(Y){if(null==X[Y]){if(X[Y]=!0,null!=K[Y]){for(;0<K[Y].length;){var Z=K[Y].pop();T(Z)}delete K[Y]}}else mxLog.debug(m+": Visited: "+Y)}var m=N.parentNode.id,
B=N.childNodes;N={};for(var K={},R=null,U={},W=0;W<B.length;W++){var Q=B[W];if(null!=Q.id&&0<Q.id.length)if(null==N[Q.id]){N[Q.id]=Q.id;var V=Q.getAttribute("parent");null==V?null!=R?mxLog.debug(m+": Multiple roots: "+Q.id):R=Q.id:(null==K[V]&&(K[V]=[]),K[V].push(Q.id))}else U[Q.id]=Q.id}B=Object.keys(U);0<B.length?(B=m+": "+B.length+" Duplicates: "+B.join(", "),mxLog.debug(B+" (see console)")):mxLog.debug(m+": Checked");var X={};null==R?mxLog.debug(m+": No root"):(T(R),Object.keys(X).length!=Object.keys(N).length&&
(mxLog.debug(m+": Invalid tree: (see console)"),console.log(m+": Invalid tree",K)))};"<"!=q.charAt(0)&&(q=Graph.decompress(q),mxLog.debug("See console for uncompressed XML"),console.log("xml",q));var J=mxUtils.parseXml(q),G=c.getPagesForNode(J.documentElement,"mxGraphModel");if(null!=G&&0<G.length)try{var P=c.getHashValueForPages(G);mxLog.debug("Checksum: ",P)}catch(N){mxLog.debug("Error: ",N.message)}else mxLog.debug("No pages found for checksum");var O=J.getElementsByTagName("root");for(q=0;q<O.length;q++)C(O[q]);


N)):(m.noP2PMapDel=!0,m.destroy(),EditorUi.debug("P2PCollab: p2p socket duplicate",N))});m.on("close",function(){m.noP2PMapDel||(EditorUi.debug("P2PCollab: p2p socket closed",N),D(u[N]),delete F[N])});m.on("data",x);return L[N]=m}}function E(N,T){D(T||u[N]);null!=N&&(delete u[N],v[N]=!1)}function D(N){var T=g[N];if(null!=T){var m=T.selection,B;for(B in m)null!=m[B]&&m[B].destroy();null!=T.cursor&&null!=T.cursor.parentNode&&T.cursor.parentNode.removeChild(T.cursor);clearTimeout(T.inactiveTO);delete g[N]}}


function(d,g,n,t,u,v,A,H){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(d,g,n,t,u,v,A,H)};EditorUi.prototype.loadFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(d)};EditorUi.prototype.createSvgDataUri=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(d)};EditorUi.prototype.embedCssFonts=function(d,g){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(d,
g)};EditorUi.prototype.embedExtFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(d)};EditorUi.prototype.exportToCanvas=function(d,g,n,t,u,v,A,H,L,F,S,p,q,C,J,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(d,g,n,t,u,v,A,H,L,F,S,p,q,C,J,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};


	ui.destroy = function()
	{
		mxEvent.removeListener(document.documentElement, 'keydown', keydownHandler);
		document.body.removeChild(backdrop);
		document.body.removeChild(closeImg);
		document.body.style.overflow = overflow;
		GraphViewer.resizeSensorEnabled = true;

		destroy.apply(this, arguments);
	};


	this.cellRenderer.getLabelValue = function(state)
	{
		var result = mxCellRenderer.prototype.getLabelValue.apply(this, arguments);

		if (state.view.graph.isHtmlLabel(state.cell))
		{
			if (state.style['html'] != 1)
			{
				result = mxUtils.htmlEntities(result, false);
			}
			else
			{
				// Skips sanitizeHtml for unchanged labels
				if (state.lastLabelValue != result)
				{
					state.lastLabelValue = result;
					result = Graph.sanitizeHtml(result);
				}
			}
		}

		return result;
	};


function(c,e,g,q,p,t,x,B){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(c,e,g,q,p,t,x,B)};EditorUi.prototype.loadFonts=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(c)};EditorUi.prototype.createSvgDataUri=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(c)};EditorUi.prototype.embedCssFonts=function(c,e){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(c,


mxResources.get("mermaid")+"...","mermaid");J.showDialog(g.container,620,420,!0,!1);g.init()}));var c="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),e=function(g,q,p,t){g.addItem(p,null,mxUtils.bind(this,function(){var x=new CreateGraphDialog(J,p,t);J.showDialog(x.container,620,420,!0,!1);x.init()}),q)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(g,q){for(var p=0;p<c.length;p++)"-"==c[p]?g.addSeparator(q):e(g,q,mxResources.get(c[p])+


v.x,v.y),b.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",n))}finally{b.editor.graph.getModel().endUpdate()}b.editor.graph.setSelectionCells(n);b.editor.graph.scrollCellToVisible(b.editor.graph.getSelectionCell());t.destroy();q.parentNode.removeChild(q)}}}function u(){return"list"==F.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean\n\nAddress\n-street: String\n-city: String\n-state: String":"mermaid"==F.value||
"mermaid2drawio"==F.value?"graph TD;\n  A--\x3eB;\n  A--\x3eC;\n  B--\x3eD;\n  C--\x3eD;":"table"==F.value?"CREATE TABLE Suppliers\n(\nsupplier_id int NOT NULL PRIMARY KEY,\nsupplier_name char(50) NOT NULL,\ncontact_name char(50),\n);\nCREATE TABLE Customers\n(\ncustomer_id int NOT NULL PRIMARY KEY,\ncustomer_name char(50) NOT NULL,\naddress char(50),\ncity char(50),\nstate char(25),\nzip_code char(10)\n);\n":"plantUmlPng"==F.value?"@startuml\nskinparam backgroundcolor transparent\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml":
"plantUmlSvg"==F.value||"plantUmlTxt"==F.value?"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml":";Example:\na->b\nb->edge label->c\nc->a\n"}var v=b.editor.graph.getFreeInsertPoint();f=document.createElement("div");f.style.textAlign="right";var E=document.createElement("textarea");E.style.boxSizing="border-box";E.style.resize=


e)};EditorUi.prototype.embedExtFonts=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(c)};EditorUi.prototype.exportToCanvas=function(c,e,g,q,p,t,x,B,I,A,S,l,n,z,C,D){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(c,e,g,q,p,t,x,B,I,A,S,l,n,z,C,D)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};


EditorUi.prototype.convertImages=function(c,e,g,q){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(c,e,g,q)};EditorUi.prototype.convertImageToDataUri=function(c,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(c,e)};EditorUi.prototype.base64Encode=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(c)};EditorUi.prototype.updateCRC=function(c,e,g,q){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");


Y&&Y()}}catch(Ma){this.handleError(Ma)}};EditorUi.prototype.getSearch=function(c){var e="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=c&&0<window.location.search.length){var g="?",q;for(q in urlParams)0>mxUtils.indexOf(c,q)&&null!=urlParams[q]&&(e+=g+q+"="+urlParams[q],g="&")}else e=window.location.search;return e};EditorUi.prototype.getUrl=function(c){c=null!=c?c:window.location.pathname;var e=0<c.indexOf("?")?1:0;if("1"==urlParams.offline)c+=window.location.search;else{var g="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),


Y&&Y()}}catch(Ma){this.handleError(Ma)}};EditorUi.prototype.getSearch=function(c){var e="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=c&&0<window.location.search.length){var g="?",q;for(q in urlParams)0>mxUtils.indexOf(c,q)&&null!=urlParams[q]&&(e+=g+q+"="+urlParams[q],g="&")}else e=window.location.search;return e};EditorUi.prototype.getUrl=function(c){c=null!=c?c:window.location.pathname;var e=0<c.indexOf("?")?1:0;if("1"==urlParams.offline)c+=window.location.search;else{var g="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),
q;for(q in urlParams)0>mxUtils.indexOf(g,q)&&(c=0==e?c+"?":c+"&",null!=urlParams[q]&&(c+=q+"="+urlParams[q],e++))}return c};EditorUi.prototype.showLinkDialog=function(c,e,g,q,p){c=new LinkDialog(this,c,e,g,!0,q,p);this.showDialog(c.container,560,130,!0,!0);c.init()};EditorUi.prototype.getServiceCount=function(c){var e=1;null==this.drive&&"function"!==typeof window.DriveClient||e++;null==this.dropbox&&"function"!==typeof window.DropboxClient||e++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||


O.cell.id,O.text),K=!1);K||D++;M++});console.log("states checked",M,"invalid",D)}));d.actions.addAction("testCheckFile",mxUtils.bind(this,function(){var l=null!=d.pages&&null!=d.getCurrentFile()?d.getCurrentFile().getAnonymizedXmlForPages(d.pages):"";l=new TextareaDialog(d,"Paste Data:",l,function(n){if(0<n.length)try{var z=function(O){function V(Y){if(null==X[Y]){if(X[Y]=!0,null!=G[Y]){for(;0<G[Y].length;){var Z=G[Y].pop();V(Z)}delete G[Y]}}else mxLog.debug(k+": Visited: "+Y)}var k=O.parentNode.id,
y=O.childNodes;O={};for(var G={},P=null,Q={},U=0;U<y.length;U++){var T=y[U];if(null!=T.id&&0<T.id.length)if(null==O[T.id]){O[T.id]=T.id;var W=T.getAttribute("parent");null==W?null!=P?mxLog.debug(k+": Multiple roots: "+T.id):P=T.id:(null==G[W]&&(G[W]=[]),G[W].push(T.id))}else Q[T.id]=T.id}y=Object.keys(Q);0<y.length?(y=k+": "+y.length+" Duplicates: "+y.join(", "),mxLog.debug(y+" (see console)")):mxLog.debug(k+": Checked");var X={};null==P?mxLog.debug(k+": No root"):(V(P),Object.keys(X).length!=Object.keys(O).length&&
(mxLog.debug(k+": Invalid tree: (see console)"),console.log(k+": Invalid tree",G)))};"<"!=n.charAt(0)&&(n=Graph.decompress(n),mxLog.debug("See console for uncompressed XML"),console.log("xml",n));var C=mxUtils.parseXml(n),D=d.getPagesForNode(C.documentElement,"mxGraphModel");if(null!=D&&0<D.length)try{var M=d.getHashValueForPages(D);mxLog.debug("Checksum: ",M)}catch(O){mxLog.debug("Error: ",O.message)}else mxLog.debug("No pages found for checksum");var K=C.getElementsByTagName("root");for(n=0;n<K.length;n++)z(K[n]);


this.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.sidebarWindow.window.fit()}));this.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);this.sidebarWindow.window.setVisible(!1)}};EditorUi.prototype.setSketchMode=function(c){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetSketchMode(c);null==urlParams.rough&&(mxSettings.settings.sketchMode=c,mxSettings.save());
this.fireEvent(new mxEventObject("sketchModeChanged"))}),0)};Editor.createMinimalCss=function(){return(Editor.isDarkMode()?"html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html > body.geEditor > div > a.geItem { background-color: "+


function(c,e,g,q,p,t,x,B){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(c,e,g,q,p,t,x,B)};EditorUi.prototype.loadFonts=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(c)};EditorUi.prototype.createSvgDataUri=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(c)};EditorUi.prototype.embedCssFonts=function(c,e){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(c,
e)};EditorUi.prototype.embedExtFonts=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(c)};EditorUi.prototype.exportToCanvas=function(c,e,g,q,p,t,x,B,I,A,S,l,n,z,C,D){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(c,e,g,q,p,t,x,B,I,A,S,l,n,z,C,D)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};


return Editor.updateCRC(c,e,g,q)};EditorUi.prototype.crc32=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(c)};EditorUi.prototype.writeGraphModelToPng=function(c,e,g,q,p){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(c,e,g,q,p)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var c=[],e=0;e<localStorage.length;e++){var g=


EditorUi.prototype.convertImages=function(c,e,g,q){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(c,e,g,q)};EditorUi.prototype.convertImageToDataUri=function(c,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(c,e)};EditorUi.prototype.base64Encode=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(c)};EditorUi.prototype.updateCRC=function(c,e,g,q){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");
return Editor.updateCRC(c,e,g,q)};EditorUi.prototype.crc32=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(c)};EditorUi.prototype.writeGraphModelToPng=function(c,e,g,q,p){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(c,e,g,q,p)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var c=[],e=0;e<localStorage.length;e++){var g=


this.spacing=0}function Ta(){mxArrowConnector.call(this);this.spacing=0}function ta(){mxActor.call(this)}function Aa(){mxRectangleShape.call(this)}function Ea(){mxActor.call(this)}function za(){mxActor.call(this)}function Va(){mxActor.call(this)}function La(){mxActor.call(this)}function Ka(){mxActor.call(this)}function cb(){mxActor.call(this)}function Ca(){mxActor.call(this)}function Ma(){mxActor.call(this)}function x(){mxActor.call(this)}function L(){mxActor.call(this)}function P(){mxEllipse.call(this)}


function ba(){mxShape.call(this)}function V(){mxShape.call(this)}function Z(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function ka(){mxShape.call(this)}function qa(){mxShape.call(this)}function ra(){mxShape.call(this)}function pa(){mxShape.call(this)}function wa(){mxCylinder.call(this)}function Da(){mxCylinder.call(this)}function Ba(){mxRectangleShape.call(this)}function ya(){mxDoubleEllipse.call(this)}function Oa(){mxDoubleEllipse.call(this)}function Qa(){mxArrowConnector.call(this);


function(c,l,u){c=[];var p=Math.max(0,Math.min(l,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*p,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,p));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,l,.5*(u+p)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));l>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};z.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(1,


1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];La.prototype.getConstraints=function(c,l,u){c=[];var p=u*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),t=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"arrowSize",this.arrowSize))));p=(u-p)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-t),p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-t,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-t,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-t),u-p));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,u-p));return c};Ka.prototype.getConstraints=function(c,l,u){c=[];var p=u*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",La.prototype.arrowWidth)))),t=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",La.prototype.arrowSize))));p=(u-p)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,p));c.push(new mxConnectionConstraint(new mxPoint(0,


Uint8Array.from||(Uint8Array.from=function(){var b=Object.prototype.toString,e=function(n){return"function"===typeof n||"[object Function]"===b.call(n)},g=Math.pow(2,53)-1;return function(n){var y=Object(n);if(null==n)throw new TypeError("Array.from requires an array-like object - not null or undefined");var q=1<arguments.length?arguments[1]:void 0,E;if("undefined"!==typeof q){if(!e(q))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(E=
arguments[2])}var N=Number(y.length);N=isNaN(N)?0:0!==N&&isFinite(N)?(0<N?1:-1)*Math.floor(Math.abs(N)):N;N=Math.min(Math.max(N,0),g);for(var T=e(this)?Object(new this(N)):Array(N),F=0,K;F<N;)K=y[F],T[F]=q?"undefined"===typeof E?q(K,F):q.call(E,K,F):K,F+=1;T.length=N;return T}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.METERS=4;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";


K||"undefined"!==typeof jQuery&&g instanceof jQuery||"undefined"!==typeof Elements&&g instanceof Elements;if(R){K=0;for(var W=g.length;K<W;K++)E(g[K],N)}else E(g,N);this.detach=function(){if(R)for(var d=0,f=g.length;d<f;d++)e.detach(g[d]);else e.detach(g)}}};e.detach=function(g){g.resizeSensor&&(g.removeChild(g.resizeSensor),delete g.resizeSensor,delete g.resizedAttached)};window.ResizeSensor=e})();


function(c,l,u){c=[];var p=Math.min(l,u/2),t=Math.min(l-p,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*l);c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t+l-p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-p,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,l-p,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t+l-p),u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,u));return c};wa.prototype.getConstraints=function(c,l,u){l=parseFloat(mxUtils.getValue(c,"jettyWidth",wa.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,"jettyHeight",wa.prototype.jettyHeight));var p=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,l),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,


!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;Va.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.max(0,Math.min(u,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,
0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*l+.25*p,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),.5*(u+t)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),u));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(l-p),u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),.5*(u+t)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*l-.25*p,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*t));return c};Ea.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,


PrintDialog.createPrintPreview=function(b,e,g,n,y,q,E){e=new mxPrintPreview(b,e,g,n,y,q);e.title=mxResources.get("preview");e.addPageCss=!mxClient.IS_SF;e.printBackgroundImage=!0;e.autoOrigin=E;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";e.backgroundColor=b;var N=e.writeHead;e.writeHead=function(T){N.apply(this,arguments);T.writeln('<style type="text/css">');T.writeln("@media screen {");T.writeln("  body > div { padding:30px;box-sizing:content-box; }");T.writeln("}");T.writeln("</style>")};
return e};PrintDialog.previewEnabled=!0;


T="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" "),F=!1,K=!1;this.setDefaultStyle=function(Q){try{y.getModel().isEdge(Q)?K=!1:F=!1;var Y=y.getCellStyle(Q,!1),m=[],C=[],M;for(M in Y)m.push(Y[M]),C.push(M);y.getModel().isEdge(Q)?y.currentEdgeStyle={}:y.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",C,"values",m,"cells",[Q],"force",!0));y.getModel().isEdge(Q)?K=!0:F=!0}catch(ba){this.handleError(ba)}};


.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,u-p));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,u-p));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,p));return c};ma.prototype.getConstraints=function(c,l,u){c=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var p=Math.max(0,Math.min(u,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var t=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,
0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(u-p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,u-p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,u-p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(u-p)));l>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,


0),!1,null,l-p,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t+l-p),u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,u));return c};wa.prototype.getConstraints=function(c,l,u){l=parseFloat(mxUtils.getValue(c,"jettyWidth",wa.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,"jettyHeight",wa.prototype.jettyHeight));var p=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,l),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,0),!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(0,1),!1,null,l),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),
!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(u-.5*c,1.5*c)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(u-.5*c,3.5*c))];u>5*c&&p.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,l));u>8*c&&p.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,l));u>15*c&&p.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,l));return p};x.prototype.constraints=mxRectangleShape.prototype.constraints;L.prototype.constraints=mxRectangleShape.prototype.constraints;


E.setAttribute("width",g+"px");E.setAttribute("height",n+"px");E.setAttribute("viewBox",b+" "+e+" "+g+" "+n);q.appendChild(E);return E};Graph.htmlToPng=function(b,e,g,n){var y=document.createElement("canvas");y.width=e;y.height=g;var q=document.createElement("img");q.onload=mxUtils.bind(this,function(){y.getContext("2d").drawImage(q,0,0);n(y.toDataURL())});q.src="data:image/svg+xml,"+encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><foreignObject width="100%" height="100%">
I lick cheese
</foreignObject></svg>')};


function ba(){mxShape.call(this)}function V(){mxShape.call(this)}function Z(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function ka(){mxShape.call(this)}function qa(){mxShape.call(this)}function ra(){mxShape.call(this)}function pa(){mxShape.call(this)}function wa(){mxCylinder.call(this)}function Da(){mxCylinder.call(this)}function Ba(){mxRectangleShape.call(this)}function ya(){mxDoubleEllipse.call(this)}function Oa(){mxDoubleEllipse.call(this)}function Qa(){mxArrowConnector.call(this);
this.spacing=0}function Ta(){mxArrowConnector.call(this);this.spacing=0}function ta(){mxActor.call(this)}function Aa(){mxRectangleShape.call(this)}function Ea(){mxActor.call(this)}function za(){mxActor.call(this)}function Va(){mxActor.call(this)}function La(){mxActor.call(this)}function Ka(){mxActor.call(this)}function cb(){mxActor.call(this)}function Ca(){mxActor.call(this)}function Ma(){mxActor.call(this)}function x(){mxActor.call(this)}function L(){mxActor.call(this)}function P(){mxEllipse.call(this)}


Graph.createSvgImage=function(b,e,g,n,y){g=unescape(encodeURIComponent(Graph.svgDoctype+'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+b+'px" height="'+e+'px" '+(null!=n&&null!=y?'viewBox="0 0 '+n+" "+y+'" ':"")+'version="1.1">'+g+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(g):Base64.encode(g,!0)),b,e)};


0),!1,null,.5*(l-p),u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),.5*(u+t)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*l-.25*p,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*t));return c};Ea.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,
"dx",this.dx)))),t=Math.max(0,Math.min(u,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),t));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,p,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,.5*(u+t)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,u));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));return c};za.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,


Uint8Array.from||(Uint8Array.from=function(){var b=Object.prototype.toString,e=function(n){return"function"===typeof n||"[object Function]"===b.call(n)},g=Math.pow(2,53)-1;return function(n){var y=Object(n);if(null==n)throw new TypeError("Array.from requires an array-like object - not null or undefined");var q=1<arguments.length?arguments[1]:void 0,E;if("undefined"!==typeof q){if(!e(q))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(E=


1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));l>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};n.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-p,0));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,l-.5*p,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(u+p)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,u-.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,u-p));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,.5*(u-p)));return c};d.prototype.getConstraints=function(c,l,u){c=[];l=Math.max(0,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,l));c.push(new mxConnectionConstraint(new mxPoint(1,


T+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+T+'" height="'+T+'" patternUnits="userSpaceOnUse"><path d="'+F.join(" ")+'" fill="none" stroke="'+E+'" opacity="0.2" stroke-width="1"/><path d="M '+T+" 0 L 0 0 0 "+T+'" fill="none" stroke="'+E+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(E,N){b.apply(this,arguments);if(null!=this.shiftPreview1){var T=this.view.canvas;
null!=T.ownerSVGElement&&(T=T.ownerSVGElement);var F=this.gridSize*this.view.scale*this.view.gridSteps;F=-Math.round(F-mxUtils.mod(this.view.translate.x*this.view.scale+E,F))+"px "+-Math.round(F-mxUtils.mod(this.view.translate.y*this.view.scale+N,F))+"px";T.style.backgroundPosition=F}};mxGraph.prototype.updatePageBreaks=function(E,N,T){var F=this.view.scale,K=this.view.translate,R=this.pageFormat,W=F*this.pageScale,d=this.view.getBackgroundPageBounds();N=d.width;T=d.height;var f=new mxRectangle(F*


this.spacing=0}function Ta(){mxArrowConnector.call(this);this.spacing=0}function ta(){mxActor.call(this)}function Aa(){mxRectangleShape.call(this)}function Ea(){mxActor.call(this)}function za(){mxActor.call(this)}function Va(){mxActor.call(this)}function La(){mxActor.call(this)}function Ka(){mxActor.call(this)}function cb(){mxActor.call(this)}function Ca(){mxActor.call(this)}function Ma(){mxActor.call(this)}function x(){mxActor.call(this)}function L(){mxActor.call(this)}function P(){mxEllipse.call(this)}


0),!1,null,l,.5*(u+p)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));l>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};z.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(1,
0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(u+p)));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,
1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));l>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};n.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-p,0));c.push(new mxConnectionConstraint(new mxPoint(0,


E.style.backgroundPosition=d,E.style.backgroundImage=W,!R||null!=F.background&&F.background!=mxConstants.NONE?E.style.backgroundColor=K:(E.style.backgroundColor=F.diagramBackgroundColor,F.container.style.backgroundColor=""))};mxGraphView.prototype.createSvgGrid=function(E,N){for(N=this.graph.gridSize*this.scale*(null!=N?N:1);N<this.minGridSize;)N*=2;for(var T=this.gridSteps*N,F=[],K=1;K<this.gridSteps;K++){var R=K*N;F.push("M 0 "+R+" L "+T+" "+R+" M "+R+" 0 L "+R+" "+T)}return'<svg width="'+T+'" height="'+
T+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+T+'" height="'+T+'" patternUnits="userSpaceOnUse"><path d="'+F.join(" ")+'" fill="none" stroke="'+E+'" opacity="0.2" stroke-width="1"/><path d="M '+T+" 0 L 0 0 0 "+T+'" fill="none" stroke="'+E+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(E,N){b.apply(this,arguments);if(null!=this.shiftPreview1){var T=this.view.canvas;


function ba(){mxShape.call(this)}function V(){mxShape.call(this)}function Z(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function ka(){mxShape.call(this)}function qa(){mxShape.call(this)}function ra(){mxShape.call(this)}function pa(){mxShape.call(this)}function wa(){mxCylinder.call(this)}function Da(){mxCylinder.call(this)}function Ba(){mxRectangleShape.call(this)}function ya(){mxDoubleEllipse.call(this)}function Oa(){mxDoubleEllipse.call(this)}function Qa(){mxArrowConnector.call(this);


function(c,l,u){c=[];var p=Math.max(0,Math.min(l,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*p,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,p));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,l,.5*(u+p)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));l>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};z.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(1,


1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];La.prototype.getConstraints=function(c,l,u){c=[];var p=u*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),t=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"arrowSize",this.arrowSize))));p=(u-p)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-t),p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-t,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-t,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-t),u-p));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,u-p));return c};Ka.prototype.getConstraints=function(c,l,u){c=[];var p=u*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",La.prototype.arrowWidth)))),t=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",La.prototype.arrowSize))));p=(u-p)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,p));c.push(new mxConnectionConstraint(new mxPoint(0,


Uint8Array.from||(Uint8Array.from=function(){var b=Object.prototype.toString,e=function(n){return"function"===typeof n||"[object Function]"===b.call(n)},g=Math.pow(2,53)-1;return function(n){var y=Object(n);if(null==n)throw new TypeError("Array.from requires an array-like object - not null or undefined");var q=1<arguments.length?arguments[1]:void 0,E;if("undefined"!==typeof q){if(!e(q))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(E=
arguments[2])}var N=Number(y.length);N=isNaN(N)?0:0!==N&&isFinite(N)?(0<N?1:-1)*Math.floor(Math.abs(N)):N;N=Math.min(Math.max(N,0),g);for(var T=e(this)?Object(new this(N)):Array(N),F=0,K;F<N;)K=y[F],T[F]=q?"undefined"===typeof E?q(K,F):q.call(E,K,F):K,F+=1;T.length=N;return T}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.METERS=4;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";


K||"undefined"!==typeof jQuery&&g instanceof jQuery||"undefined"!==typeof Elements&&g instanceof Elements;if(R){K=0;for(var W=g.length;K<W;K++)E(g[K],N)}else E(g,N);this.detach=function(){if(R)for(var d=0,f=g.length;d<f;d++)e.detach(g[d]);else e.detach(g)}}};e.detach=function(g){g.resizeSensor&&(g.removeChild(g.resizeSensor),delete g.resizeSensor,delete g.resizedAttached)};window.ResizeSensor=e})();


function(c,l,u){c=[];var p=Math.min(l,u/2),t=Math.min(l-p,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*l);c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t+l-p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-p,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,l-p,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t+l-p),u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,u));return c};wa.prototype.getConstraints=function(c,l,u){l=parseFloat(mxUtils.getValue(c,"jettyWidth",wa.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,"jettyHeight",wa.prototype.jettyHeight));var p=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,l),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,


!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;Va.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),t=Math.max(0,Math.min(u,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,
0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*l+.25*p,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),.5*(u+t)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),u));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(l-p),u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),.5*(u+t)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*l-.25*p,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*t));return c};Ea.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,


PrintDialog.createPrintPreview=function(b,e,g,n,y,q,E){e=new mxPrintPreview(b,e,g,n,y,q);e.title=mxResources.get("preview");e.addPageCss=!mxClient.IS_SF;e.printBackgroundImage=!0;e.autoOrigin=E;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";e.backgroundColor=b;var N=e.writeHead;e.writeHead=function(T){N.apply(this,arguments);T.writeln('<style type="text/css">');T.writeln("@media screen {");T.writeln("  body > div { padding:30px;box-sizing:content-box; }");T.writeln("}");T.writeln("</style>")};
return e};PrintDialog.previewEnabled=!0;


T="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" "),F=!1,K=!1;this.setDefaultStyle=function(Q){try{y.getModel().isEdge(Q)?K=!1:F=!1;var Y=y.getCellStyle(Q,!1),m=[],C=[],M;for(M in Y)m.push(Y[M]),C.push(M);y.getModel().isEdge(Q)?y.currentEdgeStyle={}:y.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",C,"values",m,"cells",[Q],"force",!0));y.getModel().isEdge(Q)?K=!0:F=!0}catch(ba){this.handleError(ba)}};


.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,u-p));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,u-p));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,p));return c};ma.prototype.getConstraints=function(c,l,u){c=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var p=Math.max(0,Math.min(u,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var t=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,
0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(u-p)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,u-p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,u-p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(u-p)));l>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,


0),!1,null,l-p,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(t+l-p),u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,t,u));return c};wa.prototype.getConstraints=function(c,l,u){l=parseFloat(mxUtils.getValue(c,"jettyWidth",wa.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,"jettyHeight",wa.prototype.jettyHeight));var p=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,l),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,0),!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(0,1),!1,null,l),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),
!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(u-.5*c,1.5*c)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(u-.5*c,3.5*c))];u>5*c&&p.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,l));u>8*c&&p.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,l));u>15*c&&p.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,l));return p};x.prototype.constraints=mxRectangleShape.prototype.constraints;L.prototype.constraints=mxRectangleShape.prototype.constraints;


E.setAttribute("width",g+"px");E.setAttribute("height",n+"px");E.setAttribute("viewBox",b+" "+e+" "+g+" "+n);q.appendChild(E);return E};Graph.htmlToPng=function(b,e,g,n){var y=document.createElement("canvas");y.width=e;y.height=g;var q=document.createElement("img");q.onload=mxUtils.bind(this,function(){y.getContext("2d").drawImage(q,0,0);n(y.toDataURL())});q.src="data:image/svg+xml,"+encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><foreignObject width="100%" height="100%">
I lick cheese
</foreignObject></svg>')};


function ba(){mxShape.call(this)}function V(){mxShape.call(this)}function Z(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function ka(){mxShape.call(this)}function qa(){mxShape.call(this)}function ra(){mxShape.call(this)}function pa(){mxShape.call(this)}function wa(){mxCylinder.call(this)}function Da(){mxCylinder.call(this)}function Ba(){mxRectangleShape.call(this)}function ya(){mxDoubleEllipse.call(this)}function Oa(){mxDoubleEllipse.call(this)}function Qa(){mxArrowConnector.call(this);
this.spacing=0}function Ta(){mxArrowConnector.call(this);this.spacing=0}function ta(){mxActor.call(this)}function Aa(){mxRectangleShape.call(this)}function Ea(){mxActor.call(this)}function za(){mxActor.call(this)}function Va(){mxActor.call(this)}function La(){mxActor.call(this)}function Ka(){mxActor.call(this)}function cb(){mxActor.call(this)}function Ca(){mxActor.call(this)}function Ma(){mxActor.call(this)}function x(){mxActor.call(this)}function L(){mxActor.call(this)}function P(){mxEllipse.call(this)}


Graph.createSvgImage=function(b,e,g,n,y){g=unescape(encodeURIComponent(Graph.svgDoctype+'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+b+'px" height="'+e+'px" '+(null!=n&&null!=y?'viewBox="0 0 '+n+" "+y+'" ':"")+'version="1.1">'+g+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(g):Base64.encode(g,!0)),b,e)};


this.spacing=0}function Ta(){mxArrowConnector.call(this);this.spacing=0}function ta(){mxActor.call(this)}function Aa(){mxRectangleShape.call(this)}function Ea(){mxActor.call(this)}function za(){mxActor.call(this)}function Va(){mxActor.call(this)}function La(){mxActor.call(this)}function Ka(){mxActor.call(this)}function cb(){mxActor.call(this)}function Ca(){mxActor.call(this)}function Ma(){mxActor.call(this)}function x(){mxActor.call(this)}function L(){mxActor.call(this)}function P(){mxEllipse.call(this)}


0),!1,null,.5*(l-p),u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),.5*(u+t)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*l-.25*p,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*t));return c};Ea.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,
"dx",this.dx)))),t=Math.max(0,Math.min(u,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),t));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,p,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,.5*(u+t)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,u));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));return c};za.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,


Uint8Array.from||(Uint8Array.from=function(){var b=Object.prototype.toString,e=function(n){return"function"===typeof n||"[object Function]"===b.call(n)},g=Math.pow(2,53)-1;return function(n){var y=Object(n);if(null==n)throw new TypeError("Array.from requires an array-like object - not null or undefined");var q=1<arguments.length?arguments[1]:void 0,E;if("undefined"!==typeof q){if(!e(q))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(E=


1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));l>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};n.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-p,0));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,l-.5*p,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(u+p)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,u-.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,u-p));c.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,.5*(u-p)));return c};d.prototype.getConstraints=function(c,l,u){c=[];l=Math.max(0,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,l));c.push(new mxConnectionConstraint(new mxPoint(1,


T+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+T+'" height="'+T+'" patternUnits="userSpaceOnUse"><path d="'+F.join(" ")+'" fill="none" stroke="'+E+'" opacity="0.2" stroke-width="1"/><path d="M '+T+" 0 L 0 0 0 "+T+'" fill="none" stroke="'+E+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(E,N){b.apply(this,arguments);if(null!=this.shiftPreview1){var T=this.view.canvas;
null!=T.ownerSVGElement&&(T=T.ownerSVGElement);var F=this.gridSize*this.view.scale*this.view.gridSteps;F=-Math.round(F-mxUtils.mod(this.view.translate.x*this.view.scale+E,F))+"px "+-Math.round(F-mxUtils.mod(this.view.translate.y*this.view.scale+N,F))+"px";T.style.backgroundPosition=F}};mxGraph.prototype.updatePageBreaks=function(E,N,T){var F=this.view.scale,K=this.view.translate,R=this.pageFormat,W=F*this.pageScale,d=this.view.getBackgroundPageBounds();N=d.width;T=d.height;var f=new mxRectangle(F*


0),!1,null,l,.5*(u+p)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));l>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};z.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(1,
0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,p,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*p,.5*p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,p));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(u+p)));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,
1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));l>=2*p&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};n.prototype.getConstraints=function(c,l,u){c=[];var p=Math.max(0,Math.min(l,Math.min(u,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-p),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-p,0));c.push(new mxConnectionConstraint(new mxPoint(0,


E.style.backgroundPosition=d,E.style.backgroundImage=W,!R||null!=F.background&&F.background!=mxConstants.NONE?E.style.backgroundColor=K:(E.style.backgroundColor=F.diagramBackgroundColor,F.container.style.backgroundColor=""))};mxGraphView.prototype.createSvgGrid=function(E,N){for(N=this.graph.gridSize*this.scale*(null!=N?N:1);N<this.minGridSize;)N*=2;for(var T=this.gridSteps*N,F=[],K=1;K<this.gridSteps;K++){var R=K*N;F.push("M 0 "+R+" L "+T+" "+R+" M "+R+" 0 L "+R+" "+T)}return'<svg width="'+T+'" height="'+
T+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+T+'" height="'+T+'" patternUnits="userSpaceOnUse"><path d="'+F.join(" ")+'" fill="none" stroke="'+E+'" opacity="0.2" stroke-width="1"/><path d="M '+T+" 0 L 0 0 0 "+T+'" fill="none" stroke="'+E+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(E,N){b.apply(this,arguments);if(null!=this.shiftPreview1){var T=this.view.canvas;


function ba(){mxShape.call(this)}function V(){mxShape.call(this)}function Z(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function ka(){mxShape.call(this)}function qa(){mxShape.call(this)}function ra(){mxShape.call(this)}function pa(){mxShape.call(this)}function wa(){mxCylinder.call(this)}function Da(){mxCylinder.call(this)}function Ba(){mxRectangleShape.call(this)}function ya(){mxDoubleEllipse.call(this)}function Oa(){mxDoubleEllipse.call(this)}function Qa(){mxArrowConnector.call(this);


Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')

The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.


mxResources.get("mermaid")+"...","mermaid");H.showDialog(n.container,620,420,!0,!1);n.init()}));var d="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),g=function(n,q,t,v){n.addItem(t,null,mxUtils.bind(this,function(){var B=new CreateGraphDialog(H,t,v);H.showDialog(B.container,620,420,!0,!1);B.init()}),q)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(n,q){for(var t=0;t<d.length;t++)"-"==d[t]?n.addSeparator(q):g(n,q,mxResources.get(d[t])+


"') "+(f?" and (title contains '"+f+"')":"")+(c?" and (modifiedDate > '"+c.toISOString()+"')":"")+(k?" and ('me' in owners)":""))+"&orderBy=modifiedDate desc,title"},l,u)};DriveClient.prototype.getCustomProperty=function(f,c){f=f.properties;var k=null;if(null!=f)for(var l=0;l<f.length;l++)if(f[l].key==c){k=f[l].value;break}return k};DriveClient.prototype.getFile=function(f,c,k,l,u){l=null!=l?l:!1;u=null!=u?u:!1;null!=urlParams.rev?this.executeRequest({url:"/files/"+f+"/revisions/"+urlParams.rev+"?supportsAllDrives=true"},


l.x,l.y),b.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",N))}finally{b.editor.graph.getModel().endUpdate()}b.editor.graph.setSelectionCells(N);b.editor.graph.scrollCellToVisible(b.editor.graph.getSelectionCell());v.destroy();q.parentNode.removeChild(q)}}}function k(){return"list"==x.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean\n\nAddress\n-street: String\n-city: String\n-state: String":"mermaid"==x.value||
"mermaid2drawio"==x.value?"graph TD;\n  A--\x3eB;\n  A--\x3eC;\n  B--\x3eD;\n  C--\x3eD;":"table"==x.value?"CREATE TABLE Suppliers\n(\nsupplier_id int NOT NULL PRIMARY KEY,\nsupplier_name char(50) NOT NULL,\ncontact_name char(50),\n);\nCREATE TABLE Customers\n(\ncustomer_id int NOT NULL PRIMARY KEY,\ncustomer_name char(50) NOT NULL,\naddress char(50),\ncity char(50),\nstate char(25),\nzip_code char(10)\n);\n":"plantUmlPng"==x.value?"@startuml\nskinparam backgroundcolor transparent\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml":
"plantUmlSvg"==x.value||"plantUmlTxt"==x.value?"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml":";Example:\na->b\nb->edge label->c\nc->a\n"}var l=b.editor.graph.getFreeInsertPoint();e=document.createElement("div");e.style.textAlign="right";var u=document.createElement("textarea");u.style.boxSizing="border-box";u.style.resize=


EditorUi.prototype.loadFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(d)};EditorUi.prototype.createSvgDataUri=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(d)};EditorUi.prototype.embedCssFonts=function(d,g){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(d,g)};EditorUi.prototype.embedExtFonts=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
return this.editor.embedExtFonts(d)};EditorUi.prototype.exportToCanvas=function(d,g,n,q,t,v,B,F,I,G,S,U,N,P,R,M){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(d,g,n,q,t,v,B,F,I,G,S,U,N,P,R,M)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(d,g,n,q){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");


"message",C))}}catch(Y){null!=window.console&&console.warn(Y,C,L)}}function x(C,L){if(!P&&SimplePeer.WEBRTC_SUPPORT){var m=new SimplePeer({initiator:L,config:{iceServers:[{urls:"stun:54.89.235.160:3478"}]}});m.on("signal",function(z){y("sendSignal",{to:C,from:F,signal:z})});m.on("error",function(z){delete I[C];EditorUi.debug("P2PCollab: p2p socket error",z);!N&&L&&m.destroyed&&v[C]&&(EditorUi.debug("P2PCollab: p2p socket reconnecting",C),x(C,!0))});m.on("connect",function(){delete I[C];null==G[C]||
G[C].destroyed?(G[C]=m,v[C]=!0,EditorUi.debug("P2PCollab: p2p socket connected",C)):(m.noP2PMapDel=!0,m.destroy(),EditorUi.debug("P2PCollab: p2p socket duplicate",C))});m.on("close",function(){m.noP2PMapDel||(EditorUi.debug("P2PCollab: p2p socket closed",C),D(t[C]),delete G[C])});m.on("data",u);return I[C]=m}}function E(C,L){D(L||t[C]);null!=C&&(delete t[C],v[C]=!1)}function D(C){var L=g[C];if(null!=L){var m=L.selection,z;for(z in m)null!=m[z]&&m[z].destroy();null!=L.cursor&&null!=L.cursor.parentNode&&


var m=0,z=0;k.view.states.visit(function(J,O){J=!0;p(O.shape)||(console.log("invalid shape",O.cell.id,O.shape),J=!1);p(O.text)||(console.log("invalid text",O.cell.id,O.text),J=!1);J||m++;z++});console.log("states checked",z,"invalid",m)}));c.actions.addAction("testCheckFile",mxUtils.bind(this,function(){var p=null!=c.pages&&null!=c.getCurrentFile()?c.getCurrentFile().getAnonymizedXmlForPages(c.pages):"";p=new TextareaDialog(c,"Paste Data:",p,function(y){if(0<y.length)try{var C=function(O){function T(ba){if(null==
da[ba]){if(da[ba]=!0,null!=Q[ba]){for(;0<Q[ba].length;){var sa=Q[ba].pop();T(sa)}delete Q[ba]}}else mxLog.debug(W+": Visited: "+ba)}var W=O.parentNode.id,V=O.childNodes;O={};for(var Q={},X=null,Z={},Y=0;Y<V.length;Y++){var aa=V[Y];if(null!=aa.id&&0<aa.id.length)if(null==O[aa.id]){O[aa.id]=aa.id;var ca=aa.getAttribute("parent");null==ca?null!=X?mxLog.debug(W+": Multiple roots: "+aa.id):X=aa.id:(null==Q[ca]&&(Q[ca]=[]),Q[ca].push(aa.id))}else Z[aa.id]=aa.id}V=Object.keys(Z);0<V.length?(V=W+": "+V.length+
" Duplicates: "+V.join(", "),mxLog.debug(V+" (see console)")):mxLog.debug(W+": Checked");var da={};null==X?mxLog.debug(W+": No root"):(T(X),Object.keys(da).length!=Object.keys(O).length&&(mxLog.debug(W+": Invalid tree: (see console)"),console.log(W+": Invalid tree",Q)))};"<"!=y.charAt(0)&&(y=Graph.decompress(y),mxLog.debug("See console for uncompressed XML"),console.log("xml",y));var L=mxUtils.parseXml(y),m=c.getPagesForNode(L.documentElement,"mxGraphModel");if(null!=m&&0<m.length)try{var z=c.getHashValueForPages(m);


V))}var S="";null==e&&(e=t,S='

');null==k&&(k=function(){var V=null;try{V=JSON.parse(localStorage.getItem("mxODPickerRecentList"))}catch(Q){}return V});null==l&&(l=function(V){if(null!=V){var Q=k()||{};delete V["@microsoft.graph.downloadUrl"];Q[V.id]=V;localStorage.setItem("mxODPickerRecentList",JSON.stringify(Q))}});S='

OneDrive

'+mxUtils.htmlEntities(mxResources.get("files"))+


Aa.forceConstant=3*V;Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var La=Aa.isVertexIgnored;Aa.isVertexIgnored=function(Da){return La.apply(this,arguments)||0>mxUtils.indexOf(v,Da)};this.executeLayout(function(){Aa.execute(I.getDefaultParent());na()},!0,Z);Z=null}}this.hideDialog()}finally{I.model.endUpdate()}null!=Z&&Z()}}catch(Da){this.handleError(Da)}};EditorUi.prototype.getSearch=function(d){var g="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=d&&0<window.location.search.length){var n="?",
q;for(q in urlParams)0>mxUtils.indexOf(d,q)&&null!=urlParams[q]&&(g+=n+q+"="+urlParams[q],n="&")}else g=window.location.search;return g};EditorUi.prototype.getUrl=function(d){d=null!=d?d:window.location.pathname;var g=0<d.indexOf("?")?1:0;if("1"==urlParams.offline)d+=window.location.search;else{var n="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),q;for(q in urlParams)0>mxUtils.indexOf(n,q)&&(d=0==g?d+"?":d+"&",null!=urlParams[q]&&(d+=q+"="+urlParams[q],


G[C].destroyed?(G[C]=m,v[C]=!0,EditorUi.debug("P2PCollab: p2p socket connected",C)):(m.noP2PMapDel=!0,m.destroy(),EditorUi.debug("P2PCollab: p2p socket duplicate",C))});m.on("close",function(){m.noP2PMapDel||(EditorUi.debug("P2PCollab: p2p socket closed",C),D(t[C]),delete G[C])});m.on("data",u);return I[C]=m}}function E(C,L){D(L||t[C]);null!=C&&(delete t[C],v[C]=!1)}function D(C){var L=g[C];if(null!=L){var m=L.selection,z;for(z in m)null!=m[z]&&m[z].destroy();null!=L.cursor&&null!=L.cursor.parentNode&&
L.cursor.parentNode.removeChild(L.cursor);clearTimeout(L.inactiveTO);delete g[C]}}var A=b.editor.graph,K=0,H=null,d="#e6194b #3cb44b #4363d8 #f58231 #911eb4 #f032e6 #469990 #9A6324 #800000 #808000 #000075 #a9a9a9 #ffe119 #42d4f4 #bfef45 #fabed4 #dcbeff #fffac8 #aaffc3 #ffd8b1".split(" "),g={},n=1,q={},t={},v={},B={},F,I={},G={},S=!0,U=!1,N=!1,P="0"!=urlParams["no-p2p"],R=!1,M=0,p=null,y=mxUtils.bind(this,function(C,L){if(!N)try{null!=H?(H.send(JSON.stringify({action:C,msg:L})),P||EditorUi.debug("P2PCollab: sending to socket server",


return this.editor.embedExtFonts(d)};EditorUi.prototype.exportToCanvas=function(d,g,n,q,t,v,B,F,I,G,S,U,N,P,R,M){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(d,g,n,q,t,v,B,F,I,G,S,U,N,P,R,M)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(d,g,n,q){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");


return this.editor.embedExtFonts(d)};EditorUi.prototype.exportToCanvas=function(d,g,n,q,t,v,B,F,I,G,S,U,N,P,R,M){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(d,g,n,q,t,v,B,F,I,G,S,U,N,P,R,M)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(d,g,n,q){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
return this.editor.convertImages(d,g,n,q)};EditorUi.prototype.convertImageToDataUri=function(d,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(d,g)};EditorUi.prototype.base64Encode=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(d)};EditorUi.prototype.updateCRC=function(d,g,n,q){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(d,g,n,q)};EditorUi.prototype.crc32=function(d){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");


null!=S?(c.resolveCrossReferences=S,S=null):(S=c.resolveCrossReferences,c.resolveCrossReferences=function(){var p=Date.now(),y=S.apply(this,arguments);EditorUi.debug("[Performance] EditorUi.resolveCrossReferences",[this],"time",Date.now()-p+" ms","args",arguments);return y});EditorUi.debug("[Performance]",null!=t?"Enabled":"Disabled")}));this.put("testDevelop",new Menu(mxUtils.bind(this,function(p,y){this.addMenuItems(p,"createSidebarEntry showBoundingBox - testCheckPages testChecksum testFixPages - testCheckFile testDiff - testInspect testOptimize - testXmlImageExport -".split(" "),


G[C].destroyed?(G[C]=m,v[C]=!0,EditorUi.debug("P2PCollab: p2p socket connected",C)):(m.noP2PMapDel=!0,m.destroy(),EditorUi.debug("P2PCollab: p2p socket duplicate",C))});m.on("close",function(){m.noP2PMapDel||(EditorUi.debug("P2PCollab: p2p socket closed",C),D(t[C]),delete G[C])});m.on("data",u);return I[C]=m}}function E(C,L){D(L||t[C]);null!=C&&(delete t[C],v[C]=!1)}function D(C){var L=g[C];if(null!=L){var m=L.selection,z;for(z in m)null!=m[z]&&m[z].destroy();null!=L.cursor&&null!=L.cursor.parentNode&&


		mxEdgeHandler.prototype.init = function()
		{
			edgeHandlerInit.apply(this, arguments);

			var update = mxUtils.bind(this, function()
			{
				if (this.linkHint != null)
				{
					this.linkHint.style.display = (this.graph.getSelectionCount() == 1) ? '' : 'none';
				}

				if (this.labelShape != null)
				{
					this.labelShape.node.style.display = (this.graph.isEnabled() &&
						this.graph.getSelectionCount() <= this.graph.graphHandler.maxCells) ?
						'' : 'none';
				}
			});

			this.changeHandler = mxUtils.bind(this, function(sender, evt)
			{
				this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),
					this.graph.getLinksForState(this.state));
				update();
				this.redrawHandles();
			});

			this.graph.getSelectionModel().addListener(mxEvent.CHANGE, this.changeHandler);
			this.graph.getModel().addListener(mxEvent.CHANGE, this.changeHandler);

			var link = this.graph.getLinkForCell(this.state.cell);
			var links = this.graph.getLinksForState(this.state);

			if (link != null || (links != null && links.length > 0))
			{
				this.updateLinkHint(link, links);
				this.redrawHandles();
			}
		};


return this.editor.embedExtFonts(c)};EditorUi.prototype.exportToCanvas=function(c,e,k,n,p,t,y,A,G,C,V,S,N,O,Q,J){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(c,e,k,n,p,t,y,A,G,C,V,S,N,O,Q,J)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(c,e,k,n){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
return this.editor.convertImages(c,e,k,n)};EditorUi.prototype.convertImageToDataUri=function(c,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(c,e)};EditorUi.prototype.base64Encode=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(c)};EditorUi.prototype.updateCRC=function(c,e,k,n){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(c,e,k,n)};EditorUi.prototype.crc32=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");


return this.editor.embedExtFonts(c)};EditorUi.prototype.exportToCanvas=function(c,e,k,n,p,t,y,A,G,C,V,S,N,O,Q,J){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(c,e,k,n,p,t,y,A,G,C,V,S,N,O,Q,J)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(c,e,k,n){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");


var g=0,x=0;q.view.states.visit(function(F,M){F=!0;m(M.shape)||(console.log("invalid shape",M.cell.id,M.shape),F=!1);m(M.text)||(console.log("invalid text",M.cell.id,M.text),F=!1);F||g++;x++});console.log("states checked",x,"invalid",g)}));d.actions.addAction("testCheckFile",mxUtils.bind(this,function(){var m=null!=d.pages&&null!=d.getCurrentFile()?d.getCurrentFile().getAnonymizedXmlForPages(d.pages):"";m=new TextareaDialog(d,"Paste Data:",m,function(v){if(0<v.length)try{var B=function(M){function P(aa){if(null==
ca[aa]){if(ca[aa]=!0,null!=U[aa]){for(;0<U[aa].length;){var ra=U[aa].pop();P(ra)}delete U[aa]}}else mxLog.debug(T+": Visited: "+aa)}var T=M.parentNode.id,W=M.childNodes;M={};for(var U={},X=null,Z={},Y=0;Y<W.length;Y++){var ba=W[Y];if(null!=ba.id&&0<ba.id.length)if(null==M[ba.id]){M[ba.id]=ba.id;var fa=ba.getAttribute("parent");null==fa?null!=X?mxLog.debug(T+": Multiple roots: "+ba.id):X=ba.id:(null==U[fa]&&(U[fa]=[]),U[fa].push(ba.id))}else Z[ba.id]=ba.id}W=Object.keys(Z);0<W.length?(W=T+": "+W.length+
" Duplicates: "+W.join(", "),mxLog.debug(W+" (see console)")):mxLog.debug(T+": Checked");var ca={};null==X?mxLog.debug(T+": No root"):(P(X),Object.keys(ca).length!=Object.keys(M).length&&(mxLog.debug(T+": Invalid tree: (see console)"),console.log(T+": Invalid tree",U)))};"<"!=v.charAt(0)&&(v=Graph.decompress(v),mxLog.debug("See console for uncompressed XML"),console.log("xml",v));var H=mxUtils.parseXml(v),g=d.getPagesForNode(H.documentElement,"mxGraphModel");if(null!=g&&0<g.length)try{var x=d.getHashValueForPages(g);


mxResources.get("mermaid")+"...","mermaid");I.showDialog(k.container,620,420,!0,!1);k.init()}));var c="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),e=function(k,n,p,t){k.addItem(p,null,mxUtils.bind(this,function(){var y=new CreateGraphDialog(I,p,t);I.showDialog(y.container,620,420,!0,!1);y.init()}),n)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(k,n){for(var p=0;p<c.length;p++)"-"==c[p]?k.addSeparator(n):e(k,n,mxResources.get(c[p])+


EditorUi.prototype.loadFonts=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(c)};EditorUi.prototype.createSvgDataUri=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(c)};EditorUi.prototype.embedCssFonts=function(c,e){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(c,e)};EditorUi.prototype.embedExtFonts=function(c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
return this.editor.embedExtFonts(c)};EditorUi.prototype.exportToCanvas=function(c,e,k,n,p,t,y,A,G,C,V,S,N,O,Q,J){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(c,e,k,n,p,t,y,A,G,C,V,S,N,O,Q,J)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(c,e,k,n){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");